nit: Add incremental typing to interpretor
[nit.git] / c_src / parser___parser_prod._sep.c
1 /* This C file is generated by NIT to compile module parser___parser_prod. */
2 #include "parser___parser_prod._sep.h"
3 val_t parser___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___parser_prod;
8 fra.me.line = 10;
9 fra.me.meth = LOCATE_parser___parser_prod___ANode___parent;
10 fra.me.has_broke = 0;
11 fra.me.REG_size = 1;
12 fra.me.nitni_local_ref_head = NULL;
13 fra.me.REG[0] = NIT_NULL;
14 fra.me.REG[0] = p0;
15 /* parser/parser_prod.nit:10 */
16 fra.me.REG[0] = ATTR_parser___parser_prod___ANode____parent(fra.me.REG[0]);
17 stack_frame_head = fra.me.prev;
18 return fra.me.REG[0];
19 }
20 void parser___parser_prod___ANode___parent__eq(val_t p0, val_t p1){
21 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22 val_t tmp;
23 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24 fra.me.file = LOCATE_parser___parser_prod;
25 fra.me.line = 10;
26 fra.me.meth = LOCATE_parser___parser_prod___ANode___parent__eq;
27 fra.me.has_broke = 0;
28 fra.me.REG_size = 2;
29 fra.me.nitni_local_ref_head = NULL;
30 fra.me.REG[0] = NIT_NULL;
31 fra.me.REG[1] = NIT_NULL;
32 fra.me.REG[0] = p0;
33 fra.me.REG[1] = p1;
34 /* parser/parser_prod.nit:10 */
35 ATTR_parser___parser_prod___ANode____parent(fra.me.REG[0]) = fra.me.REG[1];
36 stack_frame_head = fra.me.prev;
37 return;
38 }
39 void parser___parser_prod___ANode___remove_child(val_t p0, val_t p1){
40 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
41 val_t tmp;
42 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43 fra.me.file = LOCATE_parser___parser_prod;
44 fra.me.line = 13;
45 fra.me.meth = LOCATE_parser___parser_prod___ANode___remove_child;
46 fra.me.has_broke = 0;
47 fra.me.REG_size = 2;
48 fra.me.nitni_local_ref_head = NULL;
49 fra.me.REG[0] = NIT_NULL;
50 fra.me.REG[1] = NIT_NULL;
51 fra.me.REG[0] = p0;
52 fra.me.REG[1] = p1;
53 /* parser/parser_prod.nit:16 */
54 CALL_parser___parser_prod___ANode___replace_child(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], NIT_NULL);
55 stack_frame_head = fra.me.prev;
56 return;
57 }
58 void parser___parser_prod___ANode___replace_child(val_t p0, val_t p1, val_t p2){
59 struct {struct stack_frame_t me;} fra;
60 val_t tmp;
61 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
62 fra.me.file = LOCATE_parser___parser_prod;
63 fra.me.line = 19;
64 fra.me.meth = LOCATE_parser___parser_prod___ANode___replace_child;
65 fra.me.has_broke = 0;
66 fra.me.REG_size = 0;
67 fra.me.nitni_local_ref_head = NULL;
68 /* parser/parser_prod.nit:19 */
69 nit_abort("Deferred method called", NULL, LOCATE_parser___parser_prod, 19);
70 stack_frame_head = fra.me.prev;
71 return;
72 }
73 void parser___parser_prod___ANode___replace_with(val_t p0, val_t p1){
74 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
75 val_t REGB0;
76 val_t REGB1;
77 val_t tmp;
78 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
79 fra.me.file = LOCATE_parser___parser_prod;
80 fra.me.line = 22;
81 fra.me.meth = LOCATE_parser___parser_prod___ANode___replace_with;
82 fra.me.has_broke = 0;
83 fra.me.REG_size = 3;
84 fra.me.nitni_local_ref_head = NULL;
85 fra.me.REG[0] = NIT_NULL;
86 fra.me.REG[1] = NIT_NULL;
87 fra.me.REG[2] = NIT_NULL;
88 fra.me.REG[0] = p0;
89 fra.me.REG[1] = p1;
90 /* parser/parser_prod.nit:25 */
91 fra.me.REG[2] = ATTR_parser___parser_prod___ANode____parent(fra.me.REG[0]);
92 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
93 if (UNTAG_Bool(REGB0)) {
94 } else {
95 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
96 if (UNTAG_Bool(REGB1)) {
97 REGB1 = TAG_Bool(false);
98 REGB0 = REGB1;
99 } else {
100 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
101 REGB0 = REGB1;
102 }
103 }
104 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
105 if (UNTAG_Bool(REGB0)) {
106 /* parser/parser_prod.nit:26 */
107 fra.me.REG[2] = ATTR_parser___parser_prod___ANode____parent(fra.me.REG[0]);
108 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
109 if (UNTAG_Bool(REGB0)) {
110 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 26);
111 }
112 CALL_parser___parser_prod___ANode___replace_child(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1]);
113 }
114 stack_frame_head = fra.me.prev;
115 return;
116 }
117 void parser___parser_prod___ANode___visit_all(val_t p0, val_t p1){
118 struct {struct stack_frame_t me;} fra;
119 val_t tmp;
120 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
121 fra.me.file = LOCATE_parser___parser_prod;
122 fra.me.line = 30;
123 fra.me.meth = LOCATE_parser___parser_prod___ANode___visit_all;
124 fra.me.has_broke = 0;
125 fra.me.REG_size = 0;
126 fra.me.nitni_local_ref_head = NULL;
127 /* parser/parser_prod.nit:30 */
128 nit_abort("Deferred method called", NULL, LOCATE_parser___parser_prod, 30);
129 stack_frame_head = fra.me.prev;
130 return;
131 }
132 void parser___parser_prod___Token___visit_all(val_t p0, val_t p1){
133 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
134 val_t tmp;
135 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
136 fra.me.file = LOCATE_parser___parser_prod;
137 fra.me.line = 36;
138 fra.me.meth = LOCATE_parser___parser_prod___Token___visit_all;
139 fra.me.has_broke = 0;
140 fra.me.REG_size = 2;
141 fra.me.nitni_local_ref_head = NULL;
142 fra.me.REG[0] = NIT_NULL;
143 fra.me.REG[1] = NIT_NULL;
144 fra.me.REG[0] = p0;
145 fra.me.REG[1] = p1;
146 stack_frame_head = fra.me.prev;
147 return;
148 }
149 void parser___parser_prod___Token___replace_child(val_t p0, val_t p1, val_t p2){
150 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
151 val_t tmp;
152 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
153 fra.me.file = LOCATE_parser___parser_prod;
154 fra.me.line = 37;
155 fra.me.meth = LOCATE_parser___parser_prod___Token___replace_child;
156 fra.me.has_broke = 0;
157 fra.me.REG_size = 3;
158 fra.me.nitni_local_ref_head = NULL;
159 fra.me.REG[0] = NIT_NULL;
160 fra.me.REG[1] = NIT_NULL;
161 fra.me.REG[2] = NIT_NULL;
162 fra.me.REG[0] = p0;
163 fra.me.REG[1] = p1;
164 fra.me.REG[2] = p2;
165 stack_frame_head = fra.me.prev;
166 return;
167 }
168 void parser___parser_prod___Prod___replace_with(val_t p0, val_t p1){
169 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
170 val_t REGB0;
171 val_t tmp;
172 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
173 fra.me.file = LOCATE_parser___parser_prod;
174 fra.me.line = 41;
175 fra.me.meth = LOCATE_parser___parser_prod___Prod___replace_with;
176 fra.me.has_broke = 0;
177 fra.me.REG_size = 4;
178 fra.me.nitni_local_ref_head = NULL;
179 fra.me.REG[0] = NIT_NULL;
180 fra.me.REG[1] = NIT_NULL;
181 fra.me.REG[2] = NIT_NULL;
182 fra.me.REG[3] = NIT_NULL;
183 fra.me.REG[0] = p0;
184 fra.me.REG[1] = p1;
185 /* parser/parser_prod.nit:41 */
186 fra.me.REG[2] = fra.me.REG[0];
187 fra.me.REG[3] = fra.me.REG[1];
188 /* parser/parser_prod.nit:43 */
189 CALL_SUPER_parser___parser_prod___Prod___replace_with(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
190 /* parser/parser_prod.nit:44 */
191 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___Prod, ID_parser___parser_nodes___Prod)) /*cast Prod*/;
192 if (UNTAG_Bool(REGB0)) {
193 } else {
194 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 44);
195 }
196 /* parser/parser_prod.nit:45 */
197 fra.me.REG[2] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[2])(fra.me.REG[2]);
198 CALL_parser___parser_nodes___Prod___location__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
199 stack_frame_head = fra.me.prev;
200 return;
201 }
202 void parser___parser_prod___Visitor___visit(val_t p0, val_t p1){
203 struct {struct stack_frame_t me;} fra;
204 val_t tmp;
205 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
206 fra.me.file = LOCATE_parser___parser_prod;
207 fra.me.line = 51;
208 fra.me.meth = LOCATE_parser___parser_prod___Visitor___visit;
209 fra.me.has_broke = 0;
210 fra.me.REG_size = 0;
211 fra.me.nitni_local_ref_head = NULL;
212 /* parser/parser_prod.nit:51 */
213 nit_abort("Deferred method called", NULL, LOCATE_parser___parser_prod, 51);
214 stack_frame_head = fra.me.prev;
215 return;
216 }
217 void parser___parser_prod___Visitor___enter_visit(val_t p0, val_t p1){
218 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
219 val_t tmp;
220 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
221 fra.me.file = LOCATE_parser___parser_prod;
222 fra.me.line = 55;
223 fra.me.meth = LOCATE_parser___parser_prod___Visitor___enter_visit;
224 fra.me.has_broke = 0;
225 fra.me.REG_size = 3;
226 fra.me.nitni_local_ref_head = NULL;
227 fra.me.REG[0] = NIT_NULL;
228 fra.me.REG[1] = NIT_NULL;
229 fra.me.REG[2] = NIT_NULL;
230 fra.me.REG[0] = p0;
231 fra.me.REG[1] = p1;
232 /* parser/parser_prod.nit:60 */
233 fra.me.REG[2] = ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]);
234 /* parser/parser_prod.nit:61 */
235 ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
236 /* parser/parser_prod.nit:62 */
237 CALL_parser___parser_prod___Visitor___visit(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
238 /* parser/parser_prod.nit:63 */
239 ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[2];
240 stack_frame_head = fra.me.prev;
241 return;
242 }
243 val_t parser___parser_prod___Visitor___current_node(val_t p0){
244 struct {struct stack_frame_t me;} fra;
245 val_t tmp;
246 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
247 fra.me.file = LOCATE_parser___parser_prod;
248 fra.me.line = 66;
249 fra.me.meth = LOCATE_parser___parser_prod___Visitor___current_node;
250 fra.me.has_broke = 0;
251 fra.me.REG_size = 1;
252 fra.me.nitni_local_ref_head = NULL;
253 fra.me.REG[0] = NIT_NULL;
254 fra.me.REG[0] = p0;
255 /* parser/parser_prod.nit:66 */
256 fra.me.REG[0] = ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]);
257 stack_frame_head = fra.me.prev;
258 return fra.me.REG[0];
259 }
260 void parser___parser_prod___Visitor___init(val_t p0, int* init_table){
261 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_prod___Visitor].i;
262 struct {struct stack_frame_t me;} fra;
263 val_t tmp;
264 if (init_table[itpos0]) return;
265 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
266 fra.me.file = LOCATE_parser___parser_prod;
267 fra.me.line = 0;
268 fra.me.meth = LOCATE_parser___parser_prod___Visitor___init;
269 fra.me.has_broke = 0;
270 fra.me.REG_size = 0;
271 fra.me.nitni_local_ref_head = NULL;
272 stack_frame_head = fra.me.prev;
273 init_table[itpos0] = 1;
274 return;
275 }
276 void parser___parser_prod___AModule___empty_init(val_t p0, int* init_table){
277 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModule].i;
278 struct {struct stack_frame_t me;} fra;
279 val_t tmp;
280 if (init_table[itpos1]) return;
281 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
282 fra.me.file = LOCATE_parser___parser_prod;
283 fra.me.line = 71;
284 fra.me.meth = LOCATE_parser___parser_prod___AModule___empty_init;
285 fra.me.has_broke = 0;
286 fra.me.REG_size = 1;
287 fra.me.nitni_local_ref_head = NULL;
288 fra.me.REG[0] = NIT_NULL;
289 fra.me.REG[0] = p0;
290 stack_frame_head = fra.me.prev;
291 init_table[itpos1] = 1;
292 return;
293 }
294 void parser___parser_prod___AModule___init_amodule(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
295 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModule].i;
296 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
297 val_t REGB0;
298 val_t REGB1;
299 val_t tmp;
300 if (init_table[itpos2]) return;
301 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
302 fra.me.file = LOCATE_parser___parser_prod;
303 fra.me.line = 73;
304 fra.me.meth = LOCATE_parser___parser_prod___AModule___init_amodule;
305 fra.me.has_broke = 0;
306 fra.me.REG_size = 4;
307 fra.me.nitni_local_ref_head = NULL;
308 fra.me.REG[0] = NIT_NULL;
309 fra.me.REG[1] = NIT_NULL;
310 fra.me.REG[2] = NIT_NULL;
311 fra.me.REG[3] = NIT_NULL;
312 fra.me.REG[0] = p0;
313 fra.me.REG[1] = p1;
314 fra.me.REG[2] = p2;
315 fra.me.REG[3] = p3;
316 /* parser/parser_prod.nit:79 */
317 CALL_parser___parser_prod___AModule___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
318 /* parser/parser_prod.nit:80 */
319 ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]) = fra.me.REG[1];
320 /* parser/parser_prod.nit:81 */
321 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
322 if (UNTAG_Bool(REGB0)) {
323 } else {
324 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
325 if (UNTAG_Bool(REGB1)) {
326 REGB1 = TAG_Bool(false);
327 REGB0 = REGB1;
328 } else {
329 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
330 REGB0 = REGB1;
331 }
332 }
333 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
334 if (UNTAG_Bool(REGB0)) {
335 /* parser/parser_prod.nit:82 */
336 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
337 if (UNTAG_Bool(REGB0)) {
338 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 82);
339 }
340 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
341 }
342 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AModule___init_amodule_1));
343 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AModule___init_amodule_2));
344 stack_frame_head = fra.me.prev;
345 init_table[itpos2] = 1;
346 return;
347 }
348 void OC_parser___parser_prod___AModule___init_amodule_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
349 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
350 val_t REGB0;
351 fun_t CREG[1];
352 val_t tmp;
353 /* parser/parser_prod.nit:84 */
354 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
355 fra.me.file = LOCATE_parser___parser_prod;
356 fra.me.line = 0;
357 fra.me.meth = LOCATE_parser___parser_prod___AModule___init_amodule;
358 fra.me.has_broke = 0;
359 fra.me.REG_size = 2;
360 fra.me.nitni_local_ref_head = NULL;
361 fra.me.REG[0] = NIT_NULL;
362 fra.me.REG[1] = NIT_NULL;
363 fra.me.closure_ctx = closctx_param;
364 fra.me.closure_funs = CREG;
365 fra.me.REG[0] = p0;
366 CREG[0] = clos_fun0;
367 /* parser/parser_prod.nit:85 */
368 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AImport, ID_parser___parser_nodes___AImport)) /*cast AImport*/;
369 if (UNTAG_Bool(REGB0)) {
370 } else {
371 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 85);
372 }
373 /* parser/parser_prod.nit:86 */
374 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(closctx->REG[0])!=NIT_NULL);
375 if (UNTAG_Bool(REGB0)) {
376 } else {
377 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 86);
378 }
379 fra.me.REG[1] = ATTR_parser___parser_nodes___AModule____n_imports(closctx->REG[0]);
380 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
381 /* parser/parser_prod.nit:87 */
382 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
383 stack_frame_head = fra.me.prev;
384 return;
385 }
386 void OC_parser___parser_prod___AModule___init_amodule_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
387 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
388 val_t REGB0;
389 fun_t CREG[1];
390 val_t tmp;
391 /* parser/parser_prod.nit:89 */
392 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
393 fra.me.file = LOCATE_parser___parser_prod;
394 fra.me.line = 0;
395 fra.me.meth = LOCATE_parser___parser_prod___AModule___init_amodule;
396 fra.me.has_broke = 0;
397 fra.me.REG_size = 2;
398 fra.me.nitni_local_ref_head = NULL;
399 fra.me.REG[0] = NIT_NULL;
400 fra.me.REG[1] = NIT_NULL;
401 fra.me.closure_ctx = closctx_param;
402 fra.me.closure_funs = CREG;
403 fra.me.REG[0] = p0;
404 CREG[0] = clos_fun0;
405 /* parser/parser_prod.nit:90 */
406 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast AClassdef*/;
407 if (UNTAG_Bool(REGB0)) {
408 } else {
409 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 90);
410 }
411 /* parser/parser_prod.nit:91 */
412 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(closctx->REG[0])!=NIT_NULL);
413 if (UNTAG_Bool(REGB0)) {
414 } else {
415 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 91);
416 }
417 fra.me.REG[1] = ATTR_parser___parser_nodes___AModule____n_classdefs(closctx->REG[0]);
418 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
419 /* parser/parser_prod.nit:92 */
420 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
421 stack_frame_head = fra.me.prev;
422 return;
423 }
424 void parser___parser_prod___AModule___replace_child(val_t p0, val_t p1, val_t p2){
425 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
426 val_t REGB0;
427 val_t REGB1;
428 val_t REGB2;
429 val_t REGB3;
430 val_t REGB4;
431 val_t tmp;
432 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
433 fra.me.file = LOCATE_parser___parser_prod;
434 fra.me.line = 96;
435 fra.me.meth = LOCATE_parser___parser_prod___AModule___replace_child;
436 fra.me.has_broke = 0;
437 fra.me.REG_size = 4;
438 fra.me.nitni_local_ref_head = NULL;
439 fra.me.REG[0] = NIT_NULL;
440 fra.me.REG[1] = NIT_NULL;
441 fra.me.REG[2] = NIT_NULL;
442 fra.me.REG[3] = NIT_NULL;
443 fra.me.REG[0] = p0;
444 fra.me.REG[1] = p1;
445 fra.me.REG[2] = p2;
446 /* parser/parser_prod.nit:98 */
447 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]);
448 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
449 if (UNTAG_Bool(REGB0)) {
450 } else {
451 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
452 if (UNTAG_Bool(REGB1)) {
453 REGB1 = TAG_Bool(false);
454 REGB0 = REGB1;
455 } else {
456 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
457 REGB0 = REGB1;
458 }
459 }
460 if (UNTAG_Bool(REGB0)) {
461 /* parser/parser_prod.nit:99 */
462 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
463 if (UNTAG_Bool(REGB0)) {
464 } else {
465 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
466 if (UNTAG_Bool(REGB1)) {
467 REGB1 = TAG_Bool(false);
468 REGB0 = REGB1;
469 } else {
470 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
471 REGB0 = REGB1;
472 }
473 }
474 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
475 if (UNTAG_Bool(REGB0)) {
476 /* parser/parser_prod.nit:100 */
477 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
478 if (UNTAG_Bool(REGB0)) {
479 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 100);
480 }
481 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
482 /* parser/parser_prod.nit:101 */
483 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast AModuledecl*/;
484 if (UNTAG_Bool(REGB0)) {
485 } else {
486 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 101);
487 }
488 /* parser/parser_prod.nit:102 */
489 ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]) = fra.me.REG[2];
490 } else {
491 /* parser/parser_prod.nit:104 */
492 ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]) = NIT_NULL;
493 }
494 /* parser/parser_prod.nit:106 */
495 goto label1;
496 }
497 /* parser/parser_prod.nit:108 */
498 REGB0 = TAG_Int(0);
499 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
500 if (UNTAG_Bool(REGB1)) {
501 } else {
502 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 108);
503 }
504 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]);
505 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
506 /* ../lib/standard/kernel.nit:352 */
507 while(1) {
508 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
509 if (UNTAG_Bool(REGB2)) {
510 } else {
511 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
512 }
513 /* ../lib/standard/kernel.nit:232 */
514 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
515 /* ../lib/standard/kernel.nit:352 */
516 if (UNTAG_Bool(REGB2)) {
517 /* parser/parser_prod.nit:108 */
518 REGB2 = REGB0;
519 /* parser/parser_prod.nit:109 */
520 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
521 if (UNTAG_Bool(REGB3)) {
522 } else {
523 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 109);
524 }
525 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]);
526 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
527 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
528 if (UNTAG_Bool(REGB3)) {
529 } else {
530 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
531 if (UNTAG_Bool(REGB4)) {
532 REGB4 = TAG_Bool(false);
533 REGB3 = REGB4;
534 } else {
535 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
536 REGB3 = REGB4;
537 }
538 }
539 if (UNTAG_Bool(REGB3)) {
540 /* parser/parser_prod.nit:110 */
541 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
542 if (UNTAG_Bool(REGB3)) {
543 } else {
544 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
545 if (UNTAG_Bool(REGB4)) {
546 REGB4 = TAG_Bool(false);
547 REGB3 = REGB4;
548 } else {
549 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
550 REGB3 = REGB4;
551 }
552 }
553 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
554 if (UNTAG_Bool(REGB3)) {
555 /* parser/parser_prod.nit:111 */
556 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AImport, ID_parser___parser_nodes___AImport)) /*cast AImport*/;
557 if (UNTAG_Bool(REGB3)) {
558 } else {
559 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 111);
560 }
561 /* parser/parser_prod.nit:112 */
562 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
563 if (UNTAG_Bool(REGB3)) {
564 } else {
565 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 112);
566 }
567 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]);
568 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
569 /* parser/parser_prod.nit:113 */
570 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
571 if (UNTAG_Bool(REGB3)) {
572 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 113);
573 }
574 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
575 } else {
576 /* parser/parser_prod.nit:115 */
577 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
578 if (UNTAG_Bool(REGB3)) {
579 } else {
580 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 115);
581 }
582 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]);
583 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
584 }
585 /* parser/parser_prod.nit:117 */
586 goto label1;
587 }
588 /* ../lib/standard/kernel.nit:354 */
589 REGB2 = TAG_Int(1);
590 /* ../lib/standard/kernel.nit:235 */
591 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
592 /* ../lib/standard/kernel.nit:354 */
593 REGB0 = REGB2;
594 } else {
595 /* ../lib/standard/kernel.nit:352 */
596 goto label2;
597 }
598 }
599 label2: while(0);
600 /* parser/parser_prod.nit:120 */
601 REGB0 = TAG_Int(0);
602 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
603 if (UNTAG_Bool(REGB1)) {
604 } else {
605 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 120);
606 }
607 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
608 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
609 /* ../lib/standard/kernel.nit:352 */
610 while(1) {
611 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
612 if (UNTAG_Bool(REGB2)) {
613 } else {
614 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
615 }
616 /* ../lib/standard/kernel.nit:232 */
617 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
618 /* ../lib/standard/kernel.nit:352 */
619 if (UNTAG_Bool(REGB2)) {
620 /* parser/parser_prod.nit:120 */
621 REGB2 = REGB0;
622 /* parser/parser_prod.nit:121 */
623 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
624 if (UNTAG_Bool(REGB3)) {
625 } else {
626 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 121);
627 }
628 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
629 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
630 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
631 if (UNTAG_Bool(REGB3)) {
632 } else {
633 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
634 if (UNTAG_Bool(REGB4)) {
635 REGB4 = TAG_Bool(false);
636 REGB3 = REGB4;
637 } else {
638 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
639 REGB3 = REGB4;
640 }
641 }
642 if (UNTAG_Bool(REGB3)) {
643 /* parser/parser_prod.nit:122 */
644 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
645 if (UNTAG_Bool(REGB3)) {
646 } else {
647 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
648 if (UNTAG_Bool(REGB4)) {
649 REGB4 = TAG_Bool(false);
650 REGB3 = REGB4;
651 } else {
652 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
653 REGB3 = REGB4;
654 }
655 }
656 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
657 if (UNTAG_Bool(REGB3)) {
658 /* parser/parser_prod.nit:123 */
659 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast AClassdef*/;
660 if (UNTAG_Bool(REGB3)) {
661 } else {
662 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 123);
663 }
664 /* parser/parser_prod.nit:124 */
665 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
666 if (UNTAG_Bool(REGB3)) {
667 } else {
668 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 124);
669 }
670 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
671 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
672 /* parser/parser_prod.nit:125 */
673 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
674 if (UNTAG_Bool(REGB3)) {
675 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 125);
676 }
677 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
678 } else {
679 /* parser/parser_prod.nit:127 */
680 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
681 if (UNTAG_Bool(REGB3)) {
682 } else {
683 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 127);
684 }
685 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
686 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
687 }
688 /* parser/parser_prod.nit:129 */
689 goto label1;
690 }
691 /* ../lib/standard/kernel.nit:354 */
692 REGB2 = TAG_Int(1);
693 /* ../lib/standard/kernel.nit:235 */
694 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
695 /* ../lib/standard/kernel.nit:354 */
696 REGB0 = REGB2;
697 } else {
698 /* ../lib/standard/kernel.nit:352 */
699 goto label3;
700 }
701 }
702 label3: while(0);
703 label1: while(0);
704 stack_frame_head = fra.me.prev;
705 return;
706 }
707 void parser___parser_prod___AModule___visit_all(val_t p0, val_t p1){
708 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
709 val_t REGB0;
710 val_t REGB1;
711 val_t tmp;
712 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
713 fra.me.file = LOCATE_parser___parser_prod;
714 fra.me.line = 134;
715 fra.me.meth = LOCATE_parser___parser_prod___AModule___visit_all;
716 fra.me.has_broke = 0;
717 fra.me.REG_size = 4;
718 fra.me.nitni_local_ref_head = NULL;
719 fra.me.REG[0] = NIT_NULL;
720 fra.me.REG[1] = NIT_NULL;
721 fra.me.REG[2] = NIT_NULL;
722 fra.me.REG[3] = NIT_NULL;
723 fra.me.REG[0] = p0;
724 fra.me.REG[1] = p1;
725 /* parser/parser_prod.nit:134 */
726 fra.me.REG[2] = fra.me.REG[0];
727 /* parser/parser_prod.nit:136 */
728 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[2]);
729 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
730 if (UNTAG_Bool(REGB0)) {
731 } else {
732 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
733 if (UNTAG_Bool(REGB1)) {
734 REGB1 = TAG_Bool(false);
735 REGB0 = REGB1;
736 } else {
737 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
738 REGB0 = REGB1;
739 }
740 }
741 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
742 if (UNTAG_Bool(REGB0)) {
743 /* parser/parser_prod.nit:137 */
744 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[2]);
745 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast AModuledecl*/;
746 if (UNTAG_Bool(REGB0)) {
747 } else {
748 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 137);
749 }
750 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
751 }
752 /* parser/parser_prod.nit:139 */
753 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[2])!=NIT_NULL);
754 if (UNTAG_Bool(REGB0)) {
755 } else {
756 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 139);
757 }
758 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[2]);
759 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AModule___visit_all_1));
760 /* parser/parser_prod.nit:142 */
761 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[2])!=NIT_NULL);
762 if (UNTAG_Bool(REGB0)) {
763 } else {
764 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 142);
765 }
766 fra.me.REG[2] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[2]);
767 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AModule___visit_all_2));
768 stack_frame_head = fra.me.prev;
769 return;
770 }
771 void OC_parser___parser_prod___AModule___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
772 struct {struct stack_frame_t me;} fra;
773 fun_t CREG[1];
774 val_t tmp;
775 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
776 fra.me.file = LOCATE_parser___parser_prod;
777 fra.me.line = 0;
778 fra.me.meth = LOCATE_parser___parser_prod___AModule___visit_all;
779 fra.me.has_broke = 0;
780 fra.me.REG_size = 1;
781 fra.me.nitni_local_ref_head = NULL;
782 fra.me.REG[0] = NIT_NULL;
783 fra.me.closure_ctx = closctx_param;
784 fra.me.closure_funs = CREG;
785 fra.me.REG[0] = p0;
786 CREG[0] = clos_fun0;
787 /* parser/parser_prod.nit:140 */
788 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
789 stack_frame_head = fra.me.prev;
790 return;
791 }
792 void OC_parser___parser_prod___AModule___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
793 struct {struct stack_frame_t me;} fra;
794 fun_t CREG[1];
795 val_t tmp;
796 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
797 fra.me.file = LOCATE_parser___parser_prod;
798 fra.me.line = 0;
799 fra.me.meth = LOCATE_parser___parser_prod___AModule___visit_all;
800 fra.me.has_broke = 0;
801 fra.me.REG_size = 1;
802 fra.me.nitni_local_ref_head = NULL;
803 fra.me.REG[0] = NIT_NULL;
804 fra.me.closure_ctx = closctx_param;
805 fra.me.closure_funs = CREG;
806 fra.me.REG[0] = p0;
807 CREG[0] = clos_fun0;
808 /* parser/parser_prod.nit:143 */
809 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
810 stack_frame_head = fra.me.prev;
811 return;
812 }
813 void parser___parser_prod___AModuledecl___empty_init(val_t p0, int* init_table){
814 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuledecl].i;
815 struct {struct stack_frame_t me;} fra;
816 val_t tmp;
817 if (init_table[itpos3]) return;
818 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
819 fra.me.file = LOCATE_parser___parser_prod;
820 fra.me.line = 148;
821 fra.me.meth = LOCATE_parser___parser_prod___AModuledecl___empty_init;
822 fra.me.has_broke = 0;
823 fra.me.REG_size = 1;
824 fra.me.nitni_local_ref_head = NULL;
825 fra.me.REG[0] = NIT_NULL;
826 fra.me.REG[0] = p0;
827 stack_frame_head = fra.me.prev;
828 init_table[itpos3] = 1;
829 return;
830 }
831 void parser___parser_prod___AModuledecl___init_amoduledecl(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
832 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuledecl].i;
833 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
834 val_t REGB0;
835 val_t REGB1;
836 val_t tmp;
837 if (init_table[itpos4]) return;
838 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
839 fra.me.file = LOCATE_parser___parser_prod;
840 fra.me.line = 150;
841 fra.me.meth = LOCATE_parser___parser_prod___AModuledecl___init_amoduledecl;
842 fra.me.has_broke = 0;
843 fra.me.REG_size = 5;
844 fra.me.nitni_local_ref_head = NULL;
845 fra.me.REG[0] = NIT_NULL;
846 fra.me.REG[1] = NIT_NULL;
847 fra.me.REG[2] = NIT_NULL;
848 fra.me.REG[3] = NIT_NULL;
849 fra.me.REG[4] = NIT_NULL;
850 fra.me.REG[0] = p0;
851 fra.me.REG[1] = p1;
852 fra.me.REG[2] = p2;
853 fra.me.REG[3] = p3;
854 /* parser/parser_prod.nit:150 */
855 fra.me.REG[4] = fra.me.REG[0];
856 /* parser/parser_prod.nit:156 */
857 CALL_parser___parser_prod___AModuledecl___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
858 /* parser/parser_prod.nit:157 */
859 ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[4]) = fra.me.REG[1];
860 /* parser/parser_prod.nit:158 */
861 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
862 if (UNTAG_Bool(REGB0)) {
863 } else {
864 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
865 if (UNTAG_Bool(REGB1)) {
866 REGB1 = TAG_Bool(false);
867 REGB0 = REGB1;
868 } else {
869 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
870 REGB0 = REGB1;
871 }
872 }
873 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
874 if (UNTAG_Bool(REGB0)) {
875 /* parser/parser_prod.nit:159 */
876 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
877 if (UNTAG_Bool(REGB0)) {
878 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 159);
879 }
880 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
881 }
882 /* parser/parser_prod.nit:161 */
883 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
884 if (UNTAG_Bool(REGB0)) {
885 } else {
886 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 161);
887 }
888 ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[4]) = fra.me.REG[2];
889 /* parser/parser_prod.nit:162 */
890 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
891 if (UNTAG_Bool(REGB0)) {
892 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 162);
893 }
894 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
895 /* parser/parser_prod.nit:163 */
896 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
897 if (UNTAG_Bool(REGB0)) {
898 } else {
899 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 163);
900 }
901 ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[4]) = fra.me.REG[3];
902 /* parser/parser_prod.nit:164 */
903 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
904 if (UNTAG_Bool(REGB0)) {
905 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 164);
906 }
907 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
908 stack_frame_head = fra.me.prev;
909 init_table[itpos4] = 1;
910 return;
911 }
912 void parser___parser_prod___AModuledecl___replace_child(val_t p0, val_t p1, val_t p2){
913 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
914 val_t REGB0;
915 val_t REGB1;
916 val_t tmp;
917 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
918 fra.me.file = LOCATE_parser___parser_prod;
919 fra.me.line = 167;
920 fra.me.meth = LOCATE_parser___parser_prod___AModuledecl___replace_child;
921 fra.me.has_broke = 0;
922 fra.me.REG_size = 4;
923 fra.me.nitni_local_ref_head = NULL;
924 fra.me.REG[0] = NIT_NULL;
925 fra.me.REG[1] = NIT_NULL;
926 fra.me.REG[2] = NIT_NULL;
927 fra.me.REG[3] = NIT_NULL;
928 fra.me.REG[0] = p0;
929 fra.me.REG[1] = p1;
930 fra.me.REG[2] = p2;
931 /* parser/parser_prod.nit:169 */
932 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[0]);
933 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
934 if (UNTAG_Bool(REGB0)) {
935 } else {
936 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
937 if (UNTAG_Bool(REGB1)) {
938 REGB1 = TAG_Bool(false);
939 REGB0 = REGB1;
940 } else {
941 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
942 REGB0 = REGB1;
943 }
944 }
945 if (UNTAG_Bool(REGB0)) {
946 /* parser/parser_prod.nit:170 */
947 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
948 if (UNTAG_Bool(REGB0)) {
949 } else {
950 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
951 if (UNTAG_Bool(REGB1)) {
952 REGB1 = TAG_Bool(false);
953 REGB0 = REGB1;
954 } else {
955 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
956 REGB0 = REGB1;
957 }
958 }
959 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
960 if (UNTAG_Bool(REGB0)) {
961 /* parser/parser_prod.nit:171 */
962 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
963 if (UNTAG_Bool(REGB0)) {
964 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 171);
965 }
966 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
967 /* parser/parser_prod.nit:172 */
968 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
969 if (UNTAG_Bool(REGB0)) {
970 } else {
971 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 172);
972 }
973 /* parser/parser_prod.nit:173 */
974 ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[0]) = fra.me.REG[2];
975 } else {
976 /* parser/parser_prod.nit:175 */
977 ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[0]) = NIT_NULL;
978 }
979 /* parser/parser_prod.nit:177 */
980 goto label1;
981 }
982 /* parser/parser_prod.nit:179 */
983 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0])!=NIT_NULL);
984 if (UNTAG_Bool(REGB0)) {
985 } else {
986 nit_abort("Uninitialized attribute %s", "_n_kwmodule", LOCATE_parser___parser_prod, 179);
987 }
988 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0]);
989 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
990 if (UNTAG_Bool(REGB0)) {
991 } else {
992 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
993 REGB0 = REGB1;
994 }
995 if (UNTAG_Bool(REGB0)) {
996 /* parser/parser_prod.nit:180 */
997 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
998 if (UNTAG_Bool(REGB0)) {
999 } else {
1000 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1001 if (UNTAG_Bool(REGB1)) {
1002 REGB1 = TAG_Bool(false);
1003 REGB0 = REGB1;
1004 } else {
1005 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1006 REGB0 = REGB1;
1007 }
1008 }
1009 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1010 if (UNTAG_Bool(REGB0)) {
1011 /* parser/parser_prod.nit:181 */
1012 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1013 if (UNTAG_Bool(REGB0)) {
1014 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 181);
1015 }
1016 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1017 /* parser/parser_prod.nit:182 */
1018 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwmodule, ID_parser___parser_nodes___TKwmodule)) /*cast TKwmodule*/;
1019 if (UNTAG_Bool(REGB0)) {
1020 } else {
1021 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 182);
1022 }
1023 /* parser/parser_prod.nit:183 */
1024 ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0]) = fra.me.REG[2];
1025 } else {
1026 /* parser/parser_prod.nit:185 */
1027 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 185);
1028 }
1029 /* parser/parser_prod.nit:187 */
1030 goto label1;
1031 }
1032 /* parser/parser_prod.nit:189 */
1033 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[0])!=NIT_NULL);
1034 if (UNTAG_Bool(REGB0)) {
1035 } else {
1036 nit_abort("Uninitialized attribute %s", "_n_name", LOCATE_parser___parser_prod, 189);
1037 }
1038 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[0]);
1039 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1040 if (UNTAG_Bool(REGB0)) {
1041 } else {
1042 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1043 REGB0 = REGB1;
1044 }
1045 if (UNTAG_Bool(REGB0)) {
1046 /* parser/parser_prod.nit:190 */
1047 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1048 if (UNTAG_Bool(REGB0)) {
1049 } else {
1050 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1051 if (UNTAG_Bool(REGB1)) {
1052 REGB1 = TAG_Bool(false);
1053 REGB0 = REGB1;
1054 } else {
1055 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1056 REGB0 = REGB1;
1057 }
1058 }
1059 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1060 if (UNTAG_Bool(REGB0)) {
1061 /* parser/parser_prod.nit:191 */
1062 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1063 if (UNTAG_Bool(REGB0)) {
1064 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 191);
1065 }
1066 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1067 /* parser/parser_prod.nit:192 */
1068 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AModuleName, ID_parser___parser_nodes___AModuleName)) /*cast AModuleName*/;
1069 if (UNTAG_Bool(REGB0)) {
1070 } else {
1071 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 192);
1072 }
1073 /* parser/parser_prod.nit:193 */
1074 ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[0]) = fra.me.REG[2];
1075 } else {
1076 /* parser/parser_prod.nit:195 */
1077 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 195);
1078 }
1079 /* parser/parser_prod.nit:197 */
1080 goto label1;
1081 }
1082 label1: while(0);
1083 stack_frame_head = fra.me.prev;
1084 return;
1085 }
1086 void parser___parser_prod___AModuledecl___visit_all(val_t p0, val_t p1){
1087 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1088 val_t REGB0;
1089 val_t REGB1;
1090 val_t tmp;
1091 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1092 fra.me.file = LOCATE_parser___parser_prod;
1093 fra.me.line = 201;
1094 fra.me.meth = LOCATE_parser___parser_prod___AModuledecl___visit_all;
1095 fra.me.has_broke = 0;
1096 fra.me.REG_size = 4;
1097 fra.me.nitni_local_ref_head = NULL;
1098 fra.me.REG[0] = NIT_NULL;
1099 fra.me.REG[1] = NIT_NULL;
1100 fra.me.REG[2] = NIT_NULL;
1101 fra.me.REG[3] = NIT_NULL;
1102 fra.me.REG[0] = p0;
1103 fra.me.REG[1] = p1;
1104 /* parser/parser_prod.nit:201 */
1105 fra.me.REG[2] = fra.me.REG[0];
1106 /* parser/parser_prod.nit:203 */
1107 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[2]);
1108 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1109 if (UNTAG_Bool(REGB0)) {
1110 } else {
1111 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1112 if (UNTAG_Bool(REGB1)) {
1113 REGB1 = TAG_Bool(false);
1114 REGB0 = REGB1;
1115 } else {
1116 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1117 REGB0 = REGB1;
1118 }
1119 }
1120 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1121 if (UNTAG_Bool(REGB0)) {
1122 /* parser/parser_prod.nit:204 */
1123 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[2]);
1124 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
1125 if (UNTAG_Bool(REGB0)) {
1126 } else {
1127 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 204);
1128 }
1129 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1130 }
1131 /* parser/parser_prod.nit:206 */
1132 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[2])!=NIT_NULL);
1133 if (UNTAG_Bool(REGB0)) {
1134 } else {
1135 nit_abort("Uninitialized attribute %s", "_n_kwmodule", LOCATE_parser___parser_prod, 206);
1136 }
1137 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[2]);
1138 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1139 /* parser/parser_prod.nit:207 */
1140 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[2])!=NIT_NULL);
1141 if (UNTAG_Bool(REGB0)) {
1142 } else {
1143 nit_abort("Uninitialized attribute %s", "_n_name", LOCATE_parser___parser_prod, 207);
1144 }
1145 fra.me.REG[2] = ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[2]);
1146 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1147 stack_frame_head = fra.me.prev;
1148 return;
1149 }
1150 void parser___parser_prod___AStdImport___empty_init(val_t p0, int* init_table){
1151 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStdImport].i;
1152 struct {struct stack_frame_t me;} fra;
1153 val_t tmp;
1154 if (init_table[itpos5]) return;
1155 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1156 fra.me.file = LOCATE_parser___parser_prod;
1157 fra.me.line = 211;
1158 fra.me.meth = LOCATE_parser___parser_prod___AStdImport___empty_init;
1159 fra.me.has_broke = 0;
1160 fra.me.REG_size = 1;
1161 fra.me.nitni_local_ref_head = NULL;
1162 fra.me.REG[0] = NIT_NULL;
1163 fra.me.REG[0] = p0;
1164 stack_frame_head = fra.me.prev;
1165 init_table[itpos5] = 1;
1166 return;
1167 }
1168 void parser___parser_prod___AStdImport___init_astdimport(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1169 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStdImport].i;
1170 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1171 val_t REGB0;
1172 val_t tmp;
1173 if (init_table[itpos6]) return;
1174 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1175 fra.me.file = LOCATE_parser___parser_prod;
1176 fra.me.line = 213;
1177 fra.me.meth = LOCATE_parser___parser_prod___AStdImport___init_astdimport;
1178 fra.me.has_broke = 0;
1179 fra.me.REG_size = 5;
1180 fra.me.nitni_local_ref_head = NULL;
1181 fra.me.REG[0] = NIT_NULL;
1182 fra.me.REG[1] = NIT_NULL;
1183 fra.me.REG[2] = NIT_NULL;
1184 fra.me.REG[3] = NIT_NULL;
1185 fra.me.REG[4] = NIT_NULL;
1186 fra.me.REG[0] = p0;
1187 fra.me.REG[1] = p1;
1188 fra.me.REG[2] = p2;
1189 fra.me.REG[3] = p3;
1190 /* parser/parser_prod.nit:213 */
1191 fra.me.REG[4] = fra.me.REG[0];
1192 /* parser/parser_prod.nit:219 */
1193 CALL_parser___parser_prod___AStdImport___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
1194 /* parser/parser_prod.nit:220 */
1195 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
1196 if (UNTAG_Bool(REGB0)) {
1197 } else {
1198 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 220);
1199 }
1200 ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[4]) = fra.me.REG[1];
1201 /* parser/parser_prod.nit:221 */
1202 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1203 if (UNTAG_Bool(REGB0)) {
1204 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 221);
1205 }
1206 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
1207 /* parser/parser_prod.nit:222 */
1208 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
1209 if (UNTAG_Bool(REGB0)) {
1210 } else {
1211 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 222);
1212 }
1213 ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[4]) = fra.me.REG[2];
1214 /* parser/parser_prod.nit:223 */
1215 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1216 if (UNTAG_Bool(REGB0)) {
1217 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 223);
1218 }
1219 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1220 /* parser/parser_prod.nit:224 */
1221 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
1222 if (UNTAG_Bool(REGB0)) {
1223 } else {
1224 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 224);
1225 }
1226 ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[4]) = fra.me.REG[3];
1227 /* parser/parser_prod.nit:225 */
1228 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1229 if (UNTAG_Bool(REGB0)) {
1230 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 225);
1231 }
1232 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1233 stack_frame_head = fra.me.prev;
1234 init_table[itpos6] = 1;
1235 return;
1236 }
1237 void parser___parser_prod___AStdImport___replace_child(val_t p0, val_t p1, val_t p2){
1238 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1239 val_t REGB0;
1240 val_t REGB1;
1241 val_t tmp;
1242 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1243 fra.me.file = LOCATE_parser___parser_prod;
1244 fra.me.line = 228;
1245 fra.me.meth = LOCATE_parser___parser_prod___AStdImport___replace_child;
1246 fra.me.has_broke = 0;
1247 fra.me.REG_size = 4;
1248 fra.me.nitni_local_ref_head = NULL;
1249 fra.me.REG[0] = NIT_NULL;
1250 fra.me.REG[1] = NIT_NULL;
1251 fra.me.REG[2] = NIT_NULL;
1252 fra.me.REG[3] = NIT_NULL;
1253 fra.me.REG[0] = p0;
1254 fra.me.REG[1] = p1;
1255 fra.me.REG[2] = p2;
1256 /* parser/parser_prod.nit:230 */
1257 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
1258 if (UNTAG_Bool(REGB0)) {
1259 } else {
1260 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 230);
1261 }
1262 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdImport____n_visibility(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_standard___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:231 */
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_standard___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:232 */
1286 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1287 if (UNTAG_Bool(REGB0)) {
1288 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 232);
1289 }
1290 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1291 /* parser/parser_prod.nit:233 */
1292 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
1293 if (UNTAG_Bool(REGB0)) {
1294 } else {
1295 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 233);
1296 }
1297 /* parser/parser_prod.nit:234 */
1298 ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
1299 } else {
1300 /* parser/parser_prod.nit:236 */
1301 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 236);
1302 }
1303 /* parser/parser_prod.nit:238 */
1304 goto label1;
1305 }
1306 /* parser/parser_prod.nit:240 */
1307 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
1308 if (UNTAG_Bool(REGB0)) {
1309 } else {
1310 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 240);
1311 }
1312 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdImport____n_kwimport(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_standard___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:241 */
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_standard___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:242 */
1336 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1337 if (UNTAG_Bool(REGB0)) {
1338 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 242);
1339 }
1340 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1341 /* parser/parser_prod.nit:243 */
1342 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwimport, ID_parser___parser_nodes___TKwimport)) /*cast TKwimport*/;
1343 if (UNTAG_Bool(REGB0)) {
1344 } else {
1345 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 243);
1346 }
1347 /* parser/parser_prod.nit:244 */
1348 ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
1349 } else {
1350 /* parser/parser_prod.nit:246 */
1351 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 246);
1352 }
1353 /* parser/parser_prod.nit:248 */
1354 goto label1;
1355 }
1356 /* parser/parser_prod.nit:250 */
1357 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0])!=NIT_NULL);
1358 if (UNTAG_Bool(REGB0)) {
1359 } else {
1360 nit_abort("Uninitialized attribute %s", "_n_name", LOCATE_parser___parser_prod, 250);
1361 }
1362 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0]);
1363 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1364 if (UNTAG_Bool(REGB0)) {
1365 } else {
1366 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1367 REGB0 = REGB1;
1368 }
1369 if (UNTAG_Bool(REGB0)) {
1370 /* parser/parser_prod.nit:251 */
1371 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1372 if (UNTAG_Bool(REGB0)) {
1373 } else {
1374 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1375 if (UNTAG_Bool(REGB1)) {
1376 REGB1 = TAG_Bool(false);
1377 REGB0 = REGB1;
1378 } else {
1379 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1380 REGB0 = REGB1;
1381 }
1382 }
1383 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1384 if (UNTAG_Bool(REGB0)) {
1385 /* parser/parser_prod.nit:252 */
1386 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1387 if (UNTAG_Bool(REGB0)) {
1388 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 252);
1389 }
1390 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1391 /* parser/parser_prod.nit:253 */
1392 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AModuleName, ID_parser___parser_nodes___AModuleName)) /*cast AModuleName*/;
1393 if (UNTAG_Bool(REGB0)) {
1394 } else {
1395 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 253);
1396 }
1397 /* parser/parser_prod.nit:254 */
1398 ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0]) = fra.me.REG[2];
1399 } else {
1400 /* parser/parser_prod.nit:256 */
1401 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 256);
1402 }
1403 /* parser/parser_prod.nit:258 */
1404 goto label1;
1405 }
1406 label1: while(0);
1407 stack_frame_head = fra.me.prev;
1408 return;
1409 }
1410 void parser___parser_prod___AStdImport___visit_all(val_t p0, val_t p1){
1411 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1412 val_t REGB0;
1413 val_t tmp;
1414 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1415 fra.me.file = LOCATE_parser___parser_prod;
1416 fra.me.line = 262;
1417 fra.me.meth = LOCATE_parser___parser_prod___AStdImport___visit_all;
1418 fra.me.has_broke = 0;
1419 fra.me.REG_size = 3;
1420 fra.me.nitni_local_ref_head = NULL;
1421 fra.me.REG[0] = NIT_NULL;
1422 fra.me.REG[1] = NIT_NULL;
1423 fra.me.REG[2] = NIT_NULL;
1424 fra.me.REG[0] = p0;
1425 fra.me.REG[1] = p1;
1426 /* parser/parser_prod.nit:264 */
1427 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
1428 if (UNTAG_Bool(REGB0)) {
1429 } else {
1430 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 264);
1431 }
1432 fra.me.REG[2] = ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0]);
1433 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1434 /* parser/parser_prod.nit:265 */
1435 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
1436 if (UNTAG_Bool(REGB0)) {
1437 } else {
1438 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 265);
1439 }
1440 fra.me.REG[2] = ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0]);
1441 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1442 /* parser/parser_prod.nit:266 */
1443 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0])!=NIT_NULL);
1444 if (UNTAG_Bool(REGB0)) {
1445 } else {
1446 nit_abort("Uninitialized attribute %s", "_n_name", LOCATE_parser___parser_prod, 266);
1447 }
1448 fra.me.REG[0] = ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0]);
1449 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1450 stack_frame_head = fra.me.prev;
1451 return;
1452 }
1453 void parser___parser_prod___ANoImport___empty_init(val_t p0, int* init_table){
1454 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANoImport].i;
1455 struct {struct stack_frame_t me;} fra;
1456 val_t tmp;
1457 if (init_table[itpos7]) return;
1458 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1459 fra.me.file = LOCATE_parser___parser_prod;
1460 fra.me.line = 270;
1461 fra.me.meth = LOCATE_parser___parser_prod___ANoImport___empty_init;
1462 fra.me.has_broke = 0;
1463 fra.me.REG_size = 1;
1464 fra.me.nitni_local_ref_head = NULL;
1465 fra.me.REG[0] = NIT_NULL;
1466 fra.me.REG[0] = p0;
1467 stack_frame_head = fra.me.prev;
1468 init_table[itpos7] = 1;
1469 return;
1470 }
1471 void parser___parser_prod___ANoImport___init_anoimport(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1472 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANoImport].i;
1473 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1474 val_t REGB0;
1475 val_t tmp;
1476 if (init_table[itpos8]) return;
1477 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1478 fra.me.file = LOCATE_parser___parser_prod;
1479 fra.me.line = 272;
1480 fra.me.meth = LOCATE_parser___parser_prod___ANoImport___init_anoimport;
1481 fra.me.has_broke = 0;
1482 fra.me.REG_size = 5;
1483 fra.me.nitni_local_ref_head = NULL;
1484 fra.me.REG[0] = NIT_NULL;
1485 fra.me.REG[1] = NIT_NULL;
1486 fra.me.REG[2] = NIT_NULL;
1487 fra.me.REG[3] = NIT_NULL;
1488 fra.me.REG[4] = NIT_NULL;
1489 fra.me.REG[0] = p0;
1490 fra.me.REG[1] = p1;
1491 fra.me.REG[2] = p2;
1492 fra.me.REG[3] = p3;
1493 /* parser/parser_prod.nit:272 */
1494 fra.me.REG[4] = fra.me.REG[0];
1495 /* parser/parser_prod.nit:278 */
1496 CALL_parser___parser_prod___ANoImport___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
1497 /* parser/parser_prod.nit:279 */
1498 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
1499 if (UNTAG_Bool(REGB0)) {
1500 } else {
1501 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 279);
1502 }
1503 ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[4]) = fra.me.REG[1];
1504 /* parser/parser_prod.nit:280 */
1505 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1506 if (UNTAG_Bool(REGB0)) {
1507 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 280);
1508 }
1509 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
1510 /* parser/parser_prod.nit:281 */
1511 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
1512 if (UNTAG_Bool(REGB0)) {
1513 } else {
1514 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 281);
1515 }
1516 ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[4]) = fra.me.REG[2];
1517 /* parser/parser_prod.nit:282 */
1518 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1519 if (UNTAG_Bool(REGB0)) {
1520 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 282);
1521 }
1522 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1523 /* parser/parser_prod.nit:283 */
1524 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
1525 if (UNTAG_Bool(REGB0)) {
1526 } else {
1527 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 283);
1528 }
1529 ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[4]) = fra.me.REG[3];
1530 /* parser/parser_prod.nit:284 */
1531 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1532 if (UNTAG_Bool(REGB0)) {
1533 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 284);
1534 }
1535 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1536 stack_frame_head = fra.me.prev;
1537 init_table[itpos8] = 1;
1538 return;
1539 }
1540 void parser___parser_prod___ANoImport___replace_child(val_t p0, val_t p1, val_t p2){
1541 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1542 val_t REGB0;
1543 val_t REGB1;
1544 val_t tmp;
1545 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1546 fra.me.file = LOCATE_parser___parser_prod;
1547 fra.me.line = 287;
1548 fra.me.meth = LOCATE_parser___parser_prod___ANoImport___replace_child;
1549 fra.me.has_broke = 0;
1550 fra.me.REG_size = 4;
1551 fra.me.nitni_local_ref_head = NULL;
1552 fra.me.REG[0] = NIT_NULL;
1553 fra.me.REG[1] = NIT_NULL;
1554 fra.me.REG[2] = NIT_NULL;
1555 fra.me.REG[3] = NIT_NULL;
1556 fra.me.REG[0] = p0;
1557 fra.me.REG[1] = p1;
1558 fra.me.REG[2] = p2;
1559 /* parser/parser_prod.nit:289 */
1560 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
1561 if (UNTAG_Bool(REGB0)) {
1562 } else {
1563 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 289);
1564 }
1565 fra.me.REG[3] = ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0]);
1566 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1567 if (UNTAG_Bool(REGB0)) {
1568 } else {
1569 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1570 REGB0 = REGB1;
1571 }
1572 if (UNTAG_Bool(REGB0)) {
1573 /* parser/parser_prod.nit:290 */
1574 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1575 if (UNTAG_Bool(REGB0)) {
1576 } else {
1577 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1578 if (UNTAG_Bool(REGB1)) {
1579 REGB1 = TAG_Bool(false);
1580 REGB0 = REGB1;
1581 } else {
1582 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1583 REGB0 = REGB1;
1584 }
1585 }
1586 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1587 if (UNTAG_Bool(REGB0)) {
1588 /* parser/parser_prod.nit:291 */
1589 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1590 if (UNTAG_Bool(REGB0)) {
1591 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 291);
1592 }
1593 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1594 /* parser/parser_prod.nit:292 */
1595 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
1596 if (UNTAG_Bool(REGB0)) {
1597 } else {
1598 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 292);
1599 }
1600 /* parser/parser_prod.nit:293 */
1601 ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
1602 } else {
1603 /* parser/parser_prod.nit:295 */
1604 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 295);
1605 }
1606 /* parser/parser_prod.nit:297 */
1607 goto label1;
1608 }
1609 /* parser/parser_prod.nit:299 */
1610 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
1611 if (UNTAG_Bool(REGB0)) {
1612 } else {
1613 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 299);
1614 }
1615 fra.me.REG[3] = ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0]);
1616 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1617 if (UNTAG_Bool(REGB0)) {
1618 } else {
1619 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1620 REGB0 = REGB1;
1621 }
1622 if (UNTAG_Bool(REGB0)) {
1623 /* parser/parser_prod.nit:300 */
1624 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1625 if (UNTAG_Bool(REGB0)) {
1626 } else {
1627 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1628 if (UNTAG_Bool(REGB1)) {
1629 REGB1 = TAG_Bool(false);
1630 REGB0 = REGB1;
1631 } else {
1632 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1633 REGB0 = REGB1;
1634 }
1635 }
1636 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1637 if (UNTAG_Bool(REGB0)) {
1638 /* parser/parser_prod.nit:301 */
1639 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1640 if (UNTAG_Bool(REGB0)) {
1641 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 301);
1642 }
1643 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1644 /* parser/parser_prod.nit:302 */
1645 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwimport, ID_parser___parser_nodes___TKwimport)) /*cast TKwimport*/;
1646 if (UNTAG_Bool(REGB0)) {
1647 } else {
1648 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 302);
1649 }
1650 /* parser/parser_prod.nit:303 */
1651 ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
1652 } else {
1653 /* parser/parser_prod.nit:305 */
1654 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 305);
1655 }
1656 /* parser/parser_prod.nit:307 */
1657 goto label1;
1658 }
1659 /* parser/parser_prod.nit:309 */
1660 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0])!=NIT_NULL);
1661 if (UNTAG_Bool(REGB0)) {
1662 } else {
1663 nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser___parser_prod, 309);
1664 }
1665 fra.me.REG[3] = ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0]);
1666 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1667 if (UNTAG_Bool(REGB0)) {
1668 } else {
1669 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1670 REGB0 = REGB1;
1671 }
1672 if (UNTAG_Bool(REGB0)) {
1673 /* parser/parser_prod.nit:310 */
1674 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1675 if (UNTAG_Bool(REGB0)) {
1676 } else {
1677 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1678 if (UNTAG_Bool(REGB1)) {
1679 REGB1 = TAG_Bool(false);
1680 REGB0 = REGB1;
1681 } else {
1682 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1683 REGB0 = REGB1;
1684 }
1685 }
1686 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1687 if (UNTAG_Bool(REGB0)) {
1688 /* parser/parser_prod.nit:311 */
1689 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1690 if (UNTAG_Bool(REGB0)) {
1691 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 311);
1692 }
1693 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1694 /* parser/parser_prod.nit:312 */
1695 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast TKwend*/;
1696 if (UNTAG_Bool(REGB0)) {
1697 } else {
1698 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 312);
1699 }
1700 /* parser/parser_prod.nit:313 */
1701 ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0]) = fra.me.REG[2];
1702 } else {
1703 /* parser/parser_prod.nit:315 */
1704 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 315);
1705 }
1706 /* parser/parser_prod.nit:317 */
1707 goto label1;
1708 }
1709 label1: while(0);
1710 stack_frame_head = fra.me.prev;
1711 return;
1712 }
1713 void parser___parser_prod___ANoImport___visit_all(val_t p0, val_t p1){
1714 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1715 val_t REGB0;
1716 val_t tmp;
1717 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1718 fra.me.file = LOCATE_parser___parser_prod;
1719 fra.me.line = 321;
1720 fra.me.meth = LOCATE_parser___parser_prod___ANoImport___visit_all;
1721 fra.me.has_broke = 0;
1722 fra.me.REG_size = 3;
1723 fra.me.nitni_local_ref_head = NULL;
1724 fra.me.REG[0] = NIT_NULL;
1725 fra.me.REG[1] = NIT_NULL;
1726 fra.me.REG[2] = NIT_NULL;
1727 fra.me.REG[0] = p0;
1728 fra.me.REG[1] = p1;
1729 /* parser/parser_prod.nit:323 */
1730 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
1731 if (UNTAG_Bool(REGB0)) {
1732 } else {
1733 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 323);
1734 }
1735 fra.me.REG[2] = ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0]);
1736 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1737 /* parser/parser_prod.nit:324 */
1738 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
1739 if (UNTAG_Bool(REGB0)) {
1740 } else {
1741 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 324);
1742 }
1743 fra.me.REG[2] = ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0]);
1744 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1745 /* parser/parser_prod.nit:325 */
1746 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0])!=NIT_NULL);
1747 if (UNTAG_Bool(REGB0)) {
1748 } else {
1749 nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser___parser_prod, 325);
1750 }
1751 fra.me.REG[0] = ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0]);
1752 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1753 stack_frame_head = fra.me.prev;
1754 return;
1755 }
1756 void parser___parser_prod___APublicVisibility___empty_init(val_t p0, int* init_table){
1757 int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APublicVisibility].i;
1758 struct {struct stack_frame_t me;} fra;
1759 val_t tmp;
1760 if (init_table[itpos9]) return;
1761 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1762 fra.me.file = LOCATE_parser___parser_prod;
1763 fra.me.line = 329;
1764 fra.me.meth = LOCATE_parser___parser_prod___APublicVisibility___empty_init;
1765 fra.me.has_broke = 0;
1766 fra.me.REG_size = 1;
1767 fra.me.nitni_local_ref_head = NULL;
1768 fra.me.REG[0] = NIT_NULL;
1769 fra.me.REG[0] = p0;
1770 stack_frame_head = fra.me.prev;
1771 init_table[itpos9] = 1;
1772 return;
1773 }
1774 void parser___parser_prod___APublicVisibility___init_apublicvisibility(val_t p0, int* init_table){
1775 int itpos10 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APublicVisibility].i;
1776 struct {struct stack_frame_t me;} fra;
1777 val_t tmp;
1778 if (init_table[itpos10]) return;
1779 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1780 fra.me.file = LOCATE_parser___parser_prod;
1781 fra.me.line = 331;
1782 fra.me.meth = LOCATE_parser___parser_prod___APublicVisibility___init_apublicvisibility;
1783 fra.me.has_broke = 0;
1784 fra.me.REG_size = 1;
1785 fra.me.nitni_local_ref_head = NULL;
1786 fra.me.REG[0] = NIT_NULL;
1787 fra.me.REG[0] = p0;
1788 /* parser/parser_prod.nit:333 */
1789 CALL_parser___parser_prod___APublicVisibility___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
1790 stack_frame_head = fra.me.prev;
1791 init_table[itpos10] = 1;
1792 return;
1793 }
1794 void parser___parser_prod___APublicVisibility___replace_child(val_t p0, val_t p1, val_t p2){
1795 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1796 val_t tmp;
1797 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1798 fra.me.file = LOCATE_parser___parser_prod;
1799 fra.me.line = 336;
1800 fra.me.meth = LOCATE_parser___parser_prod___APublicVisibility___replace_child;
1801 fra.me.has_broke = 0;
1802 fra.me.REG_size = 3;
1803 fra.me.nitni_local_ref_head = NULL;
1804 fra.me.REG[0] = NIT_NULL;
1805 fra.me.REG[1] = NIT_NULL;
1806 fra.me.REG[2] = NIT_NULL;
1807 fra.me.REG[0] = p0;
1808 fra.me.REG[1] = p1;
1809 fra.me.REG[2] = p2;
1810 stack_frame_head = fra.me.prev;
1811 return;
1812 }
1813 void parser___parser_prod___APublicVisibility___visit_all(val_t p0, val_t p1){
1814 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1815 val_t tmp;
1816 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1817 fra.me.file = LOCATE_parser___parser_prod;
1818 fra.me.line = 340;
1819 fra.me.meth = LOCATE_parser___parser_prod___APublicVisibility___visit_all;
1820 fra.me.has_broke = 0;
1821 fra.me.REG_size = 2;
1822 fra.me.nitni_local_ref_head = NULL;
1823 fra.me.REG[0] = NIT_NULL;
1824 fra.me.REG[1] = NIT_NULL;
1825 fra.me.REG[0] = p0;
1826 fra.me.REG[1] = p1;
1827 stack_frame_head = fra.me.prev;
1828 return;
1829 }
1830 void parser___parser_prod___APrivateVisibility___empty_init(val_t p0, int* init_table){
1831 int itpos11 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APrivateVisibility].i;
1832 struct {struct stack_frame_t me;} fra;
1833 val_t tmp;
1834 if (init_table[itpos11]) return;
1835 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1836 fra.me.file = LOCATE_parser___parser_prod;
1837 fra.me.line = 345;
1838 fra.me.meth = LOCATE_parser___parser_prod___APrivateVisibility___empty_init;
1839 fra.me.has_broke = 0;
1840 fra.me.REG_size = 1;
1841 fra.me.nitni_local_ref_head = NULL;
1842 fra.me.REG[0] = NIT_NULL;
1843 fra.me.REG[0] = p0;
1844 stack_frame_head = fra.me.prev;
1845 init_table[itpos11] = 1;
1846 return;
1847 }
1848 void parser___parser_prod___APrivateVisibility___init_aprivatevisibility(val_t p0, val_t p1, int* init_table){
1849 int itpos12 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APrivateVisibility].i;
1850 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1851 val_t REGB0;
1852 val_t tmp;
1853 if (init_table[itpos12]) return;
1854 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1855 fra.me.file = LOCATE_parser___parser_prod;
1856 fra.me.line = 347;
1857 fra.me.meth = LOCATE_parser___parser_prod___APrivateVisibility___init_aprivatevisibility;
1858 fra.me.has_broke = 0;
1859 fra.me.REG_size = 3;
1860 fra.me.nitni_local_ref_head = NULL;
1861 fra.me.REG[0] = NIT_NULL;
1862 fra.me.REG[1] = NIT_NULL;
1863 fra.me.REG[2] = NIT_NULL;
1864 fra.me.REG[0] = p0;
1865 fra.me.REG[1] = p1;
1866 /* parser/parser_prod.nit:347 */
1867 fra.me.REG[2] = fra.me.REG[0];
1868 /* parser/parser_prod.nit:351 */
1869 CALL_parser___parser_prod___APrivateVisibility___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
1870 /* parser/parser_prod.nit:352 */
1871 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
1872 if (UNTAG_Bool(REGB0)) {
1873 } else {
1874 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 352);
1875 }
1876 ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[2]) = fra.me.REG[1];
1877 /* parser/parser_prod.nit:353 */
1878 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1879 if (UNTAG_Bool(REGB0)) {
1880 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 353);
1881 }
1882 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1883 stack_frame_head = fra.me.prev;
1884 init_table[itpos12] = 1;
1885 return;
1886 }
1887 void parser___parser_prod___APrivateVisibility___replace_child(val_t p0, val_t p1, val_t p2){
1888 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1889 val_t REGB0;
1890 val_t REGB1;
1891 val_t tmp;
1892 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1893 fra.me.file = LOCATE_parser___parser_prod;
1894 fra.me.line = 356;
1895 fra.me.meth = LOCATE_parser___parser_prod___APrivateVisibility___replace_child;
1896 fra.me.has_broke = 0;
1897 fra.me.REG_size = 4;
1898 fra.me.nitni_local_ref_head = NULL;
1899 fra.me.REG[0] = NIT_NULL;
1900 fra.me.REG[1] = NIT_NULL;
1901 fra.me.REG[2] = NIT_NULL;
1902 fra.me.REG[3] = NIT_NULL;
1903 fra.me.REG[0] = p0;
1904 fra.me.REG[1] = p1;
1905 fra.me.REG[2] = p2;
1906 /* parser/parser_prod.nit:358 */
1907 REGB0 = TAG_Bool(ATTR_parser___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___parser_prod, 358);
1911 }
1912 fra.me.REG[3] = ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0]);
1913 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1914 if (UNTAG_Bool(REGB0)) {
1915 } else {
1916 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1917 REGB0 = REGB1;
1918 }
1919 if (UNTAG_Bool(REGB0)) {
1920 /* parser/parser_prod.nit:359 */
1921 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1922 if (UNTAG_Bool(REGB0)) {
1923 } else {
1924 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1925 if (UNTAG_Bool(REGB1)) {
1926 REGB1 = TAG_Bool(false);
1927 REGB0 = REGB1;
1928 } else {
1929 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1930 REGB0 = REGB1;
1931 }
1932 }
1933 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1934 if (UNTAG_Bool(REGB0)) {
1935 /* parser/parser_prod.nit:360 */
1936 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1937 if (UNTAG_Bool(REGB0)) {
1938 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 360);
1939 }
1940 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1941 /* parser/parser_prod.nit:361 */
1942 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwprivate, ID_parser___parser_nodes___TKwprivate)) /*cast TKwprivate*/;
1943 if (UNTAG_Bool(REGB0)) {
1944 } else {
1945 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 361);
1946 }
1947 /* parser/parser_prod.nit:362 */
1948 ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0]) = fra.me.REG[2];
1949 } else {
1950 /* parser/parser_prod.nit:364 */
1951 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 364);
1952 }
1953 /* parser/parser_prod.nit:366 */
1954 goto label1;
1955 }
1956 label1: while(0);
1957 stack_frame_head = fra.me.prev;
1958 return;
1959 }
1960 void parser___parser_prod___APrivateVisibility___visit_all(val_t p0, val_t p1){
1961 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1962 val_t REGB0;
1963 val_t tmp;
1964 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1965 fra.me.file = LOCATE_parser___parser_prod;
1966 fra.me.line = 370;
1967 fra.me.meth = LOCATE_parser___parser_prod___APrivateVisibility___visit_all;
1968 fra.me.has_broke = 0;
1969 fra.me.REG_size = 2;
1970 fra.me.nitni_local_ref_head = NULL;
1971 fra.me.REG[0] = NIT_NULL;
1972 fra.me.REG[1] = NIT_NULL;
1973 fra.me.REG[0] = p0;
1974 fra.me.REG[1] = p1;
1975 /* parser/parser_prod.nit:372 */
1976 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0])!=NIT_NULL);
1977 if (UNTAG_Bool(REGB0)) {
1978 } else {
1979 nit_abort("Uninitialized attribute %s", "_n_kwprivate", LOCATE_parser___parser_prod, 372);
1980 }
1981 fra.me.REG[0] = ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0]);
1982 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1983 stack_frame_head = fra.me.prev;
1984 return;
1985 }
1986 void parser___parser_prod___AProtectedVisibility___empty_init(val_t p0, int* init_table){
1987 int itpos13 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AProtectedVisibility].i;
1988 struct {struct stack_frame_t me;} fra;
1989 val_t tmp;
1990 if (init_table[itpos13]) return;
1991 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1992 fra.me.file = LOCATE_parser___parser_prod;
1993 fra.me.line = 376;
1994 fra.me.meth = LOCATE_parser___parser_prod___AProtectedVisibility___empty_init;
1995 fra.me.has_broke = 0;
1996 fra.me.REG_size = 1;
1997 fra.me.nitni_local_ref_head = NULL;
1998 fra.me.REG[0] = NIT_NULL;
1999 fra.me.REG[0] = p0;
2000 stack_frame_head = fra.me.prev;
2001 init_table[itpos13] = 1;
2002 return;
2003 }
2004 void parser___parser_prod___AProtectedVisibility___init_aprotectedvisibility(val_t p0, val_t p1, int* init_table){
2005 int itpos14 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AProtectedVisibility].i;
2006 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2007 val_t REGB0;
2008 val_t tmp;
2009 if (init_table[itpos14]) return;
2010 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2011 fra.me.file = LOCATE_parser___parser_prod;
2012 fra.me.line = 378;
2013 fra.me.meth = LOCATE_parser___parser_prod___AProtectedVisibility___init_aprotectedvisibility;
2014 fra.me.has_broke = 0;
2015 fra.me.REG_size = 3;
2016 fra.me.nitni_local_ref_head = NULL;
2017 fra.me.REG[0] = NIT_NULL;
2018 fra.me.REG[1] = NIT_NULL;
2019 fra.me.REG[2] = NIT_NULL;
2020 fra.me.REG[0] = p0;
2021 fra.me.REG[1] = p1;
2022 /* parser/parser_prod.nit:378 */
2023 fra.me.REG[2] = fra.me.REG[0];
2024 /* parser/parser_prod.nit:382 */
2025 CALL_parser___parser_prod___AProtectedVisibility___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
2026 /* parser/parser_prod.nit:383 */
2027 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
2028 if (UNTAG_Bool(REGB0)) {
2029 } else {
2030 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 383);
2031 }
2032 ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[2]) = fra.me.REG[1];
2033 /* parser/parser_prod.nit:384 */
2034 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2035 if (UNTAG_Bool(REGB0)) {
2036 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 384);
2037 }
2038 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2039 stack_frame_head = fra.me.prev;
2040 init_table[itpos14] = 1;
2041 return;
2042 }
2043 void parser___parser_prod___AProtectedVisibility___replace_child(val_t p0, val_t p1, val_t p2){
2044 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2045 val_t REGB0;
2046 val_t REGB1;
2047 val_t tmp;
2048 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2049 fra.me.file = LOCATE_parser___parser_prod;
2050 fra.me.line = 387;
2051 fra.me.meth = LOCATE_parser___parser_prod___AProtectedVisibility___replace_child;
2052 fra.me.has_broke = 0;
2053 fra.me.REG_size = 4;
2054 fra.me.nitni_local_ref_head = NULL;
2055 fra.me.REG[0] = NIT_NULL;
2056 fra.me.REG[1] = NIT_NULL;
2057 fra.me.REG[2] = NIT_NULL;
2058 fra.me.REG[3] = NIT_NULL;
2059 fra.me.REG[0] = p0;
2060 fra.me.REG[1] = p1;
2061 fra.me.REG[2] = p2;
2062 /* parser/parser_prod.nit:389 */
2063 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0])!=NIT_NULL);
2064 if (UNTAG_Bool(REGB0)) {
2065 } else {
2066 nit_abort("Uninitialized attribute %s", "_n_kwprotected", LOCATE_parser___parser_prod, 389);
2067 }
2068 fra.me.REG[3] = ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0]);
2069 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2070 if (UNTAG_Bool(REGB0)) {
2071 } else {
2072 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2073 REGB0 = REGB1;
2074 }
2075 if (UNTAG_Bool(REGB0)) {
2076 /* parser/parser_prod.nit:390 */
2077 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2078 if (UNTAG_Bool(REGB0)) {
2079 } else {
2080 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2081 if (UNTAG_Bool(REGB1)) {
2082 REGB1 = TAG_Bool(false);
2083 REGB0 = REGB1;
2084 } else {
2085 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2086 REGB0 = REGB1;
2087 }
2088 }
2089 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2090 if (UNTAG_Bool(REGB0)) {
2091 /* parser/parser_prod.nit:391 */
2092 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2093 if (UNTAG_Bool(REGB0)) {
2094 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 391);
2095 }
2096 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2097 /* parser/parser_prod.nit:392 */
2098 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwprotected, ID_parser___parser_nodes___TKwprotected)) /*cast TKwprotected*/;
2099 if (UNTAG_Bool(REGB0)) {
2100 } else {
2101 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 392);
2102 }
2103 /* parser/parser_prod.nit:393 */
2104 ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0]) = fra.me.REG[2];
2105 } else {
2106 /* parser/parser_prod.nit:395 */
2107 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 395);
2108 }
2109 /* parser/parser_prod.nit:397 */
2110 goto label1;
2111 }
2112 label1: while(0);
2113 stack_frame_head = fra.me.prev;
2114 return;
2115 }
2116 void parser___parser_prod___AProtectedVisibility___visit_all(val_t p0, val_t p1){
2117 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2118 val_t REGB0;
2119 val_t tmp;
2120 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2121 fra.me.file = LOCATE_parser___parser_prod;
2122 fra.me.line = 401;
2123 fra.me.meth = LOCATE_parser___parser_prod___AProtectedVisibility___visit_all;
2124 fra.me.has_broke = 0;
2125 fra.me.REG_size = 2;
2126 fra.me.nitni_local_ref_head = NULL;
2127 fra.me.REG[0] = NIT_NULL;
2128 fra.me.REG[1] = NIT_NULL;
2129 fra.me.REG[0] = p0;
2130 fra.me.REG[1] = p1;
2131 /* parser/parser_prod.nit:403 */
2132 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0])!=NIT_NULL);
2133 if (UNTAG_Bool(REGB0)) {
2134 } else {
2135 nit_abort("Uninitialized attribute %s", "_n_kwprotected", LOCATE_parser___parser_prod, 403);
2136 }
2137 fra.me.REG[0] = ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0]);
2138 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2139 stack_frame_head = fra.me.prev;
2140 return;
2141 }
2142 void parser___parser_prod___AIntrudeVisibility___empty_init(val_t p0, int* init_table){
2143 int itpos15 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIntrudeVisibility].i;
2144 struct {struct stack_frame_t me;} fra;
2145 val_t tmp;
2146 if (init_table[itpos15]) return;
2147 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2148 fra.me.file = LOCATE_parser___parser_prod;
2149 fra.me.line = 407;
2150 fra.me.meth = LOCATE_parser___parser_prod___AIntrudeVisibility___empty_init;
2151 fra.me.has_broke = 0;
2152 fra.me.REG_size = 1;
2153 fra.me.nitni_local_ref_head = NULL;
2154 fra.me.REG[0] = NIT_NULL;
2155 fra.me.REG[0] = p0;
2156 stack_frame_head = fra.me.prev;
2157 init_table[itpos15] = 1;
2158 return;
2159 }
2160 void parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t p0, val_t p1, int* init_table){
2161 int itpos16 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIntrudeVisibility].i;
2162 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2163 val_t REGB0;
2164 val_t tmp;
2165 if (init_table[itpos16]) return;
2166 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2167 fra.me.file = LOCATE_parser___parser_prod;
2168 fra.me.line = 409;
2169 fra.me.meth = LOCATE_parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility;
2170 fra.me.has_broke = 0;
2171 fra.me.REG_size = 3;
2172 fra.me.nitni_local_ref_head = NULL;
2173 fra.me.REG[0] = NIT_NULL;
2174 fra.me.REG[1] = NIT_NULL;
2175 fra.me.REG[2] = NIT_NULL;
2176 fra.me.REG[0] = p0;
2177 fra.me.REG[1] = p1;
2178 /* parser/parser_prod.nit:409 */
2179 fra.me.REG[2] = fra.me.REG[0];
2180 /* parser/parser_prod.nit:413 */
2181 CALL_parser___parser_prod___AIntrudeVisibility___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
2182 /* parser/parser_prod.nit:414 */
2183 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
2184 if (UNTAG_Bool(REGB0)) {
2185 } else {
2186 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 414);
2187 }
2188 ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[2]) = fra.me.REG[1];
2189 /* parser/parser_prod.nit:415 */
2190 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2191 if (UNTAG_Bool(REGB0)) {
2192 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 415);
2193 }
2194 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2195 stack_frame_head = fra.me.prev;
2196 init_table[itpos16] = 1;
2197 return;
2198 }
2199 void parser___parser_prod___AIntrudeVisibility___replace_child(val_t p0, val_t p1, val_t p2){
2200 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2201 val_t REGB0;
2202 val_t REGB1;
2203 val_t tmp;
2204 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2205 fra.me.file = LOCATE_parser___parser_prod;
2206 fra.me.line = 418;
2207 fra.me.meth = LOCATE_parser___parser_prod___AIntrudeVisibility___replace_child;
2208 fra.me.has_broke = 0;
2209 fra.me.REG_size = 4;
2210 fra.me.nitni_local_ref_head = NULL;
2211 fra.me.REG[0] = NIT_NULL;
2212 fra.me.REG[1] = NIT_NULL;
2213 fra.me.REG[2] = NIT_NULL;
2214 fra.me.REG[3] = NIT_NULL;
2215 fra.me.REG[0] = p0;
2216 fra.me.REG[1] = p1;
2217 fra.me.REG[2] = p2;
2218 /* parser/parser_prod.nit:420 */
2219 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0])!=NIT_NULL);
2220 if (UNTAG_Bool(REGB0)) {
2221 } else {
2222 nit_abort("Uninitialized attribute %s", "_n_kwintrude", LOCATE_parser___parser_prod, 420);
2223 }
2224 fra.me.REG[3] = ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0]);
2225 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2226 if (UNTAG_Bool(REGB0)) {
2227 } else {
2228 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2229 REGB0 = REGB1;
2230 }
2231 if (UNTAG_Bool(REGB0)) {
2232 /* parser/parser_prod.nit:421 */
2233 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2234 if (UNTAG_Bool(REGB0)) {
2235 } else {
2236 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2237 if (UNTAG_Bool(REGB1)) {
2238 REGB1 = TAG_Bool(false);
2239 REGB0 = REGB1;
2240 } else {
2241 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2242 REGB0 = REGB1;
2243 }
2244 }
2245 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2246 if (UNTAG_Bool(REGB0)) {
2247 /* parser/parser_prod.nit:422 */
2248 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2249 if (UNTAG_Bool(REGB0)) {
2250 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 422);
2251 }
2252 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2253 /* parser/parser_prod.nit:423 */
2254 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwintrude, ID_parser___parser_nodes___TKwintrude)) /*cast TKwintrude*/;
2255 if (UNTAG_Bool(REGB0)) {
2256 } else {
2257 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 423);
2258 }
2259 /* parser/parser_prod.nit:424 */
2260 ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0]) = fra.me.REG[2];
2261 } else {
2262 /* parser/parser_prod.nit:426 */
2263 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 426);
2264 }
2265 /* parser/parser_prod.nit:428 */
2266 goto label1;
2267 }
2268 label1: while(0);
2269 stack_frame_head = fra.me.prev;
2270 return;
2271 }
2272 void parser___parser_prod___AIntrudeVisibility___visit_all(val_t p0, val_t p1){
2273 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2274 val_t REGB0;
2275 val_t tmp;
2276 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2277 fra.me.file = LOCATE_parser___parser_prod;
2278 fra.me.line = 432;
2279 fra.me.meth = LOCATE_parser___parser_prod___AIntrudeVisibility___visit_all;
2280 fra.me.has_broke = 0;
2281 fra.me.REG_size = 2;
2282 fra.me.nitni_local_ref_head = NULL;
2283 fra.me.REG[0] = NIT_NULL;
2284 fra.me.REG[1] = NIT_NULL;
2285 fra.me.REG[0] = p0;
2286 fra.me.REG[1] = p1;
2287 /* parser/parser_prod.nit:434 */
2288 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0])!=NIT_NULL);
2289 if (UNTAG_Bool(REGB0)) {
2290 } else {
2291 nit_abort("Uninitialized attribute %s", "_n_kwintrude", LOCATE_parser___parser_prod, 434);
2292 }
2293 fra.me.REG[0] = ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0]);
2294 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2295 stack_frame_head = fra.me.prev;
2296 return;
2297 }
2298 void parser___parser_prod___AStdClassdef___empty_init(val_t p0, int* init_table){
2299 int itpos17 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStdClassdef].i;
2300 struct {struct stack_frame_t me;} fra;
2301 val_t tmp;
2302 if (init_table[itpos17]) return;
2303 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2304 fra.me.file = LOCATE_parser___parser_prod;
2305 fra.me.line = 438;
2306 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___empty_init;
2307 fra.me.has_broke = 0;
2308 fra.me.REG_size = 1;
2309 fra.me.nitni_local_ref_head = NULL;
2310 fra.me.REG[0] = NIT_NULL;
2311 fra.me.REG[0] = p0;
2312 stack_frame_head = fra.me.prev;
2313 init_table[itpos17] = 1;
2314 return;
2315 }
2316 void parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, val_t p9, int* init_table){
2317 int itpos18 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStdClassdef].i;
2318 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
2319 val_t REGB0;
2320 val_t REGB1;
2321 val_t tmp;
2322 if (init_table[itpos18]) return;
2323 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2324 fra.me.file = LOCATE_parser___parser_prod;
2325 fra.me.line = 440;
2326 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef;
2327 fra.me.has_broke = 0;
2328 fra.me.REG_size = 11;
2329 fra.me.nitni_local_ref_head = NULL;
2330 fra.me.REG[0] = NIT_NULL;
2331 fra.me.REG[1] = NIT_NULL;
2332 fra.me.REG[2] = NIT_NULL;
2333 fra.me.REG[3] = NIT_NULL;
2334 fra.me.REG[4] = NIT_NULL;
2335 fra.me.REG[5] = NIT_NULL;
2336 fra.me.REG[6] = NIT_NULL;
2337 fra.me.REG[7] = NIT_NULL;
2338 fra.me.REG[8] = NIT_NULL;
2339 fra.me.REG[9] = NIT_NULL;
2340 fra.me.REG[10] = NIT_NULL;
2341 fra.me.REG[0] = p0;
2342 fra.me.REG[1] = p1;
2343 fra.me.REG[2] = p2;
2344 fra.me.REG[3] = p3;
2345 fra.me.REG[4] = p4;
2346 fra.me.REG[5] = p5;
2347 fra.me.REG[6] = p6;
2348 fra.me.REG[7] = p7;
2349 fra.me.REG[8] = p8;
2350 fra.me.REG[9] = p9;
2351 /* parser/parser_prod.nit:440 */
2352 fra.me.REG[10] = fra.me.REG[0];
2353 /* parser/parser_prod.nit:452 */
2354 CALL_parser___parser_prod___AStdClassdef___empty_init(fra.me.REG[10])(fra.me.REG[10], init_table);
2355 /* parser/parser_prod.nit:453 */
2356 ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[10]) = fra.me.REG[1];
2357 /* parser/parser_prod.nit:454 */
2358 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2359 if (UNTAG_Bool(REGB0)) {
2360 } else {
2361 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2362 if (UNTAG_Bool(REGB1)) {
2363 REGB1 = TAG_Bool(false);
2364 REGB0 = REGB1;
2365 } else {
2366 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2367 REGB0 = REGB1;
2368 }
2369 }
2370 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2371 if (UNTAG_Bool(REGB0)) {
2372 /* parser/parser_prod.nit:455 */
2373 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2374 if (UNTAG_Bool(REGB0)) {
2375 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 455);
2376 }
2377 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[10]);
2378 }
2379 /* parser/parser_prod.nit:457 */
2380 ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[10]) = fra.me.REG[2];
2381 /* parser/parser_prod.nit:458 */
2382 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2383 if (UNTAG_Bool(REGB0)) {
2384 } else {
2385 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2386 if (UNTAG_Bool(REGB1)) {
2387 REGB1 = TAG_Bool(false);
2388 REGB0 = REGB1;
2389 } else {
2390 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2391 REGB0 = REGB1;
2392 }
2393 }
2394 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2395 if (UNTAG_Bool(REGB0)) {
2396 /* parser/parser_prod.nit:459 */
2397 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2398 if (UNTAG_Bool(REGB0)) {
2399 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 459);
2400 }
2401 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[10]);
2402 }
2403 /* parser/parser_prod.nit:461 */
2404 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
2405 if (UNTAG_Bool(REGB0)) {
2406 } else {
2407 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 461);
2408 }
2409 ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[10]) = fra.me.REG[3];
2410 /* parser/parser_prod.nit:462 */
2411 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2412 if (UNTAG_Bool(REGB0)) {
2413 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 462);
2414 }
2415 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[10]);
2416 /* parser/parser_prod.nit:463 */
2417 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
2418 if (UNTAG_Bool(REGB0)) {
2419 } else {
2420 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 463);
2421 }
2422 ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[10]) = fra.me.REG[4];
2423 /* parser/parser_prod.nit:464 */
2424 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2425 if (UNTAG_Bool(REGB0)) {
2426 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 464);
2427 }
2428 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[10]);
2429 /* parser/parser_prod.nit:465 */
2430 ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[10]) = fra.me.REG[5];
2431 /* parser/parser_prod.nit:466 */
2432 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2433 if (UNTAG_Bool(REGB0)) {
2434 } else {
2435 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2436 if (UNTAG_Bool(REGB1)) {
2437 REGB1 = TAG_Bool(false);
2438 REGB0 = REGB1;
2439 } else {
2440 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
2441 REGB0 = REGB1;
2442 }
2443 }
2444 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2445 if (UNTAG_Bool(REGB0)) {
2446 /* parser/parser_prod.nit:467 */
2447 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2448 if (UNTAG_Bool(REGB0)) {
2449 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 467);
2450 }
2451 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[10]);
2452 }
2453 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[6])(fra.me.REG[6], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___init_astdclassdef_1));
2454 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[7])(fra.me.REG[7], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___init_astdclassdef_2));
2455 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[8])(fra.me.REG[8], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___init_astdclassdef_3));
2456 /* parser/parser_prod.nit:484 */
2457 REGB0 = TAG_Bool(fra.me.REG[9]!=NIT_NULL);
2458 if (UNTAG_Bool(REGB0)) {
2459 } else {
2460 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 484);
2461 }
2462 ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[10]) = fra.me.REG[9];
2463 /* parser/parser_prod.nit:485 */
2464 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
2465 if (UNTAG_Bool(REGB0)) {
2466 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 485);
2467 }
2468 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
2469 stack_frame_head = fra.me.prev;
2470 init_table[itpos18] = 1;
2471 return;
2472 }
2473 void OC_parser___parser_prod___AStdClassdef___init_astdclassdef_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
2474 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2475 val_t REGB0;
2476 fun_t CREG[1];
2477 val_t tmp;
2478 /* parser/parser_prod.nit:469 */
2479 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2480 fra.me.file = LOCATE_parser___parser_prod;
2481 fra.me.line = 0;
2482 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef;
2483 fra.me.has_broke = 0;
2484 fra.me.REG_size = 2;
2485 fra.me.nitni_local_ref_head = NULL;
2486 fra.me.REG[0] = NIT_NULL;
2487 fra.me.REG[1] = NIT_NULL;
2488 fra.me.closure_ctx = closctx_param;
2489 fra.me.closure_funs = CREG;
2490 fra.me.REG[0] = p0;
2491 CREG[0] = clos_fun0;
2492 /* parser/parser_prod.nit:470 */
2493 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AFormaldef, ID_parser___parser_nodes___AFormaldef)) /*cast AFormaldef*/;
2494 if (UNTAG_Bool(REGB0)) {
2495 } else {
2496 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 470);
2497 }
2498 /* parser/parser_prod.nit:471 */
2499 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(closctx->REG[10])!=NIT_NULL);
2500 if (UNTAG_Bool(REGB0)) {
2501 } else {
2502 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 471);
2503 }
2504 fra.me.REG[1] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(closctx->REG[10]);
2505 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2506 /* parser/parser_prod.nit:472 */
2507 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[10]);
2508 stack_frame_head = fra.me.prev;
2509 return;
2510 }
2511 void OC_parser___parser_prod___AStdClassdef___init_astdclassdef_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
2512 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2513 val_t REGB0;
2514 fun_t CREG[1];
2515 val_t tmp;
2516 /* parser/parser_prod.nit:474 */
2517 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2518 fra.me.file = LOCATE_parser___parser_prod;
2519 fra.me.line = 0;
2520 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef;
2521 fra.me.has_broke = 0;
2522 fra.me.REG_size = 2;
2523 fra.me.nitni_local_ref_head = NULL;
2524 fra.me.REG[0] = NIT_NULL;
2525 fra.me.REG[1] = NIT_NULL;
2526 fra.me.closure_ctx = closctx_param;
2527 fra.me.closure_funs = CREG;
2528 fra.me.REG[0] = p0;
2529 CREG[0] = clos_fun0;
2530 /* parser/parser_prod.nit:475 */
2531 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___ASuperclass, ID_parser___parser_nodes___ASuperclass)) /*cast ASuperclass*/;
2532 if (UNTAG_Bool(REGB0)) {
2533 } else {
2534 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 475);
2535 }
2536 /* parser/parser_prod.nit:476 */
2537 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(closctx->REG[10])!=NIT_NULL);
2538 if (UNTAG_Bool(REGB0)) {
2539 } else {
2540 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 476);
2541 }
2542 fra.me.REG[1] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(closctx->REG[10]);
2543 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2544 /* parser/parser_prod.nit:477 */
2545 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[10]);
2546 stack_frame_head = fra.me.prev;
2547 return;
2548 }
2549 void OC_parser___parser_prod___AStdClassdef___init_astdclassdef_3(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
2550 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2551 val_t REGB0;
2552 fun_t CREG[1];
2553 val_t tmp;
2554 /* parser/parser_prod.nit:479 */
2555 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2556 fra.me.file = LOCATE_parser___parser_prod;
2557 fra.me.line = 0;
2558 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef;
2559 fra.me.has_broke = 0;
2560 fra.me.REG_size = 2;
2561 fra.me.nitni_local_ref_head = NULL;
2562 fra.me.REG[0] = NIT_NULL;
2563 fra.me.REG[1] = NIT_NULL;
2564 fra.me.closure_ctx = closctx_param;
2565 fra.me.closure_funs = CREG;
2566 fra.me.REG[0] = p0;
2567 CREG[0] = clos_fun0;
2568 /* parser/parser_prod.nit:480 */
2569 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
2570 if (UNTAG_Bool(REGB0)) {
2571 } else {
2572 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 480);
2573 }
2574 /* parser/parser_prod.nit:481 */
2575 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[10])!=NIT_NULL);
2576 if (UNTAG_Bool(REGB0)) {
2577 } else {
2578 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 481);
2579 }
2580 fra.me.REG[1] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[10]);
2581 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2582 /* parser/parser_prod.nit:482 */
2583 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[10]);
2584 stack_frame_head = fra.me.prev;
2585 return;
2586 }
2587 void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val_t p2){
2588 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2589 val_t REGB0;
2590 val_t REGB1;
2591 val_t REGB2;
2592 val_t REGB3;
2593 val_t REGB4;
2594 val_t tmp;
2595 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2596 fra.me.file = LOCATE_parser___parser_prod;
2597 fra.me.line = 488;
2598 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___replace_child;
2599 fra.me.has_broke = 0;
2600 fra.me.REG_size = 4;
2601 fra.me.nitni_local_ref_head = NULL;
2602 fra.me.REG[0] = NIT_NULL;
2603 fra.me.REG[1] = NIT_NULL;
2604 fra.me.REG[2] = NIT_NULL;
2605 fra.me.REG[3] = NIT_NULL;
2606 fra.me.REG[0] = p0;
2607 fra.me.REG[1] = p1;
2608 fra.me.REG[2] = p2;
2609 /* parser/parser_prod.nit:490 */
2610 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]);
2611 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2612 if (UNTAG_Bool(REGB0)) {
2613 } else {
2614 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2615 if (UNTAG_Bool(REGB1)) {
2616 REGB1 = TAG_Bool(false);
2617 REGB0 = REGB1;
2618 } else {
2619 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2620 REGB0 = REGB1;
2621 }
2622 }
2623 if (UNTAG_Bool(REGB0)) {
2624 /* parser/parser_prod.nit:491 */
2625 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2626 if (UNTAG_Bool(REGB0)) {
2627 } else {
2628 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2629 if (UNTAG_Bool(REGB1)) {
2630 REGB1 = TAG_Bool(false);
2631 REGB0 = REGB1;
2632 } else {
2633 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2634 REGB0 = REGB1;
2635 }
2636 }
2637 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2638 if (UNTAG_Bool(REGB0)) {
2639 /* parser/parser_prod.nit:492 */
2640 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2641 if (UNTAG_Bool(REGB0)) {
2642 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 492);
2643 }
2644 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2645 /* parser/parser_prod.nit:493 */
2646 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
2647 if (UNTAG_Bool(REGB0)) {
2648 } else {
2649 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 493);
2650 }
2651 /* parser/parser_prod.nit:494 */
2652 ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
2653 } else {
2654 /* parser/parser_prod.nit:496 */
2655 ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]) = NIT_NULL;
2656 }
2657 /* parser/parser_prod.nit:498 */
2658 goto label1;
2659 }
2660 /* parser/parser_prod.nit:500 */
2661 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]);
2662 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2663 if (UNTAG_Bool(REGB0)) {
2664 } else {
2665 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2666 if (UNTAG_Bool(REGB1)) {
2667 REGB1 = TAG_Bool(false);
2668 REGB0 = REGB1;
2669 } else {
2670 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2671 REGB0 = REGB1;
2672 }
2673 }
2674 if (UNTAG_Bool(REGB0)) {
2675 /* parser/parser_prod.nit:501 */
2676 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2677 if (UNTAG_Bool(REGB0)) {
2678 } else {
2679 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2680 if (UNTAG_Bool(REGB1)) {
2681 REGB1 = TAG_Bool(false);
2682 REGB0 = REGB1;
2683 } else {
2684 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2685 REGB0 = REGB1;
2686 }
2687 }
2688 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2689 if (UNTAG_Bool(REGB0)) {
2690 /* parser/parser_prod.nit:502 */
2691 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2692 if (UNTAG_Bool(REGB0)) {
2693 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 502);
2694 }
2695 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2696 /* parser/parser_prod.nit:503 */
2697 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
2698 if (UNTAG_Bool(REGB0)) {
2699 } else {
2700 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 503);
2701 }
2702 /* parser/parser_prod.nit:504 */
2703 ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
2704 } else {
2705 /* parser/parser_prod.nit:506 */
2706 ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
2707 }
2708 /* parser/parser_prod.nit:508 */
2709 goto label1;
2710 }
2711 /* parser/parser_prod.nit:510 */
2712 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
2713 if (UNTAG_Bool(REGB0)) {
2714 } else {
2715 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 510);
2716 }
2717 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0]);
2718 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2719 if (UNTAG_Bool(REGB0)) {
2720 } else {
2721 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2722 REGB0 = REGB1;
2723 }
2724 if (UNTAG_Bool(REGB0)) {
2725 /* parser/parser_prod.nit:511 */
2726 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2727 if (UNTAG_Bool(REGB0)) {
2728 } else {
2729 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2730 if (UNTAG_Bool(REGB1)) {
2731 REGB1 = TAG_Bool(false);
2732 REGB0 = REGB1;
2733 } else {
2734 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2735 REGB0 = REGB1;
2736 }
2737 }
2738 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2739 if (UNTAG_Bool(REGB0)) {
2740 /* parser/parser_prod.nit:512 */
2741 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2742 if (UNTAG_Bool(REGB0)) {
2743 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 512);
2744 }
2745 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2746 /* parser/parser_prod.nit:513 */
2747 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
2748 if (UNTAG_Bool(REGB0)) {
2749 } else {
2750 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 513);
2751 }
2752 /* parser/parser_prod.nit:514 */
2753 ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
2754 } else {
2755 /* parser/parser_prod.nit:516 */
2756 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 516);
2757 }
2758 /* parser/parser_prod.nit:518 */
2759 goto label1;
2760 }
2761 /* parser/parser_prod.nit:520 */
2762 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0])!=NIT_NULL);
2763 if (UNTAG_Bool(REGB0)) {
2764 } else {
2765 nit_abort("Uninitialized attribute %s", "_n_classkind", LOCATE_parser___parser_prod, 520);
2766 }
2767 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0]);
2768 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2769 if (UNTAG_Bool(REGB0)) {
2770 } else {
2771 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2772 REGB0 = REGB1;
2773 }
2774 if (UNTAG_Bool(REGB0)) {
2775 /* parser/parser_prod.nit:521 */
2776 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2777 if (UNTAG_Bool(REGB0)) {
2778 } else {
2779 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2780 if (UNTAG_Bool(REGB1)) {
2781 REGB1 = TAG_Bool(false);
2782 REGB0 = REGB1;
2783 } else {
2784 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2785 REGB0 = REGB1;
2786 }
2787 }
2788 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2789 if (UNTAG_Bool(REGB0)) {
2790 /* parser/parser_prod.nit:522 */
2791 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2792 if (UNTAG_Bool(REGB0)) {
2793 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 522);
2794 }
2795 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2796 /* parser/parser_prod.nit:523 */
2797 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast AClasskind*/;
2798 if (UNTAG_Bool(REGB0)) {
2799 } else {
2800 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 523);
2801 }
2802 /* parser/parser_prod.nit:524 */
2803 ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0]) = fra.me.REG[2];
2804 } else {
2805 /* parser/parser_prod.nit:526 */
2806 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 526);
2807 }
2808 /* parser/parser_prod.nit:528 */
2809 goto label1;
2810 }
2811 /* parser/parser_prod.nit:530 */
2812 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[0]);
2813 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2814 if (UNTAG_Bool(REGB0)) {
2815 } else {
2816 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2817 if (UNTAG_Bool(REGB1)) {
2818 REGB1 = TAG_Bool(false);
2819 REGB0 = REGB1;
2820 } else {
2821 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2822 REGB0 = REGB1;
2823 }
2824 }
2825 if (UNTAG_Bool(REGB0)) {
2826 /* parser/parser_prod.nit:531 */
2827 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2828 if (UNTAG_Bool(REGB0)) {
2829 } else {
2830 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2831 if (UNTAG_Bool(REGB1)) {
2832 REGB1 = TAG_Bool(false);
2833 REGB0 = REGB1;
2834 } else {
2835 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2836 REGB0 = REGB1;
2837 }
2838 }
2839 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2840 if (UNTAG_Bool(REGB0)) {
2841 /* parser/parser_prod.nit:532 */
2842 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2843 if (UNTAG_Bool(REGB0)) {
2844 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 532);
2845 }
2846 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2847 /* parser/parser_prod.nit:533 */
2848 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
2849 if (UNTAG_Bool(REGB0)) {
2850 } else {
2851 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 533);
2852 }
2853 /* parser/parser_prod.nit:534 */
2854 ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
2855 } else {
2856 /* parser/parser_prod.nit:536 */
2857 ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[0]) = NIT_NULL;
2858 }
2859 /* parser/parser_prod.nit:538 */
2860 goto label1;
2861 }
2862 /* parser/parser_prod.nit:540 */
2863 REGB0 = TAG_Int(0);
2864 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
2865 if (UNTAG_Bool(REGB1)) {
2866 } else {
2867 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 540);
2868 }
2869 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
2870 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
2871 /* ../lib/standard/kernel.nit:352 */
2872 while(1) {
2873 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2874 if (UNTAG_Bool(REGB2)) {
2875 } else {
2876 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2877 }
2878 /* ../lib/standard/kernel.nit:232 */
2879 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2880 /* ../lib/standard/kernel.nit:352 */
2881 if (UNTAG_Bool(REGB2)) {
2882 /* parser/parser_prod.nit:540 */
2883 REGB2 = REGB0;
2884 /* parser/parser_prod.nit:541 */
2885 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
2886 if (UNTAG_Bool(REGB3)) {
2887 } else {
2888 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 541);
2889 }
2890 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
2891 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
2892 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2893 if (UNTAG_Bool(REGB3)) {
2894 } else {
2895 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2896 if (UNTAG_Bool(REGB4)) {
2897 REGB4 = TAG_Bool(false);
2898 REGB3 = REGB4;
2899 } else {
2900 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2901 REGB3 = REGB4;
2902 }
2903 }
2904 if (UNTAG_Bool(REGB3)) {
2905 /* parser/parser_prod.nit:542 */
2906 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2907 if (UNTAG_Bool(REGB3)) {
2908 } else {
2909 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2910 if (UNTAG_Bool(REGB4)) {
2911 REGB4 = TAG_Bool(false);
2912 REGB3 = REGB4;
2913 } else {
2914 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2915 REGB3 = REGB4;
2916 }
2917 }
2918 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
2919 if (UNTAG_Bool(REGB3)) {
2920 /* parser/parser_prod.nit:543 */
2921 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AFormaldef, ID_parser___parser_nodes___AFormaldef)) /*cast AFormaldef*/;
2922 if (UNTAG_Bool(REGB3)) {
2923 } else {
2924 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 543);
2925 }
2926 /* parser/parser_prod.nit:544 */
2927 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
2928 if (UNTAG_Bool(REGB3)) {
2929 } else {
2930 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 544);
2931 }
2932 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
2933 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
2934 /* parser/parser_prod.nit:545 */
2935 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2936 if (UNTAG_Bool(REGB3)) {
2937 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 545);
2938 }
2939 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2940 } else {
2941 /* parser/parser_prod.nit:547 */
2942 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
2943 if (UNTAG_Bool(REGB3)) {
2944 } else {
2945 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 547);
2946 }
2947 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
2948 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
2949 }
2950 /* parser/parser_prod.nit:549 */
2951 goto label1;
2952 }
2953 /* ../lib/standard/kernel.nit:354 */
2954 REGB2 = TAG_Int(1);
2955 /* ../lib/standard/kernel.nit:235 */
2956 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2957 /* ../lib/standard/kernel.nit:354 */
2958 REGB0 = REGB2;
2959 } else {
2960 /* ../lib/standard/kernel.nit:352 */
2961 goto label2;
2962 }
2963 }
2964 label2: while(0);
2965 /* parser/parser_prod.nit:552 */
2966 REGB0 = TAG_Int(0);
2967 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
2968 if (UNTAG_Bool(REGB1)) {
2969 } else {
2970 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 552);
2971 }
2972 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
2973 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
2974 /* ../lib/standard/kernel.nit:352 */
2975 while(1) {
2976 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2977 if (UNTAG_Bool(REGB2)) {
2978 } else {
2979 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2980 }
2981 /* ../lib/standard/kernel.nit:232 */
2982 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2983 /* ../lib/standard/kernel.nit:352 */
2984 if (UNTAG_Bool(REGB2)) {
2985 /* parser/parser_prod.nit:552 */
2986 REGB2 = REGB0;
2987 /* parser/parser_prod.nit:553 */
2988 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
2989 if (UNTAG_Bool(REGB3)) {
2990 } else {
2991 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 553);
2992 }
2993 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
2994 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
2995 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2996 if (UNTAG_Bool(REGB3)) {
2997 } else {
2998 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2999 if (UNTAG_Bool(REGB4)) {
3000 REGB4 = TAG_Bool(false);
3001 REGB3 = REGB4;
3002 } else {
3003 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3004 REGB3 = REGB4;
3005 }
3006 }
3007 if (UNTAG_Bool(REGB3)) {
3008 /* parser/parser_prod.nit:554 */
3009 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3010 if (UNTAG_Bool(REGB3)) {
3011 } else {
3012 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3013 if (UNTAG_Bool(REGB4)) {
3014 REGB4 = TAG_Bool(false);
3015 REGB3 = REGB4;
3016 } else {
3017 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3018 REGB3 = REGB4;
3019 }
3020 }
3021 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3022 if (UNTAG_Bool(REGB3)) {
3023 /* parser/parser_prod.nit:555 */
3024 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASuperclass, ID_parser___parser_nodes___ASuperclass)) /*cast ASuperclass*/;
3025 if (UNTAG_Bool(REGB3)) {
3026 } else {
3027 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 555);
3028 }
3029 /* parser/parser_prod.nit:556 */
3030 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
3031 if (UNTAG_Bool(REGB3)) {
3032 } else {
3033 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 556);
3034 }
3035 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
3036 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3037 /* parser/parser_prod.nit:557 */
3038 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3039 if (UNTAG_Bool(REGB3)) {
3040 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 557);
3041 }
3042 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3043 } else {
3044 /* parser/parser_prod.nit:559 */
3045 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
3046 if (UNTAG_Bool(REGB3)) {
3047 } else {
3048 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 559);
3049 }
3050 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
3051 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3052 }
3053 /* parser/parser_prod.nit:561 */
3054 goto label1;
3055 }
3056 /* ../lib/standard/kernel.nit:354 */
3057 REGB2 = TAG_Int(1);
3058 /* ../lib/standard/kernel.nit:235 */
3059 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3060 /* ../lib/standard/kernel.nit:354 */
3061 REGB0 = REGB2;
3062 } else {
3063 /* ../lib/standard/kernel.nit:352 */
3064 goto label3;
3065 }
3066 }
3067 label3: while(0);
3068 /* parser/parser_prod.nit:564 */
3069 REGB0 = TAG_Int(0);
3070 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3071 if (UNTAG_Bool(REGB1)) {
3072 } else {
3073 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 564);
3074 }
3075 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3076 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
3077 /* ../lib/standard/kernel.nit:352 */
3078 while(1) {
3079 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3080 if (UNTAG_Bool(REGB2)) {
3081 } else {
3082 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3083 }
3084 /* ../lib/standard/kernel.nit:232 */
3085 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3086 /* ../lib/standard/kernel.nit:352 */
3087 if (UNTAG_Bool(REGB2)) {
3088 /* parser/parser_prod.nit:564 */
3089 REGB2 = REGB0;
3090 /* parser/parser_prod.nit:565 */
3091 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3092 if (UNTAG_Bool(REGB3)) {
3093 } else {
3094 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 565);
3095 }
3096 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3097 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
3098 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3099 if (UNTAG_Bool(REGB3)) {
3100 } else {
3101 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3102 if (UNTAG_Bool(REGB4)) {
3103 REGB4 = TAG_Bool(false);
3104 REGB3 = REGB4;
3105 } else {
3106 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3107 REGB3 = REGB4;
3108 }
3109 }
3110 if (UNTAG_Bool(REGB3)) {
3111 /* parser/parser_prod.nit:566 */
3112 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3113 if (UNTAG_Bool(REGB3)) {
3114 } else {
3115 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3116 if (UNTAG_Bool(REGB4)) {
3117 REGB4 = TAG_Bool(false);
3118 REGB3 = REGB4;
3119 } else {
3120 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3121 REGB3 = REGB4;
3122 }
3123 }
3124 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3125 if (UNTAG_Bool(REGB3)) {
3126 /* parser/parser_prod.nit:567 */
3127 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
3128 if (UNTAG_Bool(REGB3)) {
3129 } else {
3130 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 567);
3131 }
3132 /* parser/parser_prod.nit:568 */
3133 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3134 if (UNTAG_Bool(REGB3)) {
3135 } else {
3136 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 568);
3137 }
3138 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3139 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3140 /* parser/parser_prod.nit:569 */
3141 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3142 if (UNTAG_Bool(REGB3)) {
3143 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 569);
3144 }
3145 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3146 } else {
3147 /* parser/parser_prod.nit:571 */
3148 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3149 if (UNTAG_Bool(REGB3)) {
3150 } else {
3151 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 571);
3152 }
3153 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3154 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3155 }
3156 /* parser/parser_prod.nit:573 */
3157 goto label1;
3158 }
3159 /* ../lib/standard/kernel.nit:354 */
3160 REGB2 = TAG_Int(1);
3161 /* ../lib/standard/kernel.nit:235 */
3162 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3163 /* ../lib/standard/kernel.nit:354 */
3164 REGB0 = REGB2;
3165 } else {
3166 /* ../lib/standard/kernel.nit:352 */
3167 goto label4;
3168 }
3169 }
3170 label4: while(0);
3171 /* parser/parser_prod.nit:576 */
3172 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[0])!=NIT_NULL);
3173 if (UNTAG_Bool(REGB0)) {
3174 } else {
3175 nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser___parser_prod, 576);
3176 }
3177 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[0]);
3178 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
3179 if (UNTAG_Bool(REGB0)) {
3180 } else {
3181 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3182 REGB0 = REGB1;
3183 }
3184 if (UNTAG_Bool(REGB0)) {
3185 /* parser/parser_prod.nit:577 */
3186 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3187 if (UNTAG_Bool(REGB0)) {
3188 } else {
3189 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3190 if (UNTAG_Bool(REGB1)) {
3191 REGB1 = TAG_Bool(false);
3192 REGB0 = REGB1;
3193 } else {
3194 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3195 REGB0 = REGB1;
3196 }
3197 }
3198 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3199 if (UNTAG_Bool(REGB0)) {
3200 /* parser/parser_prod.nit:578 */
3201 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3202 if (UNTAG_Bool(REGB0)) {
3203 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 578);
3204 }
3205 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3206 /* parser/parser_prod.nit:579 */
3207 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast TKwend*/;
3208 if (UNTAG_Bool(REGB0)) {
3209 } else {
3210 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 579);
3211 }
3212 /* parser/parser_prod.nit:580 */
3213 ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[0]) = fra.me.REG[2];
3214 } else {
3215 /* parser/parser_prod.nit:582 */
3216 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 582);
3217 }
3218 /* parser/parser_prod.nit:584 */
3219 goto label1;
3220 }
3221 label1: while(0);
3222 stack_frame_head = fra.me.prev;
3223 return;
3224 }
3225 void parser___parser_prod___AStdClassdef___visit_all(val_t p0, val_t p1){
3226 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3227 val_t REGB0;
3228 val_t REGB1;
3229 val_t tmp;
3230 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3231 fra.me.file = LOCATE_parser___parser_prod;
3232 fra.me.line = 588;
3233 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
3234 fra.me.has_broke = 0;
3235 fra.me.REG_size = 4;
3236 fra.me.nitni_local_ref_head = NULL;
3237 fra.me.REG[0] = NIT_NULL;
3238 fra.me.REG[1] = NIT_NULL;
3239 fra.me.REG[2] = NIT_NULL;
3240 fra.me.REG[3] = NIT_NULL;
3241 fra.me.REG[0] = p0;
3242 fra.me.REG[1] = p1;
3243 /* parser/parser_prod.nit:588 */
3244 fra.me.REG[2] = fra.me.REG[0];
3245 /* parser/parser_prod.nit:590 */
3246 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[2]);
3247 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3248 if (UNTAG_Bool(REGB0)) {
3249 } else {
3250 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3251 if (UNTAG_Bool(REGB1)) {
3252 REGB1 = TAG_Bool(false);
3253 REGB0 = REGB1;
3254 } else {
3255 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3256 REGB0 = REGB1;
3257 }
3258 }
3259 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3260 if (UNTAG_Bool(REGB0)) {
3261 /* parser/parser_prod.nit:591 */
3262 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[2]);
3263 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
3264 if (UNTAG_Bool(REGB0)) {
3265 } else {
3266 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 591);
3267 }
3268 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3269 }
3270 /* parser/parser_prod.nit:593 */
3271 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[2]);
3272 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3273 if (UNTAG_Bool(REGB0)) {
3274 } else {
3275 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3276 if (UNTAG_Bool(REGB1)) {
3277 REGB1 = TAG_Bool(false);
3278 REGB0 = REGB1;
3279 } else {
3280 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3281 REGB0 = REGB1;
3282 }
3283 }
3284 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3285 if (UNTAG_Bool(REGB0)) {
3286 /* parser/parser_prod.nit:594 */
3287 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[2]);
3288 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
3289 if (UNTAG_Bool(REGB0)) {
3290 } else {
3291 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 594);
3292 }
3293 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3294 }
3295 /* parser/parser_prod.nit:596 */
3296 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[2])!=NIT_NULL);
3297 if (UNTAG_Bool(REGB0)) {
3298 } else {
3299 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 596);
3300 }
3301 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[2]);
3302 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3303 /* parser/parser_prod.nit:597 */
3304 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[2])!=NIT_NULL);
3305 if (UNTAG_Bool(REGB0)) {
3306 } else {
3307 nit_abort("Uninitialized attribute %s", "_n_classkind", LOCATE_parser___parser_prod, 597);
3308 }
3309 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[2]);
3310 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3311 /* parser/parser_prod.nit:598 */
3312 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[2]);
3313 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3314 if (UNTAG_Bool(REGB0)) {
3315 } else {
3316 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3317 if (UNTAG_Bool(REGB1)) {
3318 REGB1 = TAG_Bool(false);
3319 REGB0 = REGB1;
3320 } else {
3321 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3322 REGB0 = REGB1;
3323 }
3324 }
3325 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3326 if (UNTAG_Bool(REGB0)) {
3327 /* parser/parser_prod.nit:599 */
3328 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[2]);
3329 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
3330 if (UNTAG_Bool(REGB0)) {
3331 } else {
3332 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 599);
3333 }
3334 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3335 }
3336 /* parser/parser_prod.nit:601 */
3337 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[2])!=NIT_NULL);
3338 if (UNTAG_Bool(REGB0)) {
3339 } else {
3340 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 601);
3341 }
3342 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[2]);
3343 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___visit_all_1));
3344 /* parser/parser_prod.nit:604 */
3345 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[2])!=NIT_NULL);
3346 if (UNTAG_Bool(REGB0)) {
3347 } else {
3348 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 604);
3349 }
3350 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[2]);
3351 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___visit_all_2));
3352 /* parser/parser_prod.nit:607 */
3353 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[2])!=NIT_NULL);
3354 if (UNTAG_Bool(REGB0)) {
3355 } else {
3356 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 607);
3357 }
3358 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[2]);
3359 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___visit_all_3));
3360 /* parser/parser_prod.nit:610 */
3361 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[2])!=NIT_NULL);
3362 if (UNTAG_Bool(REGB0)) {
3363 } else {
3364 nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser___parser_prod, 610);
3365 }
3366 fra.me.REG[2] = ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[2]);
3367 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3368 stack_frame_head = fra.me.prev;
3369 return;
3370 }
3371 void OC_parser___parser_prod___AStdClassdef___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
3372 struct {struct stack_frame_t me;} fra;
3373 fun_t CREG[1];
3374 val_t tmp;
3375 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3376 fra.me.file = LOCATE_parser___parser_prod;
3377 fra.me.line = 0;
3378 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
3379 fra.me.has_broke = 0;
3380 fra.me.REG_size = 1;
3381 fra.me.nitni_local_ref_head = NULL;
3382 fra.me.REG[0] = NIT_NULL;
3383 fra.me.closure_ctx = closctx_param;
3384 fra.me.closure_funs = CREG;
3385 fra.me.REG[0] = p0;
3386 CREG[0] = clos_fun0;
3387 /* parser/parser_prod.nit:602 */
3388 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3389 stack_frame_head = fra.me.prev;
3390 return;
3391 }
3392 void OC_parser___parser_prod___AStdClassdef___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
3393 struct {struct stack_frame_t me;} fra;
3394 fun_t CREG[1];
3395 val_t tmp;
3396 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3397 fra.me.file = LOCATE_parser___parser_prod;
3398 fra.me.line = 0;
3399 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
3400 fra.me.has_broke = 0;
3401 fra.me.REG_size = 1;
3402 fra.me.nitni_local_ref_head = NULL;
3403 fra.me.REG[0] = NIT_NULL;
3404 fra.me.closure_ctx = closctx_param;
3405 fra.me.closure_funs = CREG;
3406 fra.me.REG[0] = p0;
3407 CREG[0] = clos_fun0;
3408 /* parser/parser_prod.nit:605 */
3409 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3410 stack_frame_head = fra.me.prev;
3411 return;
3412 }
3413 void OC_parser___parser_prod___AStdClassdef___visit_all_3(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
3414 struct {struct stack_frame_t me;} fra;
3415 fun_t CREG[1];
3416 val_t tmp;
3417 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3418 fra.me.file = LOCATE_parser___parser_prod;
3419 fra.me.line = 0;
3420 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
3421 fra.me.has_broke = 0;
3422 fra.me.REG_size = 1;
3423 fra.me.nitni_local_ref_head = NULL;
3424 fra.me.REG[0] = NIT_NULL;
3425 fra.me.closure_ctx = closctx_param;
3426 fra.me.closure_funs = CREG;
3427 fra.me.REG[0] = p0;
3428 CREG[0] = clos_fun0;
3429 /* parser/parser_prod.nit:608 */
3430 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3431 stack_frame_head = fra.me.prev;
3432 return;
3433 }
3434 void parser___parser_prod___ATopClassdef___empty_init(val_t p0, int* init_table){
3435 int itpos19 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATopClassdef].i;
3436 struct {struct stack_frame_t me;} fra;
3437 val_t tmp;
3438 if (init_table[itpos19]) return;
3439 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3440 fra.me.file = LOCATE_parser___parser_prod;
3441 fra.me.line = 614;
3442 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___empty_init;
3443 fra.me.has_broke = 0;
3444 fra.me.REG_size = 1;
3445 fra.me.nitni_local_ref_head = NULL;
3446 fra.me.REG[0] = NIT_NULL;
3447 fra.me.REG[0] = p0;
3448 stack_frame_head = fra.me.prev;
3449 init_table[itpos19] = 1;
3450 return;
3451 }
3452 void parser___parser_prod___ATopClassdef___init_atopclassdef(val_t p0, val_t p1, int* init_table){
3453 int itpos20 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATopClassdef].i;
3454 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3455 val_t tmp;
3456 if (init_table[itpos20]) return;
3457 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3458 fra.me.file = LOCATE_parser___parser_prod;
3459 fra.me.line = 616;
3460 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___init_atopclassdef;
3461 fra.me.has_broke = 0;
3462 fra.me.REG_size = 2;
3463 fra.me.nitni_local_ref_head = NULL;
3464 fra.me.REG[0] = NIT_NULL;
3465 fra.me.REG[1] = NIT_NULL;
3466 fra.me.REG[0] = p0;
3467 fra.me.REG[1] = p1;
3468 /* parser/parser_prod.nit:620 */
3469 CALL_parser___parser_prod___ATopClassdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
3470 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ATopClassdef___init_atopclassdef_1));
3471 stack_frame_head = fra.me.prev;
3472 init_table[itpos20] = 1;
3473 return;
3474 }
3475 void OC_parser___parser_prod___ATopClassdef___init_atopclassdef_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
3476 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3477 val_t REGB0;
3478 fun_t CREG[1];
3479 val_t tmp;
3480 /* parser/parser_prod.nit:621 */
3481 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3482 fra.me.file = LOCATE_parser___parser_prod;
3483 fra.me.line = 0;
3484 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___init_atopclassdef;
3485 fra.me.has_broke = 0;
3486 fra.me.REG_size = 2;
3487 fra.me.nitni_local_ref_head = NULL;
3488 fra.me.REG[0] = NIT_NULL;
3489 fra.me.REG[1] = NIT_NULL;
3490 fra.me.closure_ctx = closctx_param;
3491 fra.me.closure_funs = CREG;
3492 fra.me.REG[0] = p0;
3493 CREG[0] = clos_fun0;
3494 /* parser/parser_prod.nit:622 */
3495 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
3496 if (UNTAG_Bool(REGB0)) {
3497 } else {
3498 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 622);
3499 }
3500 /* parser/parser_prod.nit:623 */
3501 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[0])!=NIT_NULL);
3502 if (UNTAG_Bool(REGB0)) {
3503 } else {
3504 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 623);
3505 }
3506 fra.me.REG[1] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[0]);
3507 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3508 /* parser/parser_prod.nit:624 */
3509 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
3510 stack_frame_head = fra.me.prev;
3511 return;
3512 }
3513 void parser___parser_prod___ATopClassdef___replace_child(val_t p0, val_t p1, val_t p2){
3514 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3515 val_t REGB0;
3516 val_t REGB1;
3517 val_t REGB2;
3518 val_t REGB3;
3519 val_t REGB4;
3520 val_t tmp;
3521 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3522 fra.me.file = LOCATE_parser___parser_prod;
3523 fra.me.line = 628;
3524 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___replace_child;
3525 fra.me.has_broke = 0;
3526 fra.me.REG_size = 4;
3527 fra.me.nitni_local_ref_head = NULL;
3528 fra.me.REG[0] = NIT_NULL;
3529 fra.me.REG[1] = NIT_NULL;
3530 fra.me.REG[2] = NIT_NULL;
3531 fra.me.REG[3] = NIT_NULL;
3532 fra.me.REG[0] = p0;
3533 fra.me.REG[1] = p1;
3534 fra.me.REG[2] = p2;
3535 /* parser/parser_prod.nit:630 */
3536 REGB0 = TAG_Int(0);
3537 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3538 if (UNTAG_Bool(REGB1)) {
3539 } else {
3540 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 630);
3541 }
3542 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3543 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
3544 /* ../lib/standard/kernel.nit:352 */
3545 while(1) {
3546 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3547 if (UNTAG_Bool(REGB2)) {
3548 } else {
3549 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3550 }
3551 /* ../lib/standard/kernel.nit:232 */
3552 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3553 /* ../lib/standard/kernel.nit:352 */
3554 if (UNTAG_Bool(REGB2)) {
3555 /* parser/parser_prod.nit:630 */
3556 REGB2 = REGB0;
3557 /* parser/parser_prod.nit:631 */
3558 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3559 if (UNTAG_Bool(REGB3)) {
3560 } else {
3561 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 631);
3562 }
3563 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3564 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
3565 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3566 if (UNTAG_Bool(REGB3)) {
3567 } else {
3568 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3569 if (UNTAG_Bool(REGB4)) {
3570 REGB4 = TAG_Bool(false);
3571 REGB3 = REGB4;
3572 } else {
3573 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3574 REGB3 = REGB4;
3575 }
3576 }
3577 if (UNTAG_Bool(REGB3)) {
3578 /* parser/parser_prod.nit:632 */
3579 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3580 if (UNTAG_Bool(REGB3)) {
3581 } else {
3582 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3583 if (UNTAG_Bool(REGB4)) {
3584 REGB4 = TAG_Bool(false);
3585 REGB3 = REGB4;
3586 } else {
3587 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3588 REGB3 = REGB4;
3589 }
3590 }
3591 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3592 if (UNTAG_Bool(REGB3)) {
3593 /* parser/parser_prod.nit:633 */
3594 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
3595 if (UNTAG_Bool(REGB3)) {
3596 } else {
3597 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 633);
3598 }
3599 /* parser/parser_prod.nit:634 */
3600 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3601 if (UNTAG_Bool(REGB3)) {
3602 } else {
3603 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 634);
3604 }
3605 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3606 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3607 /* parser/parser_prod.nit:635 */
3608 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3609 if (UNTAG_Bool(REGB3)) {
3610 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 635);
3611 }
3612 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3613 } else {
3614 /* parser/parser_prod.nit:637 */
3615 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3616 if (UNTAG_Bool(REGB3)) {
3617 } else {
3618 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 637);
3619 }
3620 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3621 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3622 }
3623 /* parser/parser_prod.nit:639 */
3624 goto label1;
3625 }
3626 /* ../lib/standard/kernel.nit:354 */
3627 REGB2 = TAG_Int(1);
3628 /* ../lib/standard/kernel.nit:235 */
3629 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3630 /* ../lib/standard/kernel.nit:354 */
3631 REGB0 = REGB2;
3632 } else {
3633 /* ../lib/standard/kernel.nit:352 */
3634 goto label2;
3635 }
3636 }
3637 label2: while(0);
3638 label1: while(0);
3639 stack_frame_head = fra.me.prev;
3640 return;
3641 }
3642 void parser___parser_prod___ATopClassdef___visit_all(val_t p0, val_t p1){
3643 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3644 val_t REGB0;
3645 val_t tmp;
3646 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3647 fra.me.file = LOCATE_parser___parser_prod;
3648 fra.me.line = 644;
3649 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___visit_all;
3650 fra.me.has_broke = 0;
3651 fra.me.REG_size = 2;
3652 fra.me.nitni_local_ref_head = NULL;
3653 fra.me.REG[0] = NIT_NULL;
3654 fra.me.REG[1] = NIT_NULL;
3655 fra.me.REG[0] = p0;
3656 fra.me.REG[1] = p1;
3657 /* parser/parser_prod.nit:646 */
3658 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3659 if (UNTAG_Bool(REGB0)) {
3660 } else {
3661 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 646);
3662 }
3663 fra.me.REG[0] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3664 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ATopClassdef___visit_all_1));
3665 stack_frame_head = fra.me.prev;
3666 return;
3667 }
3668 void OC_parser___parser_prod___ATopClassdef___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
3669 struct {struct stack_frame_t me;} fra;
3670 fun_t CREG[1];
3671 val_t tmp;
3672 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3673 fra.me.file = LOCATE_parser___parser_prod;
3674 fra.me.line = 0;
3675 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___visit_all;
3676 fra.me.has_broke = 0;
3677 fra.me.REG_size = 1;
3678 fra.me.nitni_local_ref_head = NULL;
3679 fra.me.REG[0] = NIT_NULL;
3680 fra.me.closure_ctx = closctx_param;
3681 fra.me.closure_funs = CREG;
3682 fra.me.REG[0] = p0;
3683 CREG[0] = clos_fun0;
3684 /* parser/parser_prod.nit:647 */
3685 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3686 stack_frame_head = fra.me.prev;
3687 return;
3688 }
3689 void parser___parser_prod___AMainClassdef___empty_init(val_t p0, int* init_table){
3690 int itpos21 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainClassdef].i;
3691 struct {struct stack_frame_t me;} fra;
3692 val_t tmp;
3693 if (init_table[itpos21]) return;
3694 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3695 fra.me.file = LOCATE_parser___parser_prod;
3696 fra.me.line = 652;
3697 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___empty_init;
3698 fra.me.has_broke = 0;
3699 fra.me.REG_size = 1;
3700 fra.me.nitni_local_ref_head = NULL;
3701 fra.me.REG[0] = NIT_NULL;
3702 fra.me.REG[0] = p0;
3703 stack_frame_head = fra.me.prev;
3704 init_table[itpos21] = 1;
3705 return;
3706 }
3707 void parser___parser_prod___AMainClassdef___init_amainclassdef(val_t p0, val_t p1, int* init_table){
3708 int itpos22 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainClassdef].i;
3709 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3710 val_t tmp;
3711 if (init_table[itpos22]) return;
3712 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3713 fra.me.file = LOCATE_parser___parser_prod;
3714 fra.me.line = 654;
3715 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___init_amainclassdef;
3716 fra.me.has_broke = 0;
3717 fra.me.REG_size = 2;
3718 fra.me.nitni_local_ref_head = NULL;
3719 fra.me.REG[0] = NIT_NULL;
3720 fra.me.REG[1] = NIT_NULL;
3721 fra.me.REG[0] = p0;
3722 fra.me.REG[1] = p1;
3723 /* parser/parser_prod.nit:658 */
3724 CALL_parser___parser_prod___AMainClassdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
3725 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AMainClassdef___init_amainclassdef_1));
3726 stack_frame_head = fra.me.prev;
3727 init_table[itpos22] = 1;
3728 return;
3729 }
3730 void OC_parser___parser_prod___AMainClassdef___init_amainclassdef_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
3731 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3732 val_t REGB0;
3733 fun_t CREG[1];
3734 val_t tmp;
3735 /* parser/parser_prod.nit:659 */
3736 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3737 fra.me.file = LOCATE_parser___parser_prod;
3738 fra.me.line = 0;
3739 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___init_amainclassdef;
3740 fra.me.has_broke = 0;
3741 fra.me.REG_size = 2;
3742 fra.me.nitni_local_ref_head = NULL;
3743 fra.me.REG[0] = NIT_NULL;
3744 fra.me.REG[1] = NIT_NULL;
3745 fra.me.closure_ctx = closctx_param;
3746 fra.me.closure_funs = CREG;
3747 fra.me.REG[0] = p0;
3748 CREG[0] = clos_fun0;
3749 /* parser/parser_prod.nit:660 */
3750 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
3751 if (UNTAG_Bool(REGB0)) {
3752 } else {
3753 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 660);
3754 }
3755 /* parser/parser_prod.nit:661 */
3756 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[0])!=NIT_NULL);
3757 if (UNTAG_Bool(REGB0)) {
3758 } else {
3759 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 661);
3760 }
3761 fra.me.REG[1] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[0]);
3762 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3763 /* parser/parser_prod.nit:662 */
3764 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
3765 stack_frame_head = fra.me.prev;
3766 return;
3767 }
3768 void parser___parser_prod___AMainClassdef___replace_child(val_t p0, val_t p1, val_t p2){
3769 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3770 val_t REGB0;
3771 val_t REGB1;
3772 val_t REGB2;
3773 val_t REGB3;
3774 val_t REGB4;
3775 val_t tmp;
3776 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3777 fra.me.file = LOCATE_parser___parser_prod;
3778 fra.me.line = 666;
3779 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___replace_child;
3780 fra.me.has_broke = 0;
3781 fra.me.REG_size = 4;
3782 fra.me.nitni_local_ref_head = NULL;
3783 fra.me.REG[0] = NIT_NULL;
3784 fra.me.REG[1] = NIT_NULL;
3785 fra.me.REG[2] = NIT_NULL;
3786 fra.me.REG[3] = NIT_NULL;
3787 fra.me.REG[0] = p0;
3788 fra.me.REG[1] = p1;
3789 fra.me.REG[2] = p2;
3790 /* parser/parser_prod.nit:668 */
3791 REGB0 = TAG_Int(0);
3792 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3793 if (UNTAG_Bool(REGB1)) {
3794 } else {
3795 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 668);
3796 }
3797 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3798 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
3799 /* ../lib/standard/kernel.nit:352 */
3800 while(1) {
3801 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3802 if (UNTAG_Bool(REGB2)) {
3803 } else {
3804 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3805 }
3806 /* ../lib/standard/kernel.nit:232 */
3807 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3808 /* ../lib/standard/kernel.nit:352 */
3809 if (UNTAG_Bool(REGB2)) {
3810 /* parser/parser_prod.nit:668 */
3811 REGB2 = REGB0;
3812 /* parser/parser_prod.nit:669 */
3813 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3814 if (UNTAG_Bool(REGB3)) {
3815 } else {
3816 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 669);
3817 }
3818 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3819 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
3820 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3821 if (UNTAG_Bool(REGB3)) {
3822 } else {
3823 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3824 if (UNTAG_Bool(REGB4)) {
3825 REGB4 = TAG_Bool(false);
3826 REGB3 = REGB4;
3827 } else {
3828 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3829 REGB3 = REGB4;
3830 }
3831 }
3832 if (UNTAG_Bool(REGB3)) {
3833 /* parser/parser_prod.nit:670 */
3834 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3835 if (UNTAG_Bool(REGB3)) {
3836 } else {
3837 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3838 if (UNTAG_Bool(REGB4)) {
3839 REGB4 = TAG_Bool(false);
3840 REGB3 = REGB4;
3841 } else {
3842 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3843 REGB3 = REGB4;
3844 }
3845 }
3846 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3847 if (UNTAG_Bool(REGB3)) {
3848 /* parser/parser_prod.nit:671 */
3849 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
3850 if (UNTAG_Bool(REGB3)) {
3851 } else {
3852 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 671);
3853 }
3854 /* parser/parser_prod.nit:672 */
3855 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3856 if (UNTAG_Bool(REGB3)) {
3857 } else {
3858 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 672);
3859 }
3860 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3861 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3862 /* parser/parser_prod.nit:673 */
3863 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3864 if (UNTAG_Bool(REGB3)) {
3865 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 673);
3866 }
3867 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3868 } else {
3869 /* parser/parser_prod.nit:675 */
3870 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3871 if (UNTAG_Bool(REGB3)) {
3872 } else {
3873 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 675);
3874 }
3875 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3876 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3877 }
3878 /* parser/parser_prod.nit:677 */
3879 goto label1;
3880 }
3881 /* ../lib/standard/kernel.nit:354 */
3882 REGB2 = TAG_Int(1);
3883 /* ../lib/standard/kernel.nit:235 */
3884 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3885 /* ../lib/standard/kernel.nit:354 */
3886 REGB0 = REGB2;
3887 } else {
3888 /* ../lib/standard/kernel.nit:352 */
3889 goto label2;
3890 }
3891 }
3892 label2: while(0);
3893 label1: while(0);
3894 stack_frame_head = fra.me.prev;
3895 return;
3896 }
3897 void parser___parser_prod___AMainClassdef___visit_all(val_t p0, val_t p1){
3898 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3899 val_t REGB0;
3900 val_t tmp;
3901 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3902 fra.me.file = LOCATE_parser___parser_prod;
3903 fra.me.line = 682;
3904 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___visit_all;
3905 fra.me.has_broke = 0;
3906 fra.me.REG_size = 2;
3907 fra.me.nitni_local_ref_head = NULL;
3908 fra.me.REG[0] = NIT_NULL;
3909 fra.me.REG[1] = NIT_NULL;
3910 fra.me.REG[0] = p0;
3911 fra.me.REG[1] = p1;
3912 /* parser/parser_prod.nit:684 */
3913 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3914 if (UNTAG_Bool(REGB0)) {
3915 } else {
3916 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 684);
3917 }
3918 fra.me.REG[0] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3919 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AMainClassdef___visit_all_1));
3920 stack_frame_head = fra.me.prev;
3921 return;
3922 }
3923 void OC_parser___parser_prod___AMainClassdef___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
3924 struct {struct stack_frame_t me;} fra;
3925 fun_t CREG[1];
3926 val_t tmp;
3927 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3928 fra.me.file = LOCATE_parser___parser_prod;
3929 fra.me.line = 0;
3930 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___visit_all;
3931 fra.me.has_broke = 0;
3932 fra.me.REG_size = 1;
3933 fra.me.nitni_local_ref_head = NULL;
3934 fra.me.REG[0] = NIT_NULL;
3935 fra.me.closure_ctx = closctx_param;
3936 fra.me.closure_funs = CREG;
3937 fra.me.REG[0] = p0;
3938 CREG[0] = clos_fun0;
3939 /* parser/parser_prod.nit:685 */
3940 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3941 stack_frame_head = fra.me.prev;
3942 return;
3943 }
3944 void parser___parser_prod___AConcreteClasskind___empty_init(val_t p0, int* init_table){
3945 int itpos23 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteClasskind].i;
3946 struct {struct stack_frame_t me;} fra;
3947 val_t tmp;
3948 if (init_table[itpos23]) return;
3949 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3950 fra.me.file = LOCATE_parser___parser_prod;
3951 fra.me.line = 690;
3952 fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___empty_init;
3953 fra.me.has_broke = 0;
3954 fra.me.REG_size = 1;
3955 fra.me.nitni_local_ref_head = NULL;
3956 fra.me.REG[0] = NIT_NULL;
3957 fra.me.REG[0] = p0;
3958 stack_frame_head = fra.me.prev;
3959 init_table[itpos23] = 1;
3960 return;
3961 }
3962 void parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind(val_t p0, val_t p1, int* init_table){
3963 int itpos24 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteClasskind].i;
3964 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3965 val_t REGB0;
3966 val_t tmp;
3967 if (init_table[itpos24]) return;
3968 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3969 fra.me.file = LOCATE_parser___parser_prod;
3970 fra.me.line = 692;
3971 fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind;
3972 fra.me.has_broke = 0;
3973 fra.me.REG_size = 3;
3974 fra.me.nitni_local_ref_head = NULL;
3975 fra.me.REG[0] = NIT_NULL;
3976 fra.me.REG[1] = NIT_NULL;
3977 fra.me.REG[2] = NIT_NULL;
3978 fra.me.REG[0] = p0;
3979 fra.me.REG[1] = p1;
3980 /* parser/parser_prod.nit:692 */
3981 fra.me.REG[2] = fra.me.REG[0];
3982 /* parser/parser_prod.nit:696 */
3983 CALL_parser___parser_prod___AConcreteClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
3984 /* parser/parser_prod.nit:697 */
3985 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
3986 if (UNTAG_Bool(REGB0)) {
3987 } else {
3988 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 697);
3989 }
3990 ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[2]) = fra.me.REG[1];
3991 /* parser/parser_prod.nit:698 */
3992 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3993 if (UNTAG_Bool(REGB0)) {
3994 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 698);
3995 }
3996 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3997 stack_frame_head = fra.me.prev;
3998 init_table[itpos24] = 1;
3999 return;
4000 }
4001 void parser___parser_prod___AConcreteClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4002 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4003 val_t REGB0;
4004 val_t REGB1;
4005 val_t tmp;
4006 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4007 fra.me.file = LOCATE_parser___parser_prod;
4008 fra.me.line = 701;
4009 fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___replace_child;
4010 fra.me.has_broke = 0;
4011 fra.me.REG_size = 4;
4012 fra.me.nitni_local_ref_head = NULL;
4013 fra.me.REG[0] = NIT_NULL;
4014 fra.me.REG[1] = NIT_NULL;
4015 fra.me.REG[2] = NIT_NULL;
4016 fra.me.REG[3] = NIT_NULL;
4017 fra.me.REG[0] = p0;
4018 fra.me.REG[1] = p1;
4019 fra.me.REG[2] = p2;
4020 /* parser/parser_prod.nit:703 */
4021 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
4022 if (UNTAG_Bool(REGB0)) {
4023 } else {
4024 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 703);
4025 }
4026 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]);
4027 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4028 if (UNTAG_Bool(REGB0)) {
4029 } else {
4030 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4031 REGB0 = REGB1;
4032 }
4033 if (UNTAG_Bool(REGB0)) {
4034 /* parser/parser_prod.nit:704 */
4035 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4036 if (UNTAG_Bool(REGB0)) {
4037 } else {
4038 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4039 if (UNTAG_Bool(REGB1)) {
4040 REGB1 = TAG_Bool(false);
4041 REGB0 = REGB1;
4042 } else {
4043 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4044 REGB0 = REGB1;
4045 }
4046 }
4047 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4048 if (UNTAG_Bool(REGB0)) {
4049 /* parser/parser_prod.nit:705 */
4050 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4051 if (UNTAG_Bool(REGB0)) {
4052 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 705);
4053 }
4054 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4055 /* parser/parser_prod.nit:706 */
4056 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwclass, ID_parser___parser_nodes___TKwclass)) /*cast TKwclass*/;
4057 if (UNTAG_Bool(REGB0)) {
4058 } else {
4059 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 706);
4060 }
4061 /* parser/parser_prod.nit:707 */
4062 ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]) = fra.me.REG[2];
4063 } else {
4064 /* parser/parser_prod.nit:709 */
4065 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 709);
4066 }
4067 /* parser/parser_prod.nit:711 */
4068 goto label1;
4069 }
4070 label1: while(0);
4071 stack_frame_head = fra.me.prev;
4072 return;
4073 }
4074 void parser___parser_prod___AConcreteClasskind___visit_all(val_t p0, val_t p1){
4075 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4076 val_t REGB0;
4077 val_t tmp;
4078 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4079 fra.me.file = LOCATE_parser___parser_prod;
4080 fra.me.line = 715;
4081 fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___visit_all;
4082 fra.me.has_broke = 0;
4083 fra.me.REG_size = 2;
4084 fra.me.nitni_local_ref_head = NULL;
4085 fra.me.REG[0] = NIT_NULL;
4086 fra.me.REG[1] = NIT_NULL;
4087 fra.me.REG[0] = p0;
4088 fra.me.REG[1] = p1;
4089 /* parser/parser_prod.nit:717 */
4090 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
4091 if (UNTAG_Bool(REGB0)) {
4092 } else {
4093 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 717);
4094 }
4095 fra.me.REG[0] = ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]);
4096 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4097 stack_frame_head = fra.me.prev;
4098 return;
4099 }
4100 void parser___parser_prod___AAbstractClasskind___empty_init(val_t p0, int* init_table){
4101 int itpos25 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbstractClasskind].i;
4102 struct {struct stack_frame_t me;} fra;
4103 val_t tmp;
4104 if (init_table[itpos25]) return;
4105 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4106 fra.me.file = LOCATE_parser___parser_prod;
4107 fra.me.line = 721;
4108 fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___empty_init;
4109 fra.me.has_broke = 0;
4110 fra.me.REG_size = 1;
4111 fra.me.nitni_local_ref_head = NULL;
4112 fra.me.REG[0] = NIT_NULL;
4113 fra.me.REG[0] = p0;
4114 stack_frame_head = fra.me.prev;
4115 init_table[itpos25] = 1;
4116 return;
4117 }
4118 void parser___parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t p0, val_t p1, val_t p2, int* init_table){
4119 int itpos26 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbstractClasskind].i;
4120 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4121 val_t REGB0;
4122 val_t tmp;
4123 if (init_table[itpos26]) return;
4124 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4125 fra.me.file = LOCATE_parser___parser_prod;
4126 fra.me.line = 723;
4127 fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___init_aabstractclasskind;
4128 fra.me.has_broke = 0;
4129 fra.me.REG_size = 4;
4130 fra.me.nitni_local_ref_head = NULL;
4131 fra.me.REG[0] = NIT_NULL;
4132 fra.me.REG[1] = NIT_NULL;
4133 fra.me.REG[2] = NIT_NULL;
4134 fra.me.REG[3] = NIT_NULL;
4135 fra.me.REG[0] = p0;
4136 fra.me.REG[1] = p1;
4137 fra.me.REG[2] = p2;
4138 /* parser/parser_prod.nit:723 */
4139 fra.me.REG[3] = fra.me.REG[0];
4140 /* parser/parser_prod.nit:728 */
4141 CALL_parser___parser_prod___AAbstractClasskind___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
4142 /* parser/parser_prod.nit:729 */
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___parser_prod, 729);
4147 }
4148 ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[3]) = fra.me.REG[1];
4149 /* parser/parser_prod.nit:730 */
4150 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4151 if (UNTAG_Bool(REGB0)) {
4152 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 730);
4153 }
4154 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4155 /* parser/parser_prod.nit:731 */
4156 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
4157 if (UNTAG_Bool(REGB0)) {
4158 } else {
4159 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 731);
4160 }
4161 ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[3]) = fra.me.REG[2];
4162 /* parser/parser_prod.nit:732 */
4163 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4164 if (UNTAG_Bool(REGB0)) {
4165 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 732);
4166 }
4167 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4168 stack_frame_head = fra.me.prev;
4169 init_table[itpos26] = 1;
4170 return;
4171 }
4172 void parser___parser_prod___AAbstractClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4173 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4174 val_t REGB0;
4175 val_t REGB1;
4176 val_t tmp;
4177 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4178 fra.me.file = LOCATE_parser___parser_prod;
4179 fra.me.line = 735;
4180 fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___replace_child;
4181 fra.me.has_broke = 0;
4182 fra.me.REG_size = 4;
4183 fra.me.nitni_local_ref_head = NULL;
4184 fra.me.REG[0] = NIT_NULL;
4185 fra.me.REG[1] = NIT_NULL;
4186 fra.me.REG[2] = NIT_NULL;
4187 fra.me.REG[3] = NIT_NULL;
4188 fra.me.REG[0] = p0;
4189 fra.me.REG[1] = p1;
4190 fra.me.REG[2] = p2;
4191 /* parser/parser_prod.nit:737 */
4192 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0])!=NIT_NULL);
4193 if (UNTAG_Bool(REGB0)) {
4194 } else {
4195 nit_abort("Uninitialized attribute %s", "_n_kwabstract", LOCATE_parser___parser_prod, 737);
4196 }
4197 fra.me.REG[3] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]);
4198 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4199 if (UNTAG_Bool(REGB0)) {
4200 } else {
4201 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4202 REGB0 = REGB1;
4203 }
4204 if (UNTAG_Bool(REGB0)) {
4205 /* parser/parser_prod.nit:738 */
4206 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4207 if (UNTAG_Bool(REGB0)) {
4208 } else {
4209 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4210 if (UNTAG_Bool(REGB1)) {
4211 REGB1 = TAG_Bool(false);
4212 REGB0 = REGB1;
4213 } else {
4214 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4215 REGB0 = REGB1;
4216 }
4217 }
4218 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4219 if (UNTAG_Bool(REGB0)) {
4220 /* parser/parser_prod.nit:739 */
4221 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4222 if (UNTAG_Bool(REGB0)) {
4223 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 739);
4224 }
4225 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4226 /* parser/parser_prod.nit:740 */
4227 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwabstract, ID_parser___parser_nodes___TKwabstract)) /*cast TKwabstract*/;
4228 if (UNTAG_Bool(REGB0)) {
4229 } else {
4230 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 740);
4231 }
4232 /* parser/parser_prod.nit:741 */
4233 ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]) = fra.me.REG[2];
4234 } else {
4235 /* parser/parser_prod.nit:743 */
4236 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 743);
4237 }
4238 /* parser/parser_prod.nit:745 */
4239 goto label1;
4240 }
4241 /* parser/parser_prod.nit:747 */
4242 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
4243 if (UNTAG_Bool(REGB0)) {
4244 } else {
4245 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 747);
4246 }
4247 fra.me.REG[3] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]);
4248 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4249 if (UNTAG_Bool(REGB0)) {
4250 } else {
4251 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4252 REGB0 = REGB1;
4253 }
4254 if (UNTAG_Bool(REGB0)) {
4255 /* parser/parser_prod.nit:748 */
4256 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4257 if (UNTAG_Bool(REGB0)) {
4258 } else {
4259 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4260 if (UNTAG_Bool(REGB1)) {
4261 REGB1 = TAG_Bool(false);
4262 REGB0 = REGB1;
4263 } else {
4264 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4265 REGB0 = REGB1;
4266 }
4267 }
4268 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4269 if (UNTAG_Bool(REGB0)) {
4270 /* parser/parser_prod.nit:749 */
4271 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4272 if (UNTAG_Bool(REGB0)) {
4273 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 749);
4274 }
4275 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4276 /* parser/parser_prod.nit:750 */
4277 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwclass, ID_parser___parser_nodes___TKwclass)) /*cast TKwclass*/;
4278 if (UNTAG_Bool(REGB0)) {
4279 } else {
4280 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 750);
4281 }
4282 /* parser/parser_prod.nit:751 */
4283 ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]) = fra.me.REG[2];
4284 } else {
4285 /* parser/parser_prod.nit:753 */
4286 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 753);
4287 }
4288 /* parser/parser_prod.nit:755 */
4289 goto label1;
4290 }
4291 label1: while(0);
4292 stack_frame_head = fra.me.prev;
4293 return;
4294 }
4295 void parser___parser_prod___AAbstractClasskind___visit_all(val_t p0, val_t p1){
4296 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4297 val_t REGB0;
4298 val_t tmp;
4299 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4300 fra.me.file = LOCATE_parser___parser_prod;
4301 fra.me.line = 759;
4302 fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___visit_all;
4303 fra.me.has_broke = 0;
4304 fra.me.REG_size = 3;
4305 fra.me.nitni_local_ref_head = NULL;
4306 fra.me.REG[0] = NIT_NULL;
4307 fra.me.REG[1] = NIT_NULL;
4308 fra.me.REG[2] = NIT_NULL;
4309 fra.me.REG[0] = p0;
4310 fra.me.REG[1] = p1;
4311 /* parser/parser_prod.nit:761 */
4312 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0])!=NIT_NULL);
4313 if (UNTAG_Bool(REGB0)) {
4314 } else {
4315 nit_abort("Uninitialized attribute %s", "_n_kwabstract", LOCATE_parser___parser_prod, 761);
4316 }
4317 fra.me.REG[2] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]);
4318 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4319 /* parser/parser_prod.nit:762 */
4320 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
4321 if (UNTAG_Bool(REGB0)) {
4322 } else {
4323 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 762);
4324 }
4325 fra.me.REG[0] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]);
4326 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4327 stack_frame_head = fra.me.prev;
4328 return;
4329 }
4330 void parser___parser_prod___AInterfaceClasskind___empty_init(val_t p0, int* init_table){
4331 int itpos27 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInterfaceClasskind].i;
4332 struct {struct stack_frame_t me;} fra;
4333 val_t tmp;
4334 if (init_table[itpos27]) return;
4335 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4336 fra.me.file = LOCATE_parser___parser_prod;
4337 fra.me.line = 766;
4338 fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___empty_init;
4339 fra.me.has_broke = 0;
4340 fra.me.REG_size = 1;
4341 fra.me.nitni_local_ref_head = NULL;
4342 fra.me.REG[0] = NIT_NULL;
4343 fra.me.REG[0] = p0;
4344 stack_frame_head = fra.me.prev;
4345 init_table[itpos27] = 1;
4346 return;
4347 }
4348 void parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t p0, val_t p1, int* init_table){
4349 int itpos28 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInterfaceClasskind].i;
4350 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4351 val_t REGB0;
4352 val_t tmp;
4353 if (init_table[itpos28]) return;
4354 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4355 fra.me.file = LOCATE_parser___parser_prod;
4356 fra.me.line = 768;
4357 fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind;
4358 fra.me.has_broke = 0;
4359 fra.me.REG_size = 3;
4360 fra.me.nitni_local_ref_head = NULL;
4361 fra.me.REG[0] = NIT_NULL;
4362 fra.me.REG[1] = NIT_NULL;
4363 fra.me.REG[2] = NIT_NULL;
4364 fra.me.REG[0] = p0;
4365 fra.me.REG[1] = p1;
4366 /* parser/parser_prod.nit:768 */
4367 fra.me.REG[2] = fra.me.REG[0];
4368 /* parser/parser_prod.nit:772 */
4369 CALL_parser___parser_prod___AInterfaceClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
4370 /* parser/parser_prod.nit:773 */
4371 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4372 if (UNTAG_Bool(REGB0)) {
4373 } else {
4374 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 773);
4375 }
4376 ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[2]) = fra.me.REG[1];
4377 /* parser/parser_prod.nit:774 */
4378 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4379 if (UNTAG_Bool(REGB0)) {
4380 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 774);
4381 }
4382 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4383 stack_frame_head = fra.me.prev;
4384 init_table[itpos28] = 1;
4385 return;
4386 }
4387 void parser___parser_prod___AInterfaceClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4388 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4389 val_t REGB0;
4390 val_t REGB1;
4391 val_t tmp;
4392 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4393 fra.me.file = LOCATE_parser___parser_prod;
4394 fra.me.line = 777;
4395 fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___replace_child;
4396 fra.me.has_broke = 0;
4397 fra.me.REG_size = 4;
4398 fra.me.nitni_local_ref_head = NULL;
4399 fra.me.REG[0] = NIT_NULL;
4400 fra.me.REG[1] = NIT_NULL;
4401 fra.me.REG[2] = NIT_NULL;
4402 fra.me.REG[3] = NIT_NULL;
4403 fra.me.REG[0] = p0;
4404 fra.me.REG[1] = p1;
4405 fra.me.REG[2] = p2;
4406 /* parser/parser_prod.nit:779 */
4407 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0])!=NIT_NULL);
4408 if (UNTAG_Bool(REGB0)) {
4409 } else {
4410 nit_abort("Uninitialized attribute %s", "_n_kwinterface", LOCATE_parser___parser_prod, 779);
4411 }
4412 fra.me.REG[3] = ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]);
4413 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4414 if (UNTAG_Bool(REGB0)) {
4415 } else {
4416 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4417 REGB0 = REGB1;
4418 }
4419 if (UNTAG_Bool(REGB0)) {
4420 /* parser/parser_prod.nit:780 */
4421 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4422 if (UNTAG_Bool(REGB0)) {
4423 } else {
4424 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4425 if (UNTAG_Bool(REGB1)) {
4426 REGB1 = TAG_Bool(false);
4427 REGB0 = REGB1;
4428 } else {
4429 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4430 REGB0 = REGB1;
4431 }
4432 }
4433 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4434 if (UNTAG_Bool(REGB0)) {
4435 /* parser/parser_prod.nit:781 */
4436 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4437 if (UNTAG_Bool(REGB0)) {
4438 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 781);
4439 }
4440 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4441 /* parser/parser_prod.nit:782 */
4442 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwinterface, ID_parser___parser_nodes___TKwinterface)) /*cast TKwinterface*/;
4443 if (UNTAG_Bool(REGB0)) {
4444 } else {
4445 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 782);
4446 }
4447 /* parser/parser_prod.nit:783 */
4448 ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]) = fra.me.REG[2];
4449 } else {
4450 /* parser/parser_prod.nit:785 */
4451 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 785);
4452 }
4453 /* parser/parser_prod.nit:787 */
4454 goto label1;
4455 }
4456 label1: while(0);
4457 stack_frame_head = fra.me.prev;
4458 return;
4459 }
4460 void parser___parser_prod___AInterfaceClasskind___visit_all(val_t p0, val_t p1){
4461 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4462 val_t REGB0;
4463 val_t tmp;
4464 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4465 fra.me.file = LOCATE_parser___parser_prod;
4466 fra.me.line = 791;
4467 fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___visit_all;
4468 fra.me.has_broke = 0;
4469 fra.me.REG_size = 2;
4470 fra.me.nitni_local_ref_head = NULL;
4471 fra.me.REG[0] = NIT_NULL;
4472 fra.me.REG[1] = NIT_NULL;
4473 fra.me.REG[0] = p0;
4474 fra.me.REG[1] = p1;
4475 /* parser/parser_prod.nit:793 */
4476 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0])!=NIT_NULL);
4477 if (UNTAG_Bool(REGB0)) {
4478 } else {
4479 nit_abort("Uninitialized attribute %s", "_n_kwinterface", LOCATE_parser___parser_prod, 793);
4480 }
4481 fra.me.REG[0] = ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]);
4482 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4483 stack_frame_head = fra.me.prev;
4484 return;
4485 }
4486 void parser___parser_prod___AEnumClasskind___empty_init(val_t p0, int* init_table){
4487 int itpos29 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEnumClasskind].i;
4488 struct {struct stack_frame_t me;} fra;
4489 val_t tmp;
4490 if (init_table[itpos29]) return;
4491 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4492 fra.me.file = LOCATE_parser___parser_prod;
4493 fra.me.line = 797;
4494 fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___empty_init;
4495 fra.me.has_broke = 0;
4496 fra.me.REG_size = 1;
4497 fra.me.nitni_local_ref_head = NULL;
4498 fra.me.REG[0] = NIT_NULL;
4499 fra.me.REG[0] = p0;
4500 stack_frame_head = fra.me.prev;
4501 init_table[itpos29] = 1;
4502 return;
4503 }
4504 void parser___parser_prod___AEnumClasskind___init_aenumclasskind(val_t p0, val_t p1, int* init_table){
4505 int itpos30 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEnumClasskind].i;
4506 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4507 val_t REGB0;
4508 val_t tmp;
4509 if (init_table[itpos30]) return;
4510 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4511 fra.me.file = LOCATE_parser___parser_prod;
4512 fra.me.line = 799;
4513 fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___init_aenumclasskind;
4514 fra.me.has_broke = 0;
4515 fra.me.REG_size = 3;
4516 fra.me.nitni_local_ref_head = NULL;
4517 fra.me.REG[0] = NIT_NULL;
4518 fra.me.REG[1] = NIT_NULL;
4519 fra.me.REG[2] = NIT_NULL;
4520 fra.me.REG[0] = p0;
4521 fra.me.REG[1] = p1;
4522 /* parser/parser_prod.nit:799 */
4523 fra.me.REG[2] = fra.me.REG[0];
4524 /* parser/parser_prod.nit:803 */
4525 CALL_parser___parser_prod___AEnumClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
4526 /* parser/parser_prod.nit:804 */
4527 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4528 if (UNTAG_Bool(REGB0)) {
4529 } else {
4530 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 804);
4531 }
4532 ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[2]) = fra.me.REG[1];
4533 /* parser/parser_prod.nit:805 */
4534 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4535 if (UNTAG_Bool(REGB0)) {
4536 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 805);
4537 }
4538 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4539 stack_frame_head = fra.me.prev;
4540 init_table[itpos30] = 1;
4541 return;
4542 }
4543 void parser___parser_prod___AEnumClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4544 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4545 val_t REGB0;
4546 val_t REGB1;
4547 val_t tmp;
4548 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4549 fra.me.file = LOCATE_parser___parser_prod;
4550 fra.me.line = 808;
4551 fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___replace_child;
4552 fra.me.has_broke = 0;
4553 fra.me.REG_size = 4;
4554 fra.me.nitni_local_ref_head = NULL;
4555 fra.me.REG[0] = NIT_NULL;
4556 fra.me.REG[1] = NIT_NULL;
4557 fra.me.REG[2] = NIT_NULL;
4558 fra.me.REG[3] = NIT_NULL;
4559 fra.me.REG[0] = p0;
4560 fra.me.REG[1] = p1;
4561 fra.me.REG[2] = p2;
4562 /* parser/parser_prod.nit:810 */
4563 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0])!=NIT_NULL);
4564 if (UNTAG_Bool(REGB0)) {
4565 } else {
4566 nit_abort("Uninitialized attribute %s", "_n_kwenum", LOCATE_parser___parser_prod, 810);
4567 }
4568 fra.me.REG[3] = ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]);
4569 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4570 if (UNTAG_Bool(REGB0)) {
4571 } else {
4572 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4573 REGB0 = REGB1;
4574 }
4575 if (UNTAG_Bool(REGB0)) {
4576 /* parser/parser_prod.nit:811 */
4577 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4578 if (UNTAG_Bool(REGB0)) {
4579 } else {
4580 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4581 if (UNTAG_Bool(REGB1)) {
4582 REGB1 = TAG_Bool(false);
4583 REGB0 = REGB1;
4584 } else {
4585 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4586 REGB0 = REGB1;
4587 }
4588 }
4589 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4590 if (UNTAG_Bool(REGB0)) {
4591 /* parser/parser_prod.nit:812 */
4592 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4593 if (UNTAG_Bool(REGB0)) {
4594 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 812);
4595 }
4596 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4597 /* parser/parser_prod.nit:813 */
4598 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwenum, ID_parser___parser_nodes___TKwenum)) /*cast TKwenum*/;
4599 if (UNTAG_Bool(REGB0)) {
4600 } else {
4601 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 813);
4602 }
4603 /* parser/parser_prod.nit:814 */
4604 ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]) = fra.me.REG[2];
4605 } else {
4606 /* parser/parser_prod.nit:816 */
4607 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 816);
4608 }
4609 /* parser/parser_prod.nit:818 */
4610 goto label1;
4611 }
4612 label1: while(0);
4613 stack_frame_head = fra.me.prev;
4614 return;
4615 }
4616 void parser___parser_prod___AEnumClasskind___visit_all(val_t p0, val_t p1){
4617 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4618 val_t REGB0;
4619 val_t tmp;
4620 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4621 fra.me.file = LOCATE_parser___parser_prod;
4622 fra.me.line = 822;
4623 fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___visit_all;
4624 fra.me.has_broke = 0;
4625 fra.me.REG_size = 2;
4626 fra.me.nitni_local_ref_head = NULL;
4627 fra.me.REG[0] = NIT_NULL;
4628 fra.me.REG[1] = NIT_NULL;
4629 fra.me.REG[0] = p0;
4630 fra.me.REG[1] = p1;
4631 /* parser/parser_prod.nit:824 */
4632 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0])!=NIT_NULL);
4633 if (UNTAG_Bool(REGB0)) {
4634 } else {
4635 nit_abort("Uninitialized attribute %s", "_n_kwenum", LOCATE_parser___parser_prod, 824);
4636 }
4637 fra.me.REG[0] = ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]);
4638 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4639 stack_frame_head = fra.me.prev;
4640 return;
4641 }
4642 void parser___parser_prod___AExternClasskind___empty_init(val_t p0, int* init_table){
4643 int itpos31 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternClasskind].i;
4644 struct {struct stack_frame_t me;} fra;
4645 val_t tmp;
4646 if (init_table[itpos31]) return;
4647 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4648 fra.me.file = LOCATE_parser___parser_prod;
4649 fra.me.line = 828;
4650 fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___empty_init;
4651 fra.me.has_broke = 0;
4652 fra.me.REG_size = 1;
4653 fra.me.nitni_local_ref_head = NULL;
4654 fra.me.REG[0] = NIT_NULL;
4655 fra.me.REG[0] = p0;
4656 stack_frame_head = fra.me.prev;
4657 init_table[itpos31] = 1;
4658 return;
4659 }
4660 void parser___parser_prod___AExternClasskind___init_aexternclasskind(val_t p0, val_t p1, int* init_table){
4661 int itpos32 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternClasskind].i;
4662 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4663 val_t REGB0;
4664 val_t tmp;
4665 if (init_table[itpos32]) return;
4666 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4667 fra.me.file = LOCATE_parser___parser_prod;
4668 fra.me.line = 830;
4669 fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___init_aexternclasskind;
4670 fra.me.has_broke = 0;
4671 fra.me.REG_size = 3;
4672 fra.me.nitni_local_ref_head = NULL;
4673 fra.me.REG[0] = NIT_NULL;
4674 fra.me.REG[1] = NIT_NULL;
4675 fra.me.REG[2] = NIT_NULL;
4676 fra.me.REG[0] = p0;
4677 fra.me.REG[1] = p1;
4678 /* parser/parser_prod.nit:830 */
4679 fra.me.REG[2] = fra.me.REG[0];
4680 /* parser/parser_prod.nit:834 */
4681 CALL_parser___parser_prod___AExternClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
4682 /* parser/parser_prod.nit:835 */
4683 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4684 if (UNTAG_Bool(REGB0)) {
4685 } else {
4686 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 835);
4687 }
4688 ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[2]) = fra.me.REG[1];
4689 /* parser/parser_prod.nit:836 */
4690 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4691 if (UNTAG_Bool(REGB0)) {
4692 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 836);
4693 }
4694 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4695 stack_frame_head = fra.me.prev;
4696 init_table[itpos32] = 1;
4697 return;
4698 }
4699 void parser___parser_prod___AExternClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4700 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4701 val_t REGB0;
4702 val_t REGB1;
4703 val_t tmp;
4704 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4705 fra.me.file = LOCATE_parser___parser_prod;
4706 fra.me.line = 839;
4707 fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___replace_child;
4708 fra.me.has_broke = 0;
4709 fra.me.REG_size = 4;
4710 fra.me.nitni_local_ref_head = NULL;
4711 fra.me.REG[0] = NIT_NULL;
4712 fra.me.REG[1] = NIT_NULL;
4713 fra.me.REG[2] = NIT_NULL;
4714 fra.me.REG[3] = NIT_NULL;
4715 fra.me.REG[0] = p0;
4716 fra.me.REG[1] = p1;
4717 fra.me.REG[2] = p2;
4718 /* parser/parser_prod.nit:841 */
4719 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0])!=NIT_NULL);
4720 if (UNTAG_Bool(REGB0)) {
4721 } else {
4722 nit_abort("Uninitialized attribute %s", "_n_kwextern", LOCATE_parser___parser_prod, 841);
4723 }
4724 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0]);
4725 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4726 if (UNTAG_Bool(REGB0)) {
4727 } else {
4728 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4729 REGB0 = REGB1;
4730 }
4731 if (UNTAG_Bool(REGB0)) {
4732 /* parser/parser_prod.nit:842 */
4733 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4734 if (UNTAG_Bool(REGB0)) {
4735 } else {
4736 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4737 if (UNTAG_Bool(REGB1)) {
4738 REGB1 = TAG_Bool(false);
4739 REGB0 = REGB1;
4740 } else {
4741 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4742 REGB0 = REGB1;
4743 }
4744 }
4745 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4746 if (UNTAG_Bool(REGB0)) {
4747 /* parser/parser_prod.nit:843 */
4748 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4749 if (UNTAG_Bool(REGB0)) {
4750 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 843);
4751 }
4752 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4753 /* parser/parser_prod.nit:844 */
4754 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwextern, ID_parser___parser_nodes___TKwextern)) /*cast TKwextern*/;
4755 if (UNTAG_Bool(REGB0)) {
4756 } else {
4757 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 844);
4758 }
4759 /* parser/parser_prod.nit:845 */
4760 ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0]) = fra.me.REG[2];
4761 } else {
4762 /* parser/parser_prod.nit:847 */
4763 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 847);
4764 }
4765 /* parser/parser_prod.nit:849 */
4766 goto label1;
4767 }
4768 label1: while(0);
4769 stack_frame_head = fra.me.prev;
4770 return;
4771 }
4772 void parser___parser_prod___AExternClasskind___visit_all(val_t p0, val_t p1){
4773 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4774 val_t REGB0;
4775 val_t tmp;
4776 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4777 fra.me.file = LOCATE_parser___parser_prod;
4778 fra.me.line = 853;
4779 fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___visit_all;
4780 fra.me.has_broke = 0;
4781 fra.me.REG_size = 2;
4782 fra.me.nitni_local_ref_head = NULL;
4783 fra.me.REG[0] = NIT_NULL;
4784 fra.me.REG[1] = NIT_NULL;
4785 fra.me.REG[0] = p0;
4786 fra.me.REG[1] = p1;
4787 /* parser/parser_prod.nit:855 */
4788 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0])!=NIT_NULL);
4789 if (UNTAG_Bool(REGB0)) {
4790 } else {
4791 nit_abort("Uninitialized attribute %s", "_n_kwextern", LOCATE_parser___parser_prod, 855);
4792 }
4793 fra.me.REG[0] = ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0]);
4794 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4795 stack_frame_head = fra.me.prev;
4796 return;
4797 }
4798 void parser___parser_prod___AFormaldef___empty_init(val_t p0, int* init_table){
4799 int itpos33 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFormaldef].i;
4800 struct {struct stack_frame_t me;} fra;
4801 val_t tmp;
4802 if (init_table[itpos33]) return;
4803 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4804 fra.me.file = LOCATE_parser___parser_prod;
4805 fra.me.line = 859;
4806 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___empty_init;
4807 fra.me.has_broke = 0;
4808 fra.me.REG_size = 1;
4809 fra.me.nitni_local_ref_head = NULL;
4810 fra.me.REG[0] = NIT_NULL;
4811 fra.me.REG[0] = p0;
4812 stack_frame_head = fra.me.prev;
4813 init_table[itpos33] = 1;
4814 return;
4815 }
4816 void parser___parser_prod___AFormaldef___init_aformaldef(val_t p0, val_t p1, val_t p2, int* init_table){
4817 int itpos34 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFormaldef].i;
4818 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4819 val_t REGB0;
4820 val_t REGB1;
4821 val_t tmp;
4822 if (init_table[itpos34]) return;
4823 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4824 fra.me.file = LOCATE_parser___parser_prod;
4825 fra.me.line = 861;
4826 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___init_aformaldef;
4827 fra.me.has_broke = 0;
4828 fra.me.REG_size = 4;
4829 fra.me.nitni_local_ref_head = NULL;
4830 fra.me.REG[0] = NIT_NULL;
4831 fra.me.REG[1] = NIT_NULL;
4832 fra.me.REG[2] = NIT_NULL;
4833 fra.me.REG[3] = NIT_NULL;
4834 fra.me.REG[0] = p0;
4835 fra.me.REG[1] = p1;
4836 fra.me.REG[2] = p2;
4837 /* parser/parser_prod.nit:861 */
4838 fra.me.REG[3] = fra.me.REG[0];
4839 /* parser/parser_prod.nit:866 */
4840 CALL_parser___parser_prod___AFormaldef___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
4841 /* parser/parser_prod.nit:867 */
4842 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4843 if (UNTAG_Bool(REGB0)) {
4844 } else {
4845 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 867);
4846 }
4847 ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[3]) = fra.me.REG[1];
4848 /* parser/parser_prod.nit:868 */
4849 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4850 if (UNTAG_Bool(REGB0)) {
4851 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 868);
4852 }
4853 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4854 /* parser/parser_prod.nit:869 */
4855 ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[3]) = fra.me.REG[2];
4856 /* parser/parser_prod.nit:870 */
4857 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4858 if (UNTAG_Bool(REGB0)) {
4859 } else {
4860 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4861 if (UNTAG_Bool(REGB1)) {
4862 REGB1 = TAG_Bool(false);
4863 REGB0 = REGB1;
4864 } else {
4865 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4866 REGB0 = REGB1;
4867 }
4868 }
4869 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4870 if (UNTAG_Bool(REGB0)) {
4871 /* parser/parser_prod.nit:871 */
4872 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4873 if (UNTAG_Bool(REGB0)) {
4874 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 871);
4875 }
4876 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4877 }
4878 stack_frame_head = fra.me.prev;
4879 init_table[itpos34] = 1;
4880 return;
4881 }
4882 void parser___parser_prod___AFormaldef___replace_child(val_t p0, val_t p1, val_t p2){
4883 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4884 val_t REGB0;
4885 val_t REGB1;
4886 val_t tmp;
4887 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4888 fra.me.file = LOCATE_parser___parser_prod;
4889 fra.me.line = 875;
4890 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___replace_child;
4891 fra.me.has_broke = 0;
4892 fra.me.REG_size = 4;
4893 fra.me.nitni_local_ref_head = NULL;
4894 fra.me.REG[0] = NIT_NULL;
4895 fra.me.REG[1] = NIT_NULL;
4896 fra.me.REG[2] = NIT_NULL;
4897 fra.me.REG[3] = NIT_NULL;
4898 fra.me.REG[0] = p0;
4899 fra.me.REG[1] = p1;
4900 fra.me.REG[2] = p2;
4901 /* parser/parser_prod.nit:877 */
4902 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0])!=NIT_NULL);
4903 if (UNTAG_Bool(REGB0)) {
4904 } else {
4905 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 877);
4906 }
4907 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0]);
4908 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4909 if (UNTAG_Bool(REGB0)) {
4910 } else {
4911 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4912 REGB0 = REGB1;
4913 }
4914 if (UNTAG_Bool(REGB0)) {
4915 /* parser/parser_prod.nit:878 */
4916 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4917 if (UNTAG_Bool(REGB0)) {
4918 } else {
4919 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4920 if (UNTAG_Bool(REGB1)) {
4921 REGB1 = TAG_Bool(false);
4922 REGB0 = REGB1;
4923 } else {
4924 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4925 REGB0 = REGB1;
4926 }
4927 }
4928 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4929 if (UNTAG_Bool(REGB0)) {
4930 /* parser/parser_prod.nit:879 */
4931 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4932 if (UNTAG_Bool(REGB0)) {
4933 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 879);
4934 }
4935 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4936 /* parser/parser_prod.nit:880 */
4937 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
4938 if (UNTAG_Bool(REGB0)) {
4939 } else {
4940 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 880);
4941 }
4942 /* parser/parser_prod.nit:881 */
4943 ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0]) = fra.me.REG[2];
4944 } else {
4945 /* parser/parser_prod.nit:883 */
4946 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 883);
4947 }
4948 /* parser/parser_prod.nit:885 */
4949 goto label1;
4950 }
4951 /* parser/parser_prod.nit:887 */
4952 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]);
4953 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
4954 if (UNTAG_Bool(REGB0)) {
4955 } else {
4956 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4957 if (UNTAG_Bool(REGB1)) {
4958 REGB1 = TAG_Bool(false);
4959 REGB0 = REGB1;
4960 } else {
4961 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4962 REGB0 = REGB1;
4963 }
4964 }
4965 if (UNTAG_Bool(REGB0)) {
4966 /* parser/parser_prod.nit:888 */
4967 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4968 if (UNTAG_Bool(REGB0)) {
4969 } else {
4970 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4971 if (UNTAG_Bool(REGB1)) {
4972 REGB1 = TAG_Bool(false);
4973 REGB0 = REGB1;
4974 } else {
4975 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4976 REGB0 = REGB1;
4977 }
4978 }
4979 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4980 if (UNTAG_Bool(REGB0)) {
4981 /* parser/parser_prod.nit:889 */
4982 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4983 if (UNTAG_Bool(REGB0)) {
4984 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 889);
4985 }
4986 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4987 /* parser/parser_prod.nit:890 */
4988 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
4989 if (UNTAG_Bool(REGB0)) {
4990 } else {
4991 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 890);
4992 }
4993 /* parser/parser_prod.nit:891 */
4994 ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]) = fra.me.REG[2];
4995 } else {
4996 /* parser/parser_prod.nit:893 */
4997 ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]) = NIT_NULL;
4998 }
4999 /* parser/parser_prod.nit:895 */
5000 goto label1;
5001 }
5002 label1: while(0);
5003 stack_frame_head = fra.me.prev;
5004 return;
5005 }
5006 void parser___parser_prod___AFormaldef___visit_all(val_t p0, val_t p1){
5007 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5008 val_t REGB0;
5009 val_t REGB1;
5010 val_t tmp;
5011 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5012 fra.me.file = LOCATE_parser___parser_prod;
5013 fra.me.line = 899;
5014 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___visit_all;
5015 fra.me.has_broke = 0;
5016 fra.me.REG_size = 4;
5017 fra.me.nitni_local_ref_head = NULL;
5018 fra.me.REG[0] = NIT_NULL;
5019 fra.me.REG[1] = NIT_NULL;
5020 fra.me.REG[2] = NIT_NULL;
5021 fra.me.REG[3] = NIT_NULL;
5022 fra.me.REG[0] = p0;
5023 fra.me.REG[1] = p1;
5024 /* parser/parser_prod.nit:899 */
5025 fra.me.REG[2] = fra.me.REG[0];
5026 /* parser/parser_prod.nit:901 */
5027 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[2])!=NIT_NULL);
5028 if (UNTAG_Bool(REGB0)) {
5029 } else {
5030 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 901);
5031 }
5032 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[2]);
5033 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5034 /* parser/parser_prod.nit:902 */
5035 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[2]);
5036 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5037 if (UNTAG_Bool(REGB0)) {
5038 } else {
5039 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5040 if (UNTAG_Bool(REGB1)) {
5041 REGB1 = TAG_Bool(false);
5042 REGB0 = REGB1;
5043 } else {
5044 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5045 REGB0 = REGB1;
5046 }
5047 }
5048 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5049 if (UNTAG_Bool(REGB0)) {
5050 /* parser/parser_prod.nit:903 */
5051 fra.me.REG[2] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[2]);
5052 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
5053 if (UNTAG_Bool(REGB0)) {
5054 } else {
5055 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 903);
5056 }
5057 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5058 }
5059 stack_frame_head = fra.me.prev;
5060 return;
5061 }
5062 void parser___parser_prod___ASuperclass___empty_init(val_t p0, int* init_table){
5063 int itpos35 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperclass].i;
5064 struct {struct stack_frame_t me;} fra;
5065 val_t tmp;
5066 if (init_table[itpos35]) return;
5067 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5068 fra.me.file = LOCATE_parser___parser_prod;
5069 fra.me.line = 908;
5070 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___empty_init;
5071 fra.me.has_broke = 0;
5072 fra.me.REG_size = 1;
5073 fra.me.nitni_local_ref_head = NULL;
5074 fra.me.REG[0] = NIT_NULL;
5075 fra.me.REG[0] = p0;
5076 stack_frame_head = fra.me.prev;
5077 init_table[itpos35] = 1;
5078 return;
5079 }
5080 void parser___parser_prod___ASuperclass___init_asuperclass(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
5081 int itpos36 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperclass].i;
5082 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
5083 val_t REGB0;
5084 val_t REGB1;
5085 val_t tmp;
5086 if (init_table[itpos36]) return;
5087 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5088 fra.me.file = LOCATE_parser___parser_prod;
5089 fra.me.line = 910;
5090 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___init_asuperclass;
5091 fra.me.has_broke = 0;
5092 fra.me.REG_size = 5;
5093 fra.me.nitni_local_ref_head = NULL;
5094 fra.me.REG[0] = NIT_NULL;
5095 fra.me.REG[1] = NIT_NULL;
5096 fra.me.REG[2] = NIT_NULL;
5097 fra.me.REG[3] = NIT_NULL;
5098 fra.me.REG[4] = NIT_NULL;
5099 fra.me.REG[0] = p0;
5100 fra.me.REG[1] = p1;
5101 fra.me.REG[2] = p2;
5102 fra.me.REG[3] = p3;
5103 /* parser/parser_prod.nit:910 */
5104 fra.me.REG[4] = fra.me.REG[0];
5105 /* parser/parser_prod.nit:916 */
5106 CALL_parser___parser_prod___ASuperclass___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
5107 /* parser/parser_prod.nit:917 */
5108 ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[4]) = fra.me.REG[1];
5109 /* parser/parser_prod.nit:918 */
5110 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5111 if (UNTAG_Bool(REGB0)) {
5112 } else {
5113 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5114 if (UNTAG_Bool(REGB1)) {
5115 REGB1 = TAG_Bool(false);
5116 REGB0 = REGB1;
5117 } else {
5118 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
5119 REGB0 = REGB1;
5120 }
5121 }
5122 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5123 if (UNTAG_Bool(REGB0)) {
5124 /* parser/parser_prod.nit:919 */
5125 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5126 if (UNTAG_Bool(REGB0)) {
5127 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 919);
5128 }
5129 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
5130 }
5131 /* parser/parser_prod.nit:921 */
5132 ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[4]) = fra.me.REG[2];
5133 /* parser/parser_prod.nit:922 */
5134 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5135 if (UNTAG_Bool(REGB0)) {
5136 } else {
5137 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5138 if (UNTAG_Bool(REGB1)) {
5139 REGB1 = TAG_Bool(false);
5140 REGB0 = REGB1;
5141 } else {
5142 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5143 REGB0 = REGB1;
5144 }
5145 }
5146 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5147 if (UNTAG_Bool(REGB0)) {
5148 /* parser/parser_prod.nit:923 */
5149 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5150 if (UNTAG_Bool(REGB0)) {
5151 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 923);
5152 }
5153 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
5154 }
5155 /* parser/parser_prod.nit:925 */
5156 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
5157 if (UNTAG_Bool(REGB0)) {
5158 } else {
5159 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 925);
5160 }
5161 ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[4]) = fra.me.REG[3];
5162 /* parser/parser_prod.nit:926 */
5163 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5164 if (UNTAG_Bool(REGB0)) {
5165 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 926);
5166 }
5167 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
5168 stack_frame_head = fra.me.prev;
5169 init_table[itpos36] = 1;
5170 return;
5171 }
5172 void parser___parser_prod___ASuperclass___replace_child(val_t p0, val_t p1, val_t p2){
5173 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5174 val_t REGB0;
5175 val_t REGB1;
5176 val_t tmp;
5177 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5178 fra.me.file = LOCATE_parser___parser_prod;
5179 fra.me.line = 929;
5180 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___replace_child;
5181 fra.me.has_broke = 0;
5182 fra.me.REG_size = 4;
5183 fra.me.nitni_local_ref_head = NULL;
5184 fra.me.REG[0] = NIT_NULL;
5185 fra.me.REG[1] = NIT_NULL;
5186 fra.me.REG[2] = NIT_NULL;
5187 fra.me.REG[3] = NIT_NULL;
5188 fra.me.REG[0] = p0;
5189 fra.me.REG[1] = p1;
5190 fra.me.REG[2] = p2;
5191 /* parser/parser_prod.nit:931 */
5192 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]);
5193 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5194 if (UNTAG_Bool(REGB0)) {
5195 } else {
5196 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5197 if (UNTAG_Bool(REGB1)) {
5198 REGB1 = TAG_Bool(false);
5199 REGB0 = REGB1;
5200 } else {
5201 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5202 REGB0 = REGB1;
5203 }
5204 }
5205 if (UNTAG_Bool(REGB0)) {
5206 /* parser/parser_prod.nit:932 */
5207 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5208 if (UNTAG_Bool(REGB0)) {
5209 } else {
5210 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5211 if (UNTAG_Bool(REGB1)) {
5212 REGB1 = TAG_Bool(false);
5213 REGB0 = REGB1;
5214 } else {
5215 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5216 REGB0 = REGB1;
5217 }
5218 }
5219 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5220 if (UNTAG_Bool(REGB0)) {
5221 /* parser/parser_prod.nit:933 */
5222 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5223 if (UNTAG_Bool(REGB0)) {
5224 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 933);
5225 }
5226 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5227 /* parser/parser_prod.nit:934 */
5228 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwspecial, ID_parser___parser_nodes___TKwspecial)) /*cast TKwspecial*/;
5229 if (UNTAG_Bool(REGB0)) {
5230 } else {
5231 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 934);
5232 }
5233 /* parser/parser_prod.nit:935 */
5234 ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]) = fra.me.REG[2];
5235 } else {
5236 /* parser/parser_prod.nit:937 */
5237 ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]) = NIT_NULL;
5238 }
5239 /* parser/parser_prod.nit:939 */
5240 goto label1;
5241 }
5242 /* parser/parser_prod.nit:941 */
5243 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]);
5244 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5245 if (UNTAG_Bool(REGB0)) {
5246 } else {
5247 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5248 if (UNTAG_Bool(REGB1)) {
5249 REGB1 = TAG_Bool(false);
5250 REGB0 = REGB1;
5251 } else {
5252 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5253 REGB0 = REGB1;
5254 }
5255 }
5256 if (UNTAG_Bool(REGB0)) {
5257 /* parser/parser_prod.nit:942 */
5258 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5259 if (UNTAG_Bool(REGB0)) {
5260 } else {
5261 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5262 if (UNTAG_Bool(REGB1)) {
5263 REGB1 = TAG_Bool(false);
5264 REGB0 = REGB1;
5265 } else {
5266 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5267 REGB0 = REGB1;
5268 }
5269 }
5270 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5271 if (UNTAG_Bool(REGB0)) {
5272 /* parser/parser_prod.nit:943 */
5273 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5274 if (UNTAG_Bool(REGB0)) {
5275 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 943);
5276 }
5277 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5278 /* parser/parser_prod.nit:944 */
5279 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwsuper, ID_parser___parser_nodes___TKwsuper)) /*cast TKwsuper*/;
5280 if (UNTAG_Bool(REGB0)) {
5281 } else {
5282 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 944);
5283 }
5284 /* parser/parser_prod.nit:945 */
5285 ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
5286 } else {
5287 /* parser/parser_prod.nit:947 */
5288 ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]) = NIT_NULL;
5289 }
5290 /* parser/parser_prod.nit:949 */
5291 goto label1;
5292 }
5293 /* parser/parser_prod.nit:951 */
5294 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0])!=NIT_NULL);
5295 if (UNTAG_Bool(REGB0)) {
5296 } else {
5297 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 951);
5298 }
5299 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0]);
5300 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
5301 if (UNTAG_Bool(REGB0)) {
5302 } else {
5303 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5304 REGB0 = REGB1;
5305 }
5306 if (UNTAG_Bool(REGB0)) {
5307 /* parser/parser_prod.nit:952 */
5308 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5309 if (UNTAG_Bool(REGB0)) {
5310 } else {
5311 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5312 if (UNTAG_Bool(REGB1)) {
5313 REGB1 = TAG_Bool(false);
5314 REGB0 = REGB1;
5315 } else {
5316 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5317 REGB0 = REGB1;
5318 }
5319 }
5320 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5321 if (UNTAG_Bool(REGB0)) {
5322 /* parser/parser_prod.nit:953 */
5323 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5324 if (UNTAG_Bool(REGB0)) {
5325 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 953);
5326 }
5327 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5328 /* parser/parser_prod.nit:954 */
5329 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
5330 if (UNTAG_Bool(REGB0)) {
5331 } else {
5332 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 954);
5333 }
5334 /* parser/parser_prod.nit:955 */
5335 ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0]) = fra.me.REG[2];
5336 } else {
5337 /* parser/parser_prod.nit:957 */
5338 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 957);
5339 }
5340 /* parser/parser_prod.nit:959 */
5341 goto label1;
5342 }
5343 label1: while(0);
5344 stack_frame_head = fra.me.prev;
5345 return;
5346 }
5347 void parser___parser_prod___ASuperclass___visit_all(val_t p0, val_t p1){
5348 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5349 val_t REGB0;
5350 val_t REGB1;
5351 val_t tmp;
5352 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5353 fra.me.file = LOCATE_parser___parser_prod;
5354 fra.me.line = 963;
5355 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___visit_all;
5356 fra.me.has_broke = 0;
5357 fra.me.REG_size = 4;
5358 fra.me.nitni_local_ref_head = NULL;
5359 fra.me.REG[0] = NIT_NULL;
5360 fra.me.REG[1] = NIT_NULL;
5361 fra.me.REG[2] = NIT_NULL;
5362 fra.me.REG[3] = NIT_NULL;
5363 fra.me.REG[0] = p0;
5364 fra.me.REG[1] = p1;
5365 /* parser/parser_prod.nit:963 */
5366 fra.me.REG[2] = fra.me.REG[0];
5367 /* parser/parser_prod.nit:965 */
5368 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[2]);
5369 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5370 if (UNTAG_Bool(REGB0)) {
5371 } else {
5372 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5373 if (UNTAG_Bool(REGB1)) {
5374 REGB1 = TAG_Bool(false);
5375 REGB0 = REGB1;
5376 } else {
5377 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5378 REGB0 = REGB1;
5379 }
5380 }
5381 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5382 if (UNTAG_Bool(REGB0)) {
5383 /* parser/parser_prod.nit:966 */
5384 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[2]);
5385 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwspecial, ID_parser___parser_nodes___TKwspecial)) /*cast TKwspecial*/;
5386 if (UNTAG_Bool(REGB0)) {
5387 } else {
5388 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 966);
5389 }
5390 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5391 }
5392 /* parser/parser_prod.nit:968 */
5393 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[2]);
5394 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5395 if (UNTAG_Bool(REGB0)) {
5396 } else {
5397 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5398 if (UNTAG_Bool(REGB1)) {
5399 REGB1 = TAG_Bool(false);
5400 REGB0 = REGB1;
5401 } else {
5402 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5403 REGB0 = REGB1;
5404 }
5405 }
5406 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5407 if (UNTAG_Bool(REGB0)) {
5408 /* parser/parser_prod.nit:969 */
5409 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[2]);
5410 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwsuper, ID_parser___parser_nodes___TKwsuper)) /*cast TKwsuper*/;
5411 if (UNTAG_Bool(REGB0)) {
5412 } else {
5413 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 969);
5414 }
5415 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5416 }
5417 /* parser/parser_prod.nit:971 */
5418 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[2])!=NIT_NULL);
5419 if (UNTAG_Bool(REGB0)) {
5420 } else {
5421 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 971);
5422 }
5423 fra.me.REG[2] = ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[2]);
5424 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5425 stack_frame_head = fra.me.prev;
5426 return;
5427 }
5428 void parser___parser_prod___AAttrPropdef___empty_init(val_t p0, int* init_table){
5429 int itpos37 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrPropdef].i;
5430 struct {struct stack_frame_t me;} fra;
5431 val_t tmp;
5432 if (init_table[itpos37]) return;
5433 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5434 fra.me.file = LOCATE_parser___parser_prod;
5435 fra.me.line = 975;
5436 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___empty_init;
5437 fra.me.has_broke = 0;
5438 fra.me.REG_size = 1;
5439 fra.me.nitni_local_ref_head = NULL;
5440 fra.me.REG[0] = NIT_NULL;
5441 fra.me.REG[0] = p0;
5442 stack_frame_head = fra.me.prev;
5443 init_table[itpos37] = 1;
5444 return;
5445 }
5446 void parser___parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, val_t p9, val_t p10, int* init_table){
5447 int itpos38 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrPropdef].i;
5448 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
5449 val_t REGB0;
5450 val_t REGB1;
5451 val_t tmp;
5452 if (init_table[itpos38]) return;
5453 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5454 fra.me.file = LOCATE_parser___parser_prod;
5455 fra.me.line = 977;
5456 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___init_aattrpropdef;
5457 fra.me.has_broke = 0;
5458 fra.me.REG_size = 12;
5459 fra.me.nitni_local_ref_head = NULL;
5460 fra.me.REG[0] = NIT_NULL;
5461 fra.me.REG[1] = NIT_NULL;
5462 fra.me.REG[2] = NIT_NULL;
5463 fra.me.REG[3] = NIT_NULL;
5464 fra.me.REG[4] = NIT_NULL;
5465 fra.me.REG[5] = NIT_NULL;
5466 fra.me.REG[6] = NIT_NULL;
5467 fra.me.REG[7] = NIT_NULL;
5468 fra.me.REG[8] = NIT_NULL;
5469 fra.me.REG[9] = NIT_NULL;
5470 fra.me.REG[10] = NIT_NULL;
5471 fra.me.REG[11] = NIT_NULL;
5472 fra.me.REG[0] = p0;
5473 fra.me.REG[1] = p1;
5474 fra.me.REG[2] = p2;
5475 fra.me.REG[3] = p3;
5476 fra.me.REG[4] = p4;
5477 fra.me.REG[5] = p5;
5478 fra.me.REG[6] = p6;
5479 fra.me.REG[7] = p7;
5480 fra.me.REG[8] = p8;
5481 fra.me.REG[9] = p9;
5482 fra.me.REG[10] = p10;
5483 /* parser/parser_prod.nit:977 */
5484 fra.me.REG[11] = fra.me.REG[0];
5485 /* parser/parser_prod.nit:990 */
5486 CALL_parser___parser_prod___AAttrPropdef___empty_init(fra.me.REG[11])(fra.me.REG[11], init_table);
5487 /* parser/parser_prod.nit:991 */
5488 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[11]) = fra.me.REG[1];
5489 /* parser/parser_prod.nit:992 */
5490 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5491 if (UNTAG_Bool(REGB0)) {
5492 } else {
5493 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5494 if (UNTAG_Bool(REGB1)) {
5495 REGB1 = TAG_Bool(false);
5496 REGB0 = REGB1;
5497 } else {
5498 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
5499 REGB0 = REGB1;
5500 }
5501 }
5502 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5503 if (UNTAG_Bool(REGB0)) {
5504 /* parser/parser_prod.nit:993 */
5505 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5506 if (UNTAG_Bool(REGB0)) {
5507 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 993);
5508 }
5509 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[11]);
5510 }
5511 /* parser/parser_prod.nit:995 */
5512 ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[11]) = fra.me.REG[2];
5513 /* parser/parser_prod.nit:996 */
5514 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5515 if (UNTAG_Bool(REGB0)) {
5516 } else {
5517 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5518 if (UNTAG_Bool(REGB1)) {
5519 REGB1 = TAG_Bool(false);
5520 REGB0 = REGB1;
5521 } else {
5522 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5523 REGB0 = REGB1;
5524 }
5525 }
5526 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5527 if (UNTAG_Bool(REGB0)) {
5528 /* parser/parser_prod.nit:997 */
5529 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5530 if (UNTAG_Bool(REGB0)) {
5531 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 997);
5532 }
5533 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[11]);
5534 }
5535 /* parser/parser_prod.nit:999 */
5536 ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[11]) = fra.me.REG[3];
5537 /* parser/parser_prod.nit:1000 */
5538 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5539 if (UNTAG_Bool(REGB0)) {
5540 } else {
5541 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5542 if (UNTAG_Bool(REGB1)) {
5543 REGB1 = TAG_Bool(false);
5544 REGB0 = REGB1;
5545 } else {
5546 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5547 REGB0 = REGB1;
5548 }
5549 }
5550 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5551 if (UNTAG_Bool(REGB0)) {
5552 /* parser/parser_prod.nit:1001 */
5553 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5554 if (UNTAG_Bool(REGB0)) {
5555 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1001);
5556 }
5557 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[11]);
5558 }
5559 /* parser/parser_prod.nit:1003 */
5560 ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[11]) = fra.me.REG[4];
5561 /* parser/parser_prod.nit:1004 */
5562 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5563 if (UNTAG_Bool(REGB0)) {
5564 } else {
5565 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5566 if (UNTAG_Bool(REGB1)) {
5567 REGB1 = TAG_Bool(false);
5568 REGB0 = REGB1;
5569 } else {
5570 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5571 REGB0 = REGB1;
5572 }
5573 }
5574 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5575 if (UNTAG_Bool(REGB0)) {
5576 /* parser/parser_prod.nit:1005 */
5577 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5578 if (UNTAG_Bool(REGB0)) {
5579 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1005);
5580 }
5581 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[11]);
5582 }
5583 /* parser/parser_prod.nit:1007 */
5584 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
5585 if (UNTAG_Bool(REGB0)) {
5586 } else {
5587 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1007);
5588 }
5589 ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[11]) = fra.me.REG[5];
5590 /* parser/parser_prod.nit:1008 */
5591 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5592 if (UNTAG_Bool(REGB0)) {
5593 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1008);
5594 }
5595 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[11]);
5596 /* parser/parser_prod.nit:1009 */
5597 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
5598 if (UNTAG_Bool(REGB0)) {
5599 } else {
5600 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1009);
5601 }
5602 ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[11]) = fra.me.REG[6];
5603 /* parser/parser_prod.nit:1010 */
5604 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5605 if (UNTAG_Bool(REGB0)) {
5606 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1010);
5607 }
5608 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[11]);
5609 /* parser/parser_prod.nit:1011 */
5610 ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[11]) = fra.me.REG[7];
5611 /* parser/parser_prod.nit:1012 */
5612 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5613 if (UNTAG_Bool(REGB0)) {
5614 } else {
5615 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5616 if (UNTAG_Bool(REGB1)) {
5617 REGB1 = TAG_Bool(false);
5618 REGB0 = REGB1;
5619 } else {
5620 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
5621 REGB0 = REGB1;
5622 }
5623 }
5624 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5625 if (UNTAG_Bool(REGB0)) {
5626 /* parser/parser_prod.nit:1013 */
5627 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5628 if (UNTAG_Bool(REGB0)) {
5629 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1013);
5630 }
5631 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
5632 }
5633 /* parser/parser_prod.nit:1015 */
5634 ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[11]) = fra.me.REG[8];
5635 /* parser/parser_prod.nit:1016 */
5636 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
5637 if (UNTAG_Bool(REGB0)) {
5638 } else {
5639 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
5640 if (UNTAG_Bool(REGB1)) {
5641 REGB1 = TAG_Bool(false);
5642 REGB0 = REGB1;
5643 } else {
5644 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
5645 REGB0 = REGB1;
5646 }
5647 }
5648 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5649 if (UNTAG_Bool(REGB0)) {
5650 /* parser/parser_prod.nit:1017 */
5651 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
5652 if (UNTAG_Bool(REGB0)) {
5653 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1017);
5654 }
5655 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[11]);
5656 }
5657 /* parser/parser_prod.nit:1019 */
5658 ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[11]) = fra.me.REG[9];
5659 /* parser/parser_prod.nit:1020 */
5660 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5661 if (UNTAG_Bool(REGB0)) {
5662 } else {
5663 REGB1 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5664 if (UNTAG_Bool(REGB1)) {
5665 REGB1 = TAG_Bool(false);
5666 REGB0 = REGB1;
5667 } else {
5668 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL);
5669 REGB0 = REGB1;
5670 }
5671 }
5672 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5673 if (UNTAG_Bool(REGB0)) {
5674 /* parser/parser_prod.nit:1021 */
5675 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5676 if (UNTAG_Bool(REGB0)) {
5677 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1021);
5678 }
5679 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[11]);
5680 }
5681 /* parser/parser_prod.nit:1023 */
5682 ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[11]) = fra.me.REG[10];
5683 /* parser/parser_prod.nit:1024 */
5684 REGB0 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5685 if (UNTAG_Bool(REGB0)) {
5686 } else {
5687 REGB1 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5688 if (UNTAG_Bool(REGB1)) {
5689 REGB1 = TAG_Bool(false);
5690 REGB0 = REGB1;
5691 } else {
5692 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
5693 REGB0 = REGB1;
5694 }
5695 }
5696 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5697 if (UNTAG_Bool(REGB0)) {
5698 /* parser/parser_prod.nit:1025 */
5699 REGB0 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5700 if (UNTAG_Bool(REGB0)) {
5701 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1025);
5702 }
5703 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
5704 }
5705 stack_frame_head = fra.me.prev;
5706 init_table[itpos38] = 1;
5707 return;
5708 }
5709 void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val_t p2){
5710 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5711 val_t REGB0;
5712 val_t REGB1;
5713 val_t tmp;
5714 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5715 fra.me.file = LOCATE_parser___parser_prod;
5716 fra.me.line = 1029;
5717 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___replace_child;
5718 fra.me.has_broke = 0;
5719 fra.me.REG_size = 4;
5720 fra.me.nitni_local_ref_head = NULL;
5721 fra.me.REG[0] = NIT_NULL;
5722 fra.me.REG[1] = NIT_NULL;
5723 fra.me.REG[2] = NIT_NULL;
5724 fra.me.REG[3] = NIT_NULL;
5725 fra.me.REG[0] = p0;
5726 fra.me.REG[1] = p1;
5727 fra.me.REG[2] = p2;
5728 /* parser/parser_prod.nit:1031 */
5729 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
5730 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5731 if (UNTAG_Bool(REGB0)) {
5732 } else {
5733 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5734 if (UNTAG_Bool(REGB1)) {
5735 REGB1 = TAG_Bool(false);
5736 REGB0 = REGB1;
5737 } else {
5738 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5739 REGB0 = REGB1;
5740 }
5741 }
5742 if (UNTAG_Bool(REGB0)) {
5743 /* parser/parser_prod.nit:1032 */
5744 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5745 if (UNTAG_Bool(REGB0)) {
5746 } else {
5747 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5748 if (UNTAG_Bool(REGB1)) {
5749 REGB1 = TAG_Bool(false);
5750 REGB0 = REGB1;
5751 } else {
5752 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5753 REGB0 = REGB1;
5754 }
5755 }
5756 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5757 if (UNTAG_Bool(REGB0)) {
5758 /* parser/parser_prod.nit:1033 */
5759 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5760 if (UNTAG_Bool(REGB0)) {
5761 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1033);
5762 }
5763 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5764 /* parser/parser_prod.nit:1034 */
5765 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
5766 if (UNTAG_Bool(REGB0)) {
5767 } else {
5768 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1034);
5769 }
5770 /* parser/parser_prod.nit:1035 */
5771 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
5772 } else {
5773 /* parser/parser_prod.nit:1037 */
5774 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
5775 }
5776 /* parser/parser_prod.nit:1039 */
5777 goto label1;
5778 }
5779 /* parser/parser_prod.nit:1041 */
5780 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]);
5781 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5782 if (UNTAG_Bool(REGB0)) {
5783 } else {
5784 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5785 if (UNTAG_Bool(REGB1)) {
5786 REGB1 = TAG_Bool(false);
5787 REGB0 = REGB1;
5788 } else {
5789 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5790 REGB0 = REGB1;
5791 }
5792 }
5793 if (UNTAG_Bool(REGB0)) {
5794 /* parser/parser_prod.nit:1042 */
5795 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5796 if (UNTAG_Bool(REGB0)) {
5797 } else {
5798 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5799 if (UNTAG_Bool(REGB1)) {
5800 REGB1 = TAG_Bool(false);
5801 REGB0 = REGB1;
5802 } else {
5803 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5804 REGB0 = REGB1;
5805 }
5806 }
5807 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5808 if (UNTAG_Bool(REGB0)) {
5809 /* parser/parser_prod.nit:1043 */
5810 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5811 if (UNTAG_Bool(REGB0)) {
5812 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1043);
5813 }
5814 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5815 /* parser/parser_prod.nit:1044 */
5816 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast AAble*/;
5817 if (UNTAG_Bool(REGB0)) {
5818 } else {
5819 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1044);
5820 }
5821 /* parser/parser_prod.nit:1045 */
5822 ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]) = fra.me.REG[2];
5823 } else {
5824 /* parser/parser_prod.nit:1047 */
5825 ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]) = NIT_NULL;
5826 }
5827 /* parser/parser_prod.nit:1049 */
5828 goto label1;
5829 }
5830 /* parser/parser_prod.nit:1051 */
5831 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]);
5832 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5833 if (UNTAG_Bool(REGB0)) {
5834 } else {
5835 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5836 if (UNTAG_Bool(REGB1)) {
5837 REGB1 = TAG_Bool(false);
5838 REGB0 = REGB1;
5839 } else {
5840 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5841 REGB0 = REGB1;
5842 }
5843 }
5844 if (UNTAG_Bool(REGB0)) {
5845 /* parser/parser_prod.nit:1052 */
5846 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5847 if (UNTAG_Bool(REGB0)) {
5848 } else {
5849 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5850 if (UNTAG_Bool(REGB1)) {
5851 REGB1 = TAG_Bool(false);
5852 REGB0 = REGB1;
5853 } else {
5854 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5855 REGB0 = REGB1;
5856 }
5857 }
5858 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5859 if (UNTAG_Bool(REGB0)) {
5860 /* parser/parser_prod.nit:1053 */
5861 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5862 if (UNTAG_Bool(REGB0)) {
5863 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1053);
5864 }
5865 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5866 /* parser/parser_prod.nit:1054 */
5867 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast AAble*/;
5868 if (UNTAG_Bool(REGB0)) {
5869 } else {
5870 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1054);
5871 }
5872 /* parser/parser_prod.nit:1055 */
5873 ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]) = fra.me.REG[2];
5874 } else {
5875 /* parser/parser_prod.nit:1057 */
5876 ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]) = NIT_NULL;
5877 }
5878 /* parser/parser_prod.nit:1059 */
5879 goto label1;
5880 }
5881 /* parser/parser_prod.nit:1061 */
5882 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]);
5883 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5884 if (UNTAG_Bool(REGB0)) {
5885 } else {
5886 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5887 if (UNTAG_Bool(REGB1)) {
5888 REGB1 = TAG_Bool(false);
5889 REGB0 = REGB1;
5890 } else {
5891 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5892 REGB0 = REGB1;
5893 }
5894 }
5895 if (UNTAG_Bool(REGB0)) {
5896 /* parser/parser_prod.nit:1062 */
5897 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5898 if (UNTAG_Bool(REGB0)) {
5899 } else {
5900 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5901 if (UNTAG_Bool(REGB1)) {
5902 REGB1 = TAG_Bool(false);
5903 REGB0 = REGB1;
5904 } else {
5905 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5906 REGB0 = REGB1;
5907 }
5908 }
5909 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5910 if (UNTAG_Bool(REGB0)) {
5911 /* parser/parser_prod.nit:1063 */
5912 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5913 if (UNTAG_Bool(REGB0)) {
5914 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1063);
5915 }
5916 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5917 /* parser/parser_prod.nit:1064 */
5918 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
5919 if (UNTAG_Bool(REGB0)) {
5920 } else {
5921 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1064);
5922 }
5923 /* parser/parser_prod.nit:1065 */
5924 ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
5925 } else {
5926 /* parser/parser_prod.nit:1067 */
5927 ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
5928 }
5929 /* parser/parser_prod.nit:1069 */
5930 goto label1;
5931 }
5932 /* parser/parser_prod.nit:1071 */
5933 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
5934 if (UNTAG_Bool(REGB0)) {
5935 } else {
5936 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 1071);
5937 }
5938 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0]);
5939 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
5940 if (UNTAG_Bool(REGB0)) {
5941 } else {
5942 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5943 REGB0 = REGB1;
5944 }
5945 if (UNTAG_Bool(REGB0)) {
5946 /* parser/parser_prod.nit:1072 */
5947 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5948 if (UNTAG_Bool(REGB0)) {
5949 } else {
5950 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5951 if (UNTAG_Bool(REGB1)) {
5952 REGB1 = TAG_Bool(false);
5953 REGB0 = REGB1;
5954 } else {
5955 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5956 REGB0 = REGB1;
5957 }
5958 }
5959 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5960 if (UNTAG_Bool(REGB0)) {
5961 /* parser/parser_prod.nit:1073 */
5962 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5963 if (UNTAG_Bool(REGB0)) {
5964 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1073);
5965 }
5966 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5967 /* parser/parser_prod.nit:1074 */
5968 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
5969 if (UNTAG_Bool(REGB0)) {
5970 } else {
5971 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1074);
5972 }
5973 /* parser/parser_prod.nit:1075 */
5974 ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
5975 } else {
5976 /* parser/parser_prod.nit:1077 */
5977 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1077);
5978 }
5979 /* parser/parser_prod.nit:1079 */
5980 goto label1;
5981 }
5982 /* parser/parser_prod.nit:1081 */
5983 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0])!=NIT_NULL);
5984 if (UNTAG_Bool(REGB0)) {
5985 } else {
5986 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 1081);
5987 }
5988 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0]);
5989 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
5990 if (UNTAG_Bool(REGB0)) {
5991 } else {
5992 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5993 REGB0 = REGB1;
5994 }
5995 if (UNTAG_Bool(REGB0)) {
5996 /* parser/parser_prod.nit:1082 */
5997 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5998 if (UNTAG_Bool(REGB0)) {
5999 } else {
6000 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6001 if (UNTAG_Bool(REGB1)) {
6002 REGB1 = TAG_Bool(false);
6003 REGB0 = REGB1;
6004 } else {
6005 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6006 REGB0 = REGB1;
6007 }
6008 }
6009 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6010 if (UNTAG_Bool(REGB0)) {
6011 /* parser/parser_prod.nit:1083 */
6012 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6013 if (UNTAG_Bool(REGB0)) {
6014 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1083);
6015 }
6016 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6017 /* parser/parser_prod.nit:1084 */
6018 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast TKwvar*/;
6019 if (UNTAG_Bool(REGB0)) {
6020 } else {
6021 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1084);
6022 }
6023 /* parser/parser_prod.nit:1085 */
6024 ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0]) = fra.me.REG[2];
6025 } else {
6026 /* parser/parser_prod.nit:1087 */
6027 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1087);
6028 }
6029 /* parser/parser_prod.nit:1089 */
6030 goto label1;
6031 }
6032 /* parser/parser_prod.nit:1091 */
6033 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]);
6034 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6035 if (UNTAG_Bool(REGB0)) {
6036 } else {
6037 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6038 if (UNTAG_Bool(REGB1)) {
6039 REGB1 = TAG_Bool(false);
6040 REGB0 = REGB1;
6041 } else {
6042 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6043 REGB0 = REGB1;
6044 }
6045 }
6046 if (UNTAG_Bool(REGB0)) {
6047 /* parser/parser_prod.nit:1092 */
6048 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6049 if (UNTAG_Bool(REGB0)) {
6050 } else {
6051 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6052 if (UNTAG_Bool(REGB1)) {
6053 REGB1 = TAG_Bool(false);
6054 REGB0 = REGB1;
6055 } else {
6056 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6057 REGB0 = REGB1;
6058 }
6059 }
6060 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6061 if (UNTAG_Bool(REGB0)) {
6062 /* parser/parser_prod.nit:1093 */
6063 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6064 if (UNTAG_Bool(REGB0)) {
6065 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1093);
6066 }
6067 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6068 /* parser/parser_prod.nit:1094 */
6069 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast TAttrid*/;
6070 if (UNTAG_Bool(REGB0)) {
6071 } else {
6072 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1094);
6073 }
6074 /* parser/parser_prod.nit:1095 */
6075 ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
6076 } else {
6077 /* parser/parser_prod.nit:1097 */
6078 ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]) = NIT_NULL;
6079 }
6080 /* parser/parser_prod.nit:1099 */
6081 goto label1;
6082 }
6083 /* parser/parser_prod.nit:1101 */
6084 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]);
6085 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6086 if (UNTAG_Bool(REGB0)) {
6087 } else {
6088 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6089 if (UNTAG_Bool(REGB1)) {
6090 REGB1 = TAG_Bool(false);
6091 REGB0 = REGB1;
6092 } else {
6093 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6094 REGB0 = REGB1;
6095 }
6096 }
6097 if (UNTAG_Bool(REGB0)) {
6098 /* parser/parser_prod.nit:1102 */
6099 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6100 if (UNTAG_Bool(REGB0)) {
6101 } else {
6102 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6103 if (UNTAG_Bool(REGB1)) {
6104 REGB1 = TAG_Bool(false);
6105 REGB0 = REGB1;
6106 } else {
6107 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6108 REGB0 = REGB1;
6109 }
6110 }
6111 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6112 if (UNTAG_Bool(REGB0)) {
6113 /* parser/parser_prod.nit:1103 */
6114 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6115 if (UNTAG_Bool(REGB0)) {
6116 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1103);
6117 }
6118 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6119 /* parser/parser_prod.nit:1104 */
6120 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
6121 if (UNTAG_Bool(REGB0)) {
6122 } else {
6123 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1104);
6124 }
6125 /* parser/parser_prod.nit:1105 */
6126 ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]) = fra.me.REG[2];
6127 } else {
6128 /* parser/parser_prod.nit:1107 */
6129 ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]) = NIT_NULL;
6130 }
6131 /* parser/parser_prod.nit:1109 */
6132 goto label1;
6133 }
6134 /* parser/parser_prod.nit:1111 */
6135 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]);
6136 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6137 if (UNTAG_Bool(REGB0)) {
6138 } else {
6139 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6140 if (UNTAG_Bool(REGB1)) {
6141 REGB1 = TAG_Bool(false);
6142 REGB0 = REGB1;
6143 } else {
6144 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6145 REGB0 = REGB1;
6146 }
6147 }
6148 if (UNTAG_Bool(REGB0)) {
6149 /* parser/parser_prod.nit:1112 */
6150 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6151 if (UNTAG_Bool(REGB0)) {
6152 } else {
6153 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6154 if (UNTAG_Bool(REGB1)) {
6155 REGB1 = TAG_Bool(false);
6156 REGB0 = REGB1;
6157 } else {
6158 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6159 REGB0 = REGB1;
6160 }
6161 }
6162 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6163 if (UNTAG_Bool(REGB0)) {
6164 /* parser/parser_prod.nit:1113 */
6165 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6166 if (UNTAG_Bool(REGB0)) {
6167 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1113);
6168 }
6169 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6170 /* parser/parser_prod.nit:1114 */
6171 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
6172 if (UNTAG_Bool(REGB0)) {
6173 } else {
6174 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1114);
6175 }
6176 /* parser/parser_prod.nit:1115 */
6177 ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]) = fra.me.REG[2];
6178 } else {
6179 /* parser/parser_prod.nit:1117 */
6180 ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]) = NIT_NULL;
6181 }
6182 /* parser/parser_prod.nit:1119 */
6183 goto label1;
6184 }
6185 /* parser/parser_prod.nit:1121 */
6186 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]);
6187 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6188 if (UNTAG_Bool(REGB0)) {
6189 } else {
6190 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6191 if (UNTAG_Bool(REGB1)) {
6192 REGB1 = TAG_Bool(false);
6193 REGB0 = REGB1;
6194 } else {
6195 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6196 REGB0 = REGB1;
6197 }
6198 }
6199 if (UNTAG_Bool(REGB0)) {
6200 /* parser/parser_prod.nit:1122 */
6201 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6202 if (UNTAG_Bool(REGB0)) {
6203 } else {
6204 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6205 if (UNTAG_Bool(REGB1)) {
6206 REGB1 = TAG_Bool(false);
6207 REGB0 = REGB1;
6208 } else {
6209 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6210 REGB0 = REGB1;
6211 }
6212 }
6213 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6214 if (UNTAG_Bool(REGB0)) {
6215 /* parser/parser_prod.nit:1123 */
6216 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6217 if (UNTAG_Bool(REGB0)) {
6218 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1123);
6219 }
6220 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6221 /* parser/parser_prod.nit:1124 */
6222 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
6223 if (UNTAG_Bool(REGB0)) {
6224 } else {
6225 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1124);
6226 }
6227 /* parser/parser_prod.nit:1125 */
6228 ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]) = fra.me.REG[2];
6229 } else {
6230 /* parser/parser_prod.nit:1127 */
6231 ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]) = NIT_NULL;
6232 }
6233 /* parser/parser_prod.nit:1129 */
6234 goto label1;
6235 }
6236 label1: while(0);
6237 stack_frame_head = fra.me.prev;
6238 return;
6239 }
6240 void parser___parser_prod___AAttrPropdef___visit_all(val_t p0, val_t p1){
6241 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6242 val_t REGB0;
6243 val_t REGB1;
6244 val_t tmp;
6245 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6246 fra.me.file = LOCATE_parser___parser_prod;
6247 fra.me.line = 1133;
6248 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___visit_all;
6249 fra.me.has_broke = 0;
6250 fra.me.REG_size = 4;
6251 fra.me.nitni_local_ref_head = NULL;
6252 fra.me.REG[0] = NIT_NULL;
6253 fra.me.REG[1] = NIT_NULL;
6254 fra.me.REG[2] = NIT_NULL;
6255 fra.me.REG[3] = NIT_NULL;
6256 fra.me.REG[0] = p0;
6257 fra.me.REG[1] = p1;
6258 /* parser/parser_prod.nit:1133 */
6259 fra.me.REG[2] = fra.me.REG[0];
6260 /* parser/parser_prod.nit:1135 */
6261 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
6262 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
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_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6271 REGB0 = REGB1;
6272 }
6273 }
6274 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6275 if (UNTAG_Bool(REGB0)) {
6276 /* parser/parser_prod.nit:1136 */
6277 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
6278 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
6279 if (UNTAG_Bool(REGB0)) {
6280 } else {
6281 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1136);
6282 }
6283 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6284 }
6285 /* parser/parser_prod.nit:1138 */
6286 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[2]);
6287 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6288 if (UNTAG_Bool(REGB0)) {
6289 } else {
6290 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6291 if (UNTAG_Bool(REGB1)) {
6292 REGB1 = TAG_Bool(false);
6293 REGB0 = REGB1;
6294 } else {
6295 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6296 REGB0 = REGB1;
6297 }
6298 }
6299 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6300 if (UNTAG_Bool(REGB0)) {
6301 /* parser/parser_prod.nit:1139 */
6302 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[2]);
6303 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast AAble*/;
6304 if (UNTAG_Bool(REGB0)) {
6305 } else {
6306 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1139);
6307 }
6308 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6309 }
6310 /* parser/parser_prod.nit:1141 */
6311 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[2]);
6312 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6313 if (UNTAG_Bool(REGB0)) {
6314 } else {
6315 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6316 if (UNTAG_Bool(REGB1)) {
6317 REGB1 = TAG_Bool(false);
6318 REGB0 = REGB1;
6319 } else {
6320 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6321 REGB0 = REGB1;
6322 }
6323 }
6324 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6325 if (UNTAG_Bool(REGB0)) {
6326 /* parser/parser_prod.nit:1142 */
6327 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[2]);
6328 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast AAble*/;
6329 if (UNTAG_Bool(REGB0)) {
6330 } else {
6331 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1142);
6332 }
6333 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6334 }
6335 /* parser/parser_prod.nit:1144 */
6336 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[2]);
6337 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6338 if (UNTAG_Bool(REGB0)) {
6339 } else {
6340 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6341 if (UNTAG_Bool(REGB1)) {
6342 REGB1 = TAG_Bool(false);
6343 REGB0 = REGB1;
6344 } else {
6345 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6346 REGB0 = REGB1;
6347 }
6348 }
6349 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6350 if (UNTAG_Bool(REGB0)) {
6351 /* parser/parser_prod.nit:1145 */
6352 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[2]);
6353 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
6354 if (UNTAG_Bool(REGB0)) {
6355 } else {
6356 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1145);
6357 }
6358 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6359 }
6360 /* parser/parser_prod.nit:1147 */
6361 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[2])!=NIT_NULL);
6362 if (UNTAG_Bool(REGB0)) {
6363 } else {
6364 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 1147);
6365 }
6366 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[2]);
6367 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6368 /* parser/parser_prod.nit:1148 */
6369 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[2])!=NIT_NULL);
6370 if (UNTAG_Bool(REGB0)) {
6371 } else {
6372 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 1148);
6373 }
6374 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[2]);
6375 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6376 /* parser/parser_prod.nit:1149 */
6377 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[2]);
6378 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6379 if (UNTAG_Bool(REGB0)) {
6380 } else {
6381 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6382 if (UNTAG_Bool(REGB1)) {
6383 REGB1 = TAG_Bool(false);
6384 REGB0 = REGB1;
6385 } else {
6386 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6387 REGB0 = REGB1;
6388 }
6389 }
6390 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6391 if (UNTAG_Bool(REGB0)) {
6392 /* parser/parser_prod.nit:1150 */
6393 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[2]);
6394 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast TAttrid*/;
6395 if (UNTAG_Bool(REGB0)) {
6396 } else {
6397 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1150);
6398 }
6399 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6400 }
6401 /* parser/parser_prod.nit:1152 */
6402 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[2]);
6403 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6404 if (UNTAG_Bool(REGB0)) {
6405 } else {
6406 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6407 if (UNTAG_Bool(REGB1)) {
6408 REGB1 = TAG_Bool(false);
6409 REGB0 = REGB1;
6410 } else {
6411 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6412 REGB0 = REGB1;
6413 }
6414 }
6415 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6416 if (UNTAG_Bool(REGB0)) {
6417 /* parser/parser_prod.nit:1153 */
6418 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[2]);
6419 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
6420 if (UNTAG_Bool(REGB0)) {
6421 } else {
6422 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1153);
6423 }
6424 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6425 }
6426 /* parser/parser_prod.nit:1155 */
6427 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[2]);
6428 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6429 if (UNTAG_Bool(REGB0)) {
6430 } else {
6431 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6432 if (UNTAG_Bool(REGB1)) {
6433 REGB1 = TAG_Bool(false);
6434 REGB0 = REGB1;
6435 } else {
6436 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6437 REGB0 = REGB1;
6438 }
6439 }
6440 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6441 if (UNTAG_Bool(REGB0)) {
6442 /* parser/parser_prod.nit:1156 */
6443 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[2]);
6444 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
6445 if (UNTAG_Bool(REGB0)) {
6446 } else {
6447 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1156);
6448 }
6449 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6450 }
6451 /* parser/parser_prod.nit:1158 */
6452 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[2]);
6453 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6454 if (UNTAG_Bool(REGB0)) {
6455 } else {
6456 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6457 if (UNTAG_Bool(REGB1)) {
6458 REGB1 = TAG_Bool(false);
6459 REGB0 = REGB1;
6460 } else {
6461 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6462 REGB0 = REGB1;
6463 }
6464 }
6465 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6466 if (UNTAG_Bool(REGB0)) {
6467 /* parser/parser_prod.nit:1159 */
6468 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[2]);
6469 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
6470 if (UNTAG_Bool(REGB0)) {
6471 } else {
6472 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1159);
6473 }
6474 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
6475 }
6476 stack_frame_head = fra.me.prev;
6477 return;
6478 }
6479 void parser___parser_prod___AMethPropdef___empty_init(val_t p0, int* init_table){
6480 int itpos39 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMethPropdef].i;
6481 struct {struct stack_frame_t me;} fra;
6482 val_t tmp;
6483 if (init_table[itpos39]) return;
6484 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6485 fra.me.file = LOCATE_parser___parser_prod;
6486 fra.me.line = 1164;
6487 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___empty_init;
6488 fra.me.has_broke = 0;
6489 fra.me.REG_size = 1;
6490 fra.me.nitni_local_ref_head = NULL;
6491 fra.me.REG[0] = NIT_NULL;
6492 fra.me.REG[0] = p0;
6493 stack_frame_head = fra.me.prev;
6494 init_table[itpos39] = 1;
6495 return;
6496 }
6497 void parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
6498 int itpos40 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMethPropdef].i;
6499 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
6500 val_t REGB0;
6501 val_t REGB1;
6502 val_t tmp;
6503 if (init_table[itpos40]) return;
6504 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6505 fra.me.file = LOCATE_parser___parser_prod;
6506 fra.me.line = 1166;
6507 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___init_amethpropdef;
6508 fra.me.has_broke = 0;
6509 fra.me.REG_size = 7;
6510 fra.me.nitni_local_ref_head = NULL;
6511 fra.me.REG[0] = NIT_NULL;
6512 fra.me.REG[1] = NIT_NULL;
6513 fra.me.REG[2] = NIT_NULL;
6514 fra.me.REG[3] = NIT_NULL;
6515 fra.me.REG[4] = NIT_NULL;
6516 fra.me.REG[5] = NIT_NULL;
6517 fra.me.REG[6] = NIT_NULL;
6518 fra.me.REG[0] = p0;
6519 fra.me.REG[1] = p1;
6520 fra.me.REG[2] = p2;
6521 fra.me.REG[3] = p3;
6522 fra.me.REG[4] = p4;
6523 fra.me.REG[5] = p5;
6524 /* parser/parser_prod.nit:1166 */
6525 fra.me.REG[6] = fra.me.REG[0];
6526 /* parser/parser_prod.nit:1174 */
6527 CALL_parser___parser_prod___AMethPropdef___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
6528 /* parser/parser_prod.nit:1175 */
6529 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[6]) = fra.me.REG[1];
6530 /* parser/parser_prod.nit:1176 */
6531 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6532 if (UNTAG_Bool(REGB0)) {
6533 } else {
6534 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6535 if (UNTAG_Bool(REGB1)) {
6536 REGB1 = TAG_Bool(false);
6537 REGB0 = REGB1;
6538 } else {
6539 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6540 REGB0 = REGB1;
6541 }
6542 }
6543 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6544 if (UNTAG_Bool(REGB0)) {
6545 /* parser/parser_prod.nit:1177 */
6546 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6547 if (UNTAG_Bool(REGB0)) {
6548 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1177);
6549 }
6550 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
6551 }
6552 /* parser/parser_prod.nit:1179 */
6553 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[6]) = fra.me.REG[2];
6554 /* parser/parser_prod.nit:1180 */
6555 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6556 if (UNTAG_Bool(REGB0)) {
6557 } else {
6558 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6559 if (UNTAG_Bool(REGB1)) {
6560 REGB1 = TAG_Bool(false);
6561 REGB0 = REGB1;
6562 } else {
6563 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6564 REGB0 = REGB1;
6565 }
6566 }
6567 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6568 if (UNTAG_Bool(REGB0)) {
6569 /* parser/parser_prod.nit:1181 */
6570 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6571 if (UNTAG_Bool(REGB0)) {
6572 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1181);
6573 }
6574 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
6575 }
6576 /* parser/parser_prod.nit:1183 */
6577 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
6578 if (UNTAG_Bool(REGB0)) {
6579 } else {
6580 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1183);
6581 }
6582 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[6]) = fra.me.REG[3];
6583 /* parser/parser_prod.nit:1184 */
6584 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6585 if (UNTAG_Bool(REGB0)) {
6586 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1184);
6587 }
6588 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6589 /* parser/parser_prod.nit:1185 */
6590 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
6591 if (UNTAG_Bool(REGB0)) {
6592 } else {
6593 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1185);
6594 }
6595 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[6]) = fra.me.REG[4];
6596 /* parser/parser_prod.nit:1186 */
6597 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6598 if (UNTAG_Bool(REGB0)) {
6599 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1186);
6600 }
6601 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
6602 /* parser/parser_prod.nit:1187 */
6603 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
6604 if (UNTAG_Bool(REGB0)) {
6605 } else {
6606 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1187);
6607 }
6608 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[6]) = fra.me.REG[5];
6609 /* parser/parser_prod.nit:1188 */
6610 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6611 if (UNTAG_Bool(REGB0)) {
6612 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1188);
6613 }
6614 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
6615 stack_frame_head = fra.me.prev;
6616 init_table[itpos40] = 1;
6617 return;
6618 }
6619 void parser___parser_prod___AMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
6620 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6621 val_t REGB0;
6622 val_t REGB1;
6623 val_t tmp;
6624 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6625 fra.me.file = LOCATE_parser___parser_prod;
6626 fra.me.line = 1191;
6627 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___replace_child;
6628 fra.me.has_broke = 0;
6629 fra.me.REG_size = 4;
6630 fra.me.nitni_local_ref_head = NULL;
6631 fra.me.REG[0] = NIT_NULL;
6632 fra.me.REG[1] = NIT_NULL;
6633 fra.me.REG[2] = NIT_NULL;
6634 fra.me.REG[3] = NIT_NULL;
6635 fra.me.REG[0] = p0;
6636 fra.me.REG[1] = p1;
6637 fra.me.REG[2] = p2;
6638 /* parser/parser_prod.nit:1193 */
6639 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
6640 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6641 if (UNTAG_Bool(REGB0)) {
6642 } else {
6643 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6644 if (UNTAG_Bool(REGB1)) {
6645 REGB1 = TAG_Bool(false);
6646 REGB0 = REGB1;
6647 } else {
6648 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6649 REGB0 = REGB1;
6650 }
6651 }
6652 if (UNTAG_Bool(REGB0)) {
6653 /* parser/parser_prod.nit:1194 */
6654 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6655 if (UNTAG_Bool(REGB0)) {
6656 } else {
6657 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6658 if (UNTAG_Bool(REGB1)) {
6659 REGB1 = TAG_Bool(false);
6660 REGB0 = REGB1;
6661 } else {
6662 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6663 REGB0 = REGB1;
6664 }
6665 }
6666 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6667 if (UNTAG_Bool(REGB0)) {
6668 /* parser/parser_prod.nit:1195 */
6669 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6670 if (UNTAG_Bool(REGB0)) {
6671 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1195);
6672 }
6673 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6674 /* parser/parser_prod.nit:1196 */
6675 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
6676 if (UNTAG_Bool(REGB0)) {
6677 } else {
6678 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1196);
6679 }
6680 /* parser/parser_prod.nit:1197 */
6681 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
6682 } else {
6683 /* parser/parser_prod.nit:1199 */
6684 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
6685 }
6686 /* parser/parser_prod.nit:1201 */
6687 goto label1;
6688 }
6689 /* parser/parser_prod.nit:1203 */
6690 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
6691 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6692 if (UNTAG_Bool(REGB0)) {
6693 } else {
6694 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6695 if (UNTAG_Bool(REGB1)) {
6696 REGB1 = TAG_Bool(false);
6697 REGB0 = REGB1;
6698 } else {
6699 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6700 REGB0 = REGB1;
6701 }
6702 }
6703 if (UNTAG_Bool(REGB0)) {
6704 /* parser/parser_prod.nit:1204 */
6705 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6706 if (UNTAG_Bool(REGB0)) {
6707 } else {
6708 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6709 if (UNTAG_Bool(REGB1)) {
6710 REGB1 = TAG_Bool(false);
6711 REGB0 = REGB1;
6712 } else {
6713 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6714 REGB0 = REGB1;
6715 }
6716 }
6717 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6718 if (UNTAG_Bool(REGB0)) {
6719 /* parser/parser_prod.nit:1205 */
6720 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6721 if (UNTAG_Bool(REGB0)) {
6722 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1205);
6723 }
6724 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6725 /* parser/parser_prod.nit:1206 */
6726 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
6727 if (UNTAG_Bool(REGB0)) {
6728 } else {
6729 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1206);
6730 }
6731 /* parser/parser_prod.nit:1207 */
6732 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
6733 } else {
6734 /* parser/parser_prod.nit:1209 */
6735 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
6736 }
6737 /* parser/parser_prod.nit:1211 */
6738 goto label1;
6739 }
6740 /* parser/parser_prod.nit:1213 */
6741 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
6742 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6743 if (UNTAG_Bool(REGB0)) {
6744 } else {
6745 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6746 if (UNTAG_Bool(REGB1)) {
6747 REGB1 = TAG_Bool(false);
6748 REGB0 = REGB1;
6749 } else {
6750 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6751 REGB0 = REGB1;
6752 }
6753 }
6754 if (UNTAG_Bool(REGB0)) {
6755 /* parser/parser_prod.nit:1214 */
6756 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6757 if (UNTAG_Bool(REGB0)) {
6758 } else {
6759 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6760 if (UNTAG_Bool(REGB1)) {
6761 REGB1 = TAG_Bool(false);
6762 REGB0 = REGB1;
6763 } else {
6764 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6765 REGB0 = REGB1;
6766 }
6767 }
6768 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6769 if (UNTAG_Bool(REGB0)) {
6770 /* parser/parser_prod.nit:1215 */
6771 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6772 if (UNTAG_Bool(REGB0)) {
6773 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1215);
6774 }
6775 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6776 /* parser/parser_prod.nit:1216 */
6777 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
6778 if (UNTAG_Bool(REGB0)) {
6779 } else {
6780 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1216);
6781 }
6782 /* parser/parser_prod.nit:1217 */
6783 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
6784 } else {
6785 /* parser/parser_prod.nit:1219 */
6786 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1219);
6787 }
6788 /* parser/parser_prod.nit:1221 */
6789 goto label1;
6790 }
6791 /* parser/parser_prod.nit:1223 */
6792 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
6793 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6794 if (UNTAG_Bool(REGB0)) {
6795 } else {
6796 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6797 if (UNTAG_Bool(REGB1)) {
6798 REGB1 = TAG_Bool(false);
6799 REGB0 = REGB1;
6800 } else {
6801 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6802 REGB0 = REGB1;
6803 }
6804 }
6805 if (UNTAG_Bool(REGB0)) {
6806 /* parser/parser_prod.nit:1224 */
6807 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6808 if (UNTAG_Bool(REGB0)) {
6809 } else {
6810 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6811 if (UNTAG_Bool(REGB1)) {
6812 REGB1 = TAG_Bool(false);
6813 REGB0 = REGB1;
6814 } else {
6815 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6816 REGB0 = REGB1;
6817 }
6818 }
6819 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6820 if (UNTAG_Bool(REGB0)) {
6821 /* parser/parser_prod.nit:1225 */
6822 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6823 if (UNTAG_Bool(REGB0)) {
6824 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1225);
6825 }
6826 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6827 /* parser/parser_prod.nit:1226 */
6828 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
6829 if (UNTAG_Bool(REGB0)) {
6830 } else {
6831 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1226);
6832 }
6833 /* parser/parser_prod.nit:1227 */
6834 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
6835 } else {
6836 /* parser/parser_prod.nit:1229 */
6837 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1229);
6838 }
6839 /* parser/parser_prod.nit:1231 */
6840 goto label1;
6841 }
6842 /* parser/parser_prod.nit:1233 */
6843 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
6844 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6845 if (UNTAG_Bool(REGB0)) {
6846 } else {
6847 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6848 if (UNTAG_Bool(REGB1)) {
6849 REGB1 = TAG_Bool(false);
6850 REGB0 = REGB1;
6851 } else {
6852 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6853 REGB0 = REGB1;
6854 }
6855 }
6856 if (UNTAG_Bool(REGB0)) {
6857 /* parser/parser_prod.nit:1234 */
6858 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6859 if (UNTAG_Bool(REGB0)) {
6860 } else {
6861 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6862 if (UNTAG_Bool(REGB1)) {
6863 REGB1 = TAG_Bool(false);
6864 REGB0 = REGB1;
6865 } else {
6866 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6867 REGB0 = REGB1;
6868 }
6869 }
6870 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6871 if (UNTAG_Bool(REGB0)) {
6872 /* parser/parser_prod.nit:1235 */
6873 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6874 if (UNTAG_Bool(REGB0)) {
6875 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1235);
6876 }
6877 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6878 /* parser/parser_prod.nit:1236 */
6879 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
6880 if (UNTAG_Bool(REGB0)) {
6881 } else {
6882 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1236);
6883 }
6884 /* parser/parser_prod.nit:1237 */
6885 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
6886 } else {
6887 /* parser/parser_prod.nit:1239 */
6888 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1239);
6889 }
6890 /* parser/parser_prod.nit:1241 */
6891 goto label1;
6892 }
6893 label1: while(0);
6894 stack_frame_head = fra.me.prev;
6895 return;
6896 }
6897 void parser___parser_prod___AMethPropdef___visit_all(val_t p0, val_t p1){
6898 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6899 val_t REGB0;
6900 val_t REGB1;
6901 val_t tmp;
6902 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6903 fra.me.file = LOCATE_parser___parser_prod;
6904 fra.me.line = 1245;
6905 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___visit_all;
6906 fra.me.has_broke = 0;
6907 fra.me.REG_size = 4;
6908 fra.me.nitni_local_ref_head = NULL;
6909 fra.me.REG[0] = NIT_NULL;
6910 fra.me.REG[1] = NIT_NULL;
6911 fra.me.REG[2] = NIT_NULL;
6912 fra.me.REG[3] = NIT_NULL;
6913 fra.me.REG[0] = p0;
6914 fra.me.REG[1] = p1;
6915 /* parser/parser_prod.nit:1245 */
6916 fra.me.REG[2] = fra.me.REG[0];
6917 /* parser/parser_prod.nit:1247 */
6918 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
6919 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
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_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6928 REGB0 = REGB1;
6929 }
6930 }
6931 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6932 if (UNTAG_Bool(REGB0)) {
6933 /* parser/parser_prod.nit:1248 */
6934 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
6935 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
6936 if (UNTAG_Bool(REGB0)) {
6937 } else {
6938 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1248);
6939 }
6940 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6941 }
6942 /* parser/parser_prod.nit:1250 */
6943 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
6944 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6945 if (UNTAG_Bool(REGB0)) {
6946 } else {
6947 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6948 if (UNTAG_Bool(REGB1)) {
6949 REGB1 = TAG_Bool(false);
6950 REGB0 = REGB1;
6951 } else {
6952 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6953 REGB0 = REGB1;
6954 }
6955 }
6956 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6957 if (UNTAG_Bool(REGB0)) {
6958 /* parser/parser_prod.nit:1251 */
6959 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
6960 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
6961 if (UNTAG_Bool(REGB0)) {
6962 } else {
6963 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1251);
6964 }
6965 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6966 }
6967 /* parser/parser_prod.nit:1253 */
6968 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
6969 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6970 /* parser/parser_prod.nit:1254 */
6971 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
6972 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6973 /* parser/parser_prod.nit:1255 */
6974 fra.me.REG[2] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
6975 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
6976 stack_frame_head = fra.me.prev;
6977 return;
6978 }
6979 void parser___parser_prod___ADeferredMethPropdef___empty_init(val_t p0, int* init_table){
6980 int itpos41 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADeferredMethPropdef].i;
6981 struct {struct stack_frame_t me;} fra;
6982 val_t tmp;
6983 if (init_table[itpos41]) return;
6984 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6985 fra.me.file = LOCATE_parser___parser_prod;
6986 fra.me.line = 1259;
6987 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___empty_init;
6988 fra.me.has_broke = 0;
6989 fra.me.REG_size = 1;
6990 fra.me.nitni_local_ref_head = NULL;
6991 fra.me.REG[0] = NIT_NULL;
6992 fra.me.REG[0] = p0;
6993 stack_frame_head = fra.me.prev;
6994 init_table[itpos41] = 1;
6995 return;
6996 }
6997 void parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, int* init_table){
6998 int itpos42 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADeferredMethPropdef].i;
6999 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
7000 val_t REGB0;
7001 val_t REGB1;
7002 val_t tmp;
7003 if (init_table[itpos42]) return;
7004 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7005 fra.me.file = LOCATE_parser___parser_prod;
7006 fra.me.line = 1261;
7007 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef;
7008 fra.me.has_broke = 0;
7009 fra.me.REG_size = 8;
7010 fra.me.nitni_local_ref_head = NULL;
7011 fra.me.REG[0] = NIT_NULL;
7012 fra.me.REG[1] = NIT_NULL;
7013 fra.me.REG[2] = NIT_NULL;
7014 fra.me.REG[3] = NIT_NULL;
7015 fra.me.REG[4] = NIT_NULL;
7016 fra.me.REG[5] = NIT_NULL;
7017 fra.me.REG[6] = NIT_NULL;
7018 fra.me.REG[7] = NIT_NULL;
7019 fra.me.REG[0] = p0;
7020 fra.me.REG[1] = p1;
7021 fra.me.REG[2] = p2;
7022 fra.me.REG[3] = p3;
7023 fra.me.REG[4] = p4;
7024 fra.me.REG[5] = p5;
7025 fra.me.REG[6] = p6;
7026 /* parser/parser_prod.nit:1261 */
7027 fra.me.REG[7] = fra.me.REG[0];
7028 /* parser/parser_prod.nit:1270 */
7029 CALL_parser___parser_prod___ADeferredMethPropdef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
7030 /* parser/parser_prod.nit:1271 */
7031 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[7]) = fra.me.REG[1];
7032 /* parser/parser_prod.nit:1272 */
7033 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7034 if (UNTAG_Bool(REGB0)) {
7035 } else {
7036 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7037 if (UNTAG_Bool(REGB1)) {
7038 REGB1 = TAG_Bool(false);
7039 REGB0 = REGB1;
7040 } else {
7041 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7042 REGB0 = REGB1;
7043 }
7044 }
7045 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7046 if (UNTAG_Bool(REGB0)) {
7047 /* parser/parser_prod.nit:1273 */
7048 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7049 if (UNTAG_Bool(REGB0)) {
7050 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1273);
7051 }
7052 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
7053 }
7054 /* parser/parser_prod.nit:1275 */
7055 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[7]) = fra.me.REG[2];
7056 /* parser/parser_prod.nit:1276 */
7057 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7058 if (UNTAG_Bool(REGB0)) {
7059 } else {
7060 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7061 if (UNTAG_Bool(REGB1)) {
7062 REGB1 = TAG_Bool(false);
7063 REGB0 = REGB1;
7064 } else {
7065 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7066 REGB0 = REGB1;
7067 }
7068 }
7069 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7070 if (UNTAG_Bool(REGB0)) {
7071 /* parser/parser_prod.nit:1277 */
7072 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7073 if (UNTAG_Bool(REGB0)) {
7074 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1277);
7075 }
7076 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
7077 }
7078 /* parser/parser_prod.nit:1279 */
7079 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
7080 if (UNTAG_Bool(REGB0)) {
7081 } else {
7082 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1279);
7083 }
7084 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[7]) = fra.me.REG[3];
7085 /* parser/parser_prod.nit:1280 */
7086 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7087 if (UNTAG_Bool(REGB0)) {
7088 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1280);
7089 }
7090 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
7091 /* parser/parser_prod.nit:1281 */
7092 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
7093 if (UNTAG_Bool(REGB0)) {
7094 } else {
7095 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1281);
7096 }
7097 ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[7]) = fra.me.REG[4];
7098 /* parser/parser_prod.nit:1282 */
7099 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7100 if (UNTAG_Bool(REGB0)) {
7101 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1282);
7102 }
7103 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
7104 /* parser/parser_prod.nit:1283 */
7105 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
7106 if (UNTAG_Bool(REGB0)) {
7107 } else {
7108 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1283);
7109 }
7110 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[7]) = fra.me.REG[5];
7111 /* parser/parser_prod.nit:1284 */
7112 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7113 if (UNTAG_Bool(REGB0)) {
7114 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1284);
7115 }
7116 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
7117 /* parser/parser_prod.nit:1285 */
7118 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
7119 if (UNTAG_Bool(REGB0)) {
7120 } else {
7121 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1285);
7122 }
7123 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[7]) = fra.me.REG[6];
7124 /* parser/parser_prod.nit:1286 */
7125 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
7126 if (UNTAG_Bool(REGB0)) {
7127 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1286);
7128 }
7129 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7130 stack_frame_head = fra.me.prev;
7131 init_table[itpos42] = 1;
7132 return;
7133 }
7134 void parser___parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
7135 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7136 val_t REGB0;
7137 val_t REGB1;
7138 val_t tmp;
7139 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7140 fra.me.file = LOCATE_parser___parser_prod;
7141 fra.me.line = 1289;
7142 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___replace_child;
7143 fra.me.has_broke = 0;
7144 fra.me.REG_size = 4;
7145 fra.me.nitni_local_ref_head = NULL;
7146 fra.me.REG[0] = NIT_NULL;
7147 fra.me.REG[1] = NIT_NULL;
7148 fra.me.REG[2] = NIT_NULL;
7149 fra.me.REG[3] = NIT_NULL;
7150 fra.me.REG[0] = p0;
7151 fra.me.REG[1] = p1;
7152 fra.me.REG[2] = p2;
7153 /* parser/parser_prod.nit:1291 */
7154 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
7155 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7156 if (UNTAG_Bool(REGB0)) {
7157 } else {
7158 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7159 if (UNTAG_Bool(REGB1)) {
7160 REGB1 = TAG_Bool(false);
7161 REGB0 = REGB1;
7162 } else {
7163 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7164 REGB0 = REGB1;
7165 }
7166 }
7167 if (UNTAG_Bool(REGB0)) {
7168 /* parser/parser_prod.nit:1292 */
7169 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7170 if (UNTAG_Bool(REGB0)) {
7171 } else {
7172 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7173 if (UNTAG_Bool(REGB1)) {
7174 REGB1 = TAG_Bool(false);
7175 REGB0 = REGB1;
7176 } else {
7177 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7178 REGB0 = REGB1;
7179 }
7180 }
7181 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7182 if (UNTAG_Bool(REGB0)) {
7183 /* parser/parser_prod.nit:1293 */
7184 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7185 if (UNTAG_Bool(REGB0)) {
7186 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1293);
7187 }
7188 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7189 /* parser/parser_prod.nit:1294 */
7190 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
7191 if (UNTAG_Bool(REGB0)) {
7192 } else {
7193 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1294);
7194 }
7195 /* parser/parser_prod.nit:1295 */
7196 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
7197 } else {
7198 /* parser/parser_prod.nit:1297 */
7199 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
7200 }
7201 /* parser/parser_prod.nit:1299 */
7202 goto label1;
7203 }
7204 /* parser/parser_prod.nit:1301 */
7205 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
7206 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7207 if (UNTAG_Bool(REGB0)) {
7208 } else {
7209 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7210 if (UNTAG_Bool(REGB1)) {
7211 REGB1 = TAG_Bool(false);
7212 REGB0 = REGB1;
7213 } else {
7214 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7215 REGB0 = REGB1;
7216 }
7217 }
7218 if (UNTAG_Bool(REGB0)) {
7219 /* parser/parser_prod.nit:1302 */
7220 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7221 if (UNTAG_Bool(REGB0)) {
7222 } else {
7223 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7224 if (UNTAG_Bool(REGB1)) {
7225 REGB1 = TAG_Bool(false);
7226 REGB0 = REGB1;
7227 } else {
7228 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7229 REGB0 = REGB1;
7230 }
7231 }
7232 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7233 if (UNTAG_Bool(REGB0)) {
7234 /* parser/parser_prod.nit:1303 */
7235 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7236 if (UNTAG_Bool(REGB0)) {
7237 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1303);
7238 }
7239 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7240 /* parser/parser_prod.nit:1304 */
7241 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
7242 if (UNTAG_Bool(REGB0)) {
7243 } else {
7244 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1304);
7245 }
7246 /* parser/parser_prod.nit:1305 */
7247 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
7248 } else {
7249 /* parser/parser_prod.nit:1307 */
7250 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
7251 }
7252 /* parser/parser_prod.nit:1309 */
7253 goto label1;
7254 }
7255 /* parser/parser_prod.nit:1311 */
7256 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
7257 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7258 if (UNTAG_Bool(REGB0)) {
7259 } else {
7260 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7261 if (UNTAG_Bool(REGB1)) {
7262 REGB1 = TAG_Bool(false);
7263 REGB0 = REGB1;
7264 } else {
7265 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7266 REGB0 = REGB1;
7267 }
7268 }
7269 if (UNTAG_Bool(REGB0)) {
7270 /* parser/parser_prod.nit:1312 */
7271 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7272 if (UNTAG_Bool(REGB0)) {
7273 } else {
7274 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7275 if (UNTAG_Bool(REGB1)) {
7276 REGB1 = TAG_Bool(false);
7277 REGB0 = REGB1;
7278 } else {
7279 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7280 REGB0 = REGB1;
7281 }
7282 }
7283 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7284 if (UNTAG_Bool(REGB0)) {
7285 /* parser/parser_prod.nit:1313 */
7286 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7287 if (UNTAG_Bool(REGB0)) {
7288 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1313);
7289 }
7290 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7291 /* parser/parser_prod.nit:1314 */
7292 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
7293 if (UNTAG_Bool(REGB0)) {
7294 } else {
7295 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1314);
7296 }
7297 /* parser/parser_prod.nit:1315 */
7298 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
7299 } else {
7300 /* parser/parser_prod.nit:1317 */
7301 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1317);
7302 }
7303 /* parser/parser_prod.nit:1319 */
7304 goto label1;
7305 }
7306 /* parser/parser_prod.nit:1321 */
7307 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
7308 if (UNTAG_Bool(REGB0)) {
7309 } else {
7310 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1321);
7311 }
7312 fra.me.REG[3] = ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0]);
7313 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
7314 if (UNTAG_Bool(REGB0)) {
7315 } else {
7316 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7317 REGB0 = REGB1;
7318 }
7319 if (UNTAG_Bool(REGB0)) {
7320 /* parser/parser_prod.nit:1322 */
7321 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7322 if (UNTAG_Bool(REGB0)) {
7323 } else {
7324 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7325 if (UNTAG_Bool(REGB1)) {
7326 REGB1 = TAG_Bool(false);
7327 REGB0 = REGB1;
7328 } else {
7329 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7330 REGB0 = REGB1;
7331 }
7332 }
7333 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7334 if (UNTAG_Bool(REGB0)) {
7335 /* parser/parser_prod.nit:1323 */
7336 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7337 if (UNTAG_Bool(REGB0)) {
7338 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1323);
7339 }
7340 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7341 /* parser/parser_prod.nit:1324 */
7342 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast TKwmeth*/;
7343 if (UNTAG_Bool(REGB0)) {
7344 } else {
7345 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1324);
7346 }
7347 /* parser/parser_prod.nit:1325 */
7348 ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
7349 } else {
7350 /* parser/parser_prod.nit:1327 */
7351 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1327);
7352 }
7353 /* parser/parser_prod.nit:1329 */
7354 goto label1;
7355 }
7356 /* parser/parser_prod.nit:1331 */
7357 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
7358 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7359 if (UNTAG_Bool(REGB0)) {
7360 } else {
7361 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7362 if (UNTAG_Bool(REGB1)) {
7363 REGB1 = TAG_Bool(false);
7364 REGB0 = REGB1;
7365 } else {
7366 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7367 REGB0 = REGB1;
7368 }
7369 }
7370 if (UNTAG_Bool(REGB0)) {
7371 /* parser/parser_prod.nit:1332 */
7372 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7373 if (UNTAG_Bool(REGB0)) {
7374 } else {
7375 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7376 if (UNTAG_Bool(REGB1)) {
7377 REGB1 = TAG_Bool(false);
7378 REGB0 = REGB1;
7379 } else {
7380 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7381 REGB0 = REGB1;
7382 }
7383 }
7384 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7385 if (UNTAG_Bool(REGB0)) {
7386 /* parser/parser_prod.nit:1333 */
7387 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7388 if (UNTAG_Bool(REGB0)) {
7389 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1333);
7390 }
7391 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7392 /* parser/parser_prod.nit:1334 */
7393 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
7394 if (UNTAG_Bool(REGB0)) {
7395 } else {
7396 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1334);
7397 }
7398 /* parser/parser_prod.nit:1335 */
7399 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
7400 } else {
7401 /* parser/parser_prod.nit:1337 */
7402 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1337);
7403 }
7404 /* parser/parser_prod.nit:1339 */
7405 goto label1;
7406 }
7407 /* parser/parser_prod.nit:1341 */
7408 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
7409 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7410 if (UNTAG_Bool(REGB0)) {
7411 } else {
7412 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7413 if (UNTAG_Bool(REGB1)) {
7414 REGB1 = TAG_Bool(false);
7415 REGB0 = REGB1;
7416 } else {
7417 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7418 REGB0 = REGB1;
7419 }
7420 }
7421 if (UNTAG_Bool(REGB0)) {
7422 /* parser/parser_prod.nit:1342 */
7423 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7424 if (UNTAG_Bool(REGB0)) {
7425 } else {
7426 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7427 if (UNTAG_Bool(REGB1)) {
7428 REGB1 = TAG_Bool(false);
7429 REGB0 = REGB1;
7430 } else {
7431 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7432 REGB0 = REGB1;
7433 }
7434 }
7435 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7436 if (UNTAG_Bool(REGB0)) {
7437 /* parser/parser_prod.nit:1343 */
7438 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7439 if (UNTAG_Bool(REGB0)) {
7440 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1343);
7441 }
7442 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7443 /* parser/parser_prod.nit:1344 */
7444 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
7445 if (UNTAG_Bool(REGB0)) {
7446 } else {
7447 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1344);
7448 }
7449 /* parser/parser_prod.nit:1345 */
7450 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
7451 } else {
7452 /* parser/parser_prod.nit:1347 */
7453 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1347);
7454 }
7455 /* parser/parser_prod.nit:1349 */
7456 goto label1;
7457 }
7458 label1: while(0);
7459 stack_frame_head = fra.me.prev;
7460 return;
7461 }
7462 void parser___parser_prod___ADeferredMethPropdef___visit_all(val_t p0, val_t p1){
7463 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7464 val_t REGB0;
7465 val_t REGB1;
7466 val_t tmp;
7467 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7468 fra.me.file = LOCATE_parser___parser_prod;
7469 fra.me.line = 1353;
7470 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___visit_all;
7471 fra.me.has_broke = 0;
7472 fra.me.REG_size = 4;
7473 fra.me.nitni_local_ref_head = NULL;
7474 fra.me.REG[0] = NIT_NULL;
7475 fra.me.REG[1] = NIT_NULL;
7476 fra.me.REG[2] = NIT_NULL;
7477 fra.me.REG[3] = NIT_NULL;
7478 fra.me.REG[0] = p0;
7479 fra.me.REG[1] = p1;
7480 /* parser/parser_prod.nit:1353 */
7481 fra.me.REG[2] = fra.me.REG[0];
7482 /* parser/parser_prod.nit:1355 */
7483 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7484 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7485 if (UNTAG_Bool(REGB0)) {
7486 } else {
7487 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7488 if (UNTAG_Bool(REGB1)) {
7489 REGB1 = TAG_Bool(false);
7490 REGB0 = REGB1;
7491 } else {
7492 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7493 REGB0 = REGB1;
7494 }
7495 }
7496 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7497 if (UNTAG_Bool(REGB0)) {
7498 /* parser/parser_prod.nit:1356 */
7499 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7500 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
7501 if (UNTAG_Bool(REGB0)) {
7502 } else {
7503 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1356);
7504 }
7505 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7506 }
7507 /* parser/parser_prod.nit:1358 */
7508 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
7509 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7510 if (UNTAG_Bool(REGB0)) {
7511 } else {
7512 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7513 if (UNTAG_Bool(REGB1)) {
7514 REGB1 = TAG_Bool(false);
7515 REGB0 = REGB1;
7516 } else {
7517 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7518 REGB0 = REGB1;
7519 }
7520 }
7521 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7522 if (UNTAG_Bool(REGB0)) {
7523 /* parser/parser_prod.nit:1359 */
7524 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
7525 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
7526 if (UNTAG_Bool(REGB0)) {
7527 } else {
7528 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1359);
7529 }
7530 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7531 }
7532 /* parser/parser_prod.nit:1361 */
7533 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
7534 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7535 /* parser/parser_prod.nit:1362 */
7536 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
7537 if (UNTAG_Bool(REGB0)) {
7538 } else {
7539 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1362);
7540 }
7541 fra.me.REG[3] = ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[2]);
7542 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7543 /* parser/parser_prod.nit:1363 */
7544 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
7545 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7546 /* parser/parser_prod.nit:1364 */
7547 fra.me.REG[2] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
7548 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
7549 stack_frame_head = fra.me.prev;
7550 return;
7551 }
7552 void parser___parser_prod___AInternMethPropdef___empty_init(val_t p0, int* init_table){
7553 int itpos43 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInternMethPropdef].i;
7554 struct {struct stack_frame_t me;} fra;
7555 val_t tmp;
7556 if (init_table[itpos43]) return;
7557 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7558 fra.me.file = LOCATE_parser___parser_prod;
7559 fra.me.line = 1368;
7560 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___empty_init;
7561 fra.me.has_broke = 0;
7562 fra.me.REG_size = 1;
7563 fra.me.nitni_local_ref_head = NULL;
7564 fra.me.REG[0] = NIT_NULL;
7565 fra.me.REG[0] = p0;
7566 stack_frame_head = fra.me.prev;
7567 init_table[itpos43] = 1;
7568 return;
7569 }
7570 void parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, int* init_table){
7571 int itpos44 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInternMethPropdef].i;
7572 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
7573 val_t REGB0;
7574 val_t REGB1;
7575 val_t tmp;
7576 if (init_table[itpos44]) return;
7577 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7578 fra.me.file = LOCATE_parser___parser_prod;
7579 fra.me.line = 1370;
7580 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef;
7581 fra.me.has_broke = 0;
7582 fra.me.REG_size = 8;
7583 fra.me.nitni_local_ref_head = NULL;
7584 fra.me.REG[0] = NIT_NULL;
7585 fra.me.REG[1] = NIT_NULL;
7586 fra.me.REG[2] = NIT_NULL;
7587 fra.me.REG[3] = NIT_NULL;
7588 fra.me.REG[4] = NIT_NULL;
7589 fra.me.REG[5] = NIT_NULL;
7590 fra.me.REG[6] = NIT_NULL;
7591 fra.me.REG[7] = NIT_NULL;
7592 fra.me.REG[0] = p0;
7593 fra.me.REG[1] = p1;
7594 fra.me.REG[2] = p2;
7595 fra.me.REG[3] = p3;
7596 fra.me.REG[4] = p4;
7597 fra.me.REG[5] = p5;
7598 fra.me.REG[6] = p6;
7599 /* parser/parser_prod.nit:1370 */
7600 fra.me.REG[7] = fra.me.REG[0];
7601 /* parser/parser_prod.nit:1379 */
7602 CALL_parser___parser_prod___AInternMethPropdef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
7603 /* parser/parser_prod.nit:1380 */
7604 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[7]) = fra.me.REG[1];
7605 /* parser/parser_prod.nit:1381 */
7606 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7607 if (UNTAG_Bool(REGB0)) {
7608 } else {
7609 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7610 if (UNTAG_Bool(REGB1)) {
7611 REGB1 = TAG_Bool(false);
7612 REGB0 = REGB1;
7613 } else {
7614 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7615 REGB0 = REGB1;
7616 }
7617 }
7618 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7619 if (UNTAG_Bool(REGB0)) {
7620 /* parser/parser_prod.nit:1382 */
7621 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7622 if (UNTAG_Bool(REGB0)) {
7623 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1382);
7624 }
7625 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
7626 }
7627 /* parser/parser_prod.nit:1384 */
7628 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[7]) = fra.me.REG[2];
7629 /* parser/parser_prod.nit:1385 */
7630 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7631 if (UNTAG_Bool(REGB0)) {
7632 } else {
7633 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7634 if (UNTAG_Bool(REGB1)) {
7635 REGB1 = TAG_Bool(false);
7636 REGB0 = REGB1;
7637 } else {
7638 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7639 REGB0 = REGB1;
7640 }
7641 }
7642 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7643 if (UNTAG_Bool(REGB0)) {
7644 /* parser/parser_prod.nit:1386 */
7645 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7646 if (UNTAG_Bool(REGB0)) {
7647 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1386);
7648 }
7649 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
7650 }
7651 /* parser/parser_prod.nit:1388 */
7652 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
7653 if (UNTAG_Bool(REGB0)) {
7654 } else {
7655 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1388);
7656 }
7657 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[7]) = fra.me.REG[3];
7658 /* parser/parser_prod.nit:1389 */
7659 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7660 if (UNTAG_Bool(REGB0)) {
7661 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1389);
7662 }
7663 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
7664 /* parser/parser_prod.nit:1390 */
7665 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
7666 if (UNTAG_Bool(REGB0)) {
7667 } else {
7668 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1390);
7669 }
7670 ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[7]) = fra.me.REG[4];
7671 /* parser/parser_prod.nit:1391 */
7672 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7673 if (UNTAG_Bool(REGB0)) {
7674 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1391);
7675 }
7676 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
7677 /* parser/parser_prod.nit:1392 */
7678 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
7679 if (UNTAG_Bool(REGB0)) {
7680 } else {
7681 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1392);
7682 }
7683 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[7]) = fra.me.REG[5];
7684 /* parser/parser_prod.nit:1393 */
7685 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7686 if (UNTAG_Bool(REGB0)) {
7687 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1393);
7688 }
7689 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
7690 /* parser/parser_prod.nit:1394 */
7691 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
7692 if (UNTAG_Bool(REGB0)) {
7693 } else {
7694 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1394);
7695 }
7696 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[7]) = fra.me.REG[6];
7697 /* parser/parser_prod.nit:1395 */
7698 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
7699 if (UNTAG_Bool(REGB0)) {
7700 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1395);
7701 }
7702 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7703 stack_frame_head = fra.me.prev;
7704 init_table[itpos44] = 1;
7705 return;
7706 }
7707 void parser___parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
7708 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7709 val_t REGB0;
7710 val_t REGB1;
7711 val_t tmp;
7712 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7713 fra.me.file = LOCATE_parser___parser_prod;
7714 fra.me.line = 1398;
7715 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___replace_child;
7716 fra.me.has_broke = 0;
7717 fra.me.REG_size = 4;
7718 fra.me.nitni_local_ref_head = NULL;
7719 fra.me.REG[0] = NIT_NULL;
7720 fra.me.REG[1] = NIT_NULL;
7721 fra.me.REG[2] = NIT_NULL;
7722 fra.me.REG[3] = NIT_NULL;
7723 fra.me.REG[0] = p0;
7724 fra.me.REG[1] = p1;
7725 fra.me.REG[2] = p2;
7726 /* parser/parser_prod.nit:1400 */
7727 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
7728 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7729 if (UNTAG_Bool(REGB0)) {
7730 } else {
7731 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7732 if (UNTAG_Bool(REGB1)) {
7733 REGB1 = TAG_Bool(false);
7734 REGB0 = REGB1;
7735 } else {
7736 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7737 REGB0 = REGB1;
7738 }
7739 }
7740 if (UNTAG_Bool(REGB0)) {
7741 /* parser/parser_prod.nit:1401 */
7742 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7743 if (UNTAG_Bool(REGB0)) {
7744 } else {
7745 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7746 if (UNTAG_Bool(REGB1)) {
7747 REGB1 = TAG_Bool(false);
7748 REGB0 = REGB1;
7749 } else {
7750 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7751 REGB0 = REGB1;
7752 }
7753 }
7754 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7755 if (UNTAG_Bool(REGB0)) {
7756 /* parser/parser_prod.nit:1402 */
7757 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7758 if (UNTAG_Bool(REGB0)) {
7759 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1402);
7760 }
7761 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7762 /* parser/parser_prod.nit:1403 */
7763 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
7764 if (UNTAG_Bool(REGB0)) {
7765 } else {
7766 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1403);
7767 }
7768 /* parser/parser_prod.nit:1404 */
7769 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
7770 } else {
7771 /* parser/parser_prod.nit:1406 */
7772 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
7773 }
7774 /* parser/parser_prod.nit:1408 */
7775 goto label1;
7776 }
7777 /* parser/parser_prod.nit:1410 */
7778 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
7779 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7780 if (UNTAG_Bool(REGB0)) {
7781 } else {
7782 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7783 if (UNTAG_Bool(REGB1)) {
7784 REGB1 = TAG_Bool(false);
7785 REGB0 = REGB1;
7786 } else {
7787 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7788 REGB0 = REGB1;
7789 }
7790 }
7791 if (UNTAG_Bool(REGB0)) {
7792 /* parser/parser_prod.nit:1411 */
7793 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7794 if (UNTAG_Bool(REGB0)) {
7795 } else {
7796 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7797 if (UNTAG_Bool(REGB1)) {
7798 REGB1 = TAG_Bool(false);
7799 REGB0 = REGB1;
7800 } else {
7801 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7802 REGB0 = REGB1;
7803 }
7804 }
7805 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7806 if (UNTAG_Bool(REGB0)) {
7807 /* parser/parser_prod.nit:1412 */
7808 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7809 if (UNTAG_Bool(REGB0)) {
7810 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1412);
7811 }
7812 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7813 /* parser/parser_prod.nit:1413 */
7814 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
7815 if (UNTAG_Bool(REGB0)) {
7816 } else {
7817 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1413);
7818 }
7819 /* parser/parser_prod.nit:1414 */
7820 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
7821 } else {
7822 /* parser/parser_prod.nit:1416 */
7823 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
7824 }
7825 /* parser/parser_prod.nit:1418 */
7826 goto label1;
7827 }
7828 /* parser/parser_prod.nit:1420 */
7829 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
7830 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7831 if (UNTAG_Bool(REGB0)) {
7832 } else {
7833 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7834 if (UNTAG_Bool(REGB1)) {
7835 REGB1 = TAG_Bool(false);
7836 REGB0 = REGB1;
7837 } else {
7838 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7839 REGB0 = REGB1;
7840 }
7841 }
7842 if (UNTAG_Bool(REGB0)) {
7843 /* parser/parser_prod.nit:1421 */
7844 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7845 if (UNTAG_Bool(REGB0)) {
7846 } else {
7847 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7848 if (UNTAG_Bool(REGB1)) {
7849 REGB1 = TAG_Bool(false);
7850 REGB0 = REGB1;
7851 } else {
7852 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7853 REGB0 = REGB1;
7854 }
7855 }
7856 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7857 if (UNTAG_Bool(REGB0)) {
7858 /* parser/parser_prod.nit:1422 */
7859 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7860 if (UNTAG_Bool(REGB0)) {
7861 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1422);
7862 }
7863 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7864 /* parser/parser_prod.nit:1423 */
7865 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
7866 if (UNTAG_Bool(REGB0)) {
7867 } else {
7868 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1423);
7869 }
7870 /* parser/parser_prod.nit:1424 */
7871 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
7872 } else {
7873 /* parser/parser_prod.nit:1426 */
7874 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1426);
7875 }
7876 /* parser/parser_prod.nit:1428 */
7877 goto label1;
7878 }
7879 /* parser/parser_prod.nit:1430 */
7880 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
7881 if (UNTAG_Bool(REGB0)) {
7882 } else {
7883 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1430);
7884 }
7885 fra.me.REG[3] = ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0]);
7886 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
7887 if (UNTAG_Bool(REGB0)) {
7888 } else {
7889 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7890 REGB0 = REGB1;
7891 }
7892 if (UNTAG_Bool(REGB0)) {
7893 /* parser/parser_prod.nit:1431 */
7894 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7895 if (UNTAG_Bool(REGB0)) {
7896 } else {
7897 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7898 if (UNTAG_Bool(REGB1)) {
7899 REGB1 = TAG_Bool(false);
7900 REGB0 = REGB1;
7901 } else {
7902 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7903 REGB0 = REGB1;
7904 }
7905 }
7906 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7907 if (UNTAG_Bool(REGB0)) {
7908 /* parser/parser_prod.nit:1432 */
7909 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7910 if (UNTAG_Bool(REGB0)) {
7911 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1432);
7912 }
7913 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7914 /* parser/parser_prod.nit:1433 */
7915 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast TKwmeth*/;
7916 if (UNTAG_Bool(REGB0)) {
7917 } else {
7918 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1433);
7919 }
7920 /* parser/parser_prod.nit:1434 */
7921 ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
7922 } else {
7923 /* parser/parser_prod.nit:1436 */
7924 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1436);
7925 }
7926 /* parser/parser_prod.nit:1438 */
7927 goto label1;
7928 }
7929 /* parser/parser_prod.nit:1440 */
7930 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
7931 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7932 if (UNTAG_Bool(REGB0)) {
7933 } else {
7934 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7935 if (UNTAG_Bool(REGB1)) {
7936 REGB1 = TAG_Bool(false);
7937 REGB0 = REGB1;
7938 } else {
7939 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7940 REGB0 = REGB1;
7941 }
7942 }
7943 if (UNTAG_Bool(REGB0)) {
7944 /* parser/parser_prod.nit:1441 */
7945 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7946 if (UNTAG_Bool(REGB0)) {
7947 } else {
7948 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7949 if (UNTAG_Bool(REGB1)) {
7950 REGB1 = TAG_Bool(false);
7951 REGB0 = REGB1;
7952 } else {
7953 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7954 REGB0 = REGB1;
7955 }
7956 }
7957 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7958 if (UNTAG_Bool(REGB0)) {
7959 /* parser/parser_prod.nit:1442 */
7960 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7961 if (UNTAG_Bool(REGB0)) {
7962 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1442);
7963 }
7964 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7965 /* parser/parser_prod.nit:1443 */
7966 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
7967 if (UNTAG_Bool(REGB0)) {
7968 } else {
7969 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1443);
7970 }
7971 /* parser/parser_prod.nit:1444 */
7972 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
7973 } else {
7974 /* parser/parser_prod.nit:1446 */
7975 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1446);
7976 }
7977 /* parser/parser_prod.nit:1448 */
7978 goto label1;
7979 }
7980 /* parser/parser_prod.nit:1450 */
7981 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
7982 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7983 if (UNTAG_Bool(REGB0)) {
7984 } else {
7985 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7986 if (UNTAG_Bool(REGB1)) {
7987 REGB1 = TAG_Bool(false);
7988 REGB0 = REGB1;
7989 } else {
7990 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7991 REGB0 = REGB1;
7992 }
7993 }
7994 if (UNTAG_Bool(REGB0)) {
7995 /* parser/parser_prod.nit:1451 */
7996 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7997 if (UNTAG_Bool(REGB0)) {
7998 } else {
7999 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8000 if (UNTAG_Bool(REGB1)) {
8001 REGB1 = TAG_Bool(false);
8002 REGB0 = REGB1;
8003 } else {
8004 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8005 REGB0 = REGB1;
8006 }
8007 }
8008 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8009 if (UNTAG_Bool(REGB0)) {
8010 /* parser/parser_prod.nit:1452 */
8011 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8012 if (UNTAG_Bool(REGB0)) {
8013 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1452);
8014 }
8015 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8016 /* parser/parser_prod.nit:1453 */
8017 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
8018 if (UNTAG_Bool(REGB0)) {
8019 } else {
8020 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1453);
8021 }
8022 /* parser/parser_prod.nit:1454 */
8023 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
8024 } else {
8025 /* parser/parser_prod.nit:1456 */
8026 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1456);
8027 }
8028 /* parser/parser_prod.nit:1458 */
8029 goto label1;
8030 }
8031 label1: while(0);
8032 stack_frame_head = fra.me.prev;
8033 return;
8034 }
8035 void parser___parser_prod___AInternMethPropdef___visit_all(val_t p0, val_t p1){
8036 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8037 val_t REGB0;
8038 val_t REGB1;
8039 val_t tmp;
8040 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8041 fra.me.file = LOCATE_parser___parser_prod;
8042 fra.me.line = 1462;
8043 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___visit_all;
8044 fra.me.has_broke = 0;
8045 fra.me.REG_size = 4;
8046 fra.me.nitni_local_ref_head = NULL;
8047 fra.me.REG[0] = NIT_NULL;
8048 fra.me.REG[1] = NIT_NULL;
8049 fra.me.REG[2] = NIT_NULL;
8050 fra.me.REG[3] = NIT_NULL;
8051 fra.me.REG[0] = p0;
8052 fra.me.REG[1] = p1;
8053 /* parser/parser_prod.nit:1462 */
8054 fra.me.REG[2] = fra.me.REG[0];
8055 /* parser/parser_prod.nit:1464 */
8056 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
8057 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8058 if (UNTAG_Bool(REGB0)) {
8059 } else {
8060 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8061 if (UNTAG_Bool(REGB1)) {
8062 REGB1 = TAG_Bool(false);
8063 REGB0 = REGB1;
8064 } else {
8065 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8066 REGB0 = REGB1;
8067 }
8068 }
8069 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8070 if (UNTAG_Bool(REGB0)) {
8071 /* parser/parser_prod.nit:1465 */
8072 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
8073 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
8074 if (UNTAG_Bool(REGB0)) {
8075 } else {
8076 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1465);
8077 }
8078 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8079 }
8080 /* parser/parser_prod.nit:1467 */
8081 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
8082 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8083 if (UNTAG_Bool(REGB0)) {
8084 } else {
8085 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8086 if (UNTAG_Bool(REGB1)) {
8087 REGB1 = TAG_Bool(false);
8088 REGB0 = REGB1;
8089 } else {
8090 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8091 REGB0 = REGB1;
8092 }
8093 }
8094 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8095 if (UNTAG_Bool(REGB0)) {
8096 /* parser/parser_prod.nit:1468 */
8097 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
8098 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
8099 if (UNTAG_Bool(REGB0)) {
8100 } else {
8101 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1468);
8102 }
8103 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8104 }
8105 /* parser/parser_prod.nit:1470 */
8106 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
8107 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8108 /* parser/parser_prod.nit:1471 */
8109 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
8110 if (UNTAG_Bool(REGB0)) {
8111 } else {
8112 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1471);
8113 }
8114 fra.me.REG[3] = ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[2]);
8115 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8116 /* parser/parser_prod.nit:1472 */
8117 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
8118 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8119 /* parser/parser_prod.nit:1473 */
8120 fra.me.REG[2] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
8121 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8122 stack_frame_head = fra.me.prev;
8123 return;
8124 }
8125 void parser___parser_prod___AExternMethPropdef___empty_init(val_t p0, int* init_table){
8126 int itpos45 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternMethPropdef].i;
8127 struct {struct stack_frame_t me;} fra;
8128 val_t tmp;
8129 if (init_table[itpos45]) return;
8130 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8131 fra.me.file = LOCATE_parser___parser_prod;
8132 fra.me.line = 1477;
8133 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___empty_init;
8134 fra.me.has_broke = 0;
8135 fra.me.REG_size = 1;
8136 fra.me.nitni_local_ref_head = NULL;
8137 fra.me.REG[0] = NIT_NULL;
8138 fra.me.REG[0] = p0;
8139 stack_frame_head = fra.me.prev;
8140 init_table[itpos45] = 1;
8141 return;
8142 }
8143 void parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, int* init_table){
8144 int itpos46 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternMethPropdef].i;
8145 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
8146 val_t REGB0;
8147 val_t REGB1;
8148 val_t tmp;
8149 if (init_table[itpos46]) return;
8150 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8151 fra.me.file = LOCATE_parser___parser_prod;
8152 fra.me.line = 1479;
8153 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef;
8154 fra.me.has_broke = 0;
8155 fra.me.REG_size = 10;
8156 fra.me.nitni_local_ref_head = NULL;
8157 fra.me.REG[0] = NIT_NULL;
8158 fra.me.REG[1] = NIT_NULL;
8159 fra.me.REG[2] = NIT_NULL;
8160 fra.me.REG[3] = NIT_NULL;
8161 fra.me.REG[4] = NIT_NULL;
8162 fra.me.REG[5] = NIT_NULL;
8163 fra.me.REG[6] = NIT_NULL;
8164 fra.me.REG[7] = NIT_NULL;
8165 fra.me.REG[8] = NIT_NULL;
8166 fra.me.REG[9] = NIT_NULL;
8167 fra.me.REG[0] = p0;
8168 fra.me.REG[1] = p1;
8169 fra.me.REG[2] = p2;
8170 fra.me.REG[3] = p3;
8171 fra.me.REG[4] = p4;
8172 fra.me.REG[5] = p5;
8173 fra.me.REG[6] = p6;
8174 fra.me.REG[7] = p7;
8175 fra.me.REG[8] = p8;
8176 /* parser/parser_prod.nit:1479 */
8177 fra.me.REG[9] = fra.me.REG[0];
8178 /* parser/parser_prod.nit:1490 */
8179 CALL_parser___parser_prod___AExternMethPropdef___empty_init(fra.me.REG[9])(fra.me.REG[9], init_table);
8180 /* parser/parser_prod.nit:1491 */
8181 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[9]) = fra.me.REG[1];
8182 /* parser/parser_prod.nit:1492 */
8183 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8184 if (UNTAG_Bool(REGB0)) {
8185 } else {
8186 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8187 if (UNTAG_Bool(REGB1)) {
8188 REGB1 = TAG_Bool(false);
8189 REGB0 = REGB1;
8190 } else {
8191 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8192 REGB0 = REGB1;
8193 }
8194 }
8195 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8196 if (UNTAG_Bool(REGB0)) {
8197 /* parser/parser_prod.nit:1493 */
8198 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8199 if (UNTAG_Bool(REGB0)) {
8200 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1493);
8201 }
8202 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
8203 }
8204 /* parser/parser_prod.nit:1495 */
8205 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[9]) = fra.me.REG[2];
8206 /* parser/parser_prod.nit:1496 */
8207 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8208 if (UNTAG_Bool(REGB0)) {
8209 } else {
8210 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8211 if (UNTAG_Bool(REGB1)) {
8212 REGB1 = TAG_Bool(false);
8213 REGB0 = REGB1;
8214 } else {
8215 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8216 REGB0 = REGB1;
8217 }
8218 }
8219 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8220 if (UNTAG_Bool(REGB0)) {
8221 /* parser/parser_prod.nit:1497 */
8222 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8223 if (UNTAG_Bool(REGB0)) {
8224 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1497);
8225 }
8226 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[9]);
8227 }
8228 /* parser/parser_prod.nit:1499 */
8229 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
8230 if (UNTAG_Bool(REGB0)) {
8231 } else {
8232 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1499);
8233 }
8234 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[9]) = fra.me.REG[3];
8235 /* parser/parser_prod.nit:1500 */
8236 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8237 if (UNTAG_Bool(REGB0)) {
8238 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1500);
8239 }
8240 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]);
8241 /* parser/parser_prod.nit:1501 */
8242 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8243 if (UNTAG_Bool(REGB0)) {
8244 } else {
8245 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1501);
8246 }
8247 ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[9]) = fra.me.REG[4];
8248 /* parser/parser_prod.nit:1502 */
8249 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8250 if (UNTAG_Bool(REGB0)) {
8251 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1502);
8252 }
8253 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
8254 /* parser/parser_prod.nit:1503 */
8255 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
8256 if (UNTAG_Bool(REGB0)) {
8257 } else {
8258 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1503);
8259 }
8260 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[9]) = fra.me.REG[5];
8261 /* parser/parser_prod.nit:1504 */
8262 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8263 if (UNTAG_Bool(REGB0)) {
8264 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1504);
8265 }
8266 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[9]);
8267 /* parser/parser_prod.nit:1505 */
8268 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
8269 if (UNTAG_Bool(REGB0)) {
8270 } else {
8271 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1505);
8272 }
8273 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[9]) = fra.me.REG[6];
8274 /* parser/parser_prod.nit:1506 */
8275 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8276 if (UNTAG_Bool(REGB0)) {
8277 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1506);
8278 }
8279 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
8280 /* parser/parser_prod.nit:1507 */
8281 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[9]) = fra.me.REG[7];
8282 /* parser/parser_prod.nit:1508 */
8283 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8284 if (UNTAG_Bool(REGB0)) {
8285 } else {
8286 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8287 if (UNTAG_Bool(REGB1)) {
8288 REGB1 = TAG_Bool(false);
8289 REGB0 = REGB1;
8290 } else {
8291 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
8292 REGB0 = REGB1;
8293 }
8294 }
8295 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8296 if (UNTAG_Bool(REGB0)) {
8297 /* parser/parser_prod.nit:1509 */
8298 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8299 if (UNTAG_Bool(REGB0)) {
8300 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1509);
8301 }
8302 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]);
8303 }
8304 /* parser/parser_prod.nit:1511 */
8305 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[9]) = fra.me.REG[8];
8306 /* parser/parser_prod.nit:1512 */
8307 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
8308 if (UNTAG_Bool(REGB0)) {
8309 } else {
8310 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
8311 if (UNTAG_Bool(REGB1)) {
8312 REGB1 = TAG_Bool(false);
8313 REGB0 = REGB1;
8314 } else {
8315 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
8316 REGB0 = REGB1;
8317 }
8318 }
8319 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8320 if (UNTAG_Bool(REGB0)) {
8321 /* parser/parser_prod.nit:1513 */
8322 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
8323 if (UNTAG_Bool(REGB0)) {
8324 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1513);
8325 }
8326 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
8327 }
8328 stack_frame_head = fra.me.prev;
8329 init_table[itpos46] = 1;
8330 return;
8331 }
8332 void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
8333 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8334 val_t REGB0;
8335 val_t REGB1;
8336 val_t tmp;
8337 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8338 fra.me.file = LOCATE_parser___parser_prod;
8339 fra.me.line = 1517;
8340 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___replace_child;
8341 fra.me.has_broke = 0;
8342 fra.me.REG_size = 4;
8343 fra.me.nitni_local_ref_head = NULL;
8344 fra.me.REG[0] = NIT_NULL;
8345 fra.me.REG[1] = NIT_NULL;
8346 fra.me.REG[2] = NIT_NULL;
8347 fra.me.REG[3] = NIT_NULL;
8348 fra.me.REG[0] = p0;
8349 fra.me.REG[1] = p1;
8350 fra.me.REG[2] = p2;
8351 /* parser/parser_prod.nit:1519 */
8352 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
8353 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8354 if (UNTAG_Bool(REGB0)) {
8355 } else {
8356 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8357 if (UNTAG_Bool(REGB1)) {
8358 REGB1 = TAG_Bool(false);
8359 REGB0 = REGB1;
8360 } else {
8361 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8362 REGB0 = REGB1;
8363 }
8364 }
8365 if (UNTAG_Bool(REGB0)) {
8366 /* parser/parser_prod.nit:1520 */
8367 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8368 if (UNTAG_Bool(REGB0)) {
8369 } else {
8370 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8371 if (UNTAG_Bool(REGB1)) {
8372 REGB1 = TAG_Bool(false);
8373 REGB0 = REGB1;
8374 } else {
8375 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8376 REGB0 = REGB1;
8377 }
8378 }
8379 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8380 if (UNTAG_Bool(REGB0)) {
8381 /* parser/parser_prod.nit:1521 */
8382 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8383 if (UNTAG_Bool(REGB0)) {
8384 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1521);
8385 }
8386 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8387 /* parser/parser_prod.nit:1522 */
8388 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
8389 if (UNTAG_Bool(REGB0)) {
8390 } else {
8391 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1522);
8392 }
8393 /* parser/parser_prod.nit:1523 */
8394 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
8395 } else {
8396 /* parser/parser_prod.nit:1525 */
8397 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
8398 }
8399 /* parser/parser_prod.nit:1527 */
8400 goto label1;
8401 }
8402 /* parser/parser_prod.nit:1529 */
8403 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
8404 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8405 if (UNTAG_Bool(REGB0)) {
8406 } else {
8407 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8408 if (UNTAG_Bool(REGB1)) {
8409 REGB1 = TAG_Bool(false);
8410 REGB0 = REGB1;
8411 } else {
8412 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8413 REGB0 = REGB1;
8414 }
8415 }
8416 if (UNTAG_Bool(REGB0)) {
8417 /* parser/parser_prod.nit:1530 */
8418 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8419 if (UNTAG_Bool(REGB0)) {
8420 } else {
8421 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8422 if (UNTAG_Bool(REGB1)) {
8423 REGB1 = TAG_Bool(false);
8424 REGB0 = REGB1;
8425 } else {
8426 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8427 REGB0 = REGB1;
8428 }
8429 }
8430 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8431 if (UNTAG_Bool(REGB0)) {
8432 /* parser/parser_prod.nit:1531 */
8433 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8434 if (UNTAG_Bool(REGB0)) {
8435 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1531);
8436 }
8437 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8438 /* parser/parser_prod.nit:1532 */
8439 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
8440 if (UNTAG_Bool(REGB0)) {
8441 } else {
8442 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1532);
8443 }
8444 /* parser/parser_prod.nit:1533 */
8445 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
8446 } else {
8447 /* parser/parser_prod.nit:1535 */
8448 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
8449 }
8450 /* parser/parser_prod.nit:1537 */
8451 goto label1;
8452 }
8453 /* parser/parser_prod.nit:1539 */
8454 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
8455 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8456 if (UNTAG_Bool(REGB0)) {
8457 } else {
8458 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8459 if (UNTAG_Bool(REGB1)) {
8460 REGB1 = TAG_Bool(false);
8461 REGB0 = REGB1;
8462 } else {
8463 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8464 REGB0 = REGB1;
8465 }
8466 }
8467 if (UNTAG_Bool(REGB0)) {
8468 /* parser/parser_prod.nit:1540 */
8469 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8470 if (UNTAG_Bool(REGB0)) {
8471 } else {
8472 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8473 if (UNTAG_Bool(REGB1)) {
8474 REGB1 = TAG_Bool(false);
8475 REGB0 = REGB1;
8476 } else {
8477 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8478 REGB0 = REGB1;
8479 }
8480 }
8481 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8482 if (UNTAG_Bool(REGB0)) {
8483 /* parser/parser_prod.nit:1541 */
8484 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8485 if (UNTAG_Bool(REGB0)) {
8486 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1541);
8487 }
8488 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8489 /* parser/parser_prod.nit:1542 */
8490 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
8491 if (UNTAG_Bool(REGB0)) {
8492 } else {
8493 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1542);
8494 }
8495 /* parser/parser_prod.nit:1543 */
8496 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
8497 } else {
8498 /* parser/parser_prod.nit:1545 */
8499 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1545);
8500 }
8501 /* parser/parser_prod.nit:1547 */
8502 goto label1;
8503 }
8504 /* parser/parser_prod.nit:1549 */
8505 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
8506 if (UNTAG_Bool(REGB0)) {
8507 } else {
8508 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1549);
8509 }
8510 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]);
8511 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
8512 if (UNTAG_Bool(REGB0)) {
8513 } else {
8514 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8515 REGB0 = REGB1;
8516 }
8517 if (UNTAG_Bool(REGB0)) {
8518 /* parser/parser_prod.nit:1550 */
8519 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8520 if (UNTAG_Bool(REGB0)) {
8521 } else {
8522 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8523 if (UNTAG_Bool(REGB1)) {
8524 REGB1 = TAG_Bool(false);
8525 REGB0 = REGB1;
8526 } else {
8527 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8528 REGB0 = REGB1;
8529 }
8530 }
8531 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8532 if (UNTAG_Bool(REGB0)) {
8533 /* parser/parser_prod.nit:1551 */
8534 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8535 if (UNTAG_Bool(REGB0)) {
8536 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1551);
8537 }
8538 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8539 /* parser/parser_prod.nit:1552 */
8540 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast TKwmeth*/;
8541 if (UNTAG_Bool(REGB0)) {
8542 } else {
8543 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1552);
8544 }
8545 /* parser/parser_prod.nit:1553 */
8546 ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
8547 } else {
8548 /* parser/parser_prod.nit:1555 */
8549 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1555);
8550 }
8551 /* parser/parser_prod.nit:1557 */
8552 goto label1;
8553 }
8554 /* parser/parser_prod.nit:1559 */
8555 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
8556 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8557 if (UNTAG_Bool(REGB0)) {
8558 } else {
8559 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8560 if (UNTAG_Bool(REGB1)) {
8561 REGB1 = TAG_Bool(false);
8562 REGB0 = REGB1;
8563 } else {
8564 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8565 REGB0 = REGB1;
8566 }
8567 }
8568 if (UNTAG_Bool(REGB0)) {
8569 /* parser/parser_prod.nit:1560 */
8570 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8571 if (UNTAG_Bool(REGB0)) {
8572 } else {
8573 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8574 if (UNTAG_Bool(REGB1)) {
8575 REGB1 = TAG_Bool(false);
8576 REGB0 = REGB1;
8577 } else {
8578 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8579 REGB0 = REGB1;
8580 }
8581 }
8582 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8583 if (UNTAG_Bool(REGB0)) {
8584 /* parser/parser_prod.nit:1561 */
8585 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8586 if (UNTAG_Bool(REGB0)) {
8587 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1561);
8588 }
8589 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8590 /* parser/parser_prod.nit:1562 */
8591 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
8592 if (UNTAG_Bool(REGB0)) {
8593 } else {
8594 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1562);
8595 }
8596 /* parser/parser_prod.nit:1563 */
8597 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
8598 } else {
8599 /* parser/parser_prod.nit:1565 */
8600 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1565);
8601 }
8602 /* parser/parser_prod.nit:1567 */
8603 goto label1;
8604 }
8605 /* parser/parser_prod.nit:1569 */
8606 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
8607 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8608 if (UNTAG_Bool(REGB0)) {
8609 } else {
8610 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8611 if (UNTAG_Bool(REGB1)) {
8612 REGB1 = TAG_Bool(false);
8613 REGB0 = REGB1;
8614 } else {
8615 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8616 REGB0 = REGB1;
8617 }
8618 }
8619 if (UNTAG_Bool(REGB0)) {
8620 /* parser/parser_prod.nit:1570 */
8621 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8622 if (UNTAG_Bool(REGB0)) {
8623 } else {
8624 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8625 if (UNTAG_Bool(REGB1)) {
8626 REGB1 = TAG_Bool(false);
8627 REGB0 = REGB1;
8628 } else {
8629 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8630 REGB0 = REGB1;
8631 }
8632 }
8633 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8634 if (UNTAG_Bool(REGB0)) {
8635 /* parser/parser_prod.nit:1571 */
8636 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8637 if (UNTAG_Bool(REGB0)) {
8638 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1571);
8639 }
8640 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8641 /* parser/parser_prod.nit:1572 */
8642 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
8643 if (UNTAG_Bool(REGB0)) {
8644 } else {
8645 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1572);
8646 }
8647 /* parser/parser_prod.nit:1573 */
8648 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
8649 } else {
8650 /* parser/parser_prod.nit:1575 */
8651 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1575);
8652 }
8653 /* parser/parser_prod.nit:1577 */
8654 goto label1;
8655 }
8656 /* parser/parser_prod.nit:1579 */
8657 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]);
8658 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8659 if (UNTAG_Bool(REGB0)) {
8660 } else {
8661 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8662 if (UNTAG_Bool(REGB1)) {
8663 REGB1 = TAG_Bool(false);
8664 REGB0 = REGB1;
8665 } else {
8666 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8667 REGB0 = REGB1;
8668 }
8669 }
8670 if (UNTAG_Bool(REGB0)) {
8671 /* parser/parser_prod.nit:1580 */
8672 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8673 if (UNTAG_Bool(REGB0)) {
8674 } else {
8675 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8676 if (UNTAG_Bool(REGB1)) {
8677 REGB1 = TAG_Bool(false);
8678 REGB0 = REGB1;
8679 } else {
8680 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8681 REGB0 = REGB1;
8682 }
8683 }
8684 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8685 if (UNTAG_Bool(REGB0)) {
8686 /* parser/parser_prod.nit:1581 */
8687 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8688 if (UNTAG_Bool(REGB0)) {
8689 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1581);
8690 }
8691 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8692 /* parser/parser_prod.nit:1582 */
8693 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast TString*/;
8694 if (UNTAG_Bool(REGB0)) {
8695 } else {
8696 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1582);
8697 }
8698 /* parser/parser_prod.nit:1583 */
8699 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[2];
8700 } else {
8701 /* parser/parser_prod.nit:1585 */
8702 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = NIT_NULL;
8703 }
8704 /* parser/parser_prod.nit:1587 */
8705 goto label1;
8706 }
8707 /* parser/parser_prod.nit:1589 */
8708 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]);
8709 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8710 if (UNTAG_Bool(REGB0)) {
8711 } else {
8712 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8713 if (UNTAG_Bool(REGB1)) {
8714 REGB1 = TAG_Bool(false);
8715 REGB0 = REGB1;
8716 } else {
8717 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8718 REGB0 = REGB1;
8719 }
8720 }
8721 if (UNTAG_Bool(REGB0)) {
8722 /* parser/parser_prod.nit:1590 */
8723 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8724 if (UNTAG_Bool(REGB0)) {
8725 } else {
8726 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8727 if (UNTAG_Bool(REGB1)) {
8728 REGB1 = TAG_Bool(false);
8729 REGB0 = REGB1;
8730 } else {
8731 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8732 REGB0 = REGB1;
8733 }
8734 }
8735 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8736 if (UNTAG_Bool(REGB0)) {
8737 /* parser/parser_prod.nit:1591 */
8738 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8739 if (UNTAG_Bool(REGB0)) {
8740 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1591);
8741 }
8742 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8743 /* parser/parser_prod.nit:1592 */
8744 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast AExternCalls*/;
8745 if (UNTAG_Bool(REGB0)) {
8746 } else {
8747 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1592);
8748 }
8749 /* parser/parser_prod.nit:1593 */
8750 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = fra.me.REG[2];
8751 } else {
8752 /* parser/parser_prod.nit:1595 */
8753 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = NIT_NULL;
8754 }
8755 /* parser/parser_prod.nit:1597 */
8756 goto label1;
8757 }
8758 label1: while(0);
8759 stack_frame_head = fra.me.prev;
8760 return;
8761 }
8762 void parser___parser_prod___AExternMethPropdef___visit_all(val_t p0, val_t p1){
8763 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8764 val_t REGB0;
8765 val_t REGB1;
8766 val_t tmp;
8767 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8768 fra.me.file = LOCATE_parser___parser_prod;
8769 fra.me.line = 1601;
8770 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___visit_all;
8771 fra.me.has_broke = 0;
8772 fra.me.REG_size = 4;
8773 fra.me.nitni_local_ref_head = NULL;
8774 fra.me.REG[0] = NIT_NULL;
8775 fra.me.REG[1] = NIT_NULL;
8776 fra.me.REG[2] = NIT_NULL;
8777 fra.me.REG[3] = NIT_NULL;
8778 fra.me.REG[0] = p0;
8779 fra.me.REG[1] = p1;
8780 /* parser/parser_prod.nit:1601 */
8781 fra.me.REG[2] = fra.me.REG[0];
8782 /* parser/parser_prod.nit:1603 */
8783 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
8784 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8785 if (UNTAG_Bool(REGB0)) {
8786 } else {
8787 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8788 if (UNTAG_Bool(REGB1)) {
8789 REGB1 = TAG_Bool(false);
8790 REGB0 = REGB1;
8791 } else {
8792 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8793 REGB0 = REGB1;
8794 }
8795 }
8796 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8797 if (UNTAG_Bool(REGB0)) {
8798 /* parser/parser_prod.nit:1604 */
8799 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
8800 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
8801 if (UNTAG_Bool(REGB0)) {
8802 } else {
8803 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1604);
8804 }
8805 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8806 }
8807 /* parser/parser_prod.nit:1606 */
8808 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
8809 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8810 if (UNTAG_Bool(REGB0)) {
8811 } else {
8812 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8813 if (UNTAG_Bool(REGB1)) {
8814 REGB1 = TAG_Bool(false);
8815 REGB0 = REGB1;
8816 } else {
8817 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8818 REGB0 = REGB1;
8819 }
8820 }
8821 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8822 if (UNTAG_Bool(REGB0)) {
8823 /* parser/parser_prod.nit:1607 */
8824 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
8825 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
8826 if (UNTAG_Bool(REGB0)) {
8827 } else {
8828 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1607);
8829 }
8830 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8831 }
8832 /* parser/parser_prod.nit:1609 */
8833 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
8834 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8835 /* parser/parser_prod.nit:1610 */
8836 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
8837 if (UNTAG_Bool(REGB0)) {
8838 } else {
8839 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1610);
8840 }
8841 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[2]);
8842 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8843 /* parser/parser_prod.nit:1611 */
8844 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
8845 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8846 /* parser/parser_prod.nit:1612 */
8847 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
8848 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8849 /* parser/parser_prod.nit:1613 */
8850 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
8851 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8852 if (UNTAG_Bool(REGB0)) {
8853 } else {
8854 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8855 if (UNTAG_Bool(REGB1)) {
8856 REGB1 = TAG_Bool(false);
8857 REGB0 = REGB1;
8858 } else {
8859 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8860 REGB0 = REGB1;
8861 }
8862 }
8863 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8864 if (UNTAG_Bool(REGB0)) {
8865 /* parser/parser_prod.nit:1614 */
8866 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
8867 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast TString*/;
8868 if (UNTAG_Bool(REGB0)) {
8869 } else {
8870 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1614);
8871 }
8872 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8873 }
8874 /* parser/parser_prod.nit:1616 */
8875 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
8876 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8877 if (UNTAG_Bool(REGB0)) {
8878 } else {
8879 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8880 if (UNTAG_Bool(REGB1)) {
8881 REGB1 = TAG_Bool(false);
8882 REGB0 = REGB1;
8883 } else {
8884 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8885 REGB0 = REGB1;
8886 }
8887 }
8888 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8889 if (UNTAG_Bool(REGB0)) {
8890 /* parser/parser_prod.nit:1617 */
8891 fra.me.REG[2] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
8892 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast AExternCalls*/;
8893 if (UNTAG_Bool(REGB0)) {
8894 } else {
8895 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1617);
8896 }
8897 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8898 }
8899 stack_frame_head = fra.me.prev;
8900 return;
8901 }
8902 void parser___parser_prod___AConcreteMethPropdef___empty_init(val_t p0, int* init_table){
8903 int itpos47 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteMethPropdef].i;
8904 struct {struct stack_frame_t me;} fra;
8905 val_t tmp;
8906 if (init_table[itpos47]) return;
8907 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8908 fra.me.file = LOCATE_parser___parser_prod;
8909 fra.me.line = 1622;
8910 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___empty_init;
8911 fra.me.has_broke = 0;
8912 fra.me.REG_size = 1;
8913 fra.me.nitni_local_ref_head = NULL;
8914 fra.me.REG[0] = NIT_NULL;
8915 fra.me.REG[0] = p0;
8916 stack_frame_head = fra.me.prev;
8917 init_table[itpos47] = 1;
8918 return;
8919 }
8920 void parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, int* init_table){
8921 int itpos48 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteMethPropdef].i;
8922 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
8923 val_t REGB0;
8924 val_t REGB1;
8925 val_t tmp;
8926 if (init_table[itpos48]) return;
8927 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8928 fra.me.file = LOCATE_parser___parser_prod;
8929 fra.me.line = 1624;
8930 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef;
8931 fra.me.has_broke = 0;
8932 fra.me.REG_size = 9;
8933 fra.me.nitni_local_ref_head = NULL;
8934 fra.me.REG[0] = NIT_NULL;
8935 fra.me.REG[1] = NIT_NULL;
8936 fra.me.REG[2] = NIT_NULL;
8937 fra.me.REG[3] = NIT_NULL;
8938 fra.me.REG[4] = NIT_NULL;
8939 fra.me.REG[5] = NIT_NULL;
8940 fra.me.REG[6] = NIT_NULL;
8941 fra.me.REG[7] = NIT_NULL;
8942 fra.me.REG[8] = NIT_NULL;
8943 fra.me.REG[0] = p0;
8944 fra.me.REG[1] = p1;
8945 fra.me.REG[2] = p2;
8946 fra.me.REG[3] = p3;
8947 fra.me.REG[4] = p4;
8948 fra.me.REG[5] = p5;
8949 fra.me.REG[6] = p6;
8950 fra.me.REG[7] = p7;
8951 /* parser/parser_prod.nit:1624 */
8952 fra.me.REG[8] = fra.me.REG[0];
8953 /* parser/parser_prod.nit:1634 */
8954 CALL_parser___parser_prod___AConcreteMethPropdef___empty_init(fra.me.REG[8])(fra.me.REG[8], init_table);
8955 /* parser/parser_prod.nit:1635 */
8956 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[8]) = fra.me.REG[1];
8957 /* parser/parser_prod.nit:1636 */
8958 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8959 if (UNTAG_Bool(REGB0)) {
8960 } else {
8961 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8962 if (UNTAG_Bool(REGB1)) {
8963 REGB1 = TAG_Bool(false);
8964 REGB0 = REGB1;
8965 } else {
8966 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8967 REGB0 = REGB1;
8968 }
8969 }
8970 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8971 if (UNTAG_Bool(REGB0)) {
8972 /* parser/parser_prod.nit:1637 */
8973 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8974 if (UNTAG_Bool(REGB0)) {
8975 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1637);
8976 }
8977 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
8978 }
8979 /* parser/parser_prod.nit:1639 */
8980 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[8]) = fra.me.REG[2];
8981 /* parser/parser_prod.nit:1640 */
8982 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8983 if (UNTAG_Bool(REGB0)) {
8984 } else {
8985 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8986 if (UNTAG_Bool(REGB1)) {
8987 REGB1 = TAG_Bool(false);
8988 REGB0 = REGB1;
8989 } else {
8990 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8991 REGB0 = REGB1;
8992 }
8993 }
8994 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8995 if (UNTAG_Bool(REGB0)) {
8996 /* parser/parser_prod.nit:1641 */
8997 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8998 if (UNTAG_Bool(REGB0)) {
8999 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1641);
9000 }
9001 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
9002 }
9003 /* parser/parser_prod.nit:1643 */
9004 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
9005 if (UNTAG_Bool(REGB0)) {
9006 } else {
9007 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1643);
9008 }
9009 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[8]) = fra.me.REG[3];
9010 /* parser/parser_prod.nit:1644 */
9011 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9012 if (UNTAG_Bool(REGB0)) {
9013 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1644);
9014 }
9015 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
9016 /* parser/parser_prod.nit:1645 */
9017 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
9018 if (UNTAG_Bool(REGB0)) {
9019 } else {
9020 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1645);
9021 }
9022 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[8]) = fra.me.REG[4];
9023 /* parser/parser_prod.nit:1646 */
9024 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9025 if (UNTAG_Bool(REGB0)) {
9026 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1646);
9027 }
9028 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
9029 /* parser/parser_prod.nit:1647 */
9030 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
9031 if (UNTAG_Bool(REGB0)) {
9032 } else {
9033 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1647);
9034 }
9035 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[8]) = fra.me.REG[5];
9036 /* parser/parser_prod.nit:1648 */
9037 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9038 if (UNTAG_Bool(REGB0)) {
9039 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1648);
9040 }
9041 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
9042 /* parser/parser_prod.nit:1649 */
9043 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
9044 if (UNTAG_Bool(REGB0)) {
9045 } else {
9046 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1649);
9047 }
9048 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[8]) = fra.me.REG[6];
9049 /* parser/parser_prod.nit:1650 */
9050 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
9051 if (UNTAG_Bool(REGB0)) {
9052 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1650);
9053 }
9054 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
9055 /* parser/parser_prod.nit:1651 */
9056 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[8]) = fra.me.REG[7];
9057 /* parser/parser_prod.nit:1652 */
9058 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9059 if (UNTAG_Bool(REGB0)) {
9060 } else {
9061 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9062 if (UNTAG_Bool(REGB1)) {
9063 REGB1 = TAG_Bool(false);
9064 REGB0 = REGB1;
9065 } else {
9066 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
9067 REGB0 = REGB1;
9068 }
9069 }
9070 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9071 if (UNTAG_Bool(REGB0)) {
9072 /* parser/parser_prod.nit:1653 */
9073 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9074 if (UNTAG_Bool(REGB0)) {
9075 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1653);
9076 }
9077 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
9078 }
9079 stack_frame_head = fra.me.prev;
9080 init_table[itpos48] = 1;
9081 return;
9082 }
9083 void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
9084 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9085 val_t REGB0;
9086 val_t REGB1;
9087 val_t tmp;
9088 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9089 fra.me.file = LOCATE_parser___parser_prod;
9090 fra.me.line = 1657;
9091 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___replace_child;
9092 fra.me.has_broke = 0;
9093 fra.me.REG_size = 4;
9094 fra.me.nitni_local_ref_head = NULL;
9095 fra.me.REG[0] = NIT_NULL;
9096 fra.me.REG[1] = NIT_NULL;
9097 fra.me.REG[2] = NIT_NULL;
9098 fra.me.REG[3] = NIT_NULL;
9099 fra.me.REG[0] = p0;
9100 fra.me.REG[1] = p1;
9101 fra.me.REG[2] = p2;
9102 /* parser/parser_prod.nit:1659 */
9103 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
9104 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9105 if (UNTAG_Bool(REGB0)) {
9106 } else {
9107 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9108 if (UNTAG_Bool(REGB1)) {
9109 REGB1 = TAG_Bool(false);
9110 REGB0 = REGB1;
9111 } else {
9112 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9113 REGB0 = REGB1;
9114 }
9115 }
9116 if (UNTAG_Bool(REGB0)) {
9117 /* parser/parser_prod.nit:1660 */
9118 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9119 if (UNTAG_Bool(REGB0)) {
9120 } else {
9121 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9122 if (UNTAG_Bool(REGB1)) {
9123 REGB1 = TAG_Bool(false);
9124 REGB0 = REGB1;
9125 } else {
9126 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9127 REGB0 = REGB1;
9128 }
9129 }
9130 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9131 if (UNTAG_Bool(REGB0)) {
9132 /* parser/parser_prod.nit:1661 */
9133 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9134 if (UNTAG_Bool(REGB0)) {
9135 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1661);
9136 }
9137 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9138 /* parser/parser_prod.nit:1662 */
9139 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
9140 if (UNTAG_Bool(REGB0)) {
9141 } else {
9142 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1662);
9143 }
9144 /* parser/parser_prod.nit:1663 */
9145 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
9146 } else {
9147 /* parser/parser_prod.nit:1665 */
9148 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
9149 }
9150 /* parser/parser_prod.nit:1667 */
9151 goto label1;
9152 }
9153 /* parser/parser_prod.nit:1669 */
9154 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9155 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9156 if (UNTAG_Bool(REGB0)) {
9157 } else {
9158 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9159 if (UNTAG_Bool(REGB1)) {
9160 REGB1 = TAG_Bool(false);
9161 REGB0 = REGB1;
9162 } else {
9163 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9164 REGB0 = REGB1;
9165 }
9166 }
9167 if (UNTAG_Bool(REGB0)) {
9168 /* parser/parser_prod.nit:1670 */
9169 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9170 if (UNTAG_Bool(REGB0)) {
9171 } else {
9172 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9173 if (UNTAG_Bool(REGB1)) {
9174 REGB1 = TAG_Bool(false);
9175 REGB0 = REGB1;
9176 } else {
9177 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9178 REGB0 = REGB1;
9179 }
9180 }
9181 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9182 if (UNTAG_Bool(REGB0)) {
9183 /* parser/parser_prod.nit:1671 */
9184 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9185 if (UNTAG_Bool(REGB0)) {
9186 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1671);
9187 }
9188 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9189 /* parser/parser_prod.nit:1672 */
9190 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
9191 if (UNTAG_Bool(REGB0)) {
9192 } else {
9193 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1672);
9194 }
9195 /* parser/parser_prod.nit:1673 */
9196 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
9197 } else {
9198 /* parser/parser_prod.nit:1675 */
9199 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
9200 }
9201 /* parser/parser_prod.nit:1677 */
9202 goto label1;
9203 }
9204 /* parser/parser_prod.nit:1679 */
9205 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
9206 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9207 if (UNTAG_Bool(REGB0)) {
9208 } else {
9209 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9210 if (UNTAG_Bool(REGB1)) {
9211 REGB1 = TAG_Bool(false);
9212 REGB0 = REGB1;
9213 } else {
9214 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9215 REGB0 = REGB1;
9216 }
9217 }
9218 if (UNTAG_Bool(REGB0)) {
9219 /* parser/parser_prod.nit:1680 */
9220 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9221 if (UNTAG_Bool(REGB0)) {
9222 } else {
9223 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9224 if (UNTAG_Bool(REGB1)) {
9225 REGB1 = TAG_Bool(false);
9226 REGB0 = REGB1;
9227 } else {
9228 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9229 REGB0 = REGB1;
9230 }
9231 }
9232 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9233 if (UNTAG_Bool(REGB0)) {
9234 /* parser/parser_prod.nit:1681 */
9235 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9236 if (UNTAG_Bool(REGB0)) {
9237 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1681);
9238 }
9239 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9240 /* parser/parser_prod.nit:1682 */
9241 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
9242 if (UNTAG_Bool(REGB0)) {
9243 } else {
9244 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1682);
9245 }
9246 /* parser/parser_prod.nit:1683 */
9247 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
9248 } else {
9249 /* parser/parser_prod.nit:1685 */
9250 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1685);
9251 }
9252 /* parser/parser_prod.nit:1687 */
9253 goto label1;
9254 }
9255 /* parser/parser_prod.nit:1689 */
9256 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]);
9257 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9258 if (UNTAG_Bool(REGB0)) {
9259 } else {
9260 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9261 if (UNTAG_Bool(REGB1)) {
9262 REGB1 = TAG_Bool(false);
9263 REGB0 = REGB1;
9264 } else {
9265 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9266 REGB0 = REGB1;
9267 }
9268 }
9269 if (UNTAG_Bool(REGB0)) {
9270 /* parser/parser_prod.nit:1690 */
9271 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9272 if (UNTAG_Bool(REGB0)) {
9273 } else {
9274 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9275 if (UNTAG_Bool(REGB1)) {
9276 REGB1 = TAG_Bool(false);
9277 REGB0 = REGB1;
9278 } else {
9279 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9280 REGB0 = REGB1;
9281 }
9282 }
9283 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9284 if (UNTAG_Bool(REGB0)) {
9285 /* parser/parser_prod.nit:1691 */
9286 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9287 if (UNTAG_Bool(REGB0)) {
9288 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1691);
9289 }
9290 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9291 /* parser/parser_prod.nit:1692 */
9292 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast TKwmeth*/;
9293 if (UNTAG_Bool(REGB0)) {
9294 } else {
9295 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1692);
9296 }
9297 /* parser/parser_prod.nit:1693 */
9298 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
9299 } else {
9300 /* parser/parser_prod.nit:1695 */
9301 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1695);
9302 }
9303 /* parser/parser_prod.nit:1697 */
9304 goto label1;
9305 }
9306 /* parser/parser_prod.nit:1699 */
9307 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
9308 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9309 if (UNTAG_Bool(REGB0)) {
9310 } else {
9311 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9312 if (UNTAG_Bool(REGB1)) {
9313 REGB1 = TAG_Bool(false);
9314 REGB0 = REGB1;
9315 } else {
9316 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9317 REGB0 = REGB1;
9318 }
9319 }
9320 if (UNTAG_Bool(REGB0)) {
9321 /* parser/parser_prod.nit:1700 */
9322 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9323 if (UNTAG_Bool(REGB0)) {
9324 } else {
9325 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9326 if (UNTAG_Bool(REGB1)) {
9327 REGB1 = TAG_Bool(false);
9328 REGB0 = REGB1;
9329 } else {
9330 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9331 REGB0 = REGB1;
9332 }
9333 }
9334 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9335 if (UNTAG_Bool(REGB0)) {
9336 /* parser/parser_prod.nit:1701 */
9337 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9338 if (UNTAG_Bool(REGB0)) {
9339 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1701);
9340 }
9341 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9342 /* parser/parser_prod.nit:1702 */
9343 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
9344 if (UNTAG_Bool(REGB0)) {
9345 } else {
9346 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1702);
9347 }
9348 /* parser/parser_prod.nit:1703 */
9349 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
9350 } else {
9351 /* parser/parser_prod.nit:1705 */
9352 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1705);
9353 }
9354 /* parser/parser_prod.nit:1707 */
9355 goto label1;
9356 }
9357 /* parser/parser_prod.nit:1709 */
9358 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
9359 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9360 if (UNTAG_Bool(REGB0)) {
9361 } else {
9362 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9363 if (UNTAG_Bool(REGB1)) {
9364 REGB1 = TAG_Bool(false);
9365 REGB0 = REGB1;
9366 } else {
9367 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9368 REGB0 = REGB1;
9369 }
9370 }
9371 if (UNTAG_Bool(REGB0)) {
9372 /* parser/parser_prod.nit:1710 */
9373 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9374 if (UNTAG_Bool(REGB0)) {
9375 } else {
9376 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9377 if (UNTAG_Bool(REGB1)) {
9378 REGB1 = TAG_Bool(false);
9379 REGB0 = REGB1;
9380 } else {
9381 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9382 REGB0 = REGB1;
9383 }
9384 }
9385 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9386 if (UNTAG_Bool(REGB0)) {
9387 /* parser/parser_prod.nit:1711 */
9388 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9389 if (UNTAG_Bool(REGB0)) {
9390 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1711);
9391 }
9392 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9393 /* parser/parser_prod.nit:1712 */
9394 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
9395 if (UNTAG_Bool(REGB0)) {
9396 } else {
9397 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1712);
9398 }
9399 /* parser/parser_prod.nit:1713 */
9400 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
9401 } else {
9402 /* parser/parser_prod.nit:1715 */
9403 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1715);
9404 }
9405 /* parser/parser_prod.nit:1717 */
9406 goto label1;
9407 }
9408 /* parser/parser_prod.nit:1719 */
9409 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
9410 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9411 if (UNTAG_Bool(REGB0)) {
9412 } else {
9413 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9414 if (UNTAG_Bool(REGB1)) {
9415 REGB1 = TAG_Bool(false);
9416 REGB0 = REGB1;
9417 } else {
9418 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9419 REGB0 = REGB1;
9420 }
9421 }
9422 if (UNTAG_Bool(REGB0)) {
9423 /* parser/parser_prod.nit:1720 */
9424 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9425 if (UNTAG_Bool(REGB0)) {
9426 } else {
9427 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9428 if (UNTAG_Bool(REGB1)) {
9429 REGB1 = TAG_Bool(false);
9430 REGB0 = REGB1;
9431 } else {
9432 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9433 REGB0 = REGB1;
9434 }
9435 }
9436 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9437 if (UNTAG_Bool(REGB0)) {
9438 /* parser/parser_prod.nit:1721 */
9439 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9440 if (UNTAG_Bool(REGB0)) {
9441 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1721);
9442 }
9443 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9444 /* parser/parser_prod.nit:1722 */
9445 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
9446 if (UNTAG_Bool(REGB0)) {
9447 } else {
9448 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1722);
9449 }
9450 /* parser/parser_prod.nit:1723 */
9451 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
9452 } else {
9453 /* parser/parser_prod.nit:1725 */
9454 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
9455 }
9456 /* parser/parser_prod.nit:1727 */
9457 goto label1;
9458 }
9459 label1: while(0);
9460 stack_frame_head = fra.me.prev;
9461 return;
9462 }
9463 void parser___parser_prod___AConcreteMethPropdef___visit_all(val_t p0, val_t p1){
9464 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9465 val_t REGB0;
9466 val_t REGB1;
9467 val_t tmp;
9468 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9469 fra.me.file = LOCATE_parser___parser_prod;
9470 fra.me.line = 1731;
9471 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___visit_all;
9472 fra.me.has_broke = 0;
9473 fra.me.REG_size = 4;
9474 fra.me.nitni_local_ref_head = NULL;
9475 fra.me.REG[0] = NIT_NULL;
9476 fra.me.REG[1] = NIT_NULL;
9477 fra.me.REG[2] = NIT_NULL;
9478 fra.me.REG[3] = NIT_NULL;
9479 fra.me.REG[0] = p0;
9480 fra.me.REG[1] = p1;
9481 /* parser/parser_prod.nit:1731 */
9482 fra.me.REG[2] = fra.me.REG[0];
9483 /* parser/parser_prod.nit:1733 */
9484 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
9485 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9486 if (UNTAG_Bool(REGB0)) {
9487 } else {
9488 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9489 if (UNTAG_Bool(REGB1)) {
9490 REGB1 = TAG_Bool(false);
9491 REGB0 = REGB1;
9492 } else {
9493 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9494 REGB0 = REGB1;
9495 }
9496 }
9497 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9498 if (UNTAG_Bool(REGB0)) {
9499 /* parser/parser_prod.nit:1734 */
9500 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
9501 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
9502 if (UNTAG_Bool(REGB0)) {
9503 } else {
9504 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1734);
9505 }
9506 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9507 }
9508 /* parser/parser_prod.nit:1736 */
9509 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
9510 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
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_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9519 REGB0 = REGB1;
9520 }
9521 }
9522 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9523 if (UNTAG_Bool(REGB0)) {
9524 /* parser/parser_prod.nit:1737 */
9525 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
9526 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
9527 if (UNTAG_Bool(REGB0)) {
9528 } else {
9529 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1737);
9530 }
9531 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9532 }
9533 /* parser/parser_prod.nit:1739 */
9534 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
9535 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9536 /* parser/parser_prod.nit:1740 */
9537 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[2]);
9538 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9539 /* parser/parser_prod.nit:1741 */
9540 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
9541 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9542 /* parser/parser_prod.nit:1742 */
9543 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
9544 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9545 /* parser/parser_prod.nit:1743 */
9546 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
9547 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9548 if (UNTAG_Bool(REGB0)) {
9549 } else {
9550 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9551 if (UNTAG_Bool(REGB1)) {
9552 REGB1 = TAG_Bool(false);
9553 REGB0 = REGB1;
9554 } else {
9555 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9556 REGB0 = REGB1;
9557 }
9558 }
9559 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9560 if (UNTAG_Bool(REGB0)) {
9561 /* parser/parser_prod.nit:1744 */
9562 fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
9563 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
9564 if (UNTAG_Bool(REGB0)) {
9565 } else {
9566 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1744);
9567 }
9568 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9569 }
9570 stack_frame_head = fra.me.prev;
9571 return;
9572 }
9573 void parser___parser_prod___AConcreteInitPropdef___empty_init(val_t p0, int* init_table){
9574 int itpos49 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteInitPropdef].i;
9575 struct {struct stack_frame_t me;} fra;
9576 val_t tmp;
9577 if (init_table[itpos49]) return;
9578 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9579 fra.me.file = LOCATE_parser___parser_prod;
9580 fra.me.line = 1749;
9581 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___empty_init;
9582 fra.me.has_broke = 0;
9583 fra.me.REG_size = 1;
9584 fra.me.nitni_local_ref_head = NULL;
9585 fra.me.REG[0] = NIT_NULL;
9586 fra.me.REG[0] = p0;
9587 stack_frame_head = fra.me.prev;
9588 init_table[itpos49] = 1;
9589 return;
9590 }
9591 void parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, int* init_table){
9592 int itpos50 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteInitPropdef].i;
9593 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
9594 val_t REGB0;
9595 val_t REGB1;
9596 val_t tmp;
9597 if (init_table[itpos50]) return;
9598 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9599 fra.me.file = LOCATE_parser___parser_prod;
9600 fra.me.line = 1751;
9601 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef;
9602 fra.me.has_broke = 0;
9603 fra.me.REG_size = 9;
9604 fra.me.nitni_local_ref_head = NULL;
9605 fra.me.REG[0] = NIT_NULL;
9606 fra.me.REG[1] = NIT_NULL;
9607 fra.me.REG[2] = NIT_NULL;
9608 fra.me.REG[3] = NIT_NULL;
9609 fra.me.REG[4] = NIT_NULL;
9610 fra.me.REG[5] = NIT_NULL;
9611 fra.me.REG[6] = NIT_NULL;
9612 fra.me.REG[7] = NIT_NULL;
9613 fra.me.REG[8] = NIT_NULL;
9614 fra.me.REG[0] = p0;
9615 fra.me.REG[1] = p1;
9616 fra.me.REG[2] = p2;
9617 fra.me.REG[3] = p3;
9618 fra.me.REG[4] = p4;
9619 fra.me.REG[5] = p5;
9620 fra.me.REG[6] = p6;
9621 fra.me.REG[7] = p7;
9622 /* parser/parser_prod.nit:1751 */
9623 fra.me.REG[8] = fra.me.REG[0];
9624 /* parser/parser_prod.nit:1761 */
9625 CALL_parser___parser_prod___AConcreteInitPropdef___empty_init(fra.me.REG[8])(fra.me.REG[8], init_table);
9626 /* parser/parser_prod.nit:1762 */
9627 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[8]) = fra.me.REG[1];
9628 /* parser/parser_prod.nit:1763 */
9629 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9630 if (UNTAG_Bool(REGB0)) {
9631 } else {
9632 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9633 if (UNTAG_Bool(REGB1)) {
9634 REGB1 = TAG_Bool(false);
9635 REGB0 = REGB1;
9636 } else {
9637 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9638 REGB0 = REGB1;
9639 }
9640 }
9641 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9642 if (UNTAG_Bool(REGB0)) {
9643 /* parser/parser_prod.nit:1764 */
9644 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9645 if (UNTAG_Bool(REGB0)) {
9646 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1764);
9647 }
9648 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
9649 }
9650 /* parser/parser_prod.nit:1766 */
9651 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[8]) = fra.me.REG[2];
9652 /* parser/parser_prod.nit:1767 */
9653 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9654 if (UNTAG_Bool(REGB0)) {
9655 } else {
9656 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9657 if (UNTAG_Bool(REGB1)) {
9658 REGB1 = TAG_Bool(false);
9659 REGB0 = REGB1;
9660 } else {
9661 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9662 REGB0 = REGB1;
9663 }
9664 }
9665 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9666 if (UNTAG_Bool(REGB0)) {
9667 /* parser/parser_prod.nit:1768 */
9668 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9669 if (UNTAG_Bool(REGB0)) {
9670 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1768);
9671 }
9672 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
9673 }
9674 /* parser/parser_prod.nit:1770 */
9675 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
9676 if (UNTAG_Bool(REGB0)) {
9677 } else {
9678 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1770);
9679 }
9680 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[8]) = fra.me.REG[3];
9681 /* parser/parser_prod.nit:1771 */
9682 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9683 if (UNTAG_Bool(REGB0)) {
9684 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1771);
9685 }
9686 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
9687 /* parser/parser_prod.nit:1772 */
9688 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
9689 if (UNTAG_Bool(REGB0)) {
9690 } else {
9691 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1772);
9692 }
9693 ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[8]) = fra.me.REG[4];
9694 /* parser/parser_prod.nit:1773 */
9695 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9696 if (UNTAG_Bool(REGB0)) {
9697 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1773);
9698 }
9699 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
9700 /* parser/parser_prod.nit:1774 */
9701 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[8]) = fra.me.REG[5];
9702 /* parser/parser_prod.nit:1775 */
9703 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9704 if (UNTAG_Bool(REGB0)) {
9705 } else {
9706 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9707 if (UNTAG_Bool(REGB1)) {
9708 REGB1 = TAG_Bool(false);
9709 REGB0 = REGB1;
9710 } else {
9711 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
9712 REGB0 = REGB1;
9713 }
9714 }
9715 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9716 if (UNTAG_Bool(REGB0)) {
9717 /* parser/parser_prod.nit:1776 */
9718 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9719 if (UNTAG_Bool(REGB0)) {
9720 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1776);
9721 }
9722 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
9723 }
9724 /* parser/parser_prod.nit:1778 */
9725 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
9726 if (UNTAG_Bool(REGB0)) {
9727 } else {
9728 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1778);
9729 }
9730 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[8]) = fra.me.REG[6];
9731 /* parser/parser_prod.nit:1779 */
9732 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
9733 if (UNTAG_Bool(REGB0)) {
9734 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1779);
9735 }
9736 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
9737 /* parser/parser_prod.nit:1780 */
9738 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[8]) = fra.me.REG[7];
9739 /* parser/parser_prod.nit:1781 */
9740 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9741 if (UNTAG_Bool(REGB0)) {
9742 } else {
9743 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9744 if (UNTAG_Bool(REGB1)) {
9745 REGB1 = TAG_Bool(false);
9746 REGB0 = REGB1;
9747 } else {
9748 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
9749 REGB0 = REGB1;
9750 }
9751 }
9752 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9753 if (UNTAG_Bool(REGB0)) {
9754 /* parser/parser_prod.nit:1782 */
9755 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9756 if (UNTAG_Bool(REGB0)) {
9757 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1782);
9758 }
9759 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
9760 }
9761 stack_frame_head = fra.me.prev;
9762 init_table[itpos50] = 1;
9763 return;
9764 }
9765 void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t p1, val_t p2){
9766 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9767 val_t REGB0;
9768 val_t REGB1;
9769 val_t tmp;
9770 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9771 fra.me.file = LOCATE_parser___parser_prod;
9772 fra.me.line = 1786;
9773 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___replace_child;
9774 fra.me.has_broke = 0;
9775 fra.me.REG_size = 4;
9776 fra.me.nitni_local_ref_head = NULL;
9777 fra.me.REG[0] = NIT_NULL;
9778 fra.me.REG[1] = NIT_NULL;
9779 fra.me.REG[2] = NIT_NULL;
9780 fra.me.REG[3] = NIT_NULL;
9781 fra.me.REG[0] = p0;
9782 fra.me.REG[1] = p1;
9783 fra.me.REG[2] = p2;
9784 /* parser/parser_prod.nit:1788 */
9785 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
9786 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9787 if (UNTAG_Bool(REGB0)) {
9788 } else {
9789 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9790 if (UNTAG_Bool(REGB1)) {
9791 REGB1 = TAG_Bool(false);
9792 REGB0 = REGB1;
9793 } else {
9794 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9795 REGB0 = REGB1;
9796 }
9797 }
9798 if (UNTAG_Bool(REGB0)) {
9799 /* parser/parser_prod.nit:1789 */
9800 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9801 if (UNTAG_Bool(REGB0)) {
9802 } else {
9803 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9804 if (UNTAG_Bool(REGB1)) {
9805 REGB1 = TAG_Bool(false);
9806 REGB0 = REGB1;
9807 } else {
9808 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9809 REGB0 = REGB1;
9810 }
9811 }
9812 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9813 if (UNTAG_Bool(REGB0)) {
9814 /* parser/parser_prod.nit:1790 */
9815 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9816 if (UNTAG_Bool(REGB0)) {
9817 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1790);
9818 }
9819 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9820 /* parser/parser_prod.nit:1791 */
9821 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
9822 if (UNTAG_Bool(REGB0)) {
9823 } else {
9824 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1791);
9825 }
9826 /* parser/parser_prod.nit:1792 */
9827 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
9828 } else {
9829 /* parser/parser_prod.nit:1794 */
9830 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
9831 }
9832 /* parser/parser_prod.nit:1796 */
9833 goto label1;
9834 }
9835 /* parser/parser_prod.nit:1798 */
9836 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9837 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9838 if (UNTAG_Bool(REGB0)) {
9839 } else {
9840 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9841 if (UNTAG_Bool(REGB1)) {
9842 REGB1 = TAG_Bool(false);
9843 REGB0 = REGB1;
9844 } else {
9845 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9846 REGB0 = REGB1;
9847 }
9848 }
9849 if (UNTAG_Bool(REGB0)) {
9850 /* parser/parser_prod.nit:1799 */
9851 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9852 if (UNTAG_Bool(REGB0)) {
9853 } else {
9854 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9855 if (UNTAG_Bool(REGB1)) {
9856 REGB1 = TAG_Bool(false);
9857 REGB0 = REGB1;
9858 } else {
9859 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9860 REGB0 = REGB1;
9861 }
9862 }
9863 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9864 if (UNTAG_Bool(REGB0)) {
9865 /* parser/parser_prod.nit:1800 */
9866 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9867 if (UNTAG_Bool(REGB0)) {
9868 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1800);
9869 }
9870 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9871 /* parser/parser_prod.nit:1801 */
9872 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
9873 if (UNTAG_Bool(REGB0)) {
9874 } else {
9875 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1801);
9876 }
9877 /* parser/parser_prod.nit:1802 */
9878 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
9879 } else {
9880 /* parser/parser_prod.nit:1804 */
9881 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
9882 }
9883 /* parser/parser_prod.nit:1806 */
9884 goto label1;
9885 }
9886 /* parser/parser_prod.nit:1808 */
9887 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
9888 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9889 if (UNTAG_Bool(REGB0)) {
9890 } else {
9891 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9892 if (UNTAG_Bool(REGB1)) {
9893 REGB1 = TAG_Bool(false);
9894 REGB0 = REGB1;
9895 } else {
9896 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9897 REGB0 = REGB1;
9898 }
9899 }
9900 if (UNTAG_Bool(REGB0)) {
9901 /* parser/parser_prod.nit:1809 */
9902 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9903 if (UNTAG_Bool(REGB0)) {
9904 } else {
9905 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9906 if (UNTAG_Bool(REGB1)) {
9907 REGB1 = TAG_Bool(false);
9908 REGB0 = REGB1;
9909 } else {
9910 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9911 REGB0 = REGB1;
9912 }
9913 }
9914 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9915 if (UNTAG_Bool(REGB0)) {
9916 /* parser/parser_prod.nit:1810 */
9917 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9918 if (UNTAG_Bool(REGB0)) {
9919 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1810);
9920 }
9921 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9922 /* parser/parser_prod.nit:1811 */
9923 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
9924 if (UNTAG_Bool(REGB0)) {
9925 } else {
9926 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1811);
9927 }
9928 /* parser/parser_prod.nit:1812 */
9929 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
9930 } else {
9931 /* parser/parser_prod.nit:1814 */
9932 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1814);
9933 }
9934 /* parser/parser_prod.nit:1816 */
9935 goto label1;
9936 }
9937 /* parser/parser_prod.nit:1818 */
9938 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0])!=NIT_NULL);
9939 if (UNTAG_Bool(REGB0)) {
9940 } else {
9941 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 1818);
9942 }
9943 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]);
9944 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
9945 if (UNTAG_Bool(REGB0)) {
9946 } else {
9947 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9948 REGB0 = REGB1;
9949 }
9950 if (UNTAG_Bool(REGB0)) {
9951 /* parser/parser_prod.nit:1819 */
9952 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9953 if (UNTAG_Bool(REGB0)) {
9954 } else {
9955 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9956 if (UNTAG_Bool(REGB1)) {
9957 REGB1 = TAG_Bool(false);
9958 REGB0 = REGB1;
9959 } else {
9960 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9961 REGB0 = REGB1;
9962 }
9963 }
9964 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9965 if (UNTAG_Bool(REGB0)) {
9966 /* parser/parser_prod.nit:1820 */
9967 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9968 if (UNTAG_Bool(REGB0)) {
9969 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1820);
9970 }
9971 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9972 /* parser/parser_prod.nit:1821 */
9973 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwinit, ID_parser___parser_nodes___TKwinit)) /*cast TKwinit*/;
9974 if (UNTAG_Bool(REGB0)) {
9975 } else {
9976 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1821);
9977 }
9978 /* parser/parser_prod.nit:1822 */
9979 ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]) = fra.me.REG[2];
9980 } else {
9981 /* parser/parser_prod.nit:1824 */
9982 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1824);
9983 }
9984 /* parser/parser_prod.nit:1826 */
9985 goto label1;
9986 }
9987 /* parser/parser_prod.nit:1828 */
9988 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
9989 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9990 if (UNTAG_Bool(REGB0)) {
9991 } else {
9992 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9993 if (UNTAG_Bool(REGB1)) {
9994 REGB1 = TAG_Bool(false);
9995 REGB0 = REGB1;
9996 } else {
9997 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9998 REGB0 = REGB1;
9999 }
10000 }
10001 if (UNTAG_Bool(REGB0)) {
10002 /* parser/parser_prod.nit:1829 */
10003 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10004 if (UNTAG_Bool(REGB0)) {
10005 } else {
10006 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10007 if (UNTAG_Bool(REGB1)) {
10008 REGB1 = TAG_Bool(false);
10009 REGB0 = REGB1;
10010 } else {
10011 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10012 REGB0 = REGB1;
10013 }
10014 }
10015 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10016 if (UNTAG_Bool(REGB0)) {
10017 /* parser/parser_prod.nit:1830 */
10018 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10019 if (UNTAG_Bool(REGB0)) {
10020 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1830);
10021 }
10022 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10023 /* parser/parser_prod.nit:1831 */
10024 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
10025 if (UNTAG_Bool(REGB0)) {
10026 } else {
10027 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1831);
10028 }
10029 /* parser/parser_prod.nit:1832 */
10030 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
10031 } else {
10032 /* parser/parser_prod.nit:1834 */
10033 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = NIT_NULL;
10034 }
10035 /* parser/parser_prod.nit:1836 */
10036 goto label1;
10037 }
10038 /* parser/parser_prod.nit:1838 */
10039 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
10040 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10041 if (UNTAG_Bool(REGB0)) {
10042 } else {
10043 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10044 if (UNTAG_Bool(REGB1)) {
10045 REGB1 = TAG_Bool(false);
10046 REGB0 = REGB1;
10047 } else {
10048 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10049 REGB0 = REGB1;
10050 }
10051 }
10052 if (UNTAG_Bool(REGB0)) {
10053 /* parser/parser_prod.nit:1839 */
10054 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10055 if (UNTAG_Bool(REGB0)) {
10056 } else {
10057 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10058 if (UNTAG_Bool(REGB1)) {
10059 REGB1 = TAG_Bool(false);
10060 REGB0 = REGB1;
10061 } else {
10062 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10063 REGB0 = REGB1;
10064 }
10065 }
10066 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10067 if (UNTAG_Bool(REGB0)) {
10068 /* parser/parser_prod.nit:1840 */
10069 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10070 if (UNTAG_Bool(REGB0)) {
10071 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1840);
10072 }
10073 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10074 /* parser/parser_prod.nit:1841 */
10075 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
10076 if (UNTAG_Bool(REGB0)) {
10077 } else {
10078 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1841);
10079 }
10080 /* parser/parser_prod.nit:1842 */
10081 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
10082 } else {
10083 /* parser/parser_prod.nit:1844 */
10084 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1844);
10085 }
10086 /* parser/parser_prod.nit:1846 */
10087 goto label1;
10088 }
10089 /* parser/parser_prod.nit:1848 */
10090 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
10091 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10092 if (UNTAG_Bool(REGB0)) {
10093 } else {
10094 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10095 if (UNTAG_Bool(REGB1)) {
10096 REGB1 = TAG_Bool(false);
10097 REGB0 = REGB1;
10098 } else {
10099 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10100 REGB0 = REGB1;
10101 }
10102 }
10103 if (UNTAG_Bool(REGB0)) {
10104 /* parser/parser_prod.nit:1849 */
10105 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10106 if (UNTAG_Bool(REGB0)) {
10107 } else {
10108 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10109 if (UNTAG_Bool(REGB1)) {
10110 REGB1 = TAG_Bool(false);
10111 REGB0 = REGB1;
10112 } else {
10113 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10114 REGB0 = REGB1;
10115 }
10116 }
10117 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10118 if (UNTAG_Bool(REGB0)) {
10119 /* parser/parser_prod.nit:1850 */
10120 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10121 if (UNTAG_Bool(REGB0)) {
10122 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1850);
10123 }
10124 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10125 /* parser/parser_prod.nit:1851 */
10126 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
10127 if (UNTAG_Bool(REGB0)) {
10128 } else {
10129 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1851);
10130 }
10131 /* parser/parser_prod.nit:1852 */
10132 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
10133 } else {
10134 /* parser/parser_prod.nit:1854 */
10135 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
10136 }
10137 /* parser/parser_prod.nit:1856 */
10138 goto label1;
10139 }
10140 label1: while(0);
10141 stack_frame_head = fra.me.prev;
10142 return;
10143 }
10144 void parser___parser_prod___AConcreteInitPropdef___visit_all(val_t p0, val_t p1){
10145 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10146 val_t REGB0;
10147 val_t REGB1;
10148 val_t tmp;
10149 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10150 fra.me.file = LOCATE_parser___parser_prod;
10151 fra.me.line = 1860;
10152 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___visit_all;
10153 fra.me.has_broke = 0;
10154 fra.me.REG_size = 4;
10155 fra.me.nitni_local_ref_head = NULL;
10156 fra.me.REG[0] = NIT_NULL;
10157 fra.me.REG[1] = NIT_NULL;
10158 fra.me.REG[2] = NIT_NULL;
10159 fra.me.REG[3] = NIT_NULL;
10160 fra.me.REG[0] = p0;
10161 fra.me.REG[1] = p1;
10162 /* parser/parser_prod.nit:1860 */
10163 fra.me.REG[2] = fra.me.REG[0];
10164 /* parser/parser_prod.nit:1862 */
10165 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
10166 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10167 if (UNTAG_Bool(REGB0)) {
10168 } else {
10169 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10170 if (UNTAG_Bool(REGB1)) {
10171 REGB1 = TAG_Bool(false);
10172 REGB0 = REGB1;
10173 } else {
10174 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10175 REGB0 = REGB1;
10176 }
10177 }
10178 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10179 if (UNTAG_Bool(REGB0)) {
10180 /* parser/parser_prod.nit:1863 */
10181 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
10182 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
10183 if (UNTAG_Bool(REGB0)) {
10184 } else {
10185 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1863);
10186 }
10187 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10188 }
10189 /* parser/parser_prod.nit:1865 */
10190 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
10191 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10192 if (UNTAG_Bool(REGB0)) {
10193 } else {
10194 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10195 if (UNTAG_Bool(REGB1)) {
10196 REGB1 = TAG_Bool(false);
10197 REGB0 = REGB1;
10198 } else {
10199 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10200 REGB0 = REGB1;
10201 }
10202 }
10203 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10204 if (UNTAG_Bool(REGB0)) {
10205 /* parser/parser_prod.nit:1866 */
10206 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
10207 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
10208 if (UNTAG_Bool(REGB0)) {
10209 } else {
10210 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1866);
10211 }
10212 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10213 }
10214 /* parser/parser_prod.nit:1868 */
10215 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
10216 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10217 /* parser/parser_prod.nit:1869 */
10218 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[2])!=NIT_NULL);
10219 if (UNTAG_Bool(REGB0)) {
10220 } else {
10221 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 1869);
10222 }
10223 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[2]);
10224 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10225 /* parser/parser_prod.nit:1870 */
10226 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
10227 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10228 if (UNTAG_Bool(REGB0)) {
10229 } else {
10230 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10231 if (UNTAG_Bool(REGB1)) {
10232 REGB1 = TAG_Bool(false);
10233 REGB0 = REGB1;
10234 } else {
10235 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10236 REGB0 = REGB1;
10237 }
10238 }
10239 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10240 if (UNTAG_Bool(REGB0)) {
10241 /* parser/parser_prod.nit:1871 */
10242 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
10243 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
10244 if (UNTAG_Bool(REGB0)) {
10245 } else {
10246 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1871);
10247 }
10248 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10249 }
10250 /* parser/parser_prod.nit:1873 */
10251 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
10252 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10253 /* parser/parser_prod.nit:1874 */
10254 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
10255 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10256 if (UNTAG_Bool(REGB0)) {
10257 } else {
10258 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10259 if (UNTAG_Bool(REGB1)) {
10260 REGB1 = TAG_Bool(false);
10261 REGB0 = REGB1;
10262 } else {
10263 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10264 REGB0 = REGB1;
10265 }
10266 }
10267 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10268 if (UNTAG_Bool(REGB0)) {
10269 /* parser/parser_prod.nit:1875 */
10270 fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
10271 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
10272 if (UNTAG_Bool(REGB0)) {
10273 } else {
10274 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1875);
10275 }
10276 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10277 }
10278 stack_frame_head = fra.me.prev;
10279 return;
10280 }
10281 void parser___parser_prod___AExternInitPropdef___empty_init(val_t p0, int* init_table){
10282 int itpos51 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternInitPropdef].i;
10283 struct {struct stack_frame_t me;} fra;
10284 val_t tmp;
10285 if (init_table[itpos51]) return;
10286 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10287 fra.me.file = LOCATE_parser___parser_prod;
10288 fra.me.line = 1880;
10289 fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___empty_init;
10290 fra.me.has_broke = 0;
10291 fra.me.REG_size = 1;
10292 fra.me.nitni_local_ref_head = NULL;
10293 fra.me.REG[0] = NIT_NULL;
10294 fra.me.REG[0] = p0;
10295 stack_frame_head = fra.me.prev;
10296 init_table[itpos51] = 1;
10297 return;
10298 }
10299 void parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, int* init_table){
10300 int itpos52 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternInitPropdef].i;
10301 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
10302 val_t REGB0;
10303 val_t REGB1;
10304 val_t tmp;
10305 if (init_table[itpos52]) return;
10306 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10307 fra.me.file = LOCATE_parser___parser_prod;
10308 fra.me.line = 1882;
10309 fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef;
10310 fra.me.has_broke = 0;
10311 fra.me.REG_size = 10;
10312 fra.me.nitni_local_ref_head = NULL;
10313 fra.me.REG[0] = NIT_NULL;
10314 fra.me.REG[1] = NIT_NULL;
10315 fra.me.REG[2] = NIT_NULL;
10316 fra.me.REG[3] = NIT_NULL;
10317 fra.me.REG[4] = NIT_NULL;
10318 fra.me.REG[5] = NIT_NULL;
10319 fra.me.REG[6] = NIT_NULL;
10320 fra.me.REG[7] = NIT_NULL;
10321 fra.me.REG[8] = NIT_NULL;
10322 fra.me.REG[9] = NIT_NULL;
10323 fra.me.REG[0] = p0;
10324 fra.me.REG[1] = p1;
10325 fra.me.REG[2] = p2;
10326 fra.me.REG[3] = p3;
10327 fra.me.REG[4] = p4;
10328 fra.me.REG[5] = p5;
10329 fra.me.REG[6] = p6;
10330 fra.me.REG[7] = p7;
10331 fra.me.REG[8] = p8;
10332 /* parser/parser_prod.nit:1882 */
10333 fra.me.REG[9] = fra.me.REG[0];
10334 /* parser/parser_prod.nit:1893 */
10335 CALL_parser___parser_prod___AExternInitPropdef___empty_init(fra.me.REG[9])(fra.me.REG[9], init_table);
10336 /* parser/parser_prod.nit:1894 */
10337 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[9]) = fra.me.REG[1];
10338 /* parser/parser_prod.nit:1895 */
10339 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10340 if (UNTAG_Bool(REGB0)) {
10341 } else {
10342 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10343 if (UNTAG_Bool(REGB1)) {
10344 REGB1 = TAG_Bool(false);
10345 REGB0 = REGB1;
10346 } else {
10347 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10348 REGB0 = REGB1;
10349 }
10350 }
10351 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10352 if (UNTAG_Bool(REGB0)) {
10353 /* parser/parser_prod.nit:1896 */
10354 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10355 if (UNTAG_Bool(REGB0)) {
10356 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1896);
10357 }
10358 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
10359 }
10360 /* parser/parser_prod.nit:1898 */
10361 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[9]) = fra.me.REG[2];
10362 /* parser/parser_prod.nit:1899 */
10363 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10364 if (UNTAG_Bool(REGB0)) {
10365 } else {
10366 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10367 if (UNTAG_Bool(REGB1)) {
10368 REGB1 = TAG_Bool(false);
10369 REGB0 = REGB1;
10370 } else {
10371 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10372 REGB0 = REGB1;
10373 }
10374 }
10375 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10376 if (UNTAG_Bool(REGB0)) {
10377 /* parser/parser_prod.nit:1900 */
10378 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10379 if (UNTAG_Bool(REGB0)) {
10380 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1900);
10381 }
10382 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[9]);
10383 }
10384 /* parser/parser_prod.nit:1902 */
10385 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
10386 if (UNTAG_Bool(REGB0)) {
10387 } else {
10388 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1902);
10389 }
10390 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[9]) = fra.me.REG[3];
10391 /* parser/parser_prod.nit:1903 */
10392 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10393 if (UNTAG_Bool(REGB0)) {
10394 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1903);
10395 }
10396 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]);
10397 /* parser/parser_prod.nit:1904 */
10398 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
10399 if (UNTAG_Bool(REGB0)) {
10400 } else {
10401 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1904);
10402 }
10403 ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[9]) = fra.me.REG[4];
10404 /* parser/parser_prod.nit:1905 */
10405 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
10406 if (UNTAG_Bool(REGB0)) {
10407 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1905);
10408 }
10409 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
10410 /* parser/parser_prod.nit:1906 */
10411 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[9]) = fra.me.REG[5];
10412 /* parser/parser_prod.nit:1907 */
10413 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10414 if (UNTAG_Bool(REGB0)) {
10415 } else {
10416 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10417 if (UNTAG_Bool(REGB1)) {
10418 REGB1 = TAG_Bool(false);
10419 REGB0 = REGB1;
10420 } else {
10421 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10422 REGB0 = REGB1;
10423 }
10424 }
10425 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10426 if (UNTAG_Bool(REGB0)) {
10427 /* parser/parser_prod.nit:1908 */
10428 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10429 if (UNTAG_Bool(REGB0)) {
10430 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1908);
10431 }
10432 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[9]);
10433 }
10434 /* parser/parser_prod.nit:1910 */
10435 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
10436 if (UNTAG_Bool(REGB0)) {
10437 } else {
10438 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1910);
10439 }
10440 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[9]) = fra.me.REG[6];
10441 /* parser/parser_prod.nit:1911 */
10442 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
10443 if (UNTAG_Bool(REGB0)) {
10444 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1911);
10445 }
10446 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
10447 /* parser/parser_prod.nit:1912 */
10448 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[9]) = fra.me.REG[7];
10449 /* parser/parser_prod.nit:1913 */
10450 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10451 if (UNTAG_Bool(REGB0)) {
10452 } else {
10453 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10454 if (UNTAG_Bool(REGB1)) {
10455 REGB1 = TAG_Bool(false);
10456 REGB0 = REGB1;
10457 } else {
10458 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
10459 REGB0 = REGB1;
10460 }
10461 }
10462 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10463 if (UNTAG_Bool(REGB0)) {
10464 /* parser/parser_prod.nit:1914 */
10465 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10466 if (UNTAG_Bool(REGB0)) {
10467 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1914);
10468 }
10469 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]);
10470 }
10471 /* parser/parser_prod.nit:1916 */
10472 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[9]) = fra.me.REG[8];
10473 /* parser/parser_prod.nit:1917 */
10474 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
10475 if (UNTAG_Bool(REGB0)) {
10476 } else {
10477 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
10478 if (UNTAG_Bool(REGB1)) {
10479 REGB1 = TAG_Bool(false);
10480 REGB0 = REGB1;
10481 } else {
10482 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
10483 REGB0 = REGB1;
10484 }
10485 }
10486 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10487 if (UNTAG_Bool(REGB0)) {
10488 /* parser/parser_prod.nit:1918 */
10489 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
10490 if (UNTAG_Bool(REGB0)) {
10491 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1918);
10492 }
10493 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
10494 }
10495 stack_frame_head = fra.me.prev;
10496 init_table[itpos52] = 1;
10497 return;
10498 }
10499 void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p1, val_t p2){
10500 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10501 val_t REGB0;
10502 val_t REGB1;
10503 val_t tmp;
10504 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10505 fra.me.file = LOCATE_parser___parser_prod;
10506 fra.me.line = 1922;
10507 fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___replace_child;
10508 fra.me.has_broke = 0;
10509 fra.me.REG_size = 4;
10510 fra.me.nitni_local_ref_head = NULL;
10511 fra.me.REG[0] = NIT_NULL;
10512 fra.me.REG[1] = NIT_NULL;
10513 fra.me.REG[2] = NIT_NULL;
10514 fra.me.REG[3] = NIT_NULL;
10515 fra.me.REG[0] = p0;
10516 fra.me.REG[1] = p1;
10517 fra.me.REG[2] = p2;
10518 /* parser/parser_prod.nit:1924 */
10519 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
10520 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10521 if (UNTAG_Bool(REGB0)) {
10522 } else {
10523 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10524 if (UNTAG_Bool(REGB1)) {
10525 REGB1 = TAG_Bool(false);
10526 REGB0 = REGB1;
10527 } else {
10528 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10529 REGB0 = REGB1;
10530 }
10531 }
10532 if (UNTAG_Bool(REGB0)) {
10533 /* parser/parser_prod.nit:1925 */
10534 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10535 if (UNTAG_Bool(REGB0)) {
10536 } else {
10537 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10538 if (UNTAG_Bool(REGB1)) {
10539 REGB1 = TAG_Bool(false);
10540 REGB0 = REGB1;
10541 } else {
10542 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10543 REGB0 = REGB1;
10544 }
10545 }
10546 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10547 if (UNTAG_Bool(REGB0)) {
10548 /* parser/parser_prod.nit:1926 */
10549 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10550 if (UNTAG_Bool(REGB0)) {
10551 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1926);
10552 }
10553 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10554 /* parser/parser_prod.nit:1927 */
10555 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
10556 if (UNTAG_Bool(REGB0)) {
10557 } else {
10558 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1927);
10559 }
10560 /* parser/parser_prod.nit:1928 */
10561 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
10562 } else {
10563 /* parser/parser_prod.nit:1930 */
10564 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
10565 }
10566 /* parser/parser_prod.nit:1932 */
10567 goto label1;
10568 }
10569 /* parser/parser_prod.nit:1934 */
10570 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
10571 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10572 if (UNTAG_Bool(REGB0)) {
10573 } else {
10574 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10575 if (UNTAG_Bool(REGB1)) {
10576 REGB1 = TAG_Bool(false);
10577 REGB0 = REGB1;
10578 } else {
10579 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10580 REGB0 = REGB1;
10581 }
10582 }
10583 if (UNTAG_Bool(REGB0)) {
10584 /* parser/parser_prod.nit:1935 */
10585 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10586 if (UNTAG_Bool(REGB0)) {
10587 } else {
10588 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10589 if (UNTAG_Bool(REGB1)) {
10590 REGB1 = TAG_Bool(false);
10591 REGB0 = REGB1;
10592 } else {
10593 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10594 REGB0 = REGB1;
10595 }
10596 }
10597 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10598 if (UNTAG_Bool(REGB0)) {
10599 /* parser/parser_prod.nit:1936 */
10600 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10601 if (UNTAG_Bool(REGB0)) {
10602 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1936);
10603 }
10604 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10605 /* parser/parser_prod.nit:1937 */
10606 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
10607 if (UNTAG_Bool(REGB0)) {
10608 } else {
10609 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1937);
10610 }
10611 /* parser/parser_prod.nit:1938 */
10612 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
10613 } else {
10614 /* parser/parser_prod.nit:1940 */
10615 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
10616 }
10617 /* parser/parser_prod.nit:1942 */
10618 goto label1;
10619 }
10620 /* parser/parser_prod.nit:1944 */
10621 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
10622 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10623 if (UNTAG_Bool(REGB0)) {
10624 } else {
10625 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10626 if (UNTAG_Bool(REGB1)) {
10627 REGB1 = TAG_Bool(false);
10628 REGB0 = REGB1;
10629 } else {
10630 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10631 REGB0 = REGB1;
10632 }
10633 }
10634 if (UNTAG_Bool(REGB0)) {
10635 /* parser/parser_prod.nit:1945 */
10636 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10637 if (UNTAG_Bool(REGB0)) {
10638 } else {
10639 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10640 if (UNTAG_Bool(REGB1)) {
10641 REGB1 = TAG_Bool(false);
10642 REGB0 = REGB1;
10643 } else {
10644 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10645 REGB0 = REGB1;
10646 }
10647 }
10648 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10649 if (UNTAG_Bool(REGB0)) {
10650 /* parser/parser_prod.nit:1946 */
10651 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10652 if (UNTAG_Bool(REGB0)) {
10653 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1946);
10654 }
10655 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10656 /* parser/parser_prod.nit:1947 */
10657 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
10658 if (UNTAG_Bool(REGB0)) {
10659 } else {
10660 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1947);
10661 }
10662 /* parser/parser_prod.nit:1948 */
10663 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
10664 } else {
10665 /* parser/parser_prod.nit:1950 */
10666 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1950);
10667 }
10668 /* parser/parser_prod.nit:1952 */
10669 goto label1;
10670 }
10671 /* parser/parser_prod.nit:1954 */
10672 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[0])!=NIT_NULL);
10673 if (UNTAG_Bool(REGB0)) {
10674 } else {
10675 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 1954);
10676 }
10677 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[0]);
10678 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
10679 if (UNTAG_Bool(REGB0)) {
10680 } else {
10681 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10682 REGB0 = REGB1;
10683 }
10684 if (UNTAG_Bool(REGB0)) {
10685 /* parser/parser_prod.nit:1955 */
10686 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10687 if (UNTAG_Bool(REGB0)) {
10688 } else {
10689 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10690 if (UNTAG_Bool(REGB1)) {
10691 REGB1 = TAG_Bool(false);
10692 REGB0 = REGB1;
10693 } else {
10694 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10695 REGB0 = REGB1;
10696 }
10697 }
10698 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10699 if (UNTAG_Bool(REGB0)) {
10700 /* parser/parser_prod.nit:1956 */
10701 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10702 if (UNTAG_Bool(REGB0)) {
10703 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1956);
10704 }
10705 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10706 /* parser/parser_prod.nit:1957 */
10707 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast TKwnew*/;
10708 if (UNTAG_Bool(REGB0)) {
10709 } else {
10710 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1957);
10711 }
10712 /* parser/parser_prod.nit:1958 */
10713 ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[0]) = fra.me.REG[2];
10714 } else {
10715 /* parser/parser_prod.nit:1960 */
10716 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1960);
10717 }
10718 /* parser/parser_prod.nit:1962 */
10719 goto label1;
10720 }
10721 /* parser/parser_prod.nit:1964 */
10722 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
10723 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10724 if (UNTAG_Bool(REGB0)) {
10725 } else {
10726 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10727 if (UNTAG_Bool(REGB1)) {
10728 REGB1 = TAG_Bool(false);
10729 REGB0 = REGB1;
10730 } else {
10731 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10732 REGB0 = REGB1;
10733 }
10734 }
10735 if (UNTAG_Bool(REGB0)) {
10736 /* parser/parser_prod.nit:1965 */
10737 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10738 if (UNTAG_Bool(REGB0)) {
10739 } else {
10740 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10741 if (UNTAG_Bool(REGB1)) {
10742 REGB1 = TAG_Bool(false);
10743 REGB0 = REGB1;
10744 } else {
10745 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10746 REGB0 = REGB1;
10747 }
10748 }
10749 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10750 if (UNTAG_Bool(REGB0)) {
10751 /* parser/parser_prod.nit:1966 */
10752 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10753 if (UNTAG_Bool(REGB0)) {
10754 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1966);
10755 }
10756 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10757 /* parser/parser_prod.nit:1967 */
10758 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
10759 if (UNTAG_Bool(REGB0)) {
10760 } else {
10761 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1967);
10762 }
10763 /* parser/parser_prod.nit:1968 */
10764 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
10765 } else {
10766 /* parser/parser_prod.nit:1970 */
10767 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = NIT_NULL;
10768 }
10769 /* parser/parser_prod.nit:1972 */
10770 goto label1;
10771 }
10772 /* parser/parser_prod.nit:1974 */
10773 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
10774 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10775 if (UNTAG_Bool(REGB0)) {
10776 } else {
10777 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10778 if (UNTAG_Bool(REGB1)) {
10779 REGB1 = TAG_Bool(false);
10780 REGB0 = REGB1;
10781 } else {
10782 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10783 REGB0 = REGB1;
10784 }
10785 }
10786 if (UNTAG_Bool(REGB0)) {
10787 /* parser/parser_prod.nit:1975 */
10788 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10789 if (UNTAG_Bool(REGB0)) {
10790 } else {
10791 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10792 if (UNTAG_Bool(REGB1)) {
10793 REGB1 = TAG_Bool(false);
10794 REGB0 = REGB1;
10795 } else {
10796 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10797 REGB0 = REGB1;
10798 }
10799 }
10800 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10801 if (UNTAG_Bool(REGB0)) {
10802 /* parser/parser_prod.nit:1976 */
10803 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10804 if (UNTAG_Bool(REGB0)) {
10805 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1976);
10806 }
10807 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10808 /* parser/parser_prod.nit:1977 */
10809 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
10810 if (UNTAG_Bool(REGB0)) {
10811 } else {
10812 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1977);
10813 }
10814 /* parser/parser_prod.nit:1978 */
10815 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
10816 } else {
10817 /* parser/parser_prod.nit:1980 */
10818 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1980);
10819 }
10820 /* parser/parser_prod.nit:1982 */
10821 goto label1;
10822 }
10823 /* parser/parser_prod.nit:1984 */
10824 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]);
10825 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10826 if (UNTAG_Bool(REGB0)) {
10827 } else {
10828 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10829 if (UNTAG_Bool(REGB1)) {
10830 REGB1 = TAG_Bool(false);
10831 REGB0 = REGB1;
10832 } else {
10833 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10834 REGB0 = REGB1;
10835 }
10836 }
10837 if (UNTAG_Bool(REGB0)) {
10838 /* parser/parser_prod.nit:1985 */
10839 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10840 if (UNTAG_Bool(REGB0)) {
10841 } else {
10842 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10843 if (UNTAG_Bool(REGB1)) {
10844 REGB1 = TAG_Bool(false);
10845 REGB0 = REGB1;
10846 } else {
10847 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10848 REGB0 = REGB1;
10849 }
10850 }
10851 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10852 if (UNTAG_Bool(REGB0)) {
10853 /* parser/parser_prod.nit:1986 */
10854 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10855 if (UNTAG_Bool(REGB0)) {
10856 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1986);
10857 }
10858 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10859 /* parser/parser_prod.nit:1987 */
10860 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast TString*/;
10861 if (UNTAG_Bool(REGB0)) {
10862 } else {
10863 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1987);
10864 }
10865 /* parser/parser_prod.nit:1988 */
10866 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[2];
10867 } else {
10868 /* parser/parser_prod.nit:1990 */
10869 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = NIT_NULL;
10870 }
10871 /* parser/parser_prod.nit:1992 */
10872 goto label1;
10873 }
10874 /* parser/parser_prod.nit:1994 */
10875 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]);
10876 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10877 if (UNTAG_Bool(REGB0)) {
10878 } else {
10879 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10880 if (UNTAG_Bool(REGB1)) {
10881 REGB1 = TAG_Bool(false);
10882 REGB0 = REGB1;
10883 } else {
10884 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10885 REGB0 = REGB1;
10886 }
10887 }
10888 if (UNTAG_Bool(REGB0)) {
10889 /* parser/parser_prod.nit:1995 */
10890 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10891 if (UNTAG_Bool(REGB0)) {
10892 } else {
10893 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10894 if (UNTAG_Bool(REGB1)) {
10895 REGB1 = TAG_Bool(false);
10896 REGB0 = REGB1;
10897 } else {
10898 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10899 REGB0 = REGB1;
10900 }
10901 }
10902 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10903 if (UNTAG_Bool(REGB0)) {
10904 /* parser/parser_prod.nit:1996 */
10905 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10906 if (UNTAG_Bool(REGB0)) {
10907 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1996);
10908 }
10909 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10910 /* parser/parser_prod.nit:1997 */
10911 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast AExternCalls*/;
10912 if (UNTAG_Bool(REGB0)) {
10913 } else {
10914 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1997);
10915 }
10916 /* parser/parser_prod.nit:1998 */
10917 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = fra.me.REG[2];
10918 } else {
10919 /* parser/parser_prod.nit:2000 */
10920 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = NIT_NULL;
10921 }
10922 /* parser/parser_prod.nit:2002 */
10923 goto label1;
10924 }
10925 label1: while(0);
10926 stack_frame_head = fra.me.prev;
10927 return;
10928 }
10929 void parser___parser_prod___AExternInitPropdef___visit_all(val_t p0, val_t p1){
10930 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10931 val_t REGB0;
10932 val_t REGB1;
10933 val_t tmp;
10934 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10935 fra.me.file = LOCATE_parser___parser_prod;
10936 fra.me.line = 2006;
10937 fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___visit_all;
10938 fra.me.has_broke = 0;
10939 fra.me.REG_size = 4;
10940 fra.me.nitni_local_ref_head = NULL;
10941 fra.me.REG[0] = NIT_NULL;
10942 fra.me.REG[1] = NIT_NULL;
10943 fra.me.REG[2] = NIT_NULL;
10944 fra.me.REG[3] = NIT_NULL;
10945 fra.me.REG[0] = p0;
10946 fra.me.REG[1] = p1;
10947 /* parser/parser_prod.nit:2006 */
10948 fra.me.REG[2] = fra.me.REG[0];
10949 /* parser/parser_prod.nit:2008 */
10950 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
10951 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10952 if (UNTAG_Bool(REGB0)) {
10953 } else {
10954 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10955 if (UNTAG_Bool(REGB1)) {
10956 REGB1 = TAG_Bool(false);
10957 REGB0 = REGB1;
10958 } else {
10959 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10960 REGB0 = REGB1;
10961 }
10962 }
10963 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10964 if (UNTAG_Bool(REGB0)) {
10965 /* parser/parser_prod.nit:2009 */
10966 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
10967 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
10968 if (UNTAG_Bool(REGB0)) {
10969 } else {
10970 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2009);
10971 }
10972 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10973 }
10974 /* parser/parser_prod.nit:2011 */
10975 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
10976 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10977 if (UNTAG_Bool(REGB0)) {
10978 } else {
10979 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10980 if (UNTAG_Bool(REGB1)) {
10981 REGB1 = TAG_Bool(false);
10982 REGB0 = REGB1;
10983 } else {
10984 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10985 REGB0 = REGB1;
10986 }
10987 }
10988 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10989 if (UNTAG_Bool(REGB0)) {
10990 /* parser/parser_prod.nit:2012 */
10991 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
10992 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
10993 if (UNTAG_Bool(REGB0)) {
10994 } else {
10995 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2012);
10996 }
10997 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10998 }
10999 /* parser/parser_prod.nit:2014 */
11000 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
11001 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11002 /* parser/parser_prod.nit:2015 */
11003 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[2])!=NIT_NULL);
11004 if (UNTAG_Bool(REGB0)) {
11005 } else {
11006 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 2015);
11007 }
11008 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[2]);
11009 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11010 /* parser/parser_prod.nit:2016 */
11011 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
11012 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11013 if (UNTAG_Bool(REGB0)) {
11014 } else {
11015 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11016 if (UNTAG_Bool(REGB1)) {
11017 REGB1 = TAG_Bool(false);
11018 REGB0 = REGB1;
11019 } else {
11020 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11021 REGB0 = REGB1;
11022 }
11023 }
11024 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11025 if (UNTAG_Bool(REGB0)) {
11026 /* parser/parser_prod.nit:2017 */
11027 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
11028 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
11029 if (UNTAG_Bool(REGB0)) {
11030 } else {
11031 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2017);
11032 }
11033 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11034 }
11035 /* parser/parser_prod.nit:2019 */
11036 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
11037 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11038 /* parser/parser_prod.nit:2020 */
11039 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
11040 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11041 if (UNTAG_Bool(REGB0)) {
11042 } else {
11043 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11044 if (UNTAG_Bool(REGB1)) {
11045 REGB1 = TAG_Bool(false);
11046 REGB0 = REGB1;
11047 } else {
11048 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11049 REGB0 = REGB1;
11050 }
11051 }
11052 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11053 if (UNTAG_Bool(REGB0)) {
11054 /* parser/parser_prod.nit:2021 */
11055 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
11056 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast TString*/;
11057 if (UNTAG_Bool(REGB0)) {
11058 } else {
11059 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2021);
11060 }
11061 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11062 }
11063 /* parser/parser_prod.nit:2023 */
11064 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
11065 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11066 if (UNTAG_Bool(REGB0)) {
11067 } else {
11068 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11069 if (UNTAG_Bool(REGB1)) {
11070 REGB1 = TAG_Bool(false);
11071 REGB0 = REGB1;
11072 } else {
11073 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11074 REGB0 = REGB1;
11075 }
11076 }
11077 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11078 if (UNTAG_Bool(REGB0)) {
11079 /* parser/parser_prod.nit:2024 */
11080 fra.me.REG[2] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
11081 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast AExternCalls*/;
11082 if (UNTAG_Bool(REGB0)) {
11083 } else {
11084 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2024);
11085 }
11086 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11087 }
11088 stack_frame_head = fra.me.prev;
11089 return;
11090 }
11091 void parser___parser_prod___AMainMethPropdef___empty_init(val_t p0, int* init_table){
11092 int itpos53 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainMethPropdef].i;
11093 struct {struct stack_frame_t me;} fra;
11094 val_t tmp;
11095 if (init_table[itpos53]) return;
11096 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11097 fra.me.file = LOCATE_parser___parser_prod;
11098 fra.me.line = 2029;
11099 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___empty_init;
11100 fra.me.has_broke = 0;
11101 fra.me.REG_size = 1;
11102 fra.me.nitni_local_ref_head = NULL;
11103 fra.me.REG[0] = NIT_NULL;
11104 fra.me.REG[0] = p0;
11105 stack_frame_head = fra.me.prev;
11106 init_table[itpos53] = 1;
11107 return;
11108 }
11109 void parser___parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t p0, val_t p1, val_t p2, int* init_table){
11110 int itpos54 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainMethPropdef].i;
11111 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
11112 val_t REGB0;
11113 val_t REGB1;
11114 val_t tmp;
11115 if (init_table[itpos54]) return;
11116 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11117 fra.me.file = LOCATE_parser___parser_prod;
11118 fra.me.line = 2031;
11119 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___init_amainmethpropdef;
11120 fra.me.has_broke = 0;
11121 fra.me.REG_size = 3;
11122 fra.me.nitni_local_ref_head = NULL;
11123 fra.me.REG[0] = NIT_NULL;
11124 fra.me.REG[1] = NIT_NULL;
11125 fra.me.REG[2] = NIT_NULL;
11126 fra.me.REG[0] = p0;
11127 fra.me.REG[1] = p1;
11128 fra.me.REG[2] = p2;
11129 /* parser/parser_prod.nit:2036 */
11130 CALL_parser___parser_prod___AMainMethPropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
11131 /* parser/parser_prod.nit:2037 */
11132 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
11133 /* parser/parser_prod.nit:2038 */
11134 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11135 if (UNTAG_Bool(REGB0)) {
11136 } else {
11137 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11138 if (UNTAG_Bool(REGB1)) {
11139 REGB1 = TAG_Bool(false);
11140 REGB0 = REGB1;
11141 } else {
11142 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
11143 REGB0 = REGB1;
11144 }
11145 }
11146 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11147 if (UNTAG_Bool(REGB0)) {
11148 /* parser/parser_prod.nit:2039 */
11149 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11150 if (UNTAG_Bool(REGB0)) {
11151 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2039);
11152 }
11153 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11154 }
11155 /* parser/parser_prod.nit:2041 */
11156 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
11157 /* parser/parser_prod.nit:2042 */
11158 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11159 if (UNTAG_Bool(REGB0)) {
11160 } else {
11161 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11162 if (UNTAG_Bool(REGB1)) {
11163 REGB1 = TAG_Bool(false);
11164 REGB0 = REGB1;
11165 } else {
11166 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11167 REGB0 = REGB1;
11168 }
11169 }
11170 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11171 if (UNTAG_Bool(REGB0)) {
11172 /* parser/parser_prod.nit:2043 */
11173 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11174 if (UNTAG_Bool(REGB0)) {
11175 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2043);
11176 }
11177 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11178 }
11179 stack_frame_head = fra.me.prev;
11180 init_table[itpos54] = 1;
11181 return;
11182 }
11183 void parser___parser_prod___AMainMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
11184 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11185 val_t REGB0;
11186 val_t REGB1;
11187 val_t tmp;
11188 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11189 fra.me.file = LOCATE_parser___parser_prod;
11190 fra.me.line = 2047;
11191 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___replace_child;
11192 fra.me.has_broke = 0;
11193 fra.me.REG_size = 4;
11194 fra.me.nitni_local_ref_head = NULL;
11195 fra.me.REG[0] = NIT_NULL;
11196 fra.me.REG[1] = NIT_NULL;
11197 fra.me.REG[2] = NIT_NULL;
11198 fra.me.REG[3] = NIT_NULL;
11199 fra.me.REG[0] = p0;
11200 fra.me.REG[1] = p1;
11201 fra.me.REG[2] = p2;
11202 /* parser/parser_prod.nit:2049 */
11203 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
11204 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11205 if (UNTAG_Bool(REGB0)) {
11206 } else {
11207 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11208 if (UNTAG_Bool(REGB1)) {
11209 REGB1 = TAG_Bool(false);
11210 REGB0 = REGB1;
11211 } else {
11212 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11213 REGB0 = REGB1;
11214 }
11215 }
11216 if (UNTAG_Bool(REGB0)) {
11217 /* parser/parser_prod.nit:2050 */
11218 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11219 if (UNTAG_Bool(REGB0)) {
11220 } else {
11221 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11222 if (UNTAG_Bool(REGB1)) {
11223 REGB1 = TAG_Bool(false);
11224 REGB0 = REGB1;
11225 } else {
11226 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11227 REGB0 = REGB1;
11228 }
11229 }
11230 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11231 if (UNTAG_Bool(REGB0)) {
11232 /* parser/parser_prod.nit:2051 */
11233 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11234 if (UNTAG_Bool(REGB0)) {
11235 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2051);
11236 }
11237 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11238 /* parser/parser_prod.nit:2052 */
11239 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
11240 if (UNTAG_Bool(REGB0)) {
11241 } else {
11242 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2052);
11243 }
11244 /* parser/parser_prod.nit:2053 */
11245 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
11246 } else {
11247 /* parser/parser_prod.nit:2055 */
11248 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
11249 }
11250 /* parser/parser_prod.nit:2057 */
11251 goto label1;
11252 }
11253 /* parser/parser_prod.nit:2059 */
11254 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
11255 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11256 if (UNTAG_Bool(REGB0)) {
11257 } else {
11258 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11259 if (UNTAG_Bool(REGB1)) {
11260 REGB1 = TAG_Bool(false);
11261 REGB0 = REGB1;
11262 } else {
11263 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11264 REGB0 = REGB1;
11265 }
11266 }
11267 if (UNTAG_Bool(REGB0)) {
11268 /* parser/parser_prod.nit:2060 */
11269 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11270 if (UNTAG_Bool(REGB0)) {
11271 } else {
11272 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11273 if (UNTAG_Bool(REGB1)) {
11274 REGB1 = TAG_Bool(false);
11275 REGB0 = REGB1;
11276 } else {
11277 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11278 REGB0 = REGB1;
11279 }
11280 }
11281 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11282 if (UNTAG_Bool(REGB0)) {
11283 /* parser/parser_prod.nit:2061 */
11284 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11285 if (UNTAG_Bool(REGB0)) {
11286 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2061);
11287 }
11288 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11289 /* parser/parser_prod.nit:2062 */
11290 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
11291 if (UNTAG_Bool(REGB0)) {
11292 } else {
11293 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2062);
11294 }
11295 /* parser/parser_prod.nit:2063 */
11296 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
11297 } else {
11298 /* parser/parser_prod.nit:2065 */
11299 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
11300 }
11301 /* parser/parser_prod.nit:2067 */
11302 goto label1;
11303 }
11304 label1: while(0);
11305 stack_frame_head = fra.me.prev;
11306 return;
11307 }
11308 void parser___parser_prod___AMainMethPropdef___visit_all(val_t p0, val_t p1){
11309 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11310 val_t REGB0;
11311 val_t REGB1;
11312 val_t tmp;
11313 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11314 fra.me.file = LOCATE_parser___parser_prod;
11315 fra.me.line = 2071;
11316 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___visit_all;
11317 fra.me.has_broke = 0;
11318 fra.me.REG_size = 4;
11319 fra.me.nitni_local_ref_head = NULL;
11320 fra.me.REG[0] = NIT_NULL;
11321 fra.me.REG[1] = NIT_NULL;
11322 fra.me.REG[2] = NIT_NULL;
11323 fra.me.REG[3] = NIT_NULL;
11324 fra.me.REG[0] = p0;
11325 fra.me.REG[1] = p1;
11326 /* parser/parser_prod.nit:2071 */
11327 fra.me.REG[2] = fra.me.REG[0];
11328 /* parser/parser_prod.nit:2073 */
11329 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
11330 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11331 if (UNTAG_Bool(REGB0)) {
11332 } else {
11333 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11334 if (UNTAG_Bool(REGB1)) {
11335 REGB1 = TAG_Bool(false);
11336 REGB0 = REGB1;
11337 } else {
11338 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11339 REGB0 = REGB1;
11340 }
11341 }
11342 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11343 if (UNTAG_Bool(REGB0)) {
11344 /* parser/parser_prod.nit:2074 */
11345 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
11346 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
11347 if (UNTAG_Bool(REGB0)) {
11348 } else {
11349 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2074);
11350 }
11351 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11352 }
11353 /* parser/parser_prod.nit:2076 */
11354 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
11355 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11356 if (UNTAG_Bool(REGB0)) {
11357 } else {
11358 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11359 if (UNTAG_Bool(REGB1)) {
11360 REGB1 = TAG_Bool(false);
11361 REGB0 = REGB1;
11362 } else {
11363 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11364 REGB0 = REGB1;
11365 }
11366 }
11367 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11368 if (UNTAG_Bool(REGB0)) {
11369 /* parser/parser_prod.nit:2077 */
11370 fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
11371 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
11372 if (UNTAG_Bool(REGB0)) {
11373 } else {
11374 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2077);
11375 }
11376 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11377 }
11378 stack_frame_head = fra.me.prev;
11379 return;
11380 }
11381 void parser___parser_prod___ATypePropdef___empty_init(val_t p0, int* init_table){
11382 int itpos55 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATypePropdef].i;
11383 struct {struct stack_frame_t me;} fra;
11384 val_t tmp;
11385 if (init_table[itpos55]) return;
11386 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11387 fra.me.file = LOCATE_parser___parser_prod;
11388 fra.me.line = 2082;
11389 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___empty_init;
11390 fra.me.has_broke = 0;
11391 fra.me.REG_size = 1;
11392 fra.me.nitni_local_ref_head = NULL;
11393 fra.me.REG[0] = NIT_NULL;
11394 fra.me.REG[0] = p0;
11395 stack_frame_head = fra.me.prev;
11396 init_table[itpos55] = 1;
11397 return;
11398 }
11399 void parser___parser_prod___ATypePropdef___init_atypepropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, int* init_table){
11400 int itpos56 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATypePropdef].i;
11401 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
11402 val_t REGB0;
11403 val_t REGB1;
11404 val_t tmp;
11405 if (init_table[itpos56]) return;
11406 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11407 fra.me.file = LOCATE_parser___parser_prod;
11408 fra.me.line = 2084;
11409 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___init_atypepropdef;
11410 fra.me.has_broke = 0;
11411 fra.me.REG_size = 8;
11412 fra.me.nitni_local_ref_head = NULL;
11413 fra.me.REG[0] = NIT_NULL;
11414 fra.me.REG[1] = NIT_NULL;
11415 fra.me.REG[2] = NIT_NULL;
11416 fra.me.REG[3] = NIT_NULL;
11417 fra.me.REG[4] = NIT_NULL;
11418 fra.me.REG[5] = NIT_NULL;
11419 fra.me.REG[6] = NIT_NULL;
11420 fra.me.REG[7] = NIT_NULL;
11421 fra.me.REG[0] = p0;
11422 fra.me.REG[1] = p1;
11423 fra.me.REG[2] = p2;
11424 fra.me.REG[3] = p3;
11425 fra.me.REG[4] = p4;
11426 fra.me.REG[5] = p5;
11427 fra.me.REG[6] = p6;
11428 /* parser/parser_prod.nit:2084 */
11429 fra.me.REG[7] = fra.me.REG[0];
11430 /* parser/parser_prod.nit:2093 */
11431 CALL_parser___parser_prod___ATypePropdef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
11432 /* parser/parser_prod.nit:2094 */
11433 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[7]) = fra.me.REG[1];
11434 /* parser/parser_prod.nit:2095 */
11435 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11436 if (UNTAG_Bool(REGB0)) {
11437 } else {
11438 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11439 if (UNTAG_Bool(REGB1)) {
11440 REGB1 = TAG_Bool(false);
11441 REGB0 = REGB1;
11442 } else {
11443 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
11444 REGB0 = REGB1;
11445 }
11446 }
11447 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11448 if (UNTAG_Bool(REGB0)) {
11449 /* parser/parser_prod.nit:2096 */
11450 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11451 if (UNTAG_Bool(REGB0)) {
11452 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2096);
11453 }
11454 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
11455 }
11456 /* parser/parser_prod.nit:2098 */
11457 ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[7]) = fra.me.REG[2];
11458 /* parser/parser_prod.nit:2099 */
11459 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11460 if (UNTAG_Bool(REGB0)) {
11461 } else {
11462 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11463 if (UNTAG_Bool(REGB1)) {
11464 REGB1 = TAG_Bool(false);
11465 REGB0 = REGB1;
11466 } else {
11467 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11468 REGB0 = REGB1;
11469 }
11470 }
11471 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11472 if (UNTAG_Bool(REGB0)) {
11473 /* parser/parser_prod.nit:2100 */
11474 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11475 if (UNTAG_Bool(REGB0)) {
11476 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2100);
11477 }
11478 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
11479 }
11480 /* parser/parser_prod.nit:2102 */
11481 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
11482 if (UNTAG_Bool(REGB0)) {
11483 } else {
11484 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2102);
11485 }
11486 ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[7]) = fra.me.REG[3];
11487 /* parser/parser_prod.nit:2103 */
11488 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11489 if (UNTAG_Bool(REGB0)) {
11490 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2103);
11491 }
11492 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
11493 /* parser/parser_prod.nit:2104 */
11494 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
11495 if (UNTAG_Bool(REGB0)) {
11496 } else {
11497 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2104);
11498 }
11499 ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[7]) = fra.me.REG[4];
11500 /* parser/parser_prod.nit:2105 */
11501 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
11502 if (UNTAG_Bool(REGB0)) {
11503 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2105);
11504 }
11505 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
11506 /* parser/parser_prod.nit:2106 */
11507 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
11508 if (UNTAG_Bool(REGB0)) {
11509 } else {
11510 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2106);
11511 }
11512 ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[7]) = fra.me.REG[5];
11513 /* parser/parser_prod.nit:2107 */
11514 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
11515 if (UNTAG_Bool(REGB0)) {
11516 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2107);
11517 }
11518 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
11519 /* parser/parser_prod.nit:2108 */
11520 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
11521 if (UNTAG_Bool(REGB0)) {
11522 } else {
11523 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2108);
11524 }
11525 ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[7]) = fra.me.REG[6];
11526 /* parser/parser_prod.nit:2109 */
11527 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
11528 if (UNTAG_Bool(REGB0)) {
11529 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2109);
11530 }
11531 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11532 stack_frame_head = fra.me.prev;
11533 init_table[itpos56] = 1;
11534 return;
11535 }
11536 void parser___parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val_t p2){
11537 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11538 val_t REGB0;
11539 val_t REGB1;
11540 val_t tmp;
11541 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11542 fra.me.file = LOCATE_parser___parser_prod;
11543 fra.me.line = 2112;
11544 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___replace_child;
11545 fra.me.has_broke = 0;
11546 fra.me.REG_size = 4;
11547 fra.me.nitni_local_ref_head = NULL;
11548 fra.me.REG[0] = NIT_NULL;
11549 fra.me.REG[1] = NIT_NULL;
11550 fra.me.REG[2] = NIT_NULL;
11551 fra.me.REG[3] = NIT_NULL;
11552 fra.me.REG[0] = p0;
11553 fra.me.REG[1] = p1;
11554 fra.me.REG[2] = p2;
11555 /* parser/parser_prod.nit:2114 */
11556 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
11557 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11558 if (UNTAG_Bool(REGB0)) {
11559 } else {
11560 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11561 if (UNTAG_Bool(REGB1)) {
11562 REGB1 = TAG_Bool(false);
11563 REGB0 = REGB1;
11564 } else {
11565 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11566 REGB0 = REGB1;
11567 }
11568 }
11569 if (UNTAG_Bool(REGB0)) {
11570 /* parser/parser_prod.nit:2115 */
11571 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11572 if (UNTAG_Bool(REGB0)) {
11573 } else {
11574 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11575 if (UNTAG_Bool(REGB1)) {
11576 REGB1 = TAG_Bool(false);
11577 REGB0 = REGB1;
11578 } else {
11579 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11580 REGB0 = REGB1;
11581 }
11582 }
11583 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11584 if (UNTAG_Bool(REGB0)) {
11585 /* parser/parser_prod.nit:2116 */
11586 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11587 if (UNTAG_Bool(REGB0)) {
11588 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2116);
11589 }
11590 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11591 /* parser/parser_prod.nit:2117 */
11592 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
11593 if (UNTAG_Bool(REGB0)) {
11594 } else {
11595 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2117);
11596 }
11597 /* parser/parser_prod.nit:2118 */
11598 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
11599 } else {
11600 /* parser/parser_prod.nit:2120 */
11601 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
11602 }
11603 /* parser/parser_prod.nit:2122 */
11604 goto label1;
11605 }
11606 /* parser/parser_prod.nit:2124 */
11607 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]);
11608 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11609 if (UNTAG_Bool(REGB0)) {
11610 } else {
11611 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11612 if (UNTAG_Bool(REGB1)) {
11613 REGB1 = TAG_Bool(false);
11614 REGB0 = REGB1;
11615 } else {
11616 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11617 REGB0 = REGB1;
11618 }
11619 }
11620 if (UNTAG_Bool(REGB0)) {
11621 /* parser/parser_prod.nit:2125 */
11622 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11623 if (UNTAG_Bool(REGB0)) {
11624 } else {
11625 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11626 if (UNTAG_Bool(REGB1)) {
11627 REGB1 = TAG_Bool(false);
11628 REGB0 = REGB1;
11629 } else {
11630 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11631 REGB0 = REGB1;
11632 }
11633 }
11634 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11635 if (UNTAG_Bool(REGB0)) {
11636 /* parser/parser_prod.nit:2126 */
11637 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11638 if (UNTAG_Bool(REGB0)) {
11639 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2126);
11640 }
11641 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11642 /* parser/parser_prod.nit:2127 */
11643 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
11644 if (UNTAG_Bool(REGB0)) {
11645 } else {
11646 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2127);
11647 }
11648 /* parser/parser_prod.nit:2128 */
11649 ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
11650 } else {
11651 /* parser/parser_prod.nit:2130 */
11652 ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
11653 }
11654 /* parser/parser_prod.nit:2132 */
11655 goto label1;
11656 }
11657 /* parser/parser_prod.nit:2134 */
11658 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
11659 if (UNTAG_Bool(REGB0)) {
11660 } else {
11661 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 2134);
11662 }
11663 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]);
11664 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11665 if (UNTAG_Bool(REGB0)) {
11666 } else {
11667 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11668 REGB0 = REGB1;
11669 }
11670 if (UNTAG_Bool(REGB0)) {
11671 /* parser/parser_prod.nit:2135 */
11672 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11673 if (UNTAG_Bool(REGB0)) {
11674 } else {
11675 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11676 if (UNTAG_Bool(REGB1)) {
11677 REGB1 = TAG_Bool(false);
11678 REGB0 = REGB1;
11679 } else {
11680 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11681 REGB0 = REGB1;
11682 }
11683 }
11684 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11685 if (UNTAG_Bool(REGB0)) {
11686 /* parser/parser_prod.nit:2136 */
11687 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11688 if (UNTAG_Bool(REGB0)) {
11689 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2136);
11690 }
11691 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11692 /* parser/parser_prod.nit:2137 */
11693 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
11694 if (UNTAG_Bool(REGB0)) {
11695 } else {
11696 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2137);
11697 }
11698 /* parser/parser_prod.nit:2138 */
11699 ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
11700 } else {
11701 /* parser/parser_prod.nit:2140 */
11702 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2140);
11703 }
11704 /* parser/parser_prod.nit:2142 */
11705 goto label1;
11706 }
11707 /* parser/parser_prod.nit:2144 */
11708 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0])!=NIT_NULL);
11709 if (UNTAG_Bool(REGB0)) {
11710 } else {
11711 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 2144);
11712 }
11713 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]);
11714 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11715 if (UNTAG_Bool(REGB0)) {
11716 } else {
11717 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11718 REGB0 = REGB1;
11719 }
11720 if (UNTAG_Bool(REGB0)) {
11721 /* parser/parser_prod.nit:2145 */
11722 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11723 if (UNTAG_Bool(REGB0)) {
11724 } else {
11725 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11726 if (UNTAG_Bool(REGB1)) {
11727 REGB1 = TAG_Bool(false);
11728 REGB0 = REGB1;
11729 } else {
11730 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11731 REGB0 = REGB1;
11732 }
11733 }
11734 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11735 if (UNTAG_Bool(REGB0)) {
11736 /* parser/parser_prod.nit:2146 */
11737 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11738 if (UNTAG_Bool(REGB0)) {
11739 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2146);
11740 }
11741 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11742 /* parser/parser_prod.nit:2147 */
11743 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwtype, ID_parser___parser_nodes___TKwtype)) /*cast TKwtype*/;
11744 if (UNTAG_Bool(REGB0)) {
11745 } else {
11746 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2147);
11747 }
11748 /* parser/parser_prod.nit:2148 */
11749 ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]) = fra.me.REG[2];
11750 } else {
11751 /* parser/parser_prod.nit:2150 */
11752 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2150);
11753 }
11754 /* parser/parser_prod.nit:2152 */
11755 goto label1;
11756 }
11757 /* parser/parser_prod.nit:2154 */
11758 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0])!=NIT_NULL);
11759 if (UNTAG_Bool(REGB0)) {
11760 } else {
11761 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2154);
11762 }
11763 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0]);
11764 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11765 if (UNTAG_Bool(REGB0)) {
11766 } else {
11767 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11768 REGB0 = REGB1;
11769 }
11770 if (UNTAG_Bool(REGB0)) {
11771 /* parser/parser_prod.nit:2155 */
11772 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11773 if (UNTAG_Bool(REGB0)) {
11774 } else {
11775 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11776 if (UNTAG_Bool(REGB1)) {
11777 REGB1 = TAG_Bool(false);
11778 REGB0 = REGB1;
11779 } else {
11780 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11781 REGB0 = REGB1;
11782 }
11783 }
11784 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11785 if (UNTAG_Bool(REGB0)) {
11786 /* parser/parser_prod.nit:2156 */
11787 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11788 if (UNTAG_Bool(REGB0)) {
11789 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2156);
11790 }
11791 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11792 /* parser/parser_prod.nit:2157 */
11793 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
11794 if (UNTAG_Bool(REGB0)) {
11795 } else {
11796 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2157);
11797 }
11798 /* parser/parser_prod.nit:2158 */
11799 ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
11800 } else {
11801 /* parser/parser_prod.nit:2160 */
11802 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2160);
11803 }
11804 /* parser/parser_prod.nit:2162 */
11805 goto label1;
11806 }
11807 /* parser/parser_prod.nit:2164 */
11808 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0])!=NIT_NULL);
11809 if (UNTAG_Bool(REGB0)) {
11810 } else {
11811 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 2164);
11812 }
11813 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0]);
11814 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11815 if (UNTAG_Bool(REGB0)) {
11816 } else {
11817 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11818 REGB0 = REGB1;
11819 }
11820 if (UNTAG_Bool(REGB0)) {
11821 /* parser/parser_prod.nit:2165 */
11822 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11823 if (UNTAG_Bool(REGB0)) {
11824 } else {
11825 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11826 if (UNTAG_Bool(REGB1)) {
11827 REGB1 = TAG_Bool(false);
11828 REGB0 = REGB1;
11829 } else {
11830 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11831 REGB0 = REGB1;
11832 }
11833 }
11834 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11835 if (UNTAG_Bool(REGB0)) {
11836 /* parser/parser_prod.nit:2166 */
11837 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11838 if (UNTAG_Bool(REGB0)) {
11839 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2166);
11840 }
11841 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11842 /* parser/parser_prod.nit:2167 */
11843 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
11844 if (UNTAG_Bool(REGB0)) {
11845 } else {
11846 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2167);
11847 }
11848 /* parser/parser_prod.nit:2168 */
11849 ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0]) = fra.me.REG[2];
11850 } else {
11851 /* parser/parser_prod.nit:2170 */
11852 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2170);
11853 }
11854 /* parser/parser_prod.nit:2172 */
11855 goto label1;
11856 }
11857 label1: while(0);
11858 stack_frame_head = fra.me.prev;
11859 return;
11860 }
11861 void parser___parser_prod___ATypePropdef___visit_all(val_t p0, val_t p1){
11862 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11863 val_t REGB0;
11864 val_t REGB1;
11865 val_t tmp;
11866 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11867 fra.me.file = LOCATE_parser___parser_prod;
11868 fra.me.line = 2176;
11869 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___visit_all;
11870 fra.me.has_broke = 0;
11871 fra.me.REG_size = 4;
11872 fra.me.nitni_local_ref_head = NULL;
11873 fra.me.REG[0] = NIT_NULL;
11874 fra.me.REG[1] = NIT_NULL;
11875 fra.me.REG[2] = NIT_NULL;
11876 fra.me.REG[3] = NIT_NULL;
11877 fra.me.REG[0] = p0;
11878 fra.me.REG[1] = p1;
11879 /* parser/parser_prod.nit:2176 */
11880 fra.me.REG[2] = fra.me.REG[0];
11881 /* parser/parser_prod.nit:2178 */
11882 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
11883 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11884 if (UNTAG_Bool(REGB0)) {
11885 } else {
11886 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11887 if (UNTAG_Bool(REGB1)) {
11888 REGB1 = TAG_Bool(false);
11889 REGB0 = REGB1;
11890 } else {
11891 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11892 REGB0 = REGB1;
11893 }
11894 }
11895 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11896 if (UNTAG_Bool(REGB0)) {
11897 /* parser/parser_prod.nit:2179 */
11898 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
11899 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
11900 if (UNTAG_Bool(REGB0)) {
11901 } else {
11902 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2179);
11903 }
11904 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11905 }
11906 /* parser/parser_prod.nit:2181 */
11907 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[2]);
11908 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11909 if (UNTAG_Bool(REGB0)) {
11910 } else {
11911 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11912 if (UNTAG_Bool(REGB1)) {
11913 REGB1 = TAG_Bool(false);
11914 REGB0 = REGB1;
11915 } else {
11916 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11917 REGB0 = REGB1;
11918 }
11919 }
11920 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11921 if (UNTAG_Bool(REGB0)) {
11922 /* parser/parser_prod.nit:2182 */
11923 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[2]);
11924 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
11925 if (UNTAG_Bool(REGB0)) {
11926 } else {
11927 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2182);
11928 }
11929 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11930 }
11931 /* parser/parser_prod.nit:2184 */
11932 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[2])!=NIT_NULL);
11933 if (UNTAG_Bool(REGB0)) {
11934 } else {
11935 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 2184);
11936 }
11937 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[2]);
11938 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11939 /* parser/parser_prod.nit:2185 */
11940 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[2])!=NIT_NULL);
11941 if (UNTAG_Bool(REGB0)) {
11942 } else {
11943 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 2185);
11944 }
11945 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[2]);
11946 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11947 /* parser/parser_prod.nit:2186 */
11948 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[2])!=NIT_NULL);
11949 if (UNTAG_Bool(REGB0)) {
11950 } else {
11951 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2186);
11952 }
11953 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[2]);
11954 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11955 /* parser/parser_prod.nit:2187 */
11956 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[2])!=NIT_NULL);
11957 if (UNTAG_Bool(REGB0)) {
11958 } else {
11959 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 2187);
11960 }
11961 fra.me.REG[2] = ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[2]);
11962 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11963 stack_frame_head = fra.me.prev;
11964 return;
11965 }
11966 void parser___parser_prod___AReadAble___empty_init(val_t p0, int* init_table){
11967 int itpos57 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReadAble].i;
11968 struct {struct stack_frame_t me;} fra;
11969 val_t tmp;
11970 if (init_table[itpos57]) return;
11971 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11972 fra.me.file = LOCATE_parser___parser_prod;
11973 fra.me.line = 2191;
11974 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___empty_init;
11975 fra.me.has_broke = 0;
11976 fra.me.REG_size = 1;
11977 fra.me.nitni_local_ref_head = NULL;
11978 fra.me.REG[0] = NIT_NULL;
11979 fra.me.REG[0] = p0;
11980 stack_frame_head = fra.me.prev;
11981 init_table[itpos57] = 1;
11982 return;
11983 }
11984 void parser___parser_prod___AReadAble___init_areadable(val_t p0, val_t p1, val_t p2, int* init_table){
11985 int itpos58 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReadAble].i;
11986 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11987 val_t REGB0;
11988 val_t REGB1;
11989 val_t tmp;
11990 if (init_table[itpos58]) return;
11991 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11992 fra.me.file = LOCATE_parser___parser_prod;
11993 fra.me.line = 2193;
11994 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___init_areadable;
11995 fra.me.has_broke = 0;
11996 fra.me.REG_size = 4;
11997 fra.me.nitni_local_ref_head = NULL;
11998 fra.me.REG[0] = NIT_NULL;
11999 fra.me.REG[1] = NIT_NULL;
12000 fra.me.REG[2] = NIT_NULL;
12001 fra.me.REG[3] = NIT_NULL;
12002 fra.me.REG[0] = p0;
12003 fra.me.REG[1] = p1;
12004 fra.me.REG[2] = p2;
12005 /* parser/parser_prod.nit:2193 */
12006 fra.me.REG[3] = fra.me.REG[0];
12007 /* parser/parser_prod.nit:2198 */
12008 CALL_parser___parser_prod___AReadAble___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
12009 /* parser/parser_prod.nit:2199 */
12010 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[3]) = fra.me.REG[1];
12011 /* parser/parser_prod.nit:2200 */
12012 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12013 if (UNTAG_Bool(REGB0)) {
12014 } else {
12015 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12016 if (UNTAG_Bool(REGB1)) {
12017 REGB1 = TAG_Bool(false);
12018 REGB0 = REGB1;
12019 } else {
12020 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
12021 REGB0 = REGB1;
12022 }
12023 }
12024 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12025 if (UNTAG_Bool(REGB0)) {
12026 /* parser/parser_prod.nit:2201 */
12027 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12028 if (UNTAG_Bool(REGB0)) {
12029 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2201);
12030 }
12031 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12032 }
12033 /* parser/parser_prod.nit:2203 */
12034 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
12035 if (UNTAG_Bool(REGB0)) {
12036 } else {
12037 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2203);
12038 }
12039 ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[3]) = fra.me.REG[2];
12040 /* parser/parser_prod.nit:2204 */
12041 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12042 if (UNTAG_Bool(REGB0)) {
12043 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2204);
12044 }
12045 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
12046 stack_frame_head = fra.me.prev;
12047 init_table[itpos58] = 1;
12048 return;
12049 }
12050 void parser___parser_prod___AReadAble___replace_child(val_t p0, val_t p1, val_t p2){
12051 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12052 val_t REGB0;
12053 val_t REGB1;
12054 val_t tmp;
12055 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12056 fra.me.file = LOCATE_parser___parser_prod;
12057 fra.me.line = 2207;
12058 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___replace_child;
12059 fra.me.has_broke = 0;
12060 fra.me.REG_size = 4;
12061 fra.me.nitni_local_ref_head = NULL;
12062 fra.me.REG[0] = NIT_NULL;
12063 fra.me.REG[1] = NIT_NULL;
12064 fra.me.REG[2] = NIT_NULL;
12065 fra.me.REG[3] = NIT_NULL;
12066 fra.me.REG[0] = p0;
12067 fra.me.REG[1] = p1;
12068 fra.me.REG[2] = p2;
12069 /* parser/parser_prod.nit:2209 */
12070 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
12071 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
12072 if (UNTAG_Bool(REGB0)) {
12073 } else {
12074 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12075 if (UNTAG_Bool(REGB1)) {
12076 REGB1 = TAG_Bool(false);
12077 REGB0 = REGB1;
12078 } else {
12079 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12080 REGB0 = REGB1;
12081 }
12082 }
12083 if (UNTAG_Bool(REGB0)) {
12084 /* parser/parser_prod.nit:2210 */
12085 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12086 if (UNTAG_Bool(REGB0)) {
12087 } else {
12088 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12089 if (UNTAG_Bool(REGB1)) {
12090 REGB1 = TAG_Bool(false);
12091 REGB0 = REGB1;
12092 } else {
12093 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12094 REGB0 = REGB1;
12095 }
12096 }
12097 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12098 if (UNTAG_Bool(REGB0)) {
12099 /* parser/parser_prod.nit:2211 */
12100 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12101 if (UNTAG_Bool(REGB0)) {
12102 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2211);
12103 }
12104 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12105 /* parser/parser_prod.nit:2212 */
12106 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
12107 if (UNTAG_Bool(REGB0)) {
12108 } else {
12109 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2212);
12110 }
12111 /* parser/parser_prod.nit:2213 */
12112 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
12113 } else {
12114 /* parser/parser_prod.nit:2215 */
12115 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = NIT_NULL;
12116 }
12117 /* parser/parser_prod.nit:2217 */
12118 goto label1;
12119 }
12120 /* parser/parser_prod.nit:2219 */
12121 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0])!=NIT_NULL);
12122 if (UNTAG_Bool(REGB0)) {
12123 } else {
12124 nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser___parser_prod, 2219);
12125 }
12126 fra.me.REG[3] = ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]);
12127 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12128 if (UNTAG_Bool(REGB0)) {
12129 } else {
12130 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12131 REGB0 = REGB1;
12132 }
12133 if (UNTAG_Bool(REGB0)) {
12134 /* parser/parser_prod.nit:2220 */
12135 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12136 if (UNTAG_Bool(REGB0)) {
12137 } else {
12138 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12139 if (UNTAG_Bool(REGB1)) {
12140 REGB1 = TAG_Bool(false);
12141 REGB0 = REGB1;
12142 } else {
12143 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12144 REGB0 = REGB1;
12145 }
12146 }
12147 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12148 if (UNTAG_Bool(REGB0)) {
12149 /* parser/parser_prod.nit:2221 */
12150 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12151 if (UNTAG_Bool(REGB0)) {
12152 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2221);
12153 }
12154 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12155 /* parser/parser_prod.nit:2222 */
12156 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwreadable, ID_parser___parser_nodes___TKwreadable)) /*cast TKwreadable*/;
12157 if (UNTAG_Bool(REGB0)) {
12158 } else {
12159 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2222);
12160 }
12161 /* parser/parser_prod.nit:2223 */
12162 ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]) = fra.me.REG[2];
12163 } else {
12164 /* parser/parser_prod.nit:2225 */
12165 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2225);
12166 }
12167 /* parser/parser_prod.nit:2227 */
12168 goto label1;
12169 }
12170 label1: while(0);
12171 stack_frame_head = fra.me.prev;
12172 return;
12173 }
12174 void parser___parser_prod___AReadAble___visit_all(val_t p0, val_t p1){
12175 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12176 val_t REGB0;
12177 val_t REGB1;
12178 val_t tmp;
12179 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12180 fra.me.file = LOCATE_parser___parser_prod;
12181 fra.me.line = 2231;
12182 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___visit_all;
12183 fra.me.has_broke = 0;
12184 fra.me.REG_size = 4;
12185 fra.me.nitni_local_ref_head = NULL;
12186 fra.me.REG[0] = NIT_NULL;
12187 fra.me.REG[1] = NIT_NULL;
12188 fra.me.REG[2] = NIT_NULL;
12189 fra.me.REG[3] = NIT_NULL;
12190 fra.me.REG[0] = p0;
12191 fra.me.REG[1] = p1;
12192 /* parser/parser_prod.nit:2231 */
12193 fra.me.REG[2] = fra.me.REG[0];
12194 /* parser/parser_prod.nit:2233 */
12195 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
12196 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12197 if (UNTAG_Bool(REGB0)) {
12198 } else {
12199 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12200 if (UNTAG_Bool(REGB1)) {
12201 REGB1 = TAG_Bool(false);
12202 REGB0 = REGB1;
12203 } else {
12204 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
12205 REGB0 = REGB1;
12206 }
12207 }
12208 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12209 if (UNTAG_Bool(REGB0)) {
12210 /* parser/parser_prod.nit:2234 */
12211 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
12212 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
12213 if (UNTAG_Bool(REGB0)) {
12214 } else {
12215 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2234);
12216 }
12217 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12218 }
12219 /* parser/parser_prod.nit:2236 */
12220 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[2])!=NIT_NULL);
12221 if (UNTAG_Bool(REGB0)) {
12222 } else {
12223 nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser___parser_prod, 2236);
12224 }
12225 fra.me.REG[2] = ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[2]);
12226 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12227 stack_frame_head = fra.me.prev;
12228 return;
12229 }
12230 void parser___parser_prod___AWriteAble___empty_init(val_t p0, int* init_table){
12231 int itpos59 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWriteAble].i;
12232 struct {struct stack_frame_t me;} fra;
12233 val_t tmp;
12234 if (init_table[itpos59]) return;
12235 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12236 fra.me.file = LOCATE_parser___parser_prod;
12237 fra.me.line = 2240;
12238 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___empty_init;
12239 fra.me.has_broke = 0;
12240 fra.me.REG_size = 1;
12241 fra.me.nitni_local_ref_head = NULL;
12242 fra.me.REG[0] = NIT_NULL;
12243 fra.me.REG[0] = p0;
12244 stack_frame_head = fra.me.prev;
12245 init_table[itpos59] = 1;
12246 return;
12247 }
12248 void parser___parser_prod___AWriteAble___init_awriteable(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
12249 int itpos60 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWriteAble].i;
12250 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
12251 val_t REGB0;
12252 val_t REGB1;
12253 val_t tmp;
12254 if (init_table[itpos60]) return;
12255 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12256 fra.me.file = LOCATE_parser___parser_prod;
12257 fra.me.line = 2242;
12258 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___init_awriteable;
12259 fra.me.has_broke = 0;
12260 fra.me.REG_size = 5;
12261 fra.me.nitni_local_ref_head = NULL;
12262 fra.me.REG[0] = NIT_NULL;
12263 fra.me.REG[1] = NIT_NULL;
12264 fra.me.REG[2] = NIT_NULL;
12265 fra.me.REG[3] = NIT_NULL;
12266 fra.me.REG[4] = NIT_NULL;
12267 fra.me.REG[0] = p0;
12268 fra.me.REG[1] = p1;
12269 fra.me.REG[2] = p2;
12270 fra.me.REG[3] = p3;
12271 /* parser/parser_prod.nit:2242 */
12272 fra.me.REG[4] = fra.me.REG[0];
12273 /* parser/parser_prod.nit:2248 */
12274 CALL_parser___parser_prod___AWriteAble___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
12275 /* parser/parser_prod.nit:2249 */
12276 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[4]) = fra.me.REG[1];
12277 /* parser/parser_prod.nit:2250 */
12278 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12279 if (UNTAG_Bool(REGB0)) {
12280 } else {
12281 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12282 if (UNTAG_Bool(REGB1)) {
12283 REGB1 = TAG_Bool(false);
12284 REGB0 = REGB1;
12285 } else {
12286 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
12287 REGB0 = REGB1;
12288 }
12289 }
12290 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12291 if (UNTAG_Bool(REGB0)) {
12292 /* parser/parser_prod.nit:2251 */
12293 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12294 if (UNTAG_Bool(REGB0)) {
12295 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2251);
12296 }
12297 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
12298 }
12299 /* parser/parser_prod.nit:2253 */
12300 ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[4]) = fra.me.REG[2];
12301 /* parser/parser_prod.nit:2254 */
12302 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12303 if (UNTAG_Bool(REGB0)) {
12304 } else {
12305 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12306 if (UNTAG_Bool(REGB1)) {
12307 REGB1 = TAG_Bool(false);
12308 REGB0 = REGB1;
12309 } else {
12310 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12311 REGB0 = REGB1;
12312 }
12313 }
12314 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12315 if (UNTAG_Bool(REGB0)) {
12316 /* parser/parser_prod.nit:2255 */
12317 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12318 if (UNTAG_Bool(REGB0)) {
12319 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2255);
12320 }
12321 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
12322 }
12323 /* parser/parser_prod.nit:2257 */
12324 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
12325 if (UNTAG_Bool(REGB0)) {
12326 } else {
12327 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2257);
12328 }
12329 ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[4]) = fra.me.REG[3];
12330 /* parser/parser_prod.nit:2258 */
12331 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12332 if (UNTAG_Bool(REGB0)) {
12333 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2258);
12334 }
12335 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
12336 stack_frame_head = fra.me.prev;
12337 init_table[itpos60] = 1;
12338 return;
12339 }
12340 void parser___parser_prod___AWriteAble___replace_child(val_t p0, val_t p1, val_t p2){
12341 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12342 val_t REGB0;
12343 val_t REGB1;
12344 val_t tmp;
12345 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12346 fra.me.file = LOCATE_parser___parser_prod;
12347 fra.me.line = 2261;
12348 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___replace_child;
12349 fra.me.has_broke = 0;
12350 fra.me.REG_size = 4;
12351 fra.me.nitni_local_ref_head = NULL;
12352 fra.me.REG[0] = NIT_NULL;
12353 fra.me.REG[1] = NIT_NULL;
12354 fra.me.REG[2] = NIT_NULL;
12355 fra.me.REG[3] = NIT_NULL;
12356 fra.me.REG[0] = p0;
12357 fra.me.REG[1] = p1;
12358 fra.me.REG[2] = p2;
12359 /* parser/parser_prod.nit:2263 */
12360 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
12361 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
12362 if (UNTAG_Bool(REGB0)) {
12363 } else {
12364 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12365 if (UNTAG_Bool(REGB1)) {
12366 REGB1 = TAG_Bool(false);
12367 REGB0 = REGB1;
12368 } else {
12369 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12370 REGB0 = REGB1;
12371 }
12372 }
12373 if (UNTAG_Bool(REGB0)) {
12374 /* parser/parser_prod.nit:2264 */
12375 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12376 if (UNTAG_Bool(REGB0)) {
12377 } else {
12378 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12379 if (UNTAG_Bool(REGB1)) {
12380 REGB1 = TAG_Bool(false);
12381 REGB0 = REGB1;
12382 } else {
12383 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12384 REGB0 = REGB1;
12385 }
12386 }
12387 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12388 if (UNTAG_Bool(REGB0)) {
12389 /* parser/parser_prod.nit:2265 */
12390 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12391 if (UNTAG_Bool(REGB0)) {
12392 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2265);
12393 }
12394 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12395 /* parser/parser_prod.nit:2266 */
12396 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
12397 if (UNTAG_Bool(REGB0)) {
12398 } else {
12399 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2266);
12400 }
12401 /* parser/parser_prod.nit:2267 */
12402 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
12403 } else {
12404 /* parser/parser_prod.nit:2269 */
12405 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = NIT_NULL;
12406 }
12407 /* parser/parser_prod.nit:2271 */
12408 goto label1;
12409 }
12410 /* parser/parser_prod.nit:2273 */
12411 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]);
12412 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
12413 if (UNTAG_Bool(REGB0)) {
12414 } else {
12415 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12416 if (UNTAG_Bool(REGB1)) {
12417 REGB1 = TAG_Bool(false);
12418 REGB0 = REGB1;
12419 } else {
12420 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12421 REGB0 = REGB1;
12422 }
12423 }
12424 if (UNTAG_Bool(REGB0)) {
12425 /* parser/parser_prod.nit:2274 */
12426 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12427 if (UNTAG_Bool(REGB0)) {
12428 } else {
12429 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12430 if (UNTAG_Bool(REGB1)) {
12431 REGB1 = TAG_Bool(false);
12432 REGB0 = REGB1;
12433 } else {
12434 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12435 REGB0 = REGB1;
12436 }
12437 }
12438 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12439 if (UNTAG_Bool(REGB0)) {
12440 /* parser/parser_prod.nit:2275 */
12441 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12442 if (UNTAG_Bool(REGB0)) {
12443 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2275);
12444 }
12445 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12446 /* parser/parser_prod.nit:2276 */
12447 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
12448 if (UNTAG_Bool(REGB0)) {
12449 } else {
12450 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2276);
12451 }
12452 /* parser/parser_prod.nit:2277 */
12453 ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
12454 } else {
12455 /* parser/parser_prod.nit:2279 */
12456 ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]) = NIT_NULL;
12457 }
12458 /* parser/parser_prod.nit:2281 */
12459 goto label1;
12460 }
12461 /* parser/parser_prod.nit:2283 */
12462 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0])!=NIT_NULL);
12463 if (UNTAG_Bool(REGB0)) {
12464 } else {
12465 nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser___parser_prod, 2283);
12466 }
12467 fra.me.REG[3] = ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]);
12468 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12469 if (UNTAG_Bool(REGB0)) {
12470 } else {
12471 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12472 REGB0 = REGB1;
12473 }
12474 if (UNTAG_Bool(REGB0)) {
12475 /* parser/parser_prod.nit:2284 */
12476 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12477 if (UNTAG_Bool(REGB0)) {
12478 } else {
12479 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12480 if (UNTAG_Bool(REGB1)) {
12481 REGB1 = TAG_Bool(false);
12482 REGB0 = REGB1;
12483 } else {
12484 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12485 REGB0 = REGB1;
12486 }
12487 }
12488 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12489 if (UNTAG_Bool(REGB0)) {
12490 /* parser/parser_prod.nit:2285 */
12491 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12492 if (UNTAG_Bool(REGB0)) {
12493 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2285);
12494 }
12495 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12496 /* parser/parser_prod.nit:2286 */
12497 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwwritable, ID_parser___parser_nodes___TKwwritable)) /*cast TKwwritable*/;
12498 if (UNTAG_Bool(REGB0)) {
12499 } else {
12500 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2286);
12501 }
12502 /* parser/parser_prod.nit:2287 */
12503 ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]) = fra.me.REG[2];
12504 } else {
12505 /* parser/parser_prod.nit:2289 */
12506 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2289);
12507 }
12508 /* parser/parser_prod.nit:2291 */
12509 goto label1;
12510 }
12511 label1: while(0);
12512 stack_frame_head = fra.me.prev;
12513 return;
12514 }
12515 void parser___parser_prod___AWriteAble___visit_all(val_t p0, val_t p1){
12516 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12517 val_t REGB0;
12518 val_t REGB1;
12519 val_t tmp;
12520 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12521 fra.me.file = LOCATE_parser___parser_prod;
12522 fra.me.line = 2295;
12523 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___visit_all;
12524 fra.me.has_broke = 0;
12525 fra.me.REG_size = 4;
12526 fra.me.nitni_local_ref_head = NULL;
12527 fra.me.REG[0] = NIT_NULL;
12528 fra.me.REG[1] = NIT_NULL;
12529 fra.me.REG[2] = NIT_NULL;
12530 fra.me.REG[3] = NIT_NULL;
12531 fra.me.REG[0] = p0;
12532 fra.me.REG[1] = p1;
12533 /* parser/parser_prod.nit:2295 */
12534 fra.me.REG[2] = fra.me.REG[0];
12535 /* parser/parser_prod.nit:2297 */
12536 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
12537 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12538 if (UNTAG_Bool(REGB0)) {
12539 } else {
12540 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12541 if (UNTAG_Bool(REGB1)) {
12542 REGB1 = TAG_Bool(false);
12543 REGB0 = REGB1;
12544 } else {
12545 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
12546 REGB0 = REGB1;
12547 }
12548 }
12549 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12550 if (UNTAG_Bool(REGB0)) {
12551 /* parser/parser_prod.nit:2298 */
12552 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
12553 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
12554 if (UNTAG_Bool(REGB0)) {
12555 } else {
12556 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2298);
12557 }
12558 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12559 }
12560 /* parser/parser_prod.nit:2300 */
12561 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[2]);
12562 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12563 if (UNTAG_Bool(REGB0)) {
12564 } else {
12565 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12566 if (UNTAG_Bool(REGB1)) {
12567 REGB1 = TAG_Bool(false);
12568 REGB0 = REGB1;
12569 } else {
12570 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
12571 REGB0 = REGB1;
12572 }
12573 }
12574 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12575 if (UNTAG_Bool(REGB0)) {
12576 /* parser/parser_prod.nit:2301 */
12577 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[2]);
12578 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
12579 if (UNTAG_Bool(REGB0)) {
12580 } else {
12581 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2301);
12582 }
12583 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12584 }
12585 /* parser/parser_prod.nit:2303 */
12586 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[2])!=NIT_NULL);
12587 if (UNTAG_Bool(REGB0)) {
12588 } else {
12589 nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser___parser_prod, 2303);
12590 }
12591 fra.me.REG[2] = ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[2]);
12592 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12593 stack_frame_head = fra.me.prev;
12594 return;
12595 }
12596 void parser___parser_prod___AIdMethid___empty_init(val_t p0, int* init_table){
12597 int itpos61 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIdMethid].i;
12598 struct {struct stack_frame_t me;} fra;
12599 val_t tmp;
12600 if (init_table[itpos61]) return;
12601 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12602 fra.me.file = LOCATE_parser___parser_prod;
12603 fra.me.line = 2307;
12604 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___empty_init;
12605 fra.me.has_broke = 0;
12606 fra.me.REG_size = 1;
12607 fra.me.nitni_local_ref_head = NULL;
12608 fra.me.REG[0] = NIT_NULL;
12609 fra.me.REG[0] = p0;
12610 stack_frame_head = fra.me.prev;
12611 init_table[itpos61] = 1;
12612 return;
12613 }
12614 void parser___parser_prod___AIdMethid___init_aidmethid(val_t p0, val_t p1, int* init_table){
12615 int itpos62 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIdMethid].i;
12616 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
12617 val_t REGB0;
12618 val_t tmp;
12619 if (init_table[itpos62]) return;
12620 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12621 fra.me.file = LOCATE_parser___parser_prod;
12622 fra.me.line = 2309;
12623 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___init_aidmethid;
12624 fra.me.has_broke = 0;
12625 fra.me.REG_size = 3;
12626 fra.me.nitni_local_ref_head = NULL;
12627 fra.me.REG[0] = NIT_NULL;
12628 fra.me.REG[1] = NIT_NULL;
12629 fra.me.REG[2] = NIT_NULL;
12630 fra.me.REG[0] = p0;
12631 fra.me.REG[1] = p1;
12632 /* parser/parser_prod.nit:2309 */
12633 fra.me.REG[2] = fra.me.REG[0];
12634 /* parser/parser_prod.nit:2313 */
12635 CALL_parser___parser_prod___AIdMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
12636 /* parser/parser_prod.nit:2314 */
12637 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12638 if (UNTAG_Bool(REGB0)) {
12639 } else {
12640 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2314);
12641 }
12642 ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[2]) = fra.me.REG[1];
12643 /* parser/parser_prod.nit:2315 */
12644 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12645 if (UNTAG_Bool(REGB0)) {
12646 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2315);
12647 }
12648 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12649 stack_frame_head = fra.me.prev;
12650 init_table[itpos62] = 1;
12651 return;
12652 }
12653 void parser___parser_prod___AIdMethid___replace_child(val_t p0, val_t p1, val_t p2){
12654 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12655 val_t REGB0;
12656 val_t REGB1;
12657 val_t tmp;
12658 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12659 fra.me.file = LOCATE_parser___parser_prod;
12660 fra.me.line = 2318;
12661 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___replace_child;
12662 fra.me.has_broke = 0;
12663 fra.me.REG_size = 4;
12664 fra.me.nitni_local_ref_head = NULL;
12665 fra.me.REG[0] = NIT_NULL;
12666 fra.me.REG[1] = NIT_NULL;
12667 fra.me.REG[2] = NIT_NULL;
12668 fra.me.REG[3] = NIT_NULL;
12669 fra.me.REG[0] = p0;
12670 fra.me.REG[1] = p1;
12671 fra.me.REG[2] = p2;
12672 /* parser/parser_prod.nit:2320 */
12673 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0])!=NIT_NULL);
12674 if (UNTAG_Bool(REGB0)) {
12675 } else {
12676 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2320);
12677 }
12678 fra.me.REG[3] = ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]);
12679 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12680 if (UNTAG_Bool(REGB0)) {
12681 } else {
12682 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12683 REGB0 = REGB1;
12684 }
12685 if (UNTAG_Bool(REGB0)) {
12686 /* parser/parser_prod.nit:2321 */
12687 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12688 if (UNTAG_Bool(REGB0)) {
12689 } else {
12690 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12691 if (UNTAG_Bool(REGB1)) {
12692 REGB1 = TAG_Bool(false);
12693 REGB0 = REGB1;
12694 } else {
12695 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12696 REGB0 = REGB1;
12697 }
12698 }
12699 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12700 if (UNTAG_Bool(REGB0)) {
12701 /* parser/parser_prod.nit:2322 */
12702 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12703 if (UNTAG_Bool(REGB0)) {
12704 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2322);
12705 }
12706 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12707 /* parser/parser_prod.nit:2323 */
12708 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
12709 if (UNTAG_Bool(REGB0)) {
12710 } else {
12711 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2323);
12712 }
12713 /* parser/parser_prod.nit:2324 */
12714 ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]) = fra.me.REG[2];
12715 } else {
12716 /* parser/parser_prod.nit:2326 */
12717 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2326);
12718 }
12719 /* parser/parser_prod.nit:2328 */
12720 goto label1;
12721 }
12722 label1: while(0);
12723 stack_frame_head = fra.me.prev;
12724 return;
12725 }
12726 void parser___parser_prod___AIdMethid___visit_all(val_t p0, val_t p1){
12727 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12728 val_t REGB0;
12729 val_t tmp;
12730 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12731 fra.me.file = LOCATE_parser___parser_prod;
12732 fra.me.line = 2332;
12733 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___visit_all;
12734 fra.me.has_broke = 0;
12735 fra.me.REG_size = 2;
12736 fra.me.nitni_local_ref_head = NULL;
12737 fra.me.REG[0] = NIT_NULL;
12738 fra.me.REG[1] = NIT_NULL;
12739 fra.me.REG[0] = p0;
12740 fra.me.REG[1] = p1;
12741 /* parser/parser_prod.nit:2334 */
12742 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0])!=NIT_NULL);
12743 if (UNTAG_Bool(REGB0)) {
12744 } else {
12745 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2334);
12746 }
12747 fra.me.REG[0] = ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]);
12748 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12749 stack_frame_head = fra.me.prev;
12750 return;
12751 }
12752 void parser___parser_prod___APlusMethid___empty_init(val_t p0, int* init_table){
12753 int itpos63 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusMethid].i;
12754 struct {struct stack_frame_t me;} fra;
12755 val_t tmp;
12756 if (init_table[itpos63]) return;
12757 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12758 fra.me.file = LOCATE_parser___parser_prod;
12759 fra.me.line = 2338;
12760 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___empty_init;
12761 fra.me.has_broke = 0;
12762 fra.me.REG_size = 1;
12763 fra.me.nitni_local_ref_head = NULL;
12764 fra.me.REG[0] = NIT_NULL;
12765 fra.me.REG[0] = p0;
12766 stack_frame_head = fra.me.prev;
12767 init_table[itpos63] = 1;
12768 return;
12769 }
12770 void parser___parser_prod___APlusMethid___init_aplusmethid(val_t p0, val_t p1, int* init_table){
12771 int itpos64 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusMethid].i;
12772 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
12773 val_t REGB0;
12774 val_t tmp;
12775 if (init_table[itpos64]) return;
12776 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12777 fra.me.file = LOCATE_parser___parser_prod;
12778 fra.me.line = 2340;
12779 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___init_aplusmethid;
12780 fra.me.has_broke = 0;
12781 fra.me.REG_size = 3;
12782 fra.me.nitni_local_ref_head = NULL;
12783 fra.me.REG[0] = NIT_NULL;
12784 fra.me.REG[1] = NIT_NULL;
12785 fra.me.REG[2] = NIT_NULL;
12786 fra.me.REG[0] = p0;
12787 fra.me.REG[1] = p1;
12788 /* parser/parser_prod.nit:2340 */
12789 fra.me.REG[2] = fra.me.REG[0];
12790 /* parser/parser_prod.nit:2344 */
12791 CALL_parser___parser_prod___APlusMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
12792 /* parser/parser_prod.nit:2345 */
12793 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12794 if (UNTAG_Bool(REGB0)) {
12795 } else {
12796 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2345);
12797 }
12798 ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[2]) = fra.me.REG[1];
12799 /* parser/parser_prod.nit:2346 */
12800 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12801 if (UNTAG_Bool(REGB0)) {
12802 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2346);
12803 }
12804 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12805 stack_frame_head = fra.me.prev;
12806 init_table[itpos64] = 1;
12807 return;
12808 }
12809 void parser___parser_prod___APlusMethid___replace_child(val_t p0, val_t p1, val_t p2){
12810 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12811 val_t REGB0;
12812 val_t REGB1;
12813 val_t tmp;
12814 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12815 fra.me.file = LOCATE_parser___parser_prod;
12816 fra.me.line = 2349;
12817 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___replace_child;
12818 fra.me.has_broke = 0;
12819 fra.me.REG_size = 4;
12820 fra.me.nitni_local_ref_head = NULL;
12821 fra.me.REG[0] = NIT_NULL;
12822 fra.me.REG[1] = NIT_NULL;
12823 fra.me.REG[2] = NIT_NULL;
12824 fra.me.REG[3] = NIT_NULL;
12825 fra.me.REG[0] = p0;
12826 fra.me.REG[1] = p1;
12827 fra.me.REG[2] = p2;
12828 /* parser/parser_prod.nit:2351 */
12829 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0])!=NIT_NULL);
12830 if (UNTAG_Bool(REGB0)) {
12831 } else {
12832 nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser___parser_prod, 2351);
12833 }
12834 fra.me.REG[3] = ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]);
12835 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12836 if (UNTAG_Bool(REGB0)) {
12837 } else {
12838 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12839 REGB0 = REGB1;
12840 }
12841 if (UNTAG_Bool(REGB0)) {
12842 /* parser/parser_prod.nit:2352 */
12843 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12844 if (UNTAG_Bool(REGB0)) {
12845 } else {
12846 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12847 if (UNTAG_Bool(REGB1)) {
12848 REGB1 = TAG_Bool(false);
12849 REGB0 = REGB1;
12850 } else {
12851 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12852 REGB0 = REGB1;
12853 }
12854 }
12855 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12856 if (UNTAG_Bool(REGB0)) {
12857 /* parser/parser_prod.nit:2353 */
12858 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12859 if (UNTAG_Bool(REGB0)) {
12860 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2353);
12861 }
12862 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12863 /* parser/parser_prod.nit:2354 */
12864 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TPlus, ID_parser___parser_nodes___TPlus)) /*cast TPlus*/;
12865 if (UNTAG_Bool(REGB0)) {
12866 } else {
12867 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2354);
12868 }
12869 /* parser/parser_prod.nit:2355 */
12870 ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]) = fra.me.REG[2];
12871 } else {
12872 /* parser/parser_prod.nit:2357 */
12873 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2357);
12874 }
12875 /* parser/parser_prod.nit:2359 */
12876 goto label1;
12877 }
12878 label1: while(0);
12879 stack_frame_head = fra.me.prev;
12880 return;
12881 }
12882 void parser___parser_prod___APlusMethid___visit_all(val_t p0, val_t p1){
12883 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12884 val_t REGB0;
12885 val_t tmp;
12886 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12887 fra.me.file = LOCATE_parser___parser_prod;
12888 fra.me.line = 2363;
12889 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___visit_all;
12890 fra.me.has_broke = 0;
12891 fra.me.REG_size = 2;
12892 fra.me.nitni_local_ref_head = NULL;
12893 fra.me.REG[0] = NIT_NULL;
12894 fra.me.REG[1] = NIT_NULL;
12895 fra.me.REG[0] = p0;
12896 fra.me.REG[1] = p1;
12897 /* parser/parser_prod.nit:2365 */
12898 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0])!=NIT_NULL);
12899 if (UNTAG_Bool(REGB0)) {
12900 } else {
12901 nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser___parser_prod, 2365);
12902 }
12903 fra.me.REG[0] = ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]);
12904 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12905 stack_frame_head = fra.me.prev;
12906 return;
12907 }
12908 void parser___parser_prod___AMinusMethid___empty_init(val_t p0, int* init_table){
12909 int itpos65 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusMethid].i;
12910 struct {struct stack_frame_t me;} fra;
12911 val_t tmp;
12912 if (init_table[itpos65]) return;
12913 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12914 fra.me.file = LOCATE_parser___parser_prod;
12915 fra.me.line = 2369;
12916 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___empty_init;
12917 fra.me.has_broke = 0;
12918 fra.me.REG_size = 1;
12919 fra.me.nitni_local_ref_head = NULL;
12920 fra.me.REG[0] = NIT_NULL;
12921 fra.me.REG[0] = p0;
12922 stack_frame_head = fra.me.prev;
12923 init_table[itpos65] = 1;
12924 return;
12925 }
12926 void parser___parser_prod___AMinusMethid___init_aminusmethid(val_t p0, val_t p1, int* init_table){
12927 int itpos66 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusMethid].i;
12928 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
12929 val_t REGB0;
12930 val_t tmp;
12931 if (init_table[itpos66]) return;
12932 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12933 fra.me.file = LOCATE_parser___parser_prod;
12934 fra.me.line = 2371;
12935 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___init_aminusmethid;
12936 fra.me.has_broke = 0;
12937 fra.me.REG_size = 3;
12938 fra.me.nitni_local_ref_head = NULL;
12939 fra.me.REG[0] = NIT_NULL;
12940 fra.me.REG[1] = NIT_NULL;
12941 fra.me.REG[2] = NIT_NULL;
12942 fra.me.REG[0] = p0;
12943 fra.me.REG[1] = p1;
12944 /* parser/parser_prod.nit:2371 */
12945 fra.me.REG[2] = fra.me.REG[0];
12946 /* parser/parser_prod.nit:2375 */
12947 CALL_parser___parser_prod___AMinusMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
12948 /* parser/parser_prod.nit:2376 */
12949 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12950 if (UNTAG_Bool(REGB0)) {
12951 } else {
12952 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2376);
12953 }
12954 ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[2]) = fra.me.REG[1];
12955 /* parser/parser_prod.nit:2377 */
12956 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12957 if (UNTAG_Bool(REGB0)) {
12958 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2377);
12959 }
12960 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12961 stack_frame_head = fra.me.prev;
12962 init_table[itpos66] = 1;
12963 return;
12964 }
12965 void parser___parser_prod___AMinusMethid___replace_child(val_t p0, val_t p1, val_t p2){
12966 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12967 val_t REGB0;
12968 val_t REGB1;
12969 val_t tmp;
12970 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12971 fra.me.file = LOCATE_parser___parser_prod;
12972 fra.me.line = 2380;
12973 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___replace_child;
12974 fra.me.has_broke = 0;
12975 fra.me.REG_size = 4;
12976 fra.me.nitni_local_ref_head = NULL;
12977 fra.me.REG[0] = NIT_NULL;
12978 fra.me.REG[1] = NIT_NULL;
12979 fra.me.REG[2] = NIT_NULL;
12980 fra.me.REG[3] = NIT_NULL;
12981 fra.me.REG[0] = p0;
12982 fra.me.REG[1] = p1;
12983 fra.me.REG[2] = p2;
12984 /* parser/parser_prod.nit:2382 */
12985 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0])!=NIT_NULL);
12986 if (UNTAG_Bool(REGB0)) {
12987 } else {
12988 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 2382);
12989 }
12990 fra.me.REG[3] = ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]);
12991 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12992 if (UNTAG_Bool(REGB0)) {
12993 } else {
12994 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12995 REGB0 = REGB1;
12996 }
12997 if (UNTAG_Bool(REGB0)) {
12998 /* parser/parser_prod.nit:2383 */
12999 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13000 if (UNTAG_Bool(REGB0)) {
13001 } else {
13002 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13003 if (UNTAG_Bool(REGB1)) {
13004 REGB1 = TAG_Bool(false);
13005 REGB0 = REGB1;
13006 } else {
13007 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13008 REGB0 = REGB1;
13009 }
13010 }
13011 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13012 if (UNTAG_Bool(REGB0)) {
13013 /* parser/parser_prod.nit:2384 */
13014 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13015 if (UNTAG_Bool(REGB0)) {
13016 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2384);
13017 }
13018 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13019 /* parser/parser_prod.nit:2385 */
13020 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TMinus, ID_parser___parser_nodes___TMinus)) /*cast TMinus*/;
13021 if (UNTAG_Bool(REGB0)) {
13022 } else {
13023 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2385);
13024 }
13025 /* parser/parser_prod.nit:2386 */
13026 ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]) = fra.me.REG[2];
13027 } else {
13028 /* parser/parser_prod.nit:2388 */
13029 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2388);
13030 }
13031 /* parser/parser_prod.nit:2390 */
13032 goto label1;
13033 }
13034 label1: while(0);
13035 stack_frame_head = fra.me.prev;
13036 return;
13037 }
13038 void parser___parser_prod___AMinusMethid___visit_all(val_t p0, val_t p1){
13039 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13040 val_t REGB0;
13041 val_t tmp;
13042 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13043 fra.me.file = LOCATE_parser___parser_prod;
13044 fra.me.line = 2394;
13045 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___visit_all;
13046 fra.me.has_broke = 0;
13047 fra.me.REG_size = 2;
13048 fra.me.nitni_local_ref_head = NULL;
13049 fra.me.REG[0] = NIT_NULL;
13050 fra.me.REG[1] = NIT_NULL;
13051 fra.me.REG[0] = p0;
13052 fra.me.REG[1] = p1;
13053 /* parser/parser_prod.nit:2396 */
13054 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0])!=NIT_NULL);
13055 if (UNTAG_Bool(REGB0)) {
13056 } else {
13057 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 2396);
13058 }
13059 fra.me.REG[0] = ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]);
13060 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13061 stack_frame_head = fra.me.prev;
13062 return;
13063 }
13064 void parser___parser_prod___AStarMethid___empty_init(val_t p0, int* init_table){
13065 int itpos67 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarMethid].i;
13066 struct {struct stack_frame_t me;} fra;
13067 val_t tmp;
13068 if (init_table[itpos67]) return;
13069 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13070 fra.me.file = LOCATE_parser___parser_prod;
13071 fra.me.line = 2400;
13072 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___empty_init;
13073 fra.me.has_broke = 0;
13074 fra.me.REG_size = 1;
13075 fra.me.nitni_local_ref_head = NULL;
13076 fra.me.REG[0] = NIT_NULL;
13077 fra.me.REG[0] = p0;
13078 stack_frame_head = fra.me.prev;
13079 init_table[itpos67] = 1;
13080 return;
13081 }
13082 void parser___parser_prod___AStarMethid___init_astarmethid(val_t p0, val_t p1, int* init_table){
13083 int itpos68 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarMethid].i;
13084 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13085 val_t REGB0;
13086 val_t tmp;
13087 if (init_table[itpos68]) return;
13088 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13089 fra.me.file = LOCATE_parser___parser_prod;
13090 fra.me.line = 2402;
13091 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___init_astarmethid;
13092 fra.me.has_broke = 0;
13093 fra.me.REG_size = 3;
13094 fra.me.nitni_local_ref_head = NULL;
13095 fra.me.REG[0] = NIT_NULL;
13096 fra.me.REG[1] = NIT_NULL;
13097 fra.me.REG[2] = NIT_NULL;
13098 fra.me.REG[0] = p0;
13099 fra.me.REG[1] = p1;
13100 /* parser/parser_prod.nit:2402 */
13101 fra.me.REG[2] = fra.me.REG[0];
13102 /* parser/parser_prod.nit:2406 */
13103 CALL_parser___parser_prod___AStarMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13104 /* parser/parser_prod.nit:2407 */
13105 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13106 if (UNTAG_Bool(REGB0)) {
13107 } else {
13108 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2407);
13109 }
13110 ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[2]) = fra.me.REG[1];
13111 /* parser/parser_prod.nit:2408 */
13112 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13113 if (UNTAG_Bool(REGB0)) {
13114 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2408);
13115 }
13116 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13117 stack_frame_head = fra.me.prev;
13118 init_table[itpos68] = 1;
13119 return;
13120 }
13121 void parser___parser_prod___AStarMethid___replace_child(val_t p0, val_t p1, val_t p2){
13122 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13123 val_t REGB0;
13124 val_t REGB1;
13125 val_t tmp;
13126 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13127 fra.me.file = LOCATE_parser___parser_prod;
13128 fra.me.line = 2411;
13129 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___replace_child;
13130 fra.me.has_broke = 0;
13131 fra.me.REG_size = 4;
13132 fra.me.nitni_local_ref_head = NULL;
13133 fra.me.REG[0] = NIT_NULL;
13134 fra.me.REG[1] = NIT_NULL;
13135 fra.me.REG[2] = NIT_NULL;
13136 fra.me.REG[3] = NIT_NULL;
13137 fra.me.REG[0] = p0;
13138 fra.me.REG[1] = p1;
13139 fra.me.REG[2] = p2;
13140 /* parser/parser_prod.nit:2413 */
13141 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0])!=NIT_NULL);
13142 if (UNTAG_Bool(REGB0)) {
13143 } else {
13144 nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser___parser_prod, 2413);
13145 }
13146 fra.me.REG[3] = ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]);
13147 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13148 if (UNTAG_Bool(REGB0)) {
13149 } else {
13150 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13151 REGB0 = REGB1;
13152 }
13153 if (UNTAG_Bool(REGB0)) {
13154 /* parser/parser_prod.nit:2414 */
13155 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13156 if (UNTAG_Bool(REGB0)) {
13157 } else {
13158 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13159 if (UNTAG_Bool(REGB1)) {
13160 REGB1 = TAG_Bool(false);
13161 REGB0 = REGB1;
13162 } else {
13163 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13164 REGB0 = REGB1;
13165 }
13166 }
13167 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13168 if (UNTAG_Bool(REGB0)) {
13169 /* parser/parser_prod.nit:2415 */
13170 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13171 if (UNTAG_Bool(REGB0)) {
13172 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2415);
13173 }
13174 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13175 /* parser/parser_prod.nit:2416 */
13176 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TStar, ID_parser___parser_nodes___TStar)) /*cast TStar*/;
13177 if (UNTAG_Bool(REGB0)) {
13178 } else {
13179 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2416);
13180 }
13181 /* parser/parser_prod.nit:2417 */
13182 ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]) = fra.me.REG[2];
13183 } else {
13184 /* parser/parser_prod.nit:2419 */
13185 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2419);
13186 }
13187 /* parser/parser_prod.nit:2421 */
13188 goto label1;
13189 }
13190 label1: while(0);
13191 stack_frame_head = fra.me.prev;
13192 return;
13193 }
13194 void parser___parser_prod___AStarMethid___visit_all(val_t p0, val_t p1){
13195 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13196 val_t REGB0;
13197 val_t tmp;
13198 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13199 fra.me.file = LOCATE_parser___parser_prod;
13200 fra.me.line = 2425;
13201 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___visit_all;
13202 fra.me.has_broke = 0;
13203 fra.me.REG_size = 2;
13204 fra.me.nitni_local_ref_head = NULL;
13205 fra.me.REG[0] = NIT_NULL;
13206 fra.me.REG[1] = NIT_NULL;
13207 fra.me.REG[0] = p0;
13208 fra.me.REG[1] = p1;
13209 /* parser/parser_prod.nit:2427 */
13210 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0])!=NIT_NULL);
13211 if (UNTAG_Bool(REGB0)) {
13212 } else {
13213 nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser___parser_prod, 2427);
13214 }
13215 fra.me.REG[0] = ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]);
13216 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13217 stack_frame_head = fra.me.prev;
13218 return;
13219 }
13220 void parser___parser_prod___ASlashMethid___empty_init(val_t p0, int* init_table){
13221 int itpos69 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashMethid].i;
13222 struct {struct stack_frame_t me;} fra;
13223 val_t tmp;
13224 if (init_table[itpos69]) return;
13225 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13226 fra.me.file = LOCATE_parser___parser_prod;
13227 fra.me.line = 2431;
13228 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___empty_init;
13229 fra.me.has_broke = 0;
13230 fra.me.REG_size = 1;
13231 fra.me.nitni_local_ref_head = NULL;
13232 fra.me.REG[0] = NIT_NULL;
13233 fra.me.REG[0] = p0;
13234 stack_frame_head = fra.me.prev;
13235 init_table[itpos69] = 1;
13236 return;
13237 }
13238 void parser___parser_prod___ASlashMethid___init_aslashmethid(val_t p0, val_t p1, int* init_table){
13239 int itpos70 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashMethid].i;
13240 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13241 val_t REGB0;
13242 val_t tmp;
13243 if (init_table[itpos70]) return;
13244 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13245 fra.me.file = LOCATE_parser___parser_prod;
13246 fra.me.line = 2433;
13247 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___init_aslashmethid;
13248 fra.me.has_broke = 0;
13249 fra.me.REG_size = 3;
13250 fra.me.nitni_local_ref_head = NULL;
13251 fra.me.REG[0] = NIT_NULL;
13252 fra.me.REG[1] = NIT_NULL;
13253 fra.me.REG[2] = NIT_NULL;
13254 fra.me.REG[0] = p0;
13255 fra.me.REG[1] = p1;
13256 /* parser/parser_prod.nit:2433 */
13257 fra.me.REG[2] = fra.me.REG[0];
13258 /* parser/parser_prod.nit:2437 */
13259 CALL_parser___parser_prod___ASlashMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13260 /* parser/parser_prod.nit:2438 */
13261 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13262 if (UNTAG_Bool(REGB0)) {
13263 } else {
13264 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2438);
13265 }
13266 ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[2]) = fra.me.REG[1];
13267 /* parser/parser_prod.nit:2439 */
13268 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13269 if (UNTAG_Bool(REGB0)) {
13270 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2439);
13271 }
13272 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13273 stack_frame_head = fra.me.prev;
13274 init_table[itpos70] = 1;
13275 return;
13276 }
13277 void parser___parser_prod___ASlashMethid___replace_child(val_t p0, val_t p1, val_t p2){
13278 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13279 val_t REGB0;
13280 val_t REGB1;
13281 val_t tmp;
13282 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13283 fra.me.file = LOCATE_parser___parser_prod;
13284 fra.me.line = 2442;
13285 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___replace_child;
13286 fra.me.has_broke = 0;
13287 fra.me.REG_size = 4;
13288 fra.me.nitni_local_ref_head = NULL;
13289 fra.me.REG[0] = NIT_NULL;
13290 fra.me.REG[1] = NIT_NULL;
13291 fra.me.REG[2] = NIT_NULL;
13292 fra.me.REG[3] = NIT_NULL;
13293 fra.me.REG[0] = p0;
13294 fra.me.REG[1] = p1;
13295 fra.me.REG[2] = p2;
13296 /* parser/parser_prod.nit:2444 */
13297 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0])!=NIT_NULL);
13298 if (UNTAG_Bool(REGB0)) {
13299 } else {
13300 nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser___parser_prod, 2444);
13301 }
13302 fra.me.REG[3] = ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]);
13303 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13304 if (UNTAG_Bool(REGB0)) {
13305 } else {
13306 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13307 REGB0 = REGB1;
13308 }
13309 if (UNTAG_Bool(REGB0)) {
13310 /* parser/parser_prod.nit:2445 */
13311 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13312 if (UNTAG_Bool(REGB0)) {
13313 } else {
13314 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13315 if (UNTAG_Bool(REGB1)) {
13316 REGB1 = TAG_Bool(false);
13317 REGB0 = REGB1;
13318 } else {
13319 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13320 REGB0 = REGB1;
13321 }
13322 }
13323 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13324 if (UNTAG_Bool(REGB0)) {
13325 /* parser/parser_prod.nit:2446 */
13326 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13327 if (UNTAG_Bool(REGB0)) {
13328 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2446);
13329 }
13330 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13331 /* parser/parser_prod.nit:2447 */
13332 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TSlash, ID_parser___parser_nodes___TSlash)) /*cast TSlash*/;
13333 if (UNTAG_Bool(REGB0)) {
13334 } else {
13335 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2447);
13336 }
13337 /* parser/parser_prod.nit:2448 */
13338 ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]) = fra.me.REG[2];
13339 } else {
13340 /* parser/parser_prod.nit:2450 */
13341 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2450);
13342 }
13343 /* parser/parser_prod.nit:2452 */
13344 goto label1;
13345 }
13346 label1: while(0);
13347 stack_frame_head = fra.me.prev;
13348 return;
13349 }
13350 void parser___parser_prod___ASlashMethid___visit_all(val_t p0, val_t p1){
13351 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13352 val_t REGB0;
13353 val_t tmp;
13354 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13355 fra.me.file = LOCATE_parser___parser_prod;
13356 fra.me.line = 2456;
13357 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___visit_all;
13358 fra.me.has_broke = 0;
13359 fra.me.REG_size = 2;
13360 fra.me.nitni_local_ref_head = NULL;
13361 fra.me.REG[0] = NIT_NULL;
13362 fra.me.REG[1] = NIT_NULL;
13363 fra.me.REG[0] = p0;
13364 fra.me.REG[1] = p1;
13365 /* parser/parser_prod.nit:2458 */
13366 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0])!=NIT_NULL);
13367 if (UNTAG_Bool(REGB0)) {
13368 } else {
13369 nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser___parser_prod, 2458);
13370 }
13371 fra.me.REG[0] = ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]);
13372 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13373 stack_frame_head = fra.me.prev;
13374 return;
13375 }
13376 void parser___parser_prod___APercentMethid___empty_init(val_t p0, int* init_table){
13377 int itpos71 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentMethid].i;
13378 struct {struct stack_frame_t me;} fra;
13379 val_t tmp;
13380 if (init_table[itpos71]) return;
13381 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13382 fra.me.file = LOCATE_parser___parser_prod;
13383 fra.me.line = 2462;
13384 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___empty_init;
13385 fra.me.has_broke = 0;
13386 fra.me.REG_size = 1;
13387 fra.me.nitni_local_ref_head = NULL;
13388 fra.me.REG[0] = NIT_NULL;
13389 fra.me.REG[0] = p0;
13390 stack_frame_head = fra.me.prev;
13391 init_table[itpos71] = 1;
13392 return;
13393 }
13394 void parser___parser_prod___APercentMethid___init_apercentmethid(val_t p0, val_t p1, int* init_table){
13395 int itpos72 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentMethid].i;
13396 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13397 val_t REGB0;
13398 val_t tmp;
13399 if (init_table[itpos72]) return;
13400 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13401 fra.me.file = LOCATE_parser___parser_prod;
13402 fra.me.line = 2464;
13403 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___init_apercentmethid;
13404 fra.me.has_broke = 0;
13405 fra.me.REG_size = 3;
13406 fra.me.nitni_local_ref_head = NULL;
13407 fra.me.REG[0] = NIT_NULL;
13408 fra.me.REG[1] = NIT_NULL;
13409 fra.me.REG[2] = NIT_NULL;
13410 fra.me.REG[0] = p0;
13411 fra.me.REG[1] = p1;
13412 /* parser/parser_prod.nit:2464 */
13413 fra.me.REG[2] = fra.me.REG[0];
13414 /* parser/parser_prod.nit:2468 */
13415 CALL_parser___parser_prod___APercentMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13416 /* parser/parser_prod.nit:2469 */
13417 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13418 if (UNTAG_Bool(REGB0)) {
13419 } else {
13420 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2469);
13421 }
13422 ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[2]) = fra.me.REG[1];
13423 /* parser/parser_prod.nit:2470 */
13424 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13425 if (UNTAG_Bool(REGB0)) {
13426 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2470);
13427 }
13428 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13429 stack_frame_head = fra.me.prev;
13430 init_table[itpos72] = 1;
13431 return;
13432 }
13433 void parser___parser_prod___APercentMethid___replace_child(val_t p0, val_t p1, val_t p2){
13434 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13435 val_t REGB0;
13436 val_t REGB1;
13437 val_t tmp;
13438 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13439 fra.me.file = LOCATE_parser___parser_prod;
13440 fra.me.line = 2473;
13441 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___replace_child;
13442 fra.me.has_broke = 0;
13443 fra.me.REG_size = 4;
13444 fra.me.nitni_local_ref_head = NULL;
13445 fra.me.REG[0] = NIT_NULL;
13446 fra.me.REG[1] = NIT_NULL;
13447 fra.me.REG[2] = NIT_NULL;
13448 fra.me.REG[3] = NIT_NULL;
13449 fra.me.REG[0] = p0;
13450 fra.me.REG[1] = p1;
13451 fra.me.REG[2] = p2;
13452 /* parser/parser_prod.nit:2475 */
13453 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0])!=NIT_NULL);
13454 if (UNTAG_Bool(REGB0)) {
13455 } else {
13456 nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser___parser_prod, 2475);
13457 }
13458 fra.me.REG[3] = ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]);
13459 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13460 if (UNTAG_Bool(REGB0)) {
13461 } else {
13462 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13463 REGB0 = REGB1;
13464 }
13465 if (UNTAG_Bool(REGB0)) {
13466 /* parser/parser_prod.nit:2476 */
13467 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13468 if (UNTAG_Bool(REGB0)) {
13469 } else {
13470 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13471 if (UNTAG_Bool(REGB1)) {
13472 REGB1 = TAG_Bool(false);
13473 REGB0 = REGB1;
13474 } else {
13475 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13476 REGB0 = REGB1;
13477 }
13478 }
13479 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13480 if (UNTAG_Bool(REGB0)) {
13481 /* parser/parser_prod.nit:2477 */
13482 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13483 if (UNTAG_Bool(REGB0)) {
13484 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2477);
13485 }
13486 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13487 /* parser/parser_prod.nit:2478 */
13488 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TPercent, ID_parser___parser_nodes___TPercent)) /*cast TPercent*/;
13489 if (UNTAG_Bool(REGB0)) {
13490 } else {
13491 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2478);
13492 }
13493 /* parser/parser_prod.nit:2479 */
13494 ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]) = fra.me.REG[2];
13495 } else {
13496 /* parser/parser_prod.nit:2481 */
13497 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2481);
13498 }
13499 /* parser/parser_prod.nit:2483 */
13500 goto label1;
13501 }
13502 label1: while(0);
13503 stack_frame_head = fra.me.prev;
13504 return;
13505 }
13506 void parser___parser_prod___APercentMethid___visit_all(val_t p0, val_t p1){
13507 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13508 val_t REGB0;
13509 val_t tmp;
13510 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13511 fra.me.file = LOCATE_parser___parser_prod;
13512 fra.me.line = 2487;
13513 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___visit_all;
13514 fra.me.has_broke = 0;
13515 fra.me.REG_size = 2;
13516 fra.me.nitni_local_ref_head = NULL;
13517 fra.me.REG[0] = NIT_NULL;
13518 fra.me.REG[1] = NIT_NULL;
13519 fra.me.REG[0] = p0;
13520 fra.me.REG[1] = p1;
13521 /* parser/parser_prod.nit:2489 */
13522 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0])!=NIT_NULL);
13523 if (UNTAG_Bool(REGB0)) {
13524 } else {
13525 nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser___parser_prod, 2489);
13526 }
13527 fra.me.REG[0] = ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]);
13528 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13529 stack_frame_head = fra.me.prev;
13530 return;
13531 }
13532 void parser___parser_prod___AEqMethid___empty_init(val_t p0, int* init_table){
13533 int itpos73 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqMethid].i;
13534 struct {struct stack_frame_t me;} fra;
13535 val_t tmp;
13536 if (init_table[itpos73]) return;
13537 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13538 fra.me.file = LOCATE_parser___parser_prod;
13539 fra.me.line = 2493;
13540 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___empty_init;
13541 fra.me.has_broke = 0;
13542 fra.me.REG_size = 1;
13543 fra.me.nitni_local_ref_head = NULL;
13544 fra.me.REG[0] = NIT_NULL;
13545 fra.me.REG[0] = p0;
13546 stack_frame_head = fra.me.prev;
13547 init_table[itpos73] = 1;
13548 return;
13549 }
13550 void parser___parser_prod___AEqMethid___init_aeqmethid(val_t p0, val_t p1, int* init_table){
13551 int itpos74 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqMethid].i;
13552 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13553 val_t REGB0;
13554 val_t tmp;
13555 if (init_table[itpos74]) return;
13556 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13557 fra.me.file = LOCATE_parser___parser_prod;
13558 fra.me.line = 2495;
13559 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___init_aeqmethid;
13560 fra.me.has_broke = 0;
13561 fra.me.REG_size = 3;
13562 fra.me.nitni_local_ref_head = NULL;
13563 fra.me.REG[0] = NIT_NULL;
13564 fra.me.REG[1] = NIT_NULL;
13565 fra.me.REG[2] = NIT_NULL;
13566 fra.me.REG[0] = p0;
13567 fra.me.REG[1] = p1;
13568 /* parser/parser_prod.nit:2495 */
13569 fra.me.REG[2] = fra.me.REG[0];
13570 /* parser/parser_prod.nit:2499 */
13571 CALL_parser___parser_prod___AEqMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13572 /* parser/parser_prod.nit:2500 */
13573 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13574 if (UNTAG_Bool(REGB0)) {
13575 } else {
13576 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2500);
13577 }
13578 ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[2]) = fra.me.REG[1];
13579 /* parser/parser_prod.nit:2501 */
13580 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13581 if (UNTAG_Bool(REGB0)) {
13582 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2501);
13583 }
13584 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13585 stack_frame_head = fra.me.prev;
13586 init_table[itpos74] = 1;
13587 return;
13588 }
13589 void parser___parser_prod___AEqMethid___replace_child(val_t p0, val_t p1, val_t p2){
13590 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13591 val_t REGB0;
13592 val_t REGB1;
13593 val_t tmp;
13594 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13595 fra.me.file = LOCATE_parser___parser_prod;
13596 fra.me.line = 2504;
13597 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___replace_child;
13598 fra.me.has_broke = 0;
13599 fra.me.REG_size = 4;
13600 fra.me.nitni_local_ref_head = NULL;
13601 fra.me.REG[0] = NIT_NULL;
13602 fra.me.REG[1] = NIT_NULL;
13603 fra.me.REG[2] = NIT_NULL;
13604 fra.me.REG[3] = NIT_NULL;
13605 fra.me.REG[0] = p0;
13606 fra.me.REG[1] = p1;
13607 fra.me.REG[2] = p2;
13608 /* parser/parser_prod.nit:2506 */
13609 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0])!=NIT_NULL);
13610 if (UNTAG_Bool(REGB0)) {
13611 } else {
13612 nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser___parser_prod, 2506);
13613 }
13614 fra.me.REG[3] = ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]);
13615 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13616 if (UNTAG_Bool(REGB0)) {
13617 } else {
13618 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13619 REGB0 = REGB1;
13620 }
13621 if (UNTAG_Bool(REGB0)) {
13622 /* parser/parser_prod.nit:2507 */
13623 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13624 if (UNTAG_Bool(REGB0)) {
13625 } else {
13626 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13627 if (UNTAG_Bool(REGB1)) {
13628 REGB1 = TAG_Bool(false);
13629 REGB0 = REGB1;
13630 } else {
13631 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13632 REGB0 = REGB1;
13633 }
13634 }
13635 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13636 if (UNTAG_Bool(REGB0)) {
13637 /* parser/parser_prod.nit:2508 */
13638 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13639 if (UNTAG_Bool(REGB0)) {
13640 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2508);
13641 }
13642 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13643 /* parser/parser_prod.nit:2509 */
13644 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TEq, ID_parser___parser_nodes___TEq)) /*cast TEq*/;
13645 if (UNTAG_Bool(REGB0)) {
13646 } else {
13647 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2509);
13648 }
13649 /* parser/parser_prod.nit:2510 */
13650 ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]) = fra.me.REG[2];
13651 } else {
13652 /* parser/parser_prod.nit:2512 */
13653 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2512);
13654 }
13655 /* parser/parser_prod.nit:2514 */
13656 goto label1;
13657 }
13658 label1: while(0);
13659 stack_frame_head = fra.me.prev;
13660 return;
13661 }
13662 void parser___parser_prod___AEqMethid___visit_all(val_t p0, val_t p1){
13663 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13664 val_t REGB0;
13665 val_t tmp;
13666 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13667 fra.me.file = LOCATE_parser___parser_prod;
13668 fra.me.line = 2518;
13669 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___visit_all;
13670 fra.me.has_broke = 0;
13671 fra.me.REG_size = 2;
13672 fra.me.nitni_local_ref_head = NULL;
13673 fra.me.REG[0] = NIT_NULL;
13674 fra.me.REG[1] = NIT_NULL;
13675 fra.me.REG[0] = p0;
13676 fra.me.REG[1] = p1;
13677 /* parser/parser_prod.nit:2520 */
13678 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0])!=NIT_NULL);
13679 if (UNTAG_Bool(REGB0)) {
13680 } else {
13681 nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser___parser_prod, 2520);
13682 }
13683 fra.me.REG[0] = ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]);
13684 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13685 stack_frame_head = fra.me.prev;
13686 return;
13687 }
13688 void parser___parser_prod___ANeMethid___empty_init(val_t p0, int* init_table){
13689 int itpos75 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeMethid].i;
13690 struct {struct stack_frame_t me;} fra;
13691 val_t tmp;
13692 if (init_table[itpos75]) return;
13693 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13694 fra.me.file = LOCATE_parser___parser_prod;
13695 fra.me.line = 2524;
13696 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___empty_init;
13697 fra.me.has_broke = 0;
13698 fra.me.REG_size = 1;
13699 fra.me.nitni_local_ref_head = NULL;
13700 fra.me.REG[0] = NIT_NULL;
13701 fra.me.REG[0] = p0;
13702 stack_frame_head = fra.me.prev;
13703 init_table[itpos75] = 1;
13704 return;
13705 }
13706 void parser___parser_prod___ANeMethid___init_anemethid(val_t p0, val_t p1, int* init_table){
13707 int itpos76 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeMethid].i;
13708 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13709 val_t REGB0;
13710 val_t tmp;
13711 if (init_table[itpos76]) return;
13712 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13713 fra.me.file = LOCATE_parser___parser_prod;
13714 fra.me.line = 2526;
13715 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___init_anemethid;
13716 fra.me.has_broke = 0;
13717 fra.me.REG_size = 3;
13718 fra.me.nitni_local_ref_head = NULL;
13719 fra.me.REG[0] = NIT_NULL;
13720 fra.me.REG[1] = NIT_NULL;
13721 fra.me.REG[2] = NIT_NULL;
13722 fra.me.REG[0] = p0;
13723 fra.me.REG[1] = p1;
13724 /* parser/parser_prod.nit:2526 */
13725 fra.me.REG[2] = fra.me.REG[0];
13726 /* parser/parser_prod.nit:2530 */
13727 CALL_parser___parser_prod___ANeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13728 /* parser/parser_prod.nit:2531 */
13729 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13730 if (UNTAG_Bool(REGB0)) {
13731 } else {
13732 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2531);
13733 }
13734 ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[2]) = fra.me.REG[1];
13735 /* parser/parser_prod.nit:2532 */
13736 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13737 if (UNTAG_Bool(REGB0)) {
13738 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2532);
13739 }
13740 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13741 stack_frame_head = fra.me.prev;
13742 init_table[itpos76] = 1;
13743 return;
13744 }
13745 void parser___parser_prod___ANeMethid___replace_child(val_t p0, val_t p1, val_t p2){
13746 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13747 val_t REGB0;
13748 val_t REGB1;
13749 val_t tmp;
13750 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13751 fra.me.file = LOCATE_parser___parser_prod;
13752 fra.me.line = 2535;
13753 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___replace_child;
13754 fra.me.has_broke = 0;
13755 fra.me.REG_size = 4;
13756 fra.me.nitni_local_ref_head = NULL;
13757 fra.me.REG[0] = NIT_NULL;
13758 fra.me.REG[1] = NIT_NULL;
13759 fra.me.REG[2] = NIT_NULL;
13760 fra.me.REG[3] = NIT_NULL;
13761 fra.me.REG[0] = p0;
13762 fra.me.REG[1] = p1;
13763 fra.me.REG[2] = p2;
13764 /* parser/parser_prod.nit:2537 */
13765 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0])!=NIT_NULL);
13766 if (UNTAG_Bool(REGB0)) {
13767 } else {
13768 nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser___parser_prod, 2537);
13769 }
13770 fra.me.REG[3] = ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0]);
13771 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13772 if (UNTAG_Bool(REGB0)) {
13773 } else {
13774 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13775 REGB0 = REGB1;
13776 }
13777 if (UNTAG_Bool(REGB0)) {
13778 /* parser/parser_prod.nit:2538 */
13779 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13780 if (UNTAG_Bool(REGB0)) {
13781 } else {
13782 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13783 if (UNTAG_Bool(REGB1)) {
13784 REGB1 = TAG_Bool(false);
13785 REGB0 = REGB1;
13786 } else {
13787 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13788 REGB0 = REGB1;
13789 }
13790 }
13791 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13792 if (UNTAG_Bool(REGB0)) {
13793 /* parser/parser_prod.nit:2539 */
13794 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13795 if (UNTAG_Bool(REGB0)) {
13796 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2539);
13797 }
13798 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13799 /* parser/parser_prod.nit:2540 */
13800 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TNe, ID_parser___parser_nodes___TNe)) /*cast TNe*/;
13801 if (UNTAG_Bool(REGB0)) {
13802 } else {
13803 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2540);
13804 }
13805 /* parser/parser_prod.nit:2541 */
13806 ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0]) = fra.me.REG[2];
13807 } else {
13808 /* parser/parser_prod.nit:2543 */
13809 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2543);
13810 }
13811 /* parser/parser_prod.nit:2545 */
13812 goto label1;
13813 }
13814 label1: while(0);
13815 stack_frame_head = fra.me.prev;
13816 return;
13817 }
13818 void parser___parser_prod___ANeMethid___visit_all(val_t p0, val_t p1){
13819 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13820 val_t REGB0;
13821 val_t tmp;
13822 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13823 fra.me.file = LOCATE_parser___parser_prod;
13824 fra.me.line = 2549;
13825 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___visit_all;
13826 fra.me.has_broke = 0;
13827 fra.me.REG_size = 2;
13828 fra.me.nitni_local_ref_head = NULL;
13829 fra.me.REG[0] = NIT_NULL;
13830 fra.me.REG[1] = NIT_NULL;
13831 fra.me.REG[0] = p0;
13832 fra.me.REG[1] = p1;
13833 /* parser/parser_prod.nit:2551 */
13834 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0])!=NIT_NULL);
13835 if (UNTAG_Bool(REGB0)) {
13836 } else {
13837 nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser___parser_prod, 2551);
13838 }
13839 fra.me.REG[0] = ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0]);
13840 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13841 stack_frame_head = fra.me.prev;
13842 return;
13843 }
13844 void parser___parser_prod___ALeMethid___empty_init(val_t p0, int* init_table){
13845 int itpos77 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeMethid].i;
13846 struct {struct stack_frame_t me;} fra;
13847 val_t tmp;
13848 if (init_table[itpos77]) return;
13849 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13850 fra.me.file = LOCATE_parser___parser_prod;
13851 fra.me.line = 2555;
13852 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___empty_init;
13853 fra.me.has_broke = 0;
13854 fra.me.REG_size = 1;
13855 fra.me.nitni_local_ref_head = NULL;
13856 fra.me.REG[0] = NIT_NULL;
13857 fra.me.REG[0] = p0;
13858 stack_frame_head = fra.me.prev;
13859 init_table[itpos77] = 1;
13860 return;
13861 }
13862 void parser___parser_prod___ALeMethid___init_alemethid(val_t p0, val_t p1, int* init_table){
13863 int itpos78 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeMethid].i;
13864 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13865 val_t REGB0;
13866 val_t tmp;
13867 if (init_table[itpos78]) return;
13868 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13869 fra.me.file = LOCATE_parser___parser_prod;
13870 fra.me.line = 2557;
13871 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___init_alemethid;
13872 fra.me.has_broke = 0;
13873 fra.me.REG_size = 3;
13874 fra.me.nitni_local_ref_head = NULL;
13875 fra.me.REG[0] = NIT_NULL;
13876 fra.me.REG[1] = NIT_NULL;
13877 fra.me.REG[2] = NIT_NULL;
13878 fra.me.REG[0] = p0;
13879 fra.me.REG[1] = p1;
13880 /* parser/parser_prod.nit:2557 */
13881 fra.me.REG[2] = fra.me.REG[0];
13882 /* parser/parser_prod.nit:2561 */
13883 CALL_parser___parser_prod___ALeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13884 /* parser/parser_prod.nit:2562 */
13885 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13886 if (UNTAG_Bool(REGB0)) {
13887 } else {
13888 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2562);
13889 }
13890 ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[2]) = fra.me.REG[1];
13891 /* parser/parser_prod.nit:2563 */
13892 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13893 if (UNTAG_Bool(REGB0)) {
13894 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2563);
13895 }
13896 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13897 stack_frame_head = fra.me.prev;
13898 init_table[itpos78] = 1;
13899 return;
13900 }
13901 void parser___parser_prod___ALeMethid___replace_child(val_t p0, val_t p1, val_t p2){
13902 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13903 val_t REGB0;
13904 val_t REGB1;
13905 val_t tmp;
13906 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13907 fra.me.file = LOCATE_parser___parser_prod;
13908 fra.me.line = 2566;
13909 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___replace_child;
13910 fra.me.has_broke = 0;
13911 fra.me.REG_size = 4;
13912 fra.me.nitni_local_ref_head = NULL;
13913 fra.me.REG[0] = NIT_NULL;
13914 fra.me.REG[1] = NIT_NULL;
13915 fra.me.REG[2] = NIT_NULL;
13916 fra.me.REG[3] = NIT_NULL;
13917 fra.me.REG[0] = p0;
13918 fra.me.REG[1] = p1;
13919 fra.me.REG[2] = p2;
13920 /* parser/parser_prod.nit:2568 */
13921 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0])!=NIT_NULL);
13922 if (UNTAG_Bool(REGB0)) {
13923 } else {
13924 nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser___parser_prod, 2568);
13925 }
13926 fra.me.REG[3] = ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0]);
13927 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13928 if (UNTAG_Bool(REGB0)) {
13929 } else {
13930 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13931 REGB0 = REGB1;
13932 }
13933 if (UNTAG_Bool(REGB0)) {
13934 /* parser/parser_prod.nit:2569 */
13935 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13936 if (UNTAG_Bool(REGB0)) {
13937 } else {
13938 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13939 if (UNTAG_Bool(REGB1)) {
13940 REGB1 = TAG_Bool(false);
13941 REGB0 = REGB1;
13942 } else {
13943 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13944 REGB0 = REGB1;
13945 }
13946 }
13947 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13948 if (UNTAG_Bool(REGB0)) {
13949 /* parser/parser_prod.nit:2570 */
13950 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13951 if (UNTAG_Bool(REGB0)) {
13952 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2570);
13953 }
13954 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13955 /* parser/parser_prod.nit:2571 */
13956 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TLe, ID_parser___parser_nodes___TLe)) /*cast TLe*/;
13957 if (UNTAG_Bool(REGB0)) {
13958 } else {
13959 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2571);
13960 }
13961 /* parser/parser_prod.nit:2572 */
13962 ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0]) = fra.me.REG[2];
13963 } else {
13964 /* parser/parser_prod.nit:2574 */
13965 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2574);
13966 }
13967 /* parser/parser_prod.nit:2576 */
13968 goto label1;
13969 }
13970 label1: while(0);
13971 stack_frame_head = fra.me.prev;
13972 return;
13973 }
13974 void parser___parser_prod___ALeMethid___visit_all(val_t p0, val_t p1){
13975 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13976 val_t REGB0;
13977 val_t tmp;
13978 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13979 fra.me.file = LOCATE_parser___parser_prod;
13980 fra.me.line = 2580;
13981 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___visit_all;
13982 fra.me.has_broke = 0;
13983 fra.me.REG_size = 2;
13984 fra.me.nitni_local_ref_head = NULL;
13985 fra.me.REG[0] = NIT_NULL;
13986 fra.me.REG[1] = NIT_NULL;
13987 fra.me.REG[0] = p0;
13988 fra.me.REG[1] = p1;
13989 /* parser/parser_prod.nit:2582 */
13990 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0])!=NIT_NULL);
13991 if (UNTAG_Bool(REGB0)) {
13992 } else {
13993 nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser___parser_prod, 2582);
13994 }
13995 fra.me.REG[0] = ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0]);
13996 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13997 stack_frame_head = fra.me.prev;
13998 return;
13999 }
14000 void parser___parser_prod___AGeMethid___empty_init(val_t p0, int* init_table){
14001 int itpos79 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeMethid].i;
14002 struct {struct stack_frame_t me;} fra;
14003 val_t tmp;
14004 if (init_table[itpos79]) return;
14005 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14006 fra.me.file = LOCATE_parser___parser_prod;
14007 fra.me.line = 2586;
14008 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___empty_init;
14009 fra.me.has_broke = 0;
14010 fra.me.REG_size = 1;
14011 fra.me.nitni_local_ref_head = NULL;
14012 fra.me.REG[0] = NIT_NULL;
14013 fra.me.REG[0] = p0;
14014 stack_frame_head = fra.me.prev;
14015 init_table[itpos79] = 1;
14016 return;
14017 }
14018 void parser___parser_prod___AGeMethid___init_agemethid(val_t p0, val_t p1, int* init_table){
14019 int itpos80 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeMethid].i;
14020 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14021 val_t REGB0;
14022 val_t tmp;
14023 if (init_table[itpos80]) return;
14024 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14025 fra.me.file = LOCATE_parser___parser_prod;
14026 fra.me.line = 2588;
14027 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___init_agemethid;
14028 fra.me.has_broke = 0;
14029 fra.me.REG_size = 3;
14030 fra.me.nitni_local_ref_head = NULL;
14031 fra.me.REG[0] = NIT_NULL;
14032 fra.me.REG[1] = NIT_NULL;
14033 fra.me.REG[2] = NIT_NULL;
14034 fra.me.REG[0] = p0;
14035 fra.me.REG[1] = p1;
14036 /* parser/parser_prod.nit:2588 */
14037 fra.me.REG[2] = fra.me.REG[0];
14038 /* parser/parser_prod.nit:2592 */
14039 CALL_parser___parser_prod___AGeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14040 /* parser/parser_prod.nit:2593 */
14041 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14042 if (UNTAG_Bool(REGB0)) {
14043 } else {
14044 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2593);
14045 }
14046 ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[2]) = fra.me.REG[1];
14047 /* parser/parser_prod.nit:2594 */
14048 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14049 if (UNTAG_Bool(REGB0)) {
14050 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2594);
14051 }
14052 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14053 stack_frame_head = fra.me.prev;
14054 init_table[itpos80] = 1;
14055 return;
14056 }
14057 void parser___parser_prod___AGeMethid___replace_child(val_t p0, val_t p1, val_t p2){
14058 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14059 val_t REGB0;
14060 val_t REGB1;
14061 val_t tmp;
14062 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14063 fra.me.file = LOCATE_parser___parser_prod;
14064 fra.me.line = 2597;
14065 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___replace_child;
14066 fra.me.has_broke = 0;
14067 fra.me.REG_size = 4;
14068 fra.me.nitni_local_ref_head = NULL;
14069 fra.me.REG[0] = NIT_NULL;
14070 fra.me.REG[1] = NIT_NULL;
14071 fra.me.REG[2] = NIT_NULL;
14072 fra.me.REG[3] = NIT_NULL;
14073 fra.me.REG[0] = p0;
14074 fra.me.REG[1] = p1;
14075 fra.me.REG[2] = p2;
14076 /* parser/parser_prod.nit:2599 */
14077 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0])!=NIT_NULL);
14078 if (UNTAG_Bool(REGB0)) {
14079 } else {
14080 nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser___parser_prod, 2599);
14081 }
14082 fra.me.REG[3] = ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0]);
14083 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14084 if (UNTAG_Bool(REGB0)) {
14085 } else {
14086 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14087 REGB0 = REGB1;
14088 }
14089 if (UNTAG_Bool(REGB0)) {
14090 /* parser/parser_prod.nit:2600 */
14091 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14092 if (UNTAG_Bool(REGB0)) {
14093 } else {
14094 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14095 if (UNTAG_Bool(REGB1)) {
14096 REGB1 = TAG_Bool(false);
14097 REGB0 = REGB1;
14098 } else {
14099 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14100 REGB0 = REGB1;
14101 }
14102 }
14103 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14104 if (UNTAG_Bool(REGB0)) {
14105 /* parser/parser_prod.nit:2601 */
14106 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14107 if (UNTAG_Bool(REGB0)) {
14108 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2601);
14109 }
14110 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14111 /* parser/parser_prod.nit:2602 */
14112 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TGe, ID_parser___parser_nodes___TGe)) /*cast TGe*/;
14113 if (UNTAG_Bool(REGB0)) {
14114 } else {
14115 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2602);
14116 }
14117 /* parser/parser_prod.nit:2603 */
14118 ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0]) = fra.me.REG[2];
14119 } else {
14120 /* parser/parser_prod.nit:2605 */
14121 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2605);
14122 }
14123 /* parser/parser_prod.nit:2607 */
14124 goto label1;
14125 }
14126 label1: while(0);
14127 stack_frame_head = fra.me.prev;
14128 return;
14129 }
14130 void parser___parser_prod___AGeMethid___visit_all(val_t p0, val_t p1){
14131 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14132 val_t REGB0;
14133 val_t tmp;
14134 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14135 fra.me.file = LOCATE_parser___parser_prod;
14136 fra.me.line = 2611;
14137 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___visit_all;
14138 fra.me.has_broke = 0;
14139 fra.me.REG_size = 2;
14140 fra.me.nitni_local_ref_head = NULL;
14141 fra.me.REG[0] = NIT_NULL;
14142 fra.me.REG[1] = NIT_NULL;
14143 fra.me.REG[0] = p0;
14144 fra.me.REG[1] = p1;
14145 /* parser/parser_prod.nit:2613 */
14146 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0])!=NIT_NULL);
14147 if (UNTAG_Bool(REGB0)) {
14148 } else {
14149 nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser___parser_prod, 2613);
14150 }
14151 fra.me.REG[0] = ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0]);
14152 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14153 stack_frame_head = fra.me.prev;
14154 return;
14155 }
14156 void parser___parser_prod___ALtMethid___empty_init(val_t p0, int* init_table){
14157 int itpos81 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtMethid].i;
14158 struct {struct stack_frame_t me;} fra;
14159 val_t tmp;
14160 if (init_table[itpos81]) return;
14161 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14162 fra.me.file = LOCATE_parser___parser_prod;
14163 fra.me.line = 2617;
14164 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___empty_init;
14165 fra.me.has_broke = 0;
14166 fra.me.REG_size = 1;
14167 fra.me.nitni_local_ref_head = NULL;
14168 fra.me.REG[0] = NIT_NULL;
14169 fra.me.REG[0] = p0;
14170 stack_frame_head = fra.me.prev;
14171 init_table[itpos81] = 1;
14172 return;
14173 }
14174 void parser___parser_prod___ALtMethid___init_altmethid(val_t p0, val_t p1, int* init_table){
14175 int itpos82 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtMethid].i;
14176 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14177 val_t REGB0;
14178 val_t tmp;
14179 if (init_table[itpos82]) return;
14180 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14181 fra.me.file = LOCATE_parser___parser_prod;
14182 fra.me.line = 2619;
14183 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___init_altmethid;
14184 fra.me.has_broke = 0;
14185 fra.me.REG_size = 3;
14186 fra.me.nitni_local_ref_head = NULL;
14187 fra.me.REG[0] = NIT_NULL;
14188 fra.me.REG[1] = NIT_NULL;
14189 fra.me.REG[2] = NIT_NULL;
14190 fra.me.REG[0] = p0;
14191 fra.me.REG[1] = p1;
14192 /* parser/parser_prod.nit:2619 */
14193 fra.me.REG[2] = fra.me.REG[0];
14194 /* parser/parser_prod.nit:2623 */
14195 CALL_parser___parser_prod___ALtMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14196 /* parser/parser_prod.nit:2624 */
14197 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14198 if (UNTAG_Bool(REGB0)) {
14199 } else {
14200 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2624);
14201 }
14202 ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[2]) = fra.me.REG[1];
14203 /* parser/parser_prod.nit:2625 */
14204 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14205 if (UNTAG_Bool(REGB0)) {
14206 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2625);
14207 }
14208 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14209 stack_frame_head = fra.me.prev;
14210 init_table[itpos82] = 1;
14211 return;
14212 }
14213 void parser___parser_prod___ALtMethid___replace_child(val_t p0, val_t p1, val_t p2){
14214 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14215 val_t REGB0;
14216 val_t REGB1;
14217 val_t tmp;
14218 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14219 fra.me.file = LOCATE_parser___parser_prod;
14220 fra.me.line = 2628;
14221 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___replace_child;
14222 fra.me.has_broke = 0;
14223 fra.me.REG_size = 4;
14224 fra.me.nitni_local_ref_head = NULL;
14225 fra.me.REG[0] = NIT_NULL;
14226 fra.me.REG[1] = NIT_NULL;
14227 fra.me.REG[2] = NIT_NULL;
14228 fra.me.REG[3] = NIT_NULL;
14229 fra.me.REG[0] = p0;
14230 fra.me.REG[1] = p1;
14231 fra.me.REG[2] = p2;
14232 /* parser/parser_prod.nit:2630 */
14233 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0])!=NIT_NULL);
14234 if (UNTAG_Bool(REGB0)) {
14235 } else {
14236 nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser___parser_prod, 2630);
14237 }
14238 fra.me.REG[3] = ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0]);
14239 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14240 if (UNTAG_Bool(REGB0)) {
14241 } else {
14242 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14243 REGB0 = REGB1;
14244 }
14245 if (UNTAG_Bool(REGB0)) {
14246 /* parser/parser_prod.nit:2631 */
14247 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14248 if (UNTAG_Bool(REGB0)) {
14249 } else {
14250 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14251 if (UNTAG_Bool(REGB1)) {
14252 REGB1 = TAG_Bool(false);
14253 REGB0 = REGB1;
14254 } else {
14255 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14256 REGB0 = REGB1;
14257 }
14258 }
14259 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14260 if (UNTAG_Bool(REGB0)) {
14261 /* parser/parser_prod.nit:2632 */
14262 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14263 if (UNTAG_Bool(REGB0)) {
14264 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2632);
14265 }
14266 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14267 /* parser/parser_prod.nit:2633 */
14268 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TLt, ID_parser___parser_nodes___TLt)) /*cast TLt*/;
14269 if (UNTAG_Bool(REGB0)) {
14270 } else {
14271 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2633);
14272 }
14273 /* parser/parser_prod.nit:2634 */
14274 ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0]) = fra.me.REG[2];
14275 } else {
14276 /* parser/parser_prod.nit:2636 */
14277 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2636);
14278 }
14279 /* parser/parser_prod.nit:2638 */
14280 goto label1;
14281 }
14282 label1: while(0);
14283 stack_frame_head = fra.me.prev;
14284 return;
14285 }
14286 void parser___parser_prod___ALtMethid___visit_all(val_t p0, val_t p1){
14287 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14288 val_t REGB0;
14289 val_t tmp;
14290 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14291 fra.me.file = LOCATE_parser___parser_prod;
14292 fra.me.line = 2642;
14293 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___visit_all;
14294 fra.me.has_broke = 0;
14295 fra.me.REG_size = 2;
14296 fra.me.nitni_local_ref_head = NULL;
14297 fra.me.REG[0] = NIT_NULL;
14298 fra.me.REG[1] = NIT_NULL;
14299 fra.me.REG[0] = p0;
14300 fra.me.REG[1] = p1;
14301 /* parser/parser_prod.nit:2644 */
14302 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0])!=NIT_NULL);
14303 if (UNTAG_Bool(REGB0)) {
14304 } else {
14305 nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser___parser_prod, 2644);
14306 }
14307 fra.me.REG[0] = ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0]);
14308 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14309 stack_frame_head = fra.me.prev;
14310 return;
14311 }
14312 void parser___parser_prod___AGtMethid___empty_init(val_t p0, int* init_table){
14313 int itpos83 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtMethid].i;
14314 struct {struct stack_frame_t me;} fra;
14315 val_t tmp;
14316 if (init_table[itpos83]) return;
14317 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14318 fra.me.file = LOCATE_parser___parser_prod;
14319 fra.me.line = 2648;
14320 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___empty_init;
14321 fra.me.has_broke = 0;
14322 fra.me.REG_size = 1;
14323 fra.me.nitni_local_ref_head = NULL;
14324 fra.me.REG[0] = NIT_NULL;
14325 fra.me.REG[0] = p0;
14326 stack_frame_head = fra.me.prev;
14327 init_table[itpos83] = 1;
14328 return;
14329 }
14330 void parser___parser_prod___AGtMethid___init_agtmethid(val_t p0, val_t p1, int* init_table){
14331 int itpos84 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtMethid].i;
14332 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14333 val_t REGB0;
14334 val_t tmp;
14335 if (init_table[itpos84]) return;
14336 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14337 fra.me.file = LOCATE_parser___parser_prod;
14338 fra.me.line = 2650;
14339 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___init_agtmethid;
14340 fra.me.has_broke = 0;
14341 fra.me.REG_size = 3;
14342 fra.me.nitni_local_ref_head = NULL;
14343 fra.me.REG[0] = NIT_NULL;
14344 fra.me.REG[1] = NIT_NULL;
14345 fra.me.REG[2] = NIT_NULL;
14346 fra.me.REG[0] = p0;
14347 fra.me.REG[1] = p1;
14348 /* parser/parser_prod.nit:2650 */
14349 fra.me.REG[2] = fra.me.REG[0];
14350 /* parser/parser_prod.nit:2654 */
14351 CALL_parser___parser_prod___AGtMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14352 /* parser/parser_prod.nit:2655 */
14353 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14354 if (UNTAG_Bool(REGB0)) {
14355 } else {
14356 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2655);
14357 }
14358 ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[2]) = fra.me.REG[1];
14359 /* parser/parser_prod.nit:2656 */
14360 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14361 if (UNTAG_Bool(REGB0)) {
14362 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2656);
14363 }
14364 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14365 stack_frame_head = fra.me.prev;
14366 init_table[itpos84] = 1;
14367 return;
14368 }
14369 void parser___parser_prod___AGtMethid___replace_child(val_t p0, val_t p1, val_t p2){
14370 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14371 val_t REGB0;
14372 val_t REGB1;
14373 val_t tmp;
14374 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14375 fra.me.file = LOCATE_parser___parser_prod;
14376 fra.me.line = 2659;
14377 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___replace_child;
14378 fra.me.has_broke = 0;
14379 fra.me.REG_size = 4;
14380 fra.me.nitni_local_ref_head = NULL;
14381 fra.me.REG[0] = NIT_NULL;
14382 fra.me.REG[1] = NIT_NULL;
14383 fra.me.REG[2] = NIT_NULL;
14384 fra.me.REG[3] = NIT_NULL;
14385 fra.me.REG[0] = p0;
14386 fra.me.REG[1] = p1;
14387 fra.me.REG[2] = p2;
14388 /* parser/parser_prod.nit:2661 */
14389 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0])!=NIT_NULL);
14390 if (UNTAG_Bool(REGB0)) {
14391 } else {
14392 nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser___parser_prod, 2661);
14393 }
14394 fra.me.REG[3] = ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0]);
14395 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14396 if (UNTAG_Bool(REGB0)) {
14397 } else {
14398 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14399 REGB0 = REGB1;
14400 }
14401 if (UNTAG_Bool(REGB0)) {
14402 /* parser/parser_prod.nit:2662 */
14403 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14404 if (UNTAG_Bool(REGB0)) {
14405 } else {
14406 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14407 if (UNTAG_Bool(REGB1)) {
14408 REGB1 = TAG_Bool(false);
14409 REGB0 = REGB1;
14410 } else {
14411 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14412 REGB0 = REGB1;
14413 }
14414 }
14415 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14416 if (UNTAG_Bool(REGB0)) {
14417 /* parser/parser_prod.nit:2663 */
14418 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14419 if (UNTAG_Bool(REGB0)) {
14420 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2663);
14421 }
14422 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14423 /* parser/parser_prod.nit:2664 */
14424 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TGt, ID_parser___parser_nodes___TGt)) /*cast TGt*/;
14425 if (UNTAG_Bool(REGB0)) {
14426 } else {
14427 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2664);
14428 }
14429 /* parser/parser_prod.nit:2665 */
14430 ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0]) = fra.me.REG[2];
14431 } else {
14432 /* parser/parser_prod.nit:2667 */
14433 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2667);
14434 }
14435 /* parser/parser_prod.nit:2669 */
14436 goto label1;
14437 }
14438 label1: while(0);
14439 stack_frame_head = fra.me.prev;
14440 return;
14441 }
14442 void parser___parser_prod___AGtMethid___visit_all(val_t p0, val_t p1){
14443 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14444 val_t REGB0;
14445 val_t tmp;
14446 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14447 fra.me.file = LOCATE_parser___parser_prod;
14448 fra.me.line = 2673;
14449 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___visit_all;
14450 fra.me.has_broke = 0;
14451 fra.me.REG_size = 2;
14452 fra.me.nitni_local_ref_head = NULL;
14453 fra.me.REG[0] = NIT_NULL;
14454 fra.me.REG[1] = NIT_NULL;
14455 fra.me.REG[0] = p0;
14456 fra.me.REG[1] = p1;
14457 /* parser/parser_prod.nit:2675 */
14458 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0])!=NIT_NULL);
14459 if (UNTAG_Bool(REGB0)) {
14460 } else {
14461 nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser___parser_prod, 2675);
14462 }
14463 fra.me.REG[0] = ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0]);
14464 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14465 stack_frame_head = fra.me.prev;
14466 return;
14467 }
14468 void parser___parser_prod___ALlMethid___empty_init(val_t p0, int* init_table){
14469 int itpos85 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlMethid].i;
14470 struct {struct stack_frame_t me;} fra;
14471 val_t tmp;
14472 if (init_table[itpos85]) return;
14473 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14474 fra.me.file = LOCATE_parser___parser_prod;
14475 fra.me.line = 2679;
14476 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___empty_init;
14477 fra.me.has_broke = 0;
14478 fra.me.REG_size = 1;
14479 fra.me.nitni_local_ref_head = NULL;
14480 fra.me.REG[0] = NIT_NULL;
14481 fra.me.REG[0] = p0;
14482 stack_frame_head = fra.me.prev;
14483 init_table[itpos85] = 1;
14484 return;
14485 }
14486 void parser___parser_prod___ALlMethid___init_allmethid(val_t p0, val_t p1, int* init_table){
14487 int itpos86 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlMethid].i;
14488 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14489 val_t REGB0;
14490 val_t tmp;
14491 if (init_table[itpos86]) return;
14492 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14493 fra.me.file = LOCATE_parser___parser_prod;
14494 fra.me.line = 2681;
14495 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___init_allmethid;
14496 fra.me.has_broke = 0;
14497 fra.me.REG_size = 3;
14498 fra.me.nitni_local_ref_head = NULL;
14499 fra.me.REG[0] = NIT_NULL;
14500 fra.me.REG[1] = NIT_NULL;
14501 fra.me.REG[2] = NIT_NULL;
14502 fra.me.REG[0] = p0;
14503 fra.me.REG[1] = p1;
14504 /* parser/parser_prod.nit:2681 */
14505 fra.me.REG[2] = fra.me.REG[0];
14506 /* parser/parser_prod.nit:2685 */
14507 CALL_parser___parser_prod___ALlMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14508 /* parser/parser_prod.nit:2686 */
14509 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14510 if (UNTAG_Bool(REGB0)) {
14511 } else {
14512 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2686);
14513 }
14514 ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[2]) = fra.me.REG[1];
14515 /* parser/parser_prod.nit:2687 */
14516 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14517 if (UNTAG_Bool(REGB0)) {
14518 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2687);
14519 }
14520 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14521 stack_frame_head = fra.me.prev;
14522 init_table[itpos86] = 1;
14523 return;
14524 }
14525 void parser___parser_prod___ALlMethid___replace_child(val_t p0, val_t p1, val_t p2){
14526 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14527 val_t REGB0;
14528 val_t REGB1;
14529 val_t tmp;
14530 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14531 fra.me.file = LOCATE_parser___parser_prod;
14532 fra.me.line = 2690;
14533 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___replace_child;
14534 fra.me.has_broke = 0;
14535 fra.me.REG_size = 4;
14536 fra.me.nitni_local_ref_head = NULL;
14537 fra.me.REG[0] = NIT_NULL;
14538 fra.me.REG[1] = NIT_NULL;
14539 fra.me.REG[2] = NIT_NULL;
14540 fra.me.REG[3] = NIT_NULL;
14541 fra.me.REG[0] = p0;
14542 fra.me.REG[1] = p1;
14543 fra.me.REG[2] = p2;
14544 /* parser/parser_prod.nit:2692 */
14545 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0])!=NIT_NULL);
14546 if (UNTAG_Bool(REGB0)) {
14547 } else {
14548 nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser___parser_prod, 2692);
14549 }
14550 fra.me.REG[3] = ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]);
14551 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14552 if (UNTAG_Bool(REGB0)) {
14553 } else {
14554 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14555 REGB0 = REGB1;
14556 }
14557 if (UNTAG_Bool(REGB0)) {
14558 /* parser/parser_prod.nit:2693 */
14559 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14560 if (UNTAG_Bool(REGB0)) {
14561 } else {
14562 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14563 if (UNTAG_Bool(REGB1)) {
14564 REGB1 = TAG_Bool(false);
14565 REGB0 = REGB1;
14566 } else {
14567 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14568 REGB0 = REGB1;
14569 }
14570 }
14571 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14572 if (UNTAG_Bool(REGB0)) {
14573 /* parser/parser_prod.nit:2694 */
14574 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14575 if (UNTAG_Bool(REGB0)) {
14576 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2694);
14577 }
14578 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14579 /* parser/parser_prod.nit:2695 */
14580 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TLl, ID_parser___parser_nodes___TLl)) /*cast TLl*/;
14581 if (UNTAG_Bool(REGB0)) {
14582 } else {
14583 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2695);
14584 }
14585 /* parser/parser_prod.nit:2696 */
14586 ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]) = fra.me.REG[2];
14587 } else {
14588 /* parser/parser_prod.nit:2698 */
14589 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2698);
14590 }
14591 /* parser/parser_prod.nit:2700 */
14592 goto label1;
14593 }
14594 label1: while(0);
14595 stack_frame_head = fra.me.prev;
14596 return;
14597 }
14598 void parser___parser_prod___ALlMethid___visit_all(val_t p0, val_t p1){
14599 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14600 val_t REGB0;
14601 val_t tmp;
14602 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14603 fra.me.file = LOCATE_parser___parser_prod;
14604 fra.me.line = 2704;
14605 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___visit_all;
14606 fra.me.has_broke = 0;
14607 fra.me.REG_size = 2;
14608 fra.me.nitni_local_ref_head = NULL;
14609 fra.me.REG[0] = NIT_NULL;
14610 fra.me.REG[1] = NIT_NULL;
14611 fra.me.REG[0] = p0;
14612 fra.me.REG[1] = p1;
14613 /* parser/parser_prod.nit:2706 */
14614 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0])!=NIT_NULL);
14615 if (UNTAG_Bool(REGB0)) {
14616 } else {
14617 nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser___parser_prod, 2706);
14618 }
14619 fra.me.REG[0] = ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]);
14620 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14621 stack_frame_head = fra.me.prev;
14622 return;
14623 }
14624 void parser___parser_prod___AGgMethid___empty_init(val_t p0, int* init_table){
14625 int itpos87 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgMethid].i;
14626 struct {struct stack_frame_t me;} fra;
14627 val_t tmp;
14628 if (init_table[itpos87]) return;
14629 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14630 fra.me.file = LOCATE_parser___parser_prod;
14631 fra.me.line = 2710;
14632 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___empty_init;
14633 fra.me.has_broke = 0;
14634 fra.me.REG_size = 1;
14635 fra.me.nitni_local_ref_head = NULL;
14636 fra.me.REG[0] = NIT_NULL;
14637 fra.me.REG[0] = p0;
14638 stack_frame_head = fra.me.prev;
14639 init_table[itpos87] = 1;
14640 return;
14641 }
14642 void parser___parser_prod___AGgMethid___init_aggmethid(val_t p0, val_t p1, int* init_table){
14643 int itpos88 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgMethid].i;
14644 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14645 val_t REGB0;
14646 val_t tmp;
14647 if (init_table[itpos88]) return;
14648 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14649 fra.me.file = LOCATE_parser___parser_prod;
14650 fra.me.line = 2712;
14651 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___init_aggmethid;
14652 fra.me.has_broke = 0;
14653 fra.me.REG_size = 3;
14654 fra.me.nitni_local_ref_head = NULL;
14655 fra.me.REG[0] = NIT_NULL;
14656 fra.me.REG[1] = NIT_NULL;
14657 fra.me.REG[2] = NIT_NULL;
14658 fra.me.REG[0] = p0;
14659 fra.me.REG[1] = p1;
14660 /* parser/parser_prod.nit:2712 */
14661 fra.me.REG[2] = fra.me.REG[0];
14662 /* parser/parser_prod.nit:2716 */
14663 CALL_parser___parser_prod___AGgMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14664 /* parser/parser_prod.nit:2717 */
14665 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14666 if (UNTAG_Bool(REGB0)) {
14667 } else {
14668 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2717);
14669 }
14670 ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[2]) = fra.me.REG[1];
14671 /* parser/parser_prod.nit:2718 */
14672 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14673 if (UNTAG_Bool(REGB0)) {
14674 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2718);
14675 }
14676 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14677 stack_frame_head = fra.me.prev;
14678 init_table[itpos88] = 1;
14679 return;
14680 }
14681 void parser___parser_prod___AGgMethid___replace_child(val_t p0, val_t p1, val_t p2){
14682 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14683 val_t REGB0;
14684 val_t REGB1;
14685 val_t tmp;
14686 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14687 fra.me.file = LOCATE_parser___parser_prod;
14688 fra.me.line = 2721;
14689 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___replace_child;
14690 fra.me.has_broke = 0;
14691 fra.me.REG_size = 4;
14692 fra.me.nitni_local_ref_head = NULL;
14693 fra.me.REG[0] = NIT_NULL;
14694 fra.me.REG[1] = NIT_NULL;
14695 fra.me.REG[2] = NIT_NULL;
14696 fra.me.REG[3] = NIT_NULL;
14697 fra.me.REG[0] = p0;
14698 fra.me.REG[1] = p1;
14699 fra.me.REG[2] = p2;
14700 /* parser/parser_prod.nit:2723 */
14701 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0])!=NIT_NULL);
14702 if (UNTAG_Bool(REGB0)) {
14703 } else {
14704 nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser___parser_prod, 2723);
14705 }
14706 fra.me.REG[3] = ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]);
14707 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14708 if (UNTAG_Bool(REGB0)) {
14709 } else {
14710 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14711 REGB0 = REGB1;
14712 }
14713 if (UNTAG_Bool(REGB0)) {
14714 /* parser/parser_prod.nit:2724 */
14715 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14716 if (UNTAG_Bool(REGB0)) {
14717 } else {
14718 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14719 if (UNTAG_Bool(REGB1)) {
14720 REGB1 = TAG_Bool(false);
14721 REGB0 = REGB1;
14722 } else {
14723 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14724 REGB0 = REGB1;
14725 }
14726 }
14727 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14728 if (UNTAG_Bool(REGB0)) {
14729 /* parser/parser_prod.nit:2725 */
14730 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14731 if (UNTAG_Bool(REGB0)) {
14732 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2725);
14733 }
14734 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14735 /* parser/parser_prod.nit:2726 */
14736 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TGg, ID_parser___parser_nodes___TGg)) /*cast TGg*/;
14737 if (UNTAG_Bool(REGB0)) {
14738 } else {
14739 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2726);
14740 }
14741 /* parser/parser_prod.nit:2727 */
14742 ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]) = fra.me.REG[2];
14743 } else {
14744 /* parser/parser_prod.nit:2729 */
14745 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2729);
14746 }
14747 /* parser/parser_prod.nit:2731 */
14748 goto label1;
14749 }
14750 label1: while(0);
14751 stack_frame_head = fra.me.prev;
14752 return;
14753 }
14754 void parser___parser_prod___AGgMethid___visit_all(val_t p0, val_t p1){
14755 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14756 val_t REGB0;
14757 val_t tmp;
14758 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14759 fra.me.file = LOCATE_parser___parser_prod;
14760 fra.me.line = 2735;
14761 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___visit_all;
14762 fra.me.has_broke = 0;
14763 fra.me.REG_size = 2;
14764 fra.me.nitni_local_ref_head = NULL;
14765 fra.me.REG[0] = NIT_NULL;
14766 fra.me.REG[1] = NIT_NULL;
14767 fra.me.REG[0] = p0;
14768 fra.me.REG[1] = p1;
14769 /* parser/parser_prod.nit:2737 */
14770 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0])!=NIT_NULL);
14771 if (UNTAG_Bool(REGB0)) {
14772 } else {
14773 nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser___parser_prod, 2737);
14774 }
14775 fra.me.REG[0] = ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]);
14776 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14777 stack_frame_head = fra.me.prev;
14778 return;
14779 }
14780 void parser___parser_prod___ABraMethid___empty_init(val_t p0, int* init_table){
14781 int itpos89 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraMethid].i;
14782 struct {struct stack_frame_t me;} fra;
14783 val_t tmp;
14784 if (init_table[itpos89]) return;
14785 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14786 fra.me.file = LOCATE_parser___parser_prod;
14787 fra.me.line = 2741;
14788 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___empty_init;
14789 fra.me.has_broke = 0;
14790 fra.me.REG_size = 1;
14791 fra.me.nitni_local_ref_head = NULL;
14792 fra.me.REG[0] = NIT_NULL;
14793 fra.me.REG[0] = p0;
14794 stack_frame_head = fra.me.prev;
14795 init_table[itpos89] = 1;
14796 return;
14797 }
14798 void parser___parser_prod___ABraMethid___init_abramethid(val_t p0, val_t p1, val_t p2, int* init_table){
14799 int itpos90 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraMethid].i;
14800 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14801 val_t REGB0;
14802 val_t tmp;
14803 if (init_table[itpos90]) return;
14804 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14805 fra.me.file = LOCATE_parser___parser_prod;
14806 fra.me.line = 2743;
14807 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___init_abramethid;
14808 fra.me.has_broke = 0;
14809 fra.me.REG_size = 4;
14810 fra.me.nitni_local_ref_head = NULL;
14811 fra.me.REG[0] = NIT_NULL;
14812 fra.me.REG[1] = NIT_NULL;
14813 fra.me.REG[2] = NIT_NULL;
14814 fra.me.REG[3] = NIT_NULL;
14815 fra.me.REG[0] = p0;
14816 fra.me.REG[1] = p1;
14817 fra.me.REG[2] = p2;
14818 /* parser/parser_prod.nit:2743 */
14819 fra.me.REG[3] = fra.me.REG[0];
14820 /* parser/parser_prod.nit:2748 */
14821 CALL_parser___parser_prod___ABraMethid___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
14822 /* parser/parser_prod.nit:2749 */
14823 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14824 if (UNTAG_Bool(REGB0)) {
14825 } else {
14826 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2749);
14827 }
14828 ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[3]) = fra.me.REG[1];
14829 /* parser/parser_prod.nit:2750 */
14830 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14831 if (UNTAG_Bool(REGB0)) {
14832 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2750);
14833 }
14834 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14835 /* parser/parser_prod.nit:2751 */
14836 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
14837 if (UNTAG_Bool(REGB0)) {
14838 } else {
14839 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2751);
14840 }
14841 ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[3]) = fra.me.REG[2];
14842 /* parser/parser_prod.nit:2752 */
14843 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14844 if (UNTAG_Bool(REGB0)) {
14845 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2752);
14846 }
14847 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14848 stack_frame_head = fra.me.prev;
14849 init_table[itpos90] = 1;
14850 return;
14851 }
14852 void parser___parser_prod___ABraMethid___replace_child(val_t p0, val_t p1, val_t p2){
14853 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14854 val_t REGB0;
14855 val_t REGB1;
14856 val_t tmp;
14857 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14858 fra.me.file = LOCATE_parser___parser_prod;
14859 fra.me.line = 2755;
14860 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___replace_child;
14861 fra.me.has_broke = 0;
14862 fra.me.REG_size = 4;
14863 fra.me.nitni_local_ref_head = NULL;
14864 fra.me.REG[0] = NIT_NULL;
14865 fra.me.REG[1] = NIT_NULL;
14866 fra.me.REG[2] = NIT_NULL;
14867 fra.me.REG[3] = NIT_NULL;
14868 fra.me.REG[0] = p0;
14869 fra.me.REG[1] = p1;
14870 fra.me.REG[2] = p2;
14871 /* parser/parser_prod.nit:2757 */
14872 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
14873 if (UNTAG_Bool(REGB0)) {
14874 } else {
14875 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2757);
14876 }
14877 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]);
14878 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14879 if (UNTAG_Bool(REGB0)) {
14880 } else {
14881 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14882 REGB0 = REGB1;
14883 }
14884 if (UNTAG_Bool(REGB0)) {
14885 /* parser/parser_prod.nit:2758 */
14886 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14887 if (UNTAG_Bool(REGB0)) {
14888 } else {
14889 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14890 if (UNTAG_Bool(REGB1)) {
14891 REGB1 = TAG_Bool(false);
14892 REGB0 = REGB1;
14893 } else {
14894 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14895 REGB0 = REGB1;
14896 }
14897 }
14898 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14899 if (UNTAG_Bool(REGB0)) {
14900 /* parser/parser_prod.nit:2759 */
14901 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14902 if (UNTAG_Bool(REGB0)) {
14903 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2759);
14904 }
14905 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14906 /* parser/parser_prod.nit:2760 */
14907 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast TObra*/;
14908 if (UNTAG_Bool(REGB0)) {
14909 } else {
14910 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2760);
14911 }
14912 /* parser/parser_prod.nit:2761 */
14913 ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]) = fra.me.REG[2];
14914 } else {
14915 /* parser/parser_prod.nit:2763 */
14916 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2763);
14917 }
14918 /* parser/parser_prod.nit:2765 */
14919 goto label1;
14920 }
14921 /* parser/parser_prod.nit:2767 */
14922 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
14923 if (UNTAG_Bool(REGB0)) {
14924 } else {
14925 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2767);
14926 }
14927 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]);
14928 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14929 if (UNTAG_Bool(REGB0)) {
14930 } else {
14931 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14932 REGB0 = REGB1;
14933 }
14934 if (UNTAG_Bool(REGB0)) {
14935 /* parser/parser_prod.nit:2768 */
14936 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14937 if (UNTAG_Bool(REGB0)) {
14938 } else {
14939 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14940 if (UNTAG_Bool(REGB1)) {
14941 REGB1 = TAG_Bool(false);
14942 REGB0 = REGB1;
14943 } else {
14944 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14945 REGB0 = REGB1;
14946 }
14947 }
14948 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14949 if (UNTAG_Bool(REGB0)) {
14950 /* parser/parser_prod.nit:2769 */
14951 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14952 if (UNTAG_Bool(REGB0)) {
14953 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2769);
14954 }
14955 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14956 /* parser/parser_prod.nit:2770 */
14957 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCbra, ID_parser___parser_nodes___TCbra)) /*cast TCbra*/;
14958 if (UNTAG_Bool(REGB0)) {
14959 } else {
14960 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2770);
14961 }
14962 /* parser/parser_prod.nit:2771 */
14963 ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
14964 } else {
14965 /* parser/parser_prod.nit:2773 */
14966 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2773);
14967 }
14968 /* parser/parser_prod.nit:2775 */
14969 goto label1;
14970 }
14971 label1: while(0);
14972 stack_frame_head = fra.me.prev;
14973 return;
14974 }
14975 void parser___parser_prod___ABraMethid___visit_all(val_t p0, val_t p1){
14976 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14977 val_t REGB0;
14978 val_t tmp;
14979 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14980 fra.me.file = LOCATE_parser___parser_prod;
14981 fra.me.line = 2779;
14982 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___visit_all;
14983 fra.me.has_broke = 0;
14984 fra.me.REG_size = 3;
14985 fra.me.nitni_local_ref_head = NULL;
14986 fra.me.REG[0] = NIT_NULL;
14987 fra.me.REG[1] = NIT_NULL;
14988 fra.me.REG[2] = NIT_NULL;
14989 fra.me.REG[0] = p0;
14990 fra.me.REG[1] = p1;
14991 /* parser/parser_prod.nit:2781 */
14992 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
14993 if (UNTAG_Bool(REGB0)) {
14994 } else {
14995 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2781);
14996 }
14997 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]);
14998 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14999 /* parser/parser_prod.nit:2782 */
15000 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
15001 if (UNTAG_Bool(REGB0)) {
15002 } else {
15003 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2782);
15004 }
15005 fra.me.REG[0] = ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]);
15006 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15007 stack_frame_head = fra.me.prev;
15008 return;
15009 }
15010 void parser___parser_prod___AStarshipMethid___empty_init(val_t p0, int* init_table){
15011 int itpos91 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipMethid].i;
15012 struct {struct stack_frame_t me;} fra;
15013 val_t tmp;
15014 if (init_table[itpos91]) return;
15015 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15016 fra.me.file = LOCATE_parser___parser_prod;
15017 fra.me.line = 2786;
15018 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___empty_init;
15019 fra.me.has_broke = 0;
15020 fra.me.REG_size = 1;
15021 fra.me.nitni_local_ref_head = NULL;
15022 fra.me.REG[0] = NIT_NULL;
15023 fra.me.REG[0] = p0;
15024 stack_frame_head = fra.me.prev;
15025 init_table[itpos91] = 1;
15026 return;
15027 }
15028 void parser___parser_prod___AStarshipMethid___init_astarshipmethid(val_t p0, val_t p1, int* init_table){
15029 int itpos92 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipMethid].i;
15030 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15031 val_t REGB0;
15032 val_t tmp;
15033 if (init_table[itpos92]) return;
15034 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15035 fra.me.file = LOCATE_parser___parser_prod;
15036 fra.me.line = 2788;
15037 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___init_astarshipmethid;
15038 fra.me.has_broke = 0;
15039 fra.me.REG_size = 3;
15040 fra.me.nitni_local_ref_head = NULL;
15041 fra.me.REG[0] = NIT_NULL;
15042 fra.me.REG[1] = NIT_NULL;
15043 fra.me.REG[2] = NIT_NULL;
15044 fra.me.REG[0] = p0;
15045 fra.me.REG[1] = p1;
15046 /* parser/parser_prod.nit:2788 */
15047 fra.me.REG[2] = fra.me.REG[0];
15048 /* parser/parser_prod.nit:2792 */
15049 CALL_parser___parser_prod___AStarshipMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
15050 /* parser/parser_prod.nit:2793 */
15051 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
15052 if (UNTAG_Bool(REGB0)) {
15053 } else {
15054 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2793);
15055 }
15056 ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[2]) = fra.me.REG[1];
15057 /* parser/parser_prod.nit:2794 */
15058 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15059 if (UNTAG_Bool(REGB0)) {
15060 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2794);
15061 }
15062 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15063 stack_frame_head = fra.me.prev;
15064 init_table[itpos92] = 1;
15065 return;
15066 }
15067 void parser___parser_prod___AStarshipMethid___replace_child(val_t p0, val_t p1, val_t p2){
15068 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15069 val_t REGB0;
15070 val_t REGB1;
15071 val_t tmp;
15072 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15073 fra.me.file = LOCATE_parser___parser_prod;
15074 fra.me.line = 2797;
15075 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___replace_child;
15076 fra.me.has_broke = 0;
15077 fra.me.REG_size = 4;
15078 fra.me.nitni_local_ref_head = NULL;
15079 fra.me.REG[0] = NIT_NULL;
15080 fra.me.REG[1] = NIT_NULL;
15081 fra.me.REG[2] = NIT_NULL;
15082 fra.me.REG[3] = NIT_NULL;
15083 fra.me.REG[0] = p0;
15084 fra.me.REG[1] = p1;
15085 fra.me.REG[2] = p2;
15086 /* parser/parser_prod.nit:2799 */
15087 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0])!=NIT_NULL);
15088 if (UNTAG_Bool(REGB0)) {
15089 } else {
15090 nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser___parser_prod, 2799);
15091 }
15092 fra.me.REG[3] = ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]);
15093 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15094 if (UNTAG_Bool(REGB0)) {
15095 } else {
15096 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15097 REGB0 = REGB1;
15098 }
15099 if (UNTAG_Bool(REGB0)) {
15100 /* parser/parser_prod.nit:2800 */
15101 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15102 if (UNTAG_Bool(REGB0)) {
15103 } else {
15104 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15105 if (UNTAG_Bool(REGB1)) {
15106 REGB1 = TAG_Bool(false);
15107 REGB0 = REGB1;
15108 } else {
15109 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15110 REGB0 = REGB1;
15111 }
15112 }
15113 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15114 if (UNTAG_Bool(REGB0)) {
15115 /* parser/parser_prod.nit:2801 */
15116 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15117 if (UNTAG_Bool(REGB0)) {
15118 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2801);
15119 }
15120 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15121 /* parser/parser_prod.nit:2802 */
15122 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TStarship, ID_parser___parser_nodes___TStarship)) /*cast TStarship*/;
15123 if (UNTAG_Bool(REGB0)) {
15124 } else {
15125 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2802);
15126 }
15127 /* parser/parser_prod.nit:2803 */
15128 ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]) = fra.me.REG[2];
15129 } else {
15130 /* parser/parser_prod.nit:2805 */
15131 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2805);
15132 }
15133 /* parser/parser_prod.nit:2807 */
15134 goto label1;
15135 }
15136 label1: while(0);
15137 stack_frame_head = fra.me.prev;
15138 return;
15139 }
15140 void parser___parser_prod___AStarshipMethid___visit_all(val_t p0, val_t p1){
15141 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15142 val_t REGB0;
15143 val_t tmp;
15144 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15145 fra.me.file = LOCATE_parser___parser_prod;
15146 fra.me.line = 2811;
15147 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___visit_all;
15148 fra.me.has_broke = 0;
15149 fra.me.REG_size = 2;
15150 fra.me.nitni_local_ref_head = NULL;
15151 fra.me.REG[0] = NIT_NULL;
15152 fra.me.REG[1] = NIT_NULL;
15153 fra.me.REG[0] = p0;
15154 fra.me.REG[1] = p1;
15155 /* parser/parser_prod.nit:2813 */
15156 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0])!=NIT_NULL);
15157 if (UNTAG_Bool(REGB0)) {
15158 } else {
15159 nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser___parser_prod, 2813);
15160 }
15161 fra.me.REG[0] = ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]);
15162 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15163 stack_frame_head = fra.me.prev;
15164 return;
15165 }
15166 void parser___parser_prod___AAssignMethid___empty_init(val_t p0, int* init_table){
15167 int itpos93 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssignMethid].i;
15168 struct {struct stack_frame_t me;} fra;
15169 val_t tmp;
15170 if (init_table[itpos93]) return;
15171 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15172 fra.me.file = LOCATE_parser___parser_prod;
15173 fra.me.line = 2817;
15174 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___empty_init;
15175 fra.me.has_broke = 0;
15176 fra.me.REG_size = 1;
15177 fra.me.nitni_local_ref_head = NULL;
15178 fra.me.REG[0] = NIT_NULL;
15179 fra.me.REG[0] = p0;
15180 stack_frame_head = fra.me.prev;
15181 init_table[itpos93] = 1;
15182 return;
15183 }
15184 void parser___parser_prod___AAssignMethid___init_aassignmethid(val_t p0, val_t p1, val_t p2, int* init_table){
15185 int itpos94 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssignMethid].i;
15186 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15187 val_t REGB0;
15188 val_t tmp;
15189 if (init_table[itpos94]) return;
15190 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15191 fra.me.file = LOCATE_parser___parser_prod;
15192 fra.me.line = 2819;
15193 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___init_aassignmethid;
15194 fra.me.has_broke = 0;
15195 fra.me.REG_size = 4;
15196 fra.me.nitni_local_ref_head = NULL;
15197 fra.me.REG[0] = NIT_NULL;
15198 fra.me.REG[1] = NIT_NULL;
15199 fra.me.REG[2] = NIT_NULL;
15200 fra.me.REG[3] = NIT_NULL;
15201 fra.me.REG[0] = p0;
15202 fra.me.REG[1] = p1;
15203 fra.me.REG[2] = p2;
15204 /* parser/parser_prod.nit:2819 */
15205 fra.me.REG[3] = fra.me.REG[0];
15206 /* parser/parser_prod.nit:2824 */
15207 CALL_parser___parser_prod___AAssignMethid___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
15208 /* parser/parser_prod.nit:2825 */
15209 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
15210 if (UNTAG_Bool(REGB0)) {
15211 } else {
15212 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2825);
15213 }
15214 ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[3]) = fra.me.REG[1];
15215 /* parser/parser_prod.nit:2826 */
15216 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15217 if (UNTAG_Bool(REGB0)) {
15218 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2826);
15219 }
15220 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15221 /* parser/parser_prod.nit:2827 */
15222 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
15223 if (UNTAG_Bool(REGB0)) {
15224 } else {
15225 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2827);
15226 }
15227 ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[3]) = fra.me.REG[2];
15228 /* parser/parser_prod.nit:2828 */
15229 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15230 if (UNTAG_Bool(REGB0)) {
15231 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2828);
15232 }
15233 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15234 stack_frame_head = fra.me.prev;
15235 init_table[itpos94] = 1;
15236 return;
15237 }
15238 void parser___parser_prod___AAssignMethid___replace_child(val_t p0, val_t p1, val_t p2){
15239 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15240 val_t REGB0;
15241 val_t REGB1;
15242 val_t tmp;
15243 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15244 fra.me.file = LOCATE_parser___parser_prod;
15245 fra.me.line = 2831;
15246 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___replace_child;
15247 fra.me.has_broke = 0;
15248 fra.me.REG_size = 4;
15249 fra.me.nitni_local_ref_head = NULL;
15250 fra.me.REG[0] = NIT_NULL;
15251 fra.me.REG[1] = NIT_NULL;
15252 fra.me.REG[2] = NIT_NULL;
15253 fra.me.REG[3] = NIT_NULL;
15254 fra.me.REG[0] = p0;
15255 fra.me.REG[1] = p1;
15256 fra.me.REG[2] = p2;
15257 /* parser/parser_prod.nit:2833 */
15258 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0])!=NIT_NULL);
15259 if (UNTAG_Bool(REGB0)) {
15260 } else {
15261 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2833);
15262 }
15263 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]);
15264 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15265 if (UNTAG_Bool(REGB0)) {
15266 } else {
15267 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15268 REGB0 = REGB1;
15269 }
15270 if (UNTAG_Bool(REGB0)) {
15271 /* parser/parser_prod.nit:2834 */
15272 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15273 if (UNTAG_Bool(REGB0)) {
15274 } else {
15275 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15276 if (UNTAG_Bool(REGB1)) {
15277 REGB1 = TAG_Bool(false);
15278 REGB0 = REGB1;
15279 } else {
15280 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15281 REGB0 = REGB1;
15282 }
15283 }
15284 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15285 if (UNTAG_Bool(REGB0)) {
15286 /* parser/parser_prod.nit:2835 */
15287 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15288 if (UNTAG_Bool(REGB0)) {
15289 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2835);
15290 }
15291 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15292 /* parser/parser_prod.nit:2836 */
15293 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
15294 if (UNTAG_Bool(REGB0)) {
15295 } else {
15296 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2836);
15297 }
15298 /* parser/parser_prod.nit:2837 */
15299 ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]) = fra.me.REG[2];
15300 } else {
15301 /* parser/parser_prod.nit:2839 */
15302 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2839);
15303 }
15304 /* parser/parser_prod.nit:2841 */
15305 goto label1;
15306 }
15307 /* parser/parser_prod.nit:2843 */
15308 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
15309 if (UNTAG_Bool(REGB0)) {
15310 } else {
15311 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2843);
15312 }
15313 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]);
15314 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15315 if (UNTAG_Bool(REGB0)) {
15316 } else {
15317 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15318 REGB0 = REGB1;
15319 }
15320 if (UNTAG_Bool(REGB0)) {
15321 /* parser/parser_prod.nit:2844 */
15322 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15323 if (UNTAG_Bool(REGB0)) {
15324 } else {
15325 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15326 if (UNTAG_Bool(REGB1)) {
15327 REGB1 = TAG_Bool(false);
15328 REGB0 = REGB1;
15329 } else {
15330 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15331 REGB0 = REGB1;
15332 }
15333 }
15334 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15335 if (UNTAG_Bool(REGB0)) {
15336 /* parser/parser_prod.nit:2845 */
15337 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15338 if (UNTAG_Bool(REGB0)) {
15339 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2845);
15340 }
15341 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15342 /* parser/parser_prod.nit:2846 */
15343 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
15344 if (UNTAG_Bool(REGB0)) {
15345 } else {
15346 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2846);
15347 }
15348 /* parser/parser_prod.nit:2847 */
15349 ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[2];
15350 } else {
15351 /* parser/parser_prod.nit:2849 */
15352 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2849);
15353 }
15354 /* parser/parser_prod.nit:2851 */
15355 goto label1;
15356 }
15357 label1: while(0);
15358 stack_frame_head = fra.me.prev;
15359 return;
15360 }
15361 void parser___parser_prod___AAssignMethid___visit_all(val_t p0, val_t p1){
15362 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15363 val_t REGB0;
15364 val_t tmp;
15365 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15366 fra.me.file = LOCATE_parser___parser_prod;
15367 fra.me.line = 2855;
15368 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___visit_all;
15369 fra.me.has_broke = 0;
15370 fra.me.REG_size = 3;
15371 fra.me.nitni_local_ref_head = NULL;
15372 fra.me.REG[0] = NIT_NULL;
15373 fra.me.REG[1] = NIT_NULL;
15374 fra.me.REG[2] = NIT_NULL;
15375 fra.me.REG[0] = p0;
15376 fra.me.REG[1] = p1;
15377 /* parser/parser_prod.nit:2857 */
15378 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0])!=NIT_NULL);
15379 if (UNTAG_Bool(REGB0)) {
15380 } else {
15381 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2857);
15382 }
15383 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]);
15384 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15385 /* parser/parser_prod.nit:2858 */
15386 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
15387 if (UNTAG_Bool(REGB0)) {
15388 } else {
15389 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2858);
15390 }
15391 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]);
15392 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15393 stack_frame_head = fra.me.prev;
15394 return;
15395 }
15396 void parser___parser_prod___ABraassignMethid___empty_init(val_t p0, int* init_table){
15397 int itpos95 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraassignMethid].i;
15398 struct {struct stack_frame_t me;} fra;
15399 val_t tmp;
15400 if (init_table[itpos95]) return;
15401 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15402 fra.me.file = LOCATE_parser___parser_prod;
15403 fra.me.line = 2862;
15404 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___empty_init;
15405 fra.me.has_broke = 0;
15406 fra.me.REG_size = 1;
15407 fra.me.nitni_local_ref_head = NULL;
15408 fra.me.REG[0] = NIT_NULL;
15409 fra.me.REG[0] = p0;
15410 stack_frame_head = fra.me.prev;
15411 init_table[itpos95] = 1;
15412 return;
15413 }
15414 void parser___parser_prod___ABraassignMethid___init_abraassignmethid(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
15415 int itpos96 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraassignMethid].i;
15416 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
15417 val_t REGB0;
15418 val_t tmp;
15419 if (init_table[itpos96]) return;
15420 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15421 fra.me.file = LOCATE_parser___parser_prod;
15422 fra.me.line = 2864;
15423 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___init_abraassignmethid;
15424 fra.me.has_broke = 0;
15425 fra.me.REG_size = 5;
15426 fra.me.nitni_local_ref_head = NULL;
15427 fra.me.REG[0] = NIT_NULL;
15428 fra.me.REG[1] = NIT_NULL;
15429 fra.me.REG[2] = NIT_NULL;
15430 fra.me.REG[3] = NIT_NULL;
15431 fra.me.REG[4] = NIT_NULL;
15432 fra.me.REG[0] = p0;
15433 fra.me.REG[1] = p1;
15434 fra.me.REG[2] = p2;
15435 fra.me.REG[3] = p3;
15436 /* parser/parser_prod.nit:2864 */
15437 fra.me.REG[4] = fra.me.REG[0];
15438 /* parser/parser_prod.nit:2870 */
15439 CALL_parser___parser_prod___ABraassignMethid___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
15440 /* parser/parser_prod.nit:2871 */
15441 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
15442 if (UNTAG_Bool(REGB0)) {
15443 } else {
15444 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2871);
15445 }
15446 ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[4]) = fra.me.REG[1];
15447 /* parser/parser_prod.nit:2872 */
15448 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15449 if (UNTAG_Bool(REGB0)) {
15450 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2872);
15451 }
15452 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15453 /* parser/parser_prod.nit:2873 */
15454 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
15455 if (UNTAG_Bool(REGB0)) {
15456 } else {
15457 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2873);
15458 }
15459 ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[4]) = fra.me.REG[2];
15460 /* parser/parser_prod.nit:2874 */
15461 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15462 if (UNTAG_Bool(REGB0)) {
15463 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2874);
15464 }
15465 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15466 /* parser/parser_prod.nit:2875 */
15467 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
15468 if (UNTAG_Bool(REGB0)) {
15469 } else {
15470 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2875);
15471 }
15472 ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[4]) = fra.me.REG[3];
15473 /* parser/parser_prod.nit:2876 */
15474 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15475 if (UNTAG_Bool(REGB0)) {
15476 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2876);
15477 }
15478 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15479 stack_frame_head = fra.me.prev;
15480 init_table[itpos96] = 1;
15481 return;
15482 }
15483 void parser___parser_prod___ABraassignMethid___replace_child(val_t p0, val_t p1, val_t p2){
15484 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15485 val_t REGB0;
15486 val_t REGB1;
15487 val_t tmp;
15488 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15489 fra.me.file = LOCATE_parser___parser_prod;
15490 fra.me.line = 2879;
15491 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___replace_child;
15492 fra.me.has_broke = 0;
15493 fra.me.REG_size = 4;
15494 fra.me.nitni_local_ref_head = NULL;
15495 fra.me.REG[0] = NIT_NULL;
15496 fra.me.REG[1] = NIT_NULL;
15497 fra.me.REG[2] = NIT_NULL;
15498 fra.me.REG[3] = NIT_NULL;
15499 fra.me.REG[0] = p0;
15500 fra.me.REG[1] = p1;
15501 fra.me.REG[2] = p2;
15502 /* parser/parser_prod.nit:2881 */
15503 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
15504 if (UNTAG_Bool(REGB0)) {
15505 } else {
15506 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2881);
15507 }
15508 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]);
15509 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15510 if (UNTAG_Bool(REGB0)) {
15511 } else {
15512 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15513 REGB0 = REGB1;
15514 }
15515 if (UNTAG_Bool(REGB0)) {
15516 /* parser/parser_prod.nit:2882 */
15517 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15518 if (UNTAG_Bool(REGB0)) {
15519 } else {
15520 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15521 if (UNTAG_Bool(REGB1)) {
15522 REGB1 = TAG_Bool(false);
15523 REGB0 = REGB1;
15524 } else {
15525 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15526 REGB0 = REGB1;
15527 }
15528 }
15529 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15530 if (UNTAG_Bool(REGB0)) {
15531 /* parser/parser_prod.nit:2883 */
15532 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15533 if (UNTAG_Bool(REGB0)) {
15534 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2883);
15535 }
15536 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15537 /* parser/parser_prod.nit:2884 */
15538 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast TObra*/;
15539 if (UNTAG_Bool(REGB0)) {
15540 } else {
15541 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2884);
15542 }
15543 /* parser/parser_prod.nit:2885 */
15544 ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]) = fra.me.REG[2];
15545 } else {
15546 /* parser/parser_prod.nit:2887 */
15547 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2887);
15548 }
15549 /* parser/parser_prod.nit:2889 */
15550 goto label1;
15551 }
15552 /* parser/parser_prod.nit:2891 */
15553 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
15554 if (UNTAG_Bool(REGB0)) {
15555 } else {
15556 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2891);
15557 }
15558 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]);
15559 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15560 if (UNTAG_Bool(REGB0)) {
15561 } else {
15562 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15563 REGB0 = REGB1;
15564 }
15565 if (UNTAG_Bool(REGB0)) {
15566 /* parser/parser_prod.nit:2892 */
15567 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15568 if (UNTAG_Bool(REGB0)) {
15569 } else {
15570 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15571 if (UNTAG_Bool(REGB1)) {
15572 REGB1 = TAG_Bool(false);
15573 REGB0 = REGB1;
15574 } else {
15575 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15576 REGB0 = REGB1;
15577 }
15578 }
15579 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15580 if (UNTAG_Bool(REGB0)) {
15581 /* parser/parser_prod.nit:2893 */
15582 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15583 if (UNTAG_Bool(REGB0)) {
15584 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2893);
15585 }
15586 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15587 /* parser/parser_prod.nit:2894 */
15588 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCbra, ID_parser___parser_nodes___TCbra)) /*cast TCbra*/;
15589 if (UNTAG_Bool(REGB0)) {
15590 } else {
15591 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2894);
15592 }
15593 /* parser/parser_prod.nit:2895 */
15594 ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
15595 } else {
15596 /* parser/parser_prod.nit:2897 */
15597 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2897);
15598 }
15599 /* parser/parser_prod.nit:2899 */
15600 goto label1;
15601 }
15602 /* parser/parser_prod.nit:2901 */
15603 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
15604 if (UNTAG_Bool(REGB0)) {
15605 } else {
15606 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2901);
15607 }
15608 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]);
15609 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15610 if (UNTAG_Bool(REGB0)) {
15611 } else {
15612 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15613 REGB0 = REGB1;
15614 }
15615 if (UNTAG_Bool(REGB0)) {
15616 /* parser/parser_prod.nit:2902 */
15617 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15618 if (UNTAG_Bool(REGB0)) {
15619 } else {
15620 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15621 if (UNTAG_Bool(REGB1)) {
15622 REGB1 = TAG_Bool(false);
15623 REGB0 = REGB1;
15624 } else {
15625 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15626 REGB0 = REGB1;
15627 }
15628 }
15629 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15630 if (UNTAG_Bool(REGB0)) {
15631 /* parser/parser_prod.nit:2903 */
15632 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15633 if (UNTAG_Bool(REGB0)) {
15634 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2903);
15635 }
15636 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15637 /* parser/parser_prod.nit:2904 */
15638 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
15639 if (UNTAG_Bool(REGB0)) {
15640 } else {
15641 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2904);
15642 }
15643 /* parser/parser_prod.nit:2905 */
15644 ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[2];
15645 } else {
15646 /* parser/parser_prod.nit:2907 */
15647 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2907);
15648 }
15649 /* parser/parser_prod.nit:2909 */
15650 goto label1;
15651 }
15652 label1: while(0);
15653 stack_frame_head = fra.me.prev;
15654 return;
15655 }
15656 void parser___parser_prod___ABraassignMethid___visit_all(val_t p0, val_t p1){
15657 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15658 val_t REGB0;
15659 val_t tmp;
15660 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15661 fra.me.file = LOCATE_parser___parser_prod;
15662 fra.me.line = 2913;
15663 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___visit_all;
15664 fra.me.has_broke = 0;
15665 fra.me.REG_size = 3;
15666 fra.me.nitni_local_ref_head = NULL;
15667 fra.me.REG[0] = NIT_NULL;
15668 fra.me.REG[1] = NIT_NULL;
15669 fra.me.REG[2] = NIT_NULL;
15670 fra.me.REG[0] = p0;
15671 fra.me.REG[1] = p1;
15672 /* parser/parser_prod.nit:2915 */
15673 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
15674 if (UNTAG_Bool(REGB0)) {
15675 } else {
15676 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2915);
15677 }
15678 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]);
15679 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15680 /* parser/parser_prod.nit:2916 */
15681 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
15682 if (UNTAG_Bool(REGB0)) {
15683 } else {
15684 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2916);
15685 }
15686 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]);
15687 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15688 /* parser/parser_prod.nit:2917 */
15689 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
15690 if (UNTAG_Bool(REGB0)) {
15691 } else {
15692 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2917);
15693 }
15694 fra.me.REG[0] = ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]);
15695 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15696 stack_frame_head = fra.me.prev;
15697 return;
15698 }
15699 void parser___parser_prod___ASignature___empty_init(val_t p0, int* init_table){
15700 int itpos97 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASignature].i;
15701 struct {struct stack_frame_t me;} fra;
15702 val_t tmp;
15703 if (init_table[itpos97]) return;
15704 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15705 fra.me.file = LOCATE_parser___parser_prod;
15706 fra.me.line = 2921;
15707 fra.me.meth = LOCATE_parser___parser_prod___ASignature___empty_init;
15708 fra.me.has_broke = 0;
15709 fra.me.REG_size = 1;
15710 fra.me.nitni_local_ref_head = NULL;
15711 fra.me.REG[0] = NIT_NULL;
15712 fra.me.REG[0] = p0;
15713 stack_frame_head = fra.me.prev;
15714 init_table[itpos97] = 1;
15715 return;
15716 }
15717 void parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
15718 int itpos98 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASignature].i;
15719 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
15720 val_t REGB0;
15721 val_t REGB1;
15722 val_t tmp;
15723 if (init_table[itpos98]) return;
15724 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15725 fra.me.file = LOCATE_parser___parser_prod;
15726 fra.me.line = 2923;
15727 fra.me.meth = LOCATE_parser___parser_prod___ASignature___init_asignature;
15728 fra.me.has_broke = 0;
15729 fra.me.REG_size = 6;
15730 fra.me.nitni_local_ref_head = NULL;
15731 fra.me.REG[0] = NIT_NULL;
15732 fra.me.REG[1] = NIT_NULL;
15733 fra.me.REG[2] = NIT_NULL;
15734 fra.me.REG[3] = NIT_NULL;
15735 fra.me.REG[4] = NIT_NULL;
15736 fra.me.REG[5] = NIT_NULL;
15737 fra.me.REG[0] = p0;
15738 fra.me.REG[1] = p1;
15739 fra.me.REG[2] = p2;
15740 fra.me.REG[3] = p3;
15741 fra.me.REG[4] = p4;
15742 fra.me.REG[5] = p5;
15743 /* parser/parser_prod.nit:2931 */
15744 CALL_parser___parser_prod___ASignature___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
15745 /* parser/parser_prod.nit:2932 */
15746 ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[0]) = fra.me.REG[1];
15747 /* parser/parser_prod.nit:2933 */
15748 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15749 if (UNTAG_Bool(REGB0)) {
15750 } else {
15751 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15752 if (UNTAG_Bool(REGB1)) {
15753 REGB1 = TAG_Bool(false);
15754 REGB0 = REGB1;
15755 } else {
15756 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
15757 REGB0 = REGB1;
15758 }
15759 }
15760 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15761 if (UNTAG_Bool(REGB0)) {
15762 /* parser/parser_prod.nit:2934 */
15763 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15764 if (UNTAG_Bool(REGB0)) {
15765 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2934);
15766 }
15767 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15768 }
15769 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASignature___init_asignature_1));
15770 /* parser/parser_prod.nit:2941 */
15771 ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[0]) = fra.me.REG[3];
15772 /* parser/parser_prod.nit:2942 */
15773 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15774 if (UNTAG_Bool(REGB0)) {
15775 } else {
15776 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15777 if (UNTAG_Bool(REGB1)) {
15778 REGB1 = TAG_Bool(false);
15779 REGB0 = REGB1;
15780 } else {
15781 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
15782 REGB0 = REGB1;
15783 }
15784 }
15785 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15786 if (UNTAG_Bool(REGB0)) {
15787 /* parser/parser_prod.nit:2943 */
15788 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15789 if (UNTAG_Bool(REGB0)) {
15790 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2943);
15791 }
15792 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
15793 }
15794 /* parser/parser_prod.nit:2945 */
15795 ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[4];
15796 /* parser/parser_prod.nit:2946 */
15797 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
15798 if (UNTAG_Bool(REGB0)) {
15799 } else {
15800 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
15801 if (UNTAG_Bool(REGB1)) {
15802 REGB1 = TAG_Bool(false);
15803 REGB0 = REGB1;
15804 } else {
15805 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
15806 REGB0 = REGB1;
15807 }
15808 }
15809 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15810 if (UNTAG_Bool(REGB0)) {
15811 /* parser/parser_prod.nit:2947 */
15812 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
15813 if (UNTAG_Bool(REGB0)) {
15814 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2947);
15815 }
15816 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
15817 }
15818 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASignature___init_asignature_2));
15819 stack_frame_head = fra.me.prev;
15820 init_table[itpos98] = 1;
15821 return;
15822 }
15823 void OC_parser___parser_prod___ASignature___init_asignature_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
15824 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15825 val_t REGB0;
15826 fun_t CREG[1];
15827 val_t tmp;
15828 /* parser/parser_prod.nit:2936 */
15829 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15830 fra.me.file = LOCATE_parser___parser_prod;
15831 fra.me.line = 0;
15832 fra.me.meth = LOCATE_parser___parser_prod___ASignature___init_asignature;
15833 fra.me.has_broke = 0;
15834 fra.me.REG_size = 2;
15835 fra.me.nitni_local_ref_head = NULL;
15836 fra.me.REG[0] = NIT_NULL;
15837 fra.me.REG[1] = NIT_NULL;
15838 fra.me.closure_ctx = closctx_param;
15839 fra.me.closure_funs = CREG;
15840 fra.me.REG[0] = p0;
15841 CREG[0] = clos_fun0;
15842 /* parser/parser_prod.nit:2937 */
15843 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AParam, ID_parser___parser_nodes___AParam)) /*cast AParam*/;
15844 if (UNTAG_Bool(REGB0)) {
15845 } else {
15846 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2937);
15847 }
15848 /* parser/parser_prod.nit:2938 */
15849 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(closctx->REG[0])!=NIT_NULL);
15850 if (UNTAG_Bool(REGB0)) {
15851 } else {
15852 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2938);
15853 }
15854 fra.me.REG[1] = ATTR_parser___parser_nodes___ASignature____n_params(closctx->REG[0]);
15855 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15856 /* parser/parser_prod.nit:2939 */
15857 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
15858 stack_frame_head = fra.me.prev;
15859 return;
15860 }
15861 void OC_parser___parser_prod___ASignature___init_asignature_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
15862 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15863 val_t REGB0;
15864 fun_t CREG[1];
15865 val_t tmp;
15866 /* parser/parser_prod.nit:2949 */
15867 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15868 fra.me.file = LOCATE_parser___parser_prod;
15869 fra.me.line = 0;
15870 fra.me.meth = LOCATE_parser___parser_prod___ASignature___init_asignature;
15871 fra.me.has_broke = 0;
15872 fra.me.REG_size = 2;
15873 fra.me.nitni_local_ref_head = NULL;
15874 fra.me.REG[0] = NIT_NULL;
15875 fra.me.REG[1] = NIT_NULL;
15876 fra.me.closure_ctx = closctx_param;
15877 fra.me.closure_funs = CREG;
15878 fra.me.REG[0] = p0;
15879 CREG[0] = clos_fun0;
15880 /* parser/parser_prod.nit:2950 */
15881 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDecl, ID_parser___parser_nodes___AClosureDecl)) /*cast AClosureDecl*/;
15882 if (UNTAG_Bool(REGB0)) {
15883 } else {
15884 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2950);
15885 }
15886 /* parser/parser_prod.nit:2951 */
15887 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(closctx->REG[0])!=NIT_NULL);
15888 if (UNTAG_Bool(REGB0)) {
15889 } else {
15890 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2951);
15891 }
15892 fra.me.REG[1] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(closctx->REG[0]);
15893 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15894 /* parser/parser_prod.nit:2952 */
15895 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
15896 stack_frame_head = fra.me.prev;
15897 return;
15898 }
15899 void parser___parser_prod___ASignature___replace_child(val_t p0, val_t p1, val_t p2){
15900 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15901 val_t REGB0;
15902 val_t REGB1;
15903 val_t REGB2;
15904 val_t REGB3;
15905 val_t REGB4;
15906 val_t tmp;
15907 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15908 fra.me.file = LOCATE_parser___parser_prod;
15909 fra.me.line = 2956;
15910 fra.me.meth = LOCATE_parser___parser_prod___ASignature___replace_child;
15911 fra.me.has_broke = 0;
15912 fra.me.REG_size = 4;
15913 fra.me.nitni_local_ref_head = NULL;
15914 fra.me.REG[0] = NIT_NULL;
15915 fra.me.REG[1] = NIT_NULL;
15916 fra.me.REG[2] = NIT_NULL;
15917 fra.me.REG[3] = NIT_NULL;
15918 fra.me.REG[0] = p0;
15919 fra.me.REG[1] = p1;
15920 fra.me.REG[2] = p2;
15921 /* parser/parser_prod.nit:2958 */
15922 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[0]);
15923 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
15924 if (UNTAG_Bool(REGB0)) {
15925 } else {
15926 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15927 if (UNTAG_Bool(REGB1)) {
15928 REGB1 = TAG_Bool(false);
15929 REGB0 = REGB1;
15930 } else {
15931 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15932 REGB0 = REGB1;
15933 }
15934 }
15935 if (UNTAG_Bool(REGB0)) {
15936 /* parser/parser_prod.nit:2959 */
15937 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15938 if (UNTAG_Bool(REGB0)) {
15939 } else {
15940 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15941 if (UNTAG_Bool(REGB1)) {
15942 REGB1 = TAG_Bool(false);
15943 REGB0 = REGB1;
15944 } else {
15945 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15946 REGB0 = REGB1;
15947 }
15948 }
15949 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15950 if (UNTAG_Bool(REGB0)) {
15951 /* parser/parser_prod.nit:2960 */
15952 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15953 if (UNTAG_Bool(REGB0)) {
15954 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2960);
15955 }
15956 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15957 /* parser/parser_prod.nit:2961 */
15958 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
15959 if (UNTAG_Bool(REGB0)) {
15960 } else {
15961 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2961);
15962 }
15963 /* parser/parser_prod.nit:2962 */
15964 ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[0]) = fra.me.REG[2];
15965 } else {
15966 /* parser/parser_prod.nit:2964 */
15967 ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[0]) = NIT_NULL;
15968 }
15969 /* parser/parser_prod.nit:2966 */
15970 goto label1;
15971 }
15972 /* parser/parser_prod.nit:2968 */
15973 REGB0 = TAG_Int(0);
15974 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
15975 if (UNTAG_Bool(REGB1)) {
15976 } else {
15977 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2968);
15978 }
15979 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
15980 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
15981 /* ../lib/standard/kernel.nit:352 */
15982 while(1) {
15983 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
15984 if (UNTAG_Bool(REGB2)) {
15985 } else {
15986 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15987 }
15988 /* ../lib/standard/kernel.nit:232 */
15989 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
15990 /* ../lib/standard/kernel.nit:352 */
15991 if (UNTAG_Bool(REGB2)) {
15992 /* parser/parser_prod.nit:2968 */
15993 REGB2 = REGB0;
15994 /* parser/parser_prod.nit:2969 */
15995 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
15996 if (UNTAG_Bool(REGB3)) {
15997 } else {
15998 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2969);
15999 }
16000 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
16001 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
16002 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16003 if (UNTAG_Bool(REGB3)) {
16004 } else {
16005 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16006 if (UNTAG_Bool(REGB4)) {
16007 REGB4 = TAG_Bool(false);
16008 REGB3 = REGB4;
16009 } else {
16010 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16011 REGB3 = REGB4;
16012 }
16013 }
16014 if (UNTAG_Bool(REGB3)) {
16015 /* parser/parser_prod.nit:2970 */
16016 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16017 if (UNTAG_Bool(REGB3)) {
16018 } else {
16019 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16020 if (UNTAG_Bool(REGB4)) {
16021 REGB4 = TAG_Bool(false);
16022 REGB3 = REGB4;
16023 } else {
16024 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16025 REGB3 = REGB4;
16026 }
16027 }
16028 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
16029 if (UNTAG_Bool(REGB3)) {
16030 /* parser/parser_prod.nit:2971 */
16031 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AParam, ID_parser___parser_nodes___AParam)) /*cast AParam*/;
16032 if (UNTAG_Bool(REGB3)) {
16033 } else {
16034 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2971);
16035 }
16036 /* parser/parser_prod.nit:2972 */
16037 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
16038 if (UNTAG_Bool(REGB3)) {
16039 } else {
16040 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2972);
16041 }
16042 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
16043 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
16044 /* parser/parser_prod.nit:2973 */
16045 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16046 if (UNTAG_Bool(REGB3)) {
16047 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2973);
16048 }
16049 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16050 } else {
16051 /* parser/parser_prod.nit:2975 */
16052 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
16053 if (UNTAG_Bool(REGB3)) {
16054 } else {
16055 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2975);
16056 }
16057 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
16058 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
16059 }
16060 /* parser/parser_prod.nit:2977 */
16061 goto label1;
16062 }
16063 /* ../lib/standard/kernel.nit:354 */
16064 REGB2 = TAG_Int(1);
16065 /* ../lib/standard/kernel.nit:235 */
16066 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
16067 /* ../lib/standard/kernel.nit:354 */
16068 REGB0 = REGB2;
16069 } else {
16070 /* ../lib/standard/kernel.nit:352 */
16071 goto label2;
16072 }
16073 }
16074 label2: while(0);
16075 /* parser/parser_prod.nit:2980 */
16076 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[0]);
16077 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16078 if (UNTAG_Bool(REGB0)) {
16079 } else {
16080 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16081 if (UNTAG_Bool(REGB1)) {
16082 REGB1 = TAG_Bool(false);
16083 REGB0 = REGB1;
16084 } else {
16085 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16086 REGB0 = REGB1;
16087 }
16088 }
16089 if (UNTAG_Bool(REGB0)) {
16090 /* parser/parser_prod.nit:2981 */
16091 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16092 if (UNTAG_Bool(REGB0)) {
16093 } else {
16094 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16095 if (UNTAG_Bool(REGB1)) {
16096 REGB1 = TAG_Bool(false);
16097 REGB0 = REGB1;
16098 } else {
16099 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16100 REGB0 = REGB1;
16101 }
16102 }
16103 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16104 if (UNTAG_Bool(REGB0)) {
16105 /* parser/parser_prod.nit:2982 */
16106 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16107 if (UNTAG_Bool(REGB0)) {
16108 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2982);
16109 }
16110 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16111 /* parser/parser_prod.nit:2983 */
16112 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
16113 if (UNTAG_Bool(REGB0)) {
16114 } else {
16115 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2983);
16116 }
16117 /* parser/parser_prod.nit:2984 */
16118 ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
16119 } else {
16120 /* parser/parser_prod.nit:2986 */
16121 ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[0]) = NIT_NULL;
16122 }
16123 /* parser/parser_prod.nit:2988 */
16124 goto label1;
16125 }
16126 /* parser/parser_prod.nit:2990 */
16127 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]);
16128 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16129 if (UNTAG_Bool(REGB0)) {
16130 } else {
16131 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16132 if (UNTAG_Bool(REGB1)) {
16133 REGB1 = TAG_Bool(false);
16134 REGB0 = REGB1;
16135 } else {
16136 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16137 REGB0 = REGB1;
16138 }
16139 }
16140 if (UNTAG_Bool(REGB0)) {
16141 /* parser/parser_prod.nit:2991 */
16142 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16143 if (UNTAG_Bool(REGB0)) {
16144 } else {
16145 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16146 if (UNTAG_Bool(REGB1)) {
16147 REGB1 = TAG_Bool(false);
16148 REGB0 = REGB1;
16149 } else {
16150 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16151 REGB0 = REGB1;
16152 }
16153 }
16154 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16155 if (UNTAG_Bool(REGB0)) {
16156 /* parser/parser_prod.nit:2992 */
16157 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16158 if (UNTAG_Bool(REGB0)) {
16159 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2992);
16160 }
16161 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16162 /* parser/parser_prod.nit:2993 */
16163 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
16164 if (UNTAG_Bool(REGB0)) {
16165 } else {
16166 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2993);
16167 }
16168 /* parser/parser_prod.nit:2994 */
16169 ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[2];
16170 } else {
16171 /* parser/parser_prod.nit:2996 */
16172 ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = NIT_NULL;
16173 }
16174 /* parser/parser_prod.nit:2998 */
16175 goto label1;
16176 }
16177 /* parser/parser_prod.nit:3000 */
16178 REGB0 = TAG_Int(0);
16179 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
16180 if (UNTAG_Bool(REGB1)) {
16181 } else {
16182 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3000);
16183 }
16184 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
16185 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
16186 /* ../lib/standard/kernel.nit:352 */
16187 while(1) {
16188 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
16189 if (UNTAG_Bool(REGB2)) {
16190 } else {
16191 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
16192 }
16193 /* ../lib/standard/kernel.nit:232 */
16194 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
16195 /* ../lib/standard/kernel.nit:352 */
16196 if (UNTAG_Bool(REGB2)) {
16197 /* parser/parser_prod.nit:3000 */
16198 REGB2 = REGB0;
16199 /* parser/parser_prod.nit:3001 */
16200 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
16201 if (UNTAG_Bool(REGB3)) {
16202 } else {
16203 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3001);
16204 }
16205 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
16206 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
16207 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16208 if (UNTAG_Bool(REGB3)) {
16209 } else {
16210 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16211 if (UNTAG_Bool(REGB4)) {
16212 REGB4 = TAG_Bool(false);
16213 REGB3 = REGB4;
16214 } else {
16215 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16216 REGB3 = REGB4;
16217 }
16218 }
16219 if (UNTAG_Bool(REGB3)) {
16220 /* parser/parser_prod.nit:3002 */
16221 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16222 if (UNTAG_Bool(REGB3)) {
16223 } else {
16224 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16225 if (UNTAG_Bool(REGB4)) {
16226 REGB4 = TAG_Bool(false);
16227 REGB3 = REGB4;
16228 } else {
16229 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16230 REGB3 = REGB4;
16231 }
16232 }
16233 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
16234 if (UNTAG_Bool(REGB3)) {
16235 /* parser/parser_prod.nit:3003 */
16236 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClosureDecl, ID_parser___parser_nodes___AClosureDecl)) /*cast AClosureDecl*/;
16237 if (UNTAG_Bool(REGB3)) {
16238 } else {
16239 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3003);
16240 }
16241 /* parser/parser_prod.nit:3004 */
16242 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
16243 if (UNTAG_Bool(REGB3)) {
16244 } else {
16245 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3004);
16246 }
16247 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
16248 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
16249 /* parser/parser_prod.nit:3005 */
16250 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16251 if (UNTAG_Bool(REGB3)) {
16252 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3005);
16253 }
16254 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16255 } else {
16256 /* parser/parser_prod.nit:3007 */
16257 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
16258 if (UNTAG_Bool(REGB3)) {
16259 } else {
16260 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3007);
16261 }
16262 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
16263 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
16264 }
16265 /* parser/parser_prod.nit:3009 */
16266 goto label1;
16267 }
16268 /* ../lib/standard/kernel.nit:354 */
16269 REGB2 = TAG_Int(1);
16270 /* ../lib/standard/kernel.nit:235 */
16271 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
16272 /* ../lib/standard/kernel.nit:354 */
16273 REGB0 = REGB2;
16274 } else {
16275 /* ../lib/standard/kernel.nit:352 */
16276 goto label3;
16277 }
16278 }
16279 label3: while(0);
16280 label1: while(0);
16281 stack_frame_head = fra.me.prev;
16282 return;
16283 }
16284 void parser___parser_prod___ASignature___visit_all(val_t p0, val_t p1){
16285 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16286 val_t REGB0;
16287 val_t REGB1;
16288 val_t tmp;
16289 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16290 fra.me.file = LOCATE_parser___parser_prod;
16291 fra.me.line = 3014;
16292 fra.me.meth = LOCATE_parser___parser_prod___ASignature___visit_all;
16293 fra.me.has_broke = 0;
16294 fra.me.REG_size = 4;
16295 fra.me.nitni_local_ref_head = NULL;
16296 fra.me.REG[0] = NIT_NULL;
16297 fra.me.REG[1] = NIT_NULL;
16298 fra.me.REG[2] = NIT_NULL;
16299 fra.me.REG[3] = NIT_NULL;
16300 fra.me.REG[0] = p0;
16301 fra.me.REG[1] = p1;
16302 /* parser/parser_prod.nit:3014 */
16303 fra.me.REG[2] = fra.me.REG[0];
16304 /* parser/parser_prod.nit:3016 */
16305 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[2]);
16306 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16307 if (UNTAG_Bool(REGB0)) {
16308 } else {
16309 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16310 if (UNTAG_Bool(REGB1)) {
16311 REGB1 = TAG_Bool(false);
16312 REGB0 = REGB1;
16313 } else {
16314 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
16315 REGB0 = REGB1;
16316 }
16317 }
16318 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16319 if (UNTAG_Bool(REGB0)) {
16320 /* parser/parser_prod.nit:3017 */
16321 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[2]);
16322 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
16323 if (UNTAG_Bool(REGB0)) {
16324 } else {
16325 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3017);
16326 }
16327 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16328 }
16329 /* parser/parser_prod.nit:3019 */
16330 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[2])!=NIT_NULL);
16331 if (UNTAG_Bool(REGB0)) {
16332 } else {
16333 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 3019);
16334 }
16335 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[2]);
16336 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASignature___visit_all_1));
16337 /* parser/parser_prod.nit:3022 */
16338 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[2]);
16339 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16340 if (UNTAG_Bool(REGB0)) {
16341 } else {
16342 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16343 if (UNTAG_Bool(REGB1)) {
16344 REGB1 = TAG_Bool(false);
16345 REGB0 = REGB1;
16346 } else {
16347 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
16348 REGB0 = REGB1;
16349 }
16350 }
16351 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16352 if (UNTAG_Bool(REGB0)) {
16353 /* parser/parser_prod.nit:3023 */
16354 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[2]);
16355 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
16356 if (UNTAG_Bool(REGB0)) {
16357 } else {
16358 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3023);
16359 }
16360 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16361 }
16362 /* parser/parser_prod.nit:3025 */
16363 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[2]);
16364 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16365 if (UNTAG_Bool(REGB0)) {
16366 } else {
16367 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16368 if (UNTAG_Bool(REGB1)) {
16369 REGB1 = TAG_Bool(false);
16370 REGB0 = REGB1;
16371 } else {
16372 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
16373 REGB0 = REGB1;
16374 }
16375 }
16376 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16377 if (UNTAG_Bool(REGB0)) {
16378 /* parser/parser_prod.nit:3026 */
16379 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[2]);
16380 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
16381 if (UNTAG_Bool(REGB0)) {
16382 } else {
16383 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3026);
16384 }
16385 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16386 }
16387 /* parser/parser_prod.nit:3028 */
16388 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[2])!=NIT_NULL);
16389 if (UNTAG_Bool(REGB0)) {
16390 } else {
16391 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3028);
16392 }
16393 fra.me.REG[2] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[2]);
16394 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASignature___visit_all_2));
16395 stack_frame_head = fra.me.prev;
16396 return;
16397 }
16398 void OC_parser___parser_prod___ASignature___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
16399 struct {struct stack_frame_t me;} fra;
16400 fun_t CREG[1];
16401 val_t tmp;
16402 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16403 fra.me.file = LOCATE_parser___parser_prod;
16404 fra.me.line = 0;
16405 fra.me.meth = LOCATE_parser___parser_prod___ASignature___visit_all;
16406 fra.me.has_broke = 0;
16407 fra.me.REG_size = 1;
16408 fra.me.nitni_local_ref_head = NULL;
16409 fra.me.REG[0] = NIT_NULL;
16410 fra.me.closure_ctx = closctx_param;
16411 fra.me.closure_funs = CREG;
16412 fra.me.REG[0] = p0;
16413 CREG[0] = clos_fun0;
16414 /* parser/parser_prod.nit:3020 */
16415 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
16416 stack_frame_head = fra.me.prev;
16417 return;
16418 }
16419 void OC_parser___parser_prod___ASignature___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
16420 struct {struct stack_frame_t me;} fra;
16421 fun_t CREG[1];
16422 val_t tmp;
16423 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16424 fra.me.file = LOCATE_parser___parser_prod;
16425 fra.me.line = 0;
16426 fra.me.meth = LOCATE_parser___parser_prod___ASignature___visit_all;
16427 fra.me.has_broke = 0;
16428 fra.me.REG_size = 1;
16429 fra.me.nitni_local_ref_head = NULL;
16430 fra.me.REG[0] = NIT_NULL;
16431 fra.me.closure_ctx = closctx_param;
16432 fra.me.closure_funs = CREG;
16433 fra.me.REG[0] = p0;
16434 CREG[0] = clos_fun0;
16435 /* parser/parser_prod.nit:3029 */
16436 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
16437 stack_frame_head = fra.me.prev;
16438 return;
16439 }
16440 void parser___parser_prod___AParam___empty_init(val_t p0, int* init_table){
16441 int itpos99 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParam].i;
16442 struct {struct stack_frame_t me;} fra;
16443 val_t tmp;
16444 if (init_table[itpos99]) return;
16445 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16446 fra.me.file = LOCATE_parser___parser_prod;
16447 fra.me.line = 3034;
16448 fra.me.meth = LOCATE_parser___parser_prod___AParam___empty_init;
16449 fra.me.has_broke = 0;
16450 fra.me.REG_size = 1;
16451 fra.me.nitni_local_ref_head = NULL;
16452 fra.me.REG[0] = NIT_NULL;
16453 fra.me.REG[0] = p0;
16454 stack_frame_head = fra.me.prev;
16455 init_table[itpos99] = 1;
16456 return;
16457 }
16458 void parser___parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
16459 int itpos100 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParam].i;
16460 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
16461 val_t REGB0;
16462 val_t REGB1;
16463 val_t tmp;
16464 if (init_table[itpos100]) return;
16465 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16466 fra.me.file = LOCATE_parser___parser_prod;
16467 fra.me.line = 3036;
16468 fra.me.meth = LOCATE_parser___parser_prod___AParam___init_aparam;
16469 fra.me.has_broke = 0;
16470 fra.me.REG_size = 5;
16471 fra.me.nitni_local_ref_head = NULL;
16472 fra.me.REG[0] = NIT_NULL;
16473 fra.me.REG[1] = NIT_NULL;
16474 fra.me.REG[2] = NIT_NULL;
16475 fra.me.REG[3] = NIT_NULL;
16476 fra.me.REG[4] = NIT_NULL;
16477 fra.me.REG[0] = p0;
16478 fra.me.REG[1] = p1;
16479 fra.me.REG[2] = p2;
16480 fra.me.REG[3] = p3;
16481 /* parser/parser_prod.nit:3036 */
16482 fra.me.REG[4] = fra.me.REG[0];
16483 /* parser/parser_prod.nit:3042 */
16484 CALL_parser___parser_prod___AParam___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
16485 /* parser/parser_prod.nit:3043 */
16486 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
16487 if (UNTAG_Bool(REGB0)) {
16488 } else {
16489 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3043);
16490 }
16491 ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[4]) = fra.me.REG[1];
16492 /* parser/parser_prod.nit:3044 */
16493 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16494 if (UNTAG_Bool(REGB0)) {
16495 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3044);
16496 }
16497 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
16498 /* parser/parser_prod.nit:3045 */
16499 ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[4]) = fra.me.REG[2];
16500 /* parser/parser_prod.nit:3046 */
16501 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16502 if (UNTAG_Bool(REGB0)) {
16503 } else {
16504 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16505 if (UNTAG_Bool(REGB1)) {
16506 REGB1 = TAG_Bool(false);
16507 REGB0 = REGB1;
16508 } else {
16509 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16510 REGB0 = REGB1;
16511 }
16512 }
16513 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16514 if (UNTAG_Bool(REGB0)) {
16515 /* parser/parser_prod.nit:3047 */
16516 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16517 if (UNTAG_Bool(REGB0)) {
16518 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3047);
16519 }
16520 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
16521 }
16522 /* parser/parser_prod.nit:3049 */
16523 ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[4]) = fra.me.REG[3];
16524 /* parser/parser_prod.nit:3050 */
16525 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16526 if (UNTAG_Bool(REGB0)) {
16527 } else {
16528 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16529 if (UNTAG_Bool(REGB1)) {
16530 REGB1 = TAG_Bool(false);
16531 REGB0 = REGB1;
16532 } else {
16533 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
16534 REGB0 = REGB1;
16535 }
16536 }
16537 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16538 if (UNTAG_Bool(REGB0)) {
16539 /* parser/parser_prod.nit:3051 */
16540 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16541 if (UNTAG_Bool(REGB0)) {
16542 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3051);
16543 }
16544 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16545 }
16546 stack_frame_head = fra.me.prev;
16547 init_table[itpos100] = 1;
16548 return;
16549 }
16550 void parser___parser_prod___AParam___replace_child(val_t p0, val_t p1, val_t p2){
16551 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16552 val_t REGB0;
16553 val_t REGB1;
16554 val_t tmp;
16555 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16556 fra.me.file = LOCATE_parser___parser_prod;
16557 fra.me.line = 3055;
16558 fra.me.meth = LOCATE_parser___parser_prod___AParam___replace_child;
16559 fra.me.has_broke = 0;
16560 fra.me.REG_size = 4;
16561 fra.me.nitni_local_ref_head = NULL;
16562 fra.me.REG[0] = NIT_NULL;
16563 fra.me.REG[1] = NIT_NULL;
16564 fra.me.REG[2] = NIT_NULL;
16565 fra.me.REG[3] = NIT_NULL;
16566 fra.me.REG[0] = p0;
16567 fra.me.REG[1] = p1;
16568 fra.me.REG[2] = p2;
16569 /* parser/parser_prod.nit:3057 */
16570 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0])!=NIT_NULL);
16571 if (UNTAG_Bool(REGB0)) {
16572 } else {
16573 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3057);
16574 }
16575 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0]);
16576 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16577 if (UNTAG_Bool(REGB0)) {
16578 } else {
16579 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16580 REGB0 = REGB1;
16581 }
16582 if (UNTAG_Bool(REGB0)) {
16583 /* parser/parser_prod.nit:3058 */
16584 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16585 if (UNTAG_Bool(REGB0)) {
16586 } else {
16587 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16588 if (UNTAG_Bool(REGB1)) {
16589 REGB1 = TAG_Bool(false);
16590 REGB0 = REGB1;
16591 } else {
16592 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16593 REGB0 = REGB1;
16594 }
16595 }
16596 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16597 if (UNTAG_Bool(REGB0)) {
16598 /* parser/parser_prod.nit:3059 */
16599 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16600 if (UNTAG_Bool(REGB0)) {
16601 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3059);
16602 }
16603 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16604 /* parser/parser_prod.nit:3060 */
16605 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
16606 if (UNTAG_Bool(REGB0)) {
16607 } else {
16608 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3060);
16609 }
16610 /* parser/parser_prod.nit:3061 */
16611 ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0]) = fra.me.REG[2];
16612 } else {
16613 /* parser/parser_prod.nit:3063 */
16614 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3063);
16615 }
16616 /* parser/parser_prod.nit:3065 */
16617 goto label1;
16618 }
16619 /* parser/parser_prod.nit:3067 */
16620 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]);
16621 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16622 if (UNTAG_Bool(REGB0)) {
16623 } else {
16624 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16625 if (UNTAG_Bool(REGB1)) {
16626 REGB1 = TAG_Bool(false);
16627 REGB0 = REGB1;
16628 } else {
16629 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16630 REGB0 = REGB1;
16631 }
16632 }
16633 if (UNTAG_Bool(REGB0)) {
16634 /* parser/parser_prod.nit:3068 */
16635 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16636 if (UNTAG_Bool(REGB0)) {
16637 } else {
16638 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16639 if (UNTAG_Bool(REGB1)) {
16640 REGB1 = TAG_Bool(false);
16641 REGB0 = REGB1;
16642 } else {
16643 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16644 REGB0 = REGB1;
16645 }
16646 }
16647 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16648 if (UNTAG_Bool(REGB0)) {
16649 /* parser/parser_prod.nit:3069 */
16650 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16651 if (UNTAG_Bool(REGB0)) {
16652 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3069);
16653 }
16654 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16655 /* parser/parser_prod.nit:3070 */
16656 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
16657 if (UNTAG_Bool(REGB0)) {
16658 } else {
16659 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3070);
16660 }
16661 /* parser/parser_prod.nit:3071 */
16662 ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]) = fra.me.REG[2];
16663 } else {
16664 /* parser/parser_prod.nit:3073 */
16665 ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]) = NIT_NULL;
16666 }
16667 /* parser/parser_prod.nit:3075 */
16668 goto label1;
16669 }
16670 /* parser/parser_prod.nit:3077 */
16671 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]);
16672 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16673 if (UNTAG_Bool(REGB0)) {
16674 } else {
16675 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16676 if (UNTAG_Bool(REGB1)) {
16677 REGB1 = TAG_Bool(false);
16678 REGB0 = REGB1;
16679 } else {
16680 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16681 REGB0 = REGB1;
16682 }
16683 }
16684 if (UNTAG_Bool(REGB0)) {
16685 /* parser/parser_prod.nit:3078 */
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_standard___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:3079 */
16701 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16702 if (UNTAG_Bool(REGB0)) {
16703 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3079);
16704 }
16705 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16706 /* parser/parser_prod.nit:3080 */
16707 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TDotdotdot, ID_parser___parser_nodes___TDotdotdot)) /*cast TDotdotdot*/;
16708 if (UNTAG_Bool(REGB0)) {
16709 } else {
16710 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3080);
16711 }
16712 /* parser/parser_prod.nit:3081 */
16713 ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = fra.me.REG[2];
16714 } else {
16715 /* parser/parser_prod.nit:3083 */
16716 ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = NIT_NULL;
16717 }
16718 /* parser/parser_prod.nit:3085 */
16719 goto label1;
16720 }
16721 label1: while(0);
16722 stack_frame_head = fra.me.prev;
16723 return;
16724 }
16725 void parser___parser_prod___AParam___visit_all(val_t p0, val_t p1){
16726 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16727 val_t REGB0;
16728 val_t REGB1;
16729 val_t tmp;
16730 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16731 fra.me.file = LOCATE_parser___parser_prod;
16732 fra.me.line = 3089;
16733 fra.me.meth = LOCATE_parser___parser_prod___AParam___visit_all;
16734 fra.me.has_broke = 0;
16735 fra.me.REG_size = 4;
16736 fra.me.nitni_local_ref_head = NULL;
16737 fra.me.REG[0] = NIT_NULL;
16738 fra.me.REG[1] = NIT_NULL;
16739 fra.me.REG[2] = NIT_NULL;
16740 fra.me.REG[3] = NIT_NULL;
16741 fra.me.REG[0] = p0;
16742 fra.me.REG[1] = p1;
16743 /* parser/parser_prod.nit:3089 */
16744 fra.me.REG[2] = fra.me.REG[0];
16745 /* parser/parser_prod.nit:3091 */
16746 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[2])!=NIT_NULL);
16747 if (UNTAG_Bool(REGB0)) {
16748 } else {
16749 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3091);
16750 }
16751 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[2]);
16752 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16753 /* parser/parser_prod.nit:3092 */
16754 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[2]);
16755 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16756 if (UNTAG_Bool(REGB0)) {
16757 } else {
16758 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16759 if (UNTAG_Bool(REGB1)) {
16760 REGB1 = TAG_Bool(false);
16761 REGB0 = REGB1;
16762 } else {
16763 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
16764 REGB0 = REGB1;
16765 }
16766 }
16767 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16768 if (UNTAG_Bool(REGB0)) {
16769 /* parser/parser_prod.nit:3093 */
16770 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[2]);
16771 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
16772 if (UNTAG_Bool(REGB0)) {
16773 } else {
16774 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3093);
16775 }
16776 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16777 }
16778 /* parser/parser_prod.nit:3095 */
16779 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[2]);
16780 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16781 if (UNTAG_Bool(REGB0)) {
16782 } else {
16783 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16784 if (UNTAG_Bool(REGB1)) {
16785 REGB1 = TAG_Bool(false);
16786 REGB0 = REGB1;
16787 } else {
16788 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
16789 REGB0 = REGB1;
16790 }
16791 }
16792 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16793 if (UNTAG_Bool(REGB0)) {
16794 /* parser/parser_prod.nit:3096 */
16795 fra.me.REG[2] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[2]);
16796 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TDotdotdot, ID_parser___parser_nodes___TDotdotdot)) /*cast TDotdotdot*/;
16797 if (UNTAG_Bool(REGB0)) {
16798 } else {
16799 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3096);
16800 }
16801 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16802 }
16803 stack_frame_head = fra.me.prev;
16804 return;
16805 }
16806 void parser___parser_prod___AClosureDecl___empty_init(val_t p0, int* init_table){
16807 int itpos101 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDecl].i;
16808 struct {struct stack_frame_t me;} fra;
16809 val_t tmp;
16810 if (init_table[itpos101]) return;
16811 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16812 fra.me.file = LOCATE_parser___parser_prod;
16813 fra.me.line = 3101;
16814 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___empty_init;
16815 fra.me.has_broke = 0;
16816 fra.me.REG_size = 1;
16817 fra.me.nitni_local_ref_head = NULL;
16818 fra.me.REG[0] = NIT_NULL;
16819 fra.me.REG[0] = p0;
16820 stack_frame_head = fra.me.prev;
16821 init_table[itpos101] = 1;
16822 return;
16823 }
16824 void parser___parser_prod___AClosureDecl___init_aclosuredecl(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
16825 int itpos102 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDecl].i;
16826 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
16827 val_t REGB0;
16828 val_t REGB1;
16829 val_t tmp;
16830 if (init_table[itpos102]) return;
16831 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16832 fra.me.file = LOCATE_parser___parser_prod;
16833 fra.me.line = 3103;
16834 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___init_aclosuredecl;
16835 fra.me.has_broke = 0;
16836 fra.me.REG_size = 7;
16837 fra.me.nitni_local_ref_head = NULL;
16838 fra.me.REG[0] = NIT_NULL;
16839 fra.me.REG[1] = NIT_NULL;
16840 fra.me.REG[2] = NIT_NULL;
16841 fra.me.REG[3] = NIT_NULL;
16842 fra.me.REG[4] = NIT_NULL;
16843 fra.me.REG[5] = NIT_NULL;
16844 fra.me.REG[6] = NIT_NULL;
16845 fra.me.REG[0] = p0;
16846 fra.me.REG[1] = p1;
16847 fra.me.REG[2] = p2;
16848 fra.me.REG[3] = p3;
16849 fra.me.REG[4] = p4;
16850 fra.me.REG[5] = p5;
16851 /* parser/parser_prod.nit:3103 */
16852 fra.me.REG[6] = fra.me.REG[0];
16853 /* parser/parser_prod.nit:3111 */
16854 CALL_parser___parser_prod___AClosureDecl___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
16855 /* parser/parser_prod.nit:3112 */
16856 ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[6]) = fra.me.REG[1];
16857 /* parser/parser_prod.nit:3113 */
16858 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16859 if (UNTAG_Bool(REGB0)) {
16860 } else {
16861 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16862 if (UNTAG_Bool(REGB1)) {
16863 REGB1 = TAG_Bool(false);
16864 REGB0 = REGB1;
16865 } else {
16866 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
16867 REGB0 = REGB1;
16868 }
16869 }
16870 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16871 if (UNTAG_Bool(REGB0)) {
16872 /* parser/parser_prod.nit:3114 */
16873 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16874 if (UNTAG_Bool(REGB0)) {
16875 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3114);
16876 }
16877 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
16878 }
16879 /* parser/parser_prod.nit:3116 */
16880 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
16881 if (UNTAG_Bool(REGB0)) {
16882 } else {
16883 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3116);
16884 }
16885 ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[6]) = fra.me.REG[2];
16886 /* parser/parser_prod.nit:3117 */
16887 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16888 if (UNTAG_Bool(REGB0)) {
16889 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3117);
16890 }
16891 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
16892 /* parser/parser_prod.nit:3118 */
16893 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
16894 if (UNTAG_Bool(REGB0)) {
16895 } else {
16896 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3118);
16897 }
16898 ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[6]) = fra.me.REG[3];
16899 /* parser/parser_prod.nit:3119 */
16900 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16901 if (UNTAG_Bool(REGB0)) {
16902 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3119);
16903 }
16904 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
16905 /* parser/parser_prod.nit:3120 */
16906 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
16907 if (UNTAG_Bool(REGB0)) {
16908 } else {
16909 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3120);
16910 }
16911 ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[6]) = fra.me.REG[4];
16912 /* parser/parser_prod.nit:3121 */
16913 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
16914 if (UNTAG_Bool(REGB0)) {
16915 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3121);
16916 }
16917 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
16918 /* parser/parser_prod.nit:3122 */
16919 ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[6]) = fra.me.REG[5];
16920 /* parser/parser_prod.nit:3123 */
16921 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
16922 if (UNTAG_Bool(REGB0)) {
16923 } else {
16924 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
16925 if (UNTAG_Bool(REGB1)) {
16926 REGB1 = TAG_Bool(false);
16927 REGB0 = REGB1;
16928 } else {
16929 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
16930 REGB0 = REGB1;
16931 }
16932 }
16933 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16934 if (UNTAG_Bool(REGB0)) {
16935 /* parser/parser_prod.nit:3124 */
16936 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
16937 if (UNTAG_Bool(REGB0)) {
16938 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3124);
16939 }
16940 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
16941 }
16942 stack_frame_head = fra.me.prev;
16943 init_table[itpos102] = 1;
16944 return;
16945 }
16946 void parser___parser_prod___AClosureDecl___replace_child(val_t p0, val_t p1, val_t p2){
16947 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16948 val_t REGB0;
16949 val_t REGB1;
16950 val_t tmp;
16951 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16952 fra.me.file = LOCATE_parser___parser_prod;
16953 fra.me.line = 3128;
16954 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___replace_child;
16955 fra.me.has_broke = 0;
16956 fra.me.REG_size = 4;
16957 fra.me.nitni_local_ref_head = NULL;
16958 fra.me.REG[0] = NIT_NULL;
16959 fra.me.REG[1] = NIT_NULL;
16960 fra.me.REG[2] = NIT_NULL;
16961 fra.me.REG[3] = NIT_NULL;
16962 fra.me.REG[0] = p0;
16963 fra.me.REG[1] = p1;
16964 fra.me.REG[2] = p2;
16965 /* parser/parser_prod.nit:3130 */
16966 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]);
16967 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16968 if (UNTAG_Bool(REGB0)) {
16969 } else {
16970 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16971 if (UNTAG_Bool(REGB1)) {
16972 REGB1 = TAG_Bool(false);
16973 REGB0 = REGB1;
16974 } else {
16975 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16976 REGB0 = REGB1;
16977 }
16978 }
16979 if (UNTAG_Bool(REGB0)) {
16980 /* parser/parser_prod.nit:3131 */
16981 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16982 if (UNTAG_Bool(REGB0)) {
16983 } else {
16984 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16985 if (UNTAG_Bool(REGB1)) {
16986 REGB1 = TAG_Bool(false);
16987 REGB0 = REGB1;
16988 } else {
16989 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16990 REGB0 = REGB1;
16991 }
16992 }
16993 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16994 if (UNTAG_Bool(REGB0)) {
16995 /* parser/parser_prod.nit:3132 */
16996 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16997 if (UNTAG_Bool(REGB0)) {
16998 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3132);
16999 }
17000 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17001 /* parser/parser_prod.nit:3133 */
17002 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwbreak, ID_parser___parser_nodes___TKwbreak)) /*cast TKwbreak*/;
17003 if (UNTAG_Bool(REGB0)) {
17004 } else {
17005 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3133);
17006 }
17007 /* parser/parser_prod.nit:3134 */
17008 ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
17009 } else {
17010 /* parser/parser_prod.nit:3136 */
17011 ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = NIT_NULL;
17012 }
17013 /* parser/parser_prod.nit:3138 */
17014 goto label1;
17015 }
17016 /* parser/parser_prod.nit:3140 */
17017 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0])!=NIT_NULL);
17018 if (UNTAG_Bool(REGB0)) {
17019 } else {
17020 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 3140);
17021 }
17022 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]);
17023 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17024 if (UNTAG_Bool(REGB0)) {
17025 } else {
17026 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17027 REGB0 = REGB1;
17028 }
17029 if (UNTAG_Bool(REGB0)) {
17030 /* parser/parser_prod.nit:3141 */
17031 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17032 if (UNTAG_Bool(REGB0)) {
17033 } else {
17034 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17035 if (UNTAG_Bool(REGB1)) {
17036 REGB1 = TAG_Bool(false);
17037 REGB0 = REGB1;
17038 } else {
17039 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17040 REGB0 = REGB1;
17041 }
17042 }
17043 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17044 if (UNTAG_Bool(REGB0)) {
17045 /* parser/parser_prod.nit:3142 */
17046 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17047 if (UNTAG_Bool(REGB0)) {
17048 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3142);
17049 }
17050 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17051 /* parser/parser_prod.nit:3143 */
17052 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast TBang*/;
17053 if (UNTAG_Bool(REGB0)) {
17054 } else {
17055 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3143);
17056 }
17057 /* parser/parser_prod.nit:3144 */
17058 ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]) = fra.me.REG[2];
17059 } else {
17060 /* parser/parser_prod.nit:3146 */
17061 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3146);
17062 }
17063 /* parser/parser_prod.nit:3148 */
17064 goto label1;
17065 }
17066 /* parser/parser_prod.nit:3150 */
17067 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0])!=NIT_NULL);
17068 if (UNTAG_Bool(REGB0)) {
17069 } else {
17070 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3150);
17071 }
17072 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0]);
17073 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17074 if (UNTAG_Bool(REGB0)) {
17075 } else {
17076 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17077 REGB0 = REGB1;
17078 }
17079 if (UNTAG_Bool(REGB0)) {
17080 /* parser/parser_prod.nit:3151 */
17081 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17082 if (UNTAG_Bool(REGB0)) {
17083 } else {
17084 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17085 if (UNTAG_Bool(REGB1)) {
17086 REGB1 = TAG_Bool(false);
17087 REGB0 = REGB1;
17088 } else {
17089 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17090 REGB0 = REGB1;
17091 }
17092 }
17093 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17094 if (UNTAG_Bool(REGB0)) {
17095 /* parser/parser_prod.nit:3152 */
17096 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17097 if (UNTAG_Bool(REGB0)) {
17098 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3152);
17099 }
17100 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17101 /* parser/parser_prod.nit:3153 */
17102 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
17103 if (UNTAG_Bool(REGB0)) {
17104 } else {
17105 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3153);
17106 }
17107 /* parser/parser_prod.nit:3154 */
17108 ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0]) = fra.me.REG[2];
17109 } else {
17110 /* parser/parser_prod.nit:3156 */
17111 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3156);
17112 }
17113 /* parser/parser_prod.nit:3158 */
17114 goto label1;
17115 }
17116 /* parser/parser_prod.nit:3160 */
17117 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0])!=NIT_NULL);
17118 if (UNTAG_Bool(REGB0)) {
17119 } else {
17120 nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser___parser_prod, 3160);
17121 }
17122 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]);
17123 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17124 if (UNTAG_Bool(REGB0)) {
17125 } else {
17126 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17127 REGB0 = REGB1;
17128 }
17129 if (UNTAG_Bool(REGB0)) {
17130 /* parser/parser_prod.nit:3161 */
17131 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17132 if (UNTAG_Bool(REGB0)) {
17133 } else {
17134 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17135 if (UNTAG_Bool(REGB1)) {
17136 REGB1 = TAG_Bool(false);
17137 REGB0 = REGB1;
17138 } else {
17139 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17140 REGB0 = REGB1;
17141 }
17142 }
17143 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17144 if (UNTAG_Bool(REGB0)) {
17145 /* parser/parser_prod.nit:3162 */
17146 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17147 if (UNTAG_Bool(REGB0)) {
17148 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3162);
17149 }
17150 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17151 /* parser/parser_prod.nit:3163 */
17152 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
17153 if (UNTAG_Bool(REGB0)) {
17154 } else {
17155 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3163);
17156 }
17157 /* parser/parser_prod.nit:3164 */
17158 ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]) = fra.me.REG[2];
17159 } else {
17160 /* parser/parser_prod.nit:3166 */
17161 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3166);
17162 }
17163 /* parser/parser_prod.nit:3168 */
17164 goto label1;
17165 }
17166 /* parser/parser_prod.nit:3170 */
17167 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]);
17168 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17169 if (UNTAG_Bool(REGB0)) {
17170 } else {
17171 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17172 if (UNTAG_Bool(REGB1)) {
17173 REGB1 = TAG_Bool(false);
17174 REGB0 = REGB1;
17175 } else {
17176 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17177 REGB0 = REGB1;
17178 }
17179 }
17180 if (UNTAG_Bool(REGB0)) {
17181 /* parser/parser_prod.nit:3171 */
17182 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17183 if (UNTAG_Bool(REGB0)) {
17184 } else {
17185 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17186 if (UNTAG_Bool(REGB1)) {
17187 REGB1 = TAG_Bool(false);
17188 REGB0 = REGB1;
17189 } else {
17190 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17191 REGB0 = REGB1;
17192 }
17193 }
17194 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17195 if (UNTAG_Bool(REGB0)) {
17196 /* parser/parser_prod.nit:3172 */
17197 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17198 if (UNTAG_Bool(REGB0)) {
17199 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3172);
17200 }
17201 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17202 /* parser/parser_prod.nit:3173 */
17203 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
17204 if (UNTAG_Bool(REGB0)) {
17205 } else {
17206 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3173);
17207 }
17208 /* parser/parser_prod.nit:3174 */
17209 ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = fra.me.REG[2];
17210 } else {
17211 /* parser/parser_prod.nit:3176 */
17212 ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = NIT_NULL;
17213 }
17214 /* parser/parser_prod.nit:3178 */
17215 goto label1;
17216 }
17217 label1: while(0);
17218 stack_frame_head = fra.me.prev;
17219 return;
17220 }
17221 void parser___parser_prod___AClosureDecl___visit_all(val_t p0, val_t p1){
17222 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17223 val_t REGB0;
17224 val_t REGB1;
17225 val_t tmp;
17226 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17227 fra.me.file = LOCATE_parser___parser_prod;
17228 fra.me.line = 3182;
17229 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___visit_all;
17230 fra.me.has_broke = 0;
17231 fra.me.REG_size = 4;
17232 fra.me.nitni_local_ref_head = NULL;
17233 fra.me.REG[0] = NIT_NULL;
17234 fra.me.REG[1] = NIT_NULL;
17235 fra.me.REG[2] = NIT_NULL;
17236 fra.me.REG[3] = NIT_NULL;
17237 fra.me.REG[0] = p0;
17238 fra.me.REG[1] = p1;
17239 /* parser/parser_prod.nit:3182 */
17240 fra.me.REG[2] = fra.me.REG[0];
17241 /* parser/parser_prod.nit:3184 */
17242 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[2]);
17243 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17244 if (UNTAG_Bool(REGB0)) {
17245 } else {
17246 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17247 if (UNTAG_Bool(REGB1)) {
17248 REGB1 = TAG_Bool(false);
17249 REGB0 = REGB1;
17250 } else {
17251 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17252 REGB0 = REGB1;
17253 }
17254 }
17255 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17256 if (UNTAG_Bool(REGB0)) {
17257 /* parser/parser_prod.nit:3185 */
17258 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[2]);
17259 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwbreak, ID_parser___parser_nodes___TKwbreak)) /*cast TKwbreak*/;
17260 if (UNTAG_Bool(REGB0)) {
17261 } else {
17262 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3185);
17263 }
17264 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17265 }
17266 /* parser/parser_prod.nit:3187 */
17267 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[2])!=NIT_NULL);
17268 if (UNTAG_Bool(REGB0)) {
17269 } else {
17270 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 3187);
17271 }
17272 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[2]);
17273 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17274 /* parser/parser_prod.nit:3188 */
17275 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[2])!=NIT_NULL);
17276 if (UNTAG_Bool(REGB0)) {
17277 } else {
17278 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3188);
17279 }
17280 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[2]);
17281 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17282 /* parser/parser_prod.nit:3189 */
17283 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[2])!=NIT_NULL);
17284 if (UNTAG_Bool(REGB0)) {
17285 } else {
17286 nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser___parser_prod, 3189);
17287 }
17288 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[2]);
17289 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17290 /* parser/parser_prod.nit:3190 */
17291 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[2]);
17292 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17293 if (UNTAG_Bool(REGB0)) {
17294 } else {
17295 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17296 if (UNTAG_Bool(REGB1)) {
17297 REGB1 = TAG_Bool(false);
17298 REGB0 = REGB1;
17299 } else {
17300 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17301 REGB0 = REGB1;
17302 }
17303 }
17304 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17305 if (UNTAG_Bool(REGB0)) {
17306 /* parser/parser_prod.nit:3191 */
17307 fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[2]);
17308 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
17309 if (UNTAG_Bool(REGB0)) {
17310 } else {
17311 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3191);
17312 }
17313 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17314 }
17315 stack_frame_head = fra.me.prev;
17316 return;
17317 }
17318 void parser___parser_prod___AType___empty_init(val_t p0, int* init_table){
17319 int itpos103 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AType].i;
17320 struct {struct stack_frame_t me;} fra;
17321 val_t tmp;
17322 if (init_table[itpos103]) return;
17323 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17324 fra.me.file = LOCATE_parser___parser_prod;
17325 fra.me.line = 3196;
17326 fra.me.meth = LOCATE_parser___parser_prod___AType___empty_init;
17327 fra.me.has_broke = 0;
17328 fra.me.REG_size = 1;
17329 fra.me.nitni_local_ref_head = NULL;
17330 fra.me.REG[0] = NIT_NULL;
17331 fra.me.REG[0] = p0;
17332 stack_frame_head = fra.me.prev;
17333 init_table[itpos103] = 1;
17334 return;
17335 }
17336 void parser___parser_prod___AType___init_atype(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
17337 int itpos104 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AType].i;
17338 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
17339 val_t REGB0;
17340 val_t REGB1;
17341 val_t tmp;
17342 if (init_table[itpos104]) return;
17343 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17344 fra.me.file = LOCATE_parser___parser_prod;
17345 fra.me.line = 3198;
17346 fra.me.meth = LOCATE_parser___parser_prod___AType___init_atype;
17347 fra.me.has_broke = 0;
17348 fra.me.REG_size = 5;
17349 fra.me.nitni_local_ref_head = NULL;
17350 fra.me.REG[0] = NIT_NULL;
17351 fra.me.REG[1] = NIT_NULL;
17352 fra.me.REG[2] = NIT_NULL;
17353 fra.me.REG[3] = NIT_NULL;
17354 fra.me.REG[4] = 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:3198 */
17360 fra.me.REG[4] = fra.me.REG[0];
17361 /* parser/parser_prod.nit:3204 */
17362 CALL_parser___parser_prod___AType___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
17363 /* parser/parser_prod.nit:3205 */
17364 ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[4]) = fra.me.REG[1];
17365 /* parser/parser_prod.nit:3206 */
17366 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17367 if (UNTAG_Bool(REGB0)) {
17368 } else {
17369 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17370 if (UNTAG_Bool(REGB1)) {
17371 REGB1 = TAG_Bool(false);
17372 REGB0 = REGB1;
17373 } else {
17374 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
17375 REGB0 = REGB1;
17376 }
17377 }
17378 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17379 if (UNTAG_Bool(REGB0)) {
17380 /* parser/parser_prod.nit:3207 */
17381 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17382 if (UNTAG_Bool(REGB0)) {
17383 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3207);
17384 }
17385 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
17386 }
17387 /* parser/parser_prod.nit:3209 */
17388 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
17389 if (UNTAG_Bool(REGB0)) {
17390 } else {
17391 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3209);
17392 }
17393 ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[4]) = fra.me.REG[2];
17394 /* parser/parser_prod.nit:3210 */
17395 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17396 if (UNTAG_Bool(REGB0)) {
17397 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3210);
17398 }
17399 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17400 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AType___init_atype_1));
17401 stack_frame_head = fra.me.prev;
17402 init_table[itpos104] = 1;
17403 return;
17404 }
17405 void OC_parser___parser_prod___AType___init_atype_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
17406 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17407 val_t REGB0;
17408 fun_t CREG[1];
17409 val_t tmp;
17410 /* parser/parser_prod.nit:3211 */
17411 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17412 fra.me.file = LOCATE_parser___parser_prod;
17413 fra.me.line = 0;
17414 fra.me.meth = LOCATE_parser___parser_prod___AType___init_atype;
17415 fra.me.has_broke = 0;
17416 fra.me.REG_size = 2;
17417 fra.me.nitni_local_ref_head = NULL;
17418 fra.me.REG[0] = NIT_NULL;
17419 fra.me.REG[1] = NIT_NULL;
17420 fra.me.closure_ctx = closctx_param;
17421 fra.me.closure_funs = CREG;
17422 fra.me.REG[0] = p0;
17423 CREG[0] = clos_fun0;
17424 /* parser/parser_prod.nit:3212 */
17425 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
17426 if (UNTAG_Bool(REGB0)) {
17427 } else {
17428 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3212);
17429 }
17430 /* parser/parser_prod.nit:3213 */
17431 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(closctx->REG[4])!=NIT_NULL);
17432 if (UNTAG_Bool(REGB0)) {
17433 } else {
17434 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3213);
17435 }
17436 fra.me.REG[1] = ATTR_parser___parser_nodes___AType____n_types(closctx->REG[4]);
17437 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17438 /* parser/parser_prod.nit:3214 */
17439 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
17440 stack_frame_head = fra.me.prev;
17441 return;
17442 }
17443 void parser___parser_prod___AType___replace_child(val_t p0, val_t p1, val_t p2){
17444 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17445 val_t REGB0;
17446 val_t REGB1;
17447 val_t REGB2;
17448 val_t REGB3;
17449 val_t REGB4;
17450 val_t tmp;
17451 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17452 fra.me.file = LOCATE_parser___parser_prod;
17453 fra.me.line = 3218;
17454 fra.me.meth = LOCATE_parser___parser_prod___AType___replace_child;
17455 fra.me.has_broke = 0;
17456 fra.me.REG_size = 4;
17457 fra.me.nitni_local_ref_head = NULL;
17458 fra.me.REG[0] = NIT_NULL;
17459 fra.me.REG[1] = NIT_NULL;
17460 fra.me.REG[2] = NIT_NULL;
17461 fra.me.REG[3] = NIT_NULL;
17462 fra.me.REG[0] = p0;
17463 fra.me.REG[1] = p1;
17464 fra.me.REG[2] = p2;
17465 /* parser/parser_prod.nit:3220 */
17466 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]);
17467 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17468 if (UNTAG_Bool(REGB0)) {
17469 } else {
17470 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17471 if (UNTAG_Bool(REGB1)) {
17472 REGB1 = TAG_Bool(false);
17473 REGB0 = REGB1;
17474 } else {
17475 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17476 REGB0 = REGB1;
17477 }
17478 }
17479 if (UNTAG_Bool(REGB0)) {
17480 /* parser/parser_prod.nit:3221 */
17481 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17482 if (UNTAG_Bool(REGB0)) {
17483 } else {
17484 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17485 if (UNTAG_Bool(REGB1)) {
17486 REGB1 = TAG_Bool(false);
17487 REGB0 = REGB1;
17488 } else {
17489 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17490 REGB0 = REGB1;
17491 }
17492 }
17493 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17494 if (UNTAG_Bool(REGB0)) {
17495 /* parser/parser_prod.nit:3222 */
17496 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17497 if (UNTAG_Bool(REGB0)) {
17498 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3222);
17499 }
17500 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17501 /* parser/parser_prod.nit:3223 */
17502 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnullable, ID_parser___parser_nodes___TKwnullable)) /*cast TKwnullable*/;
17503 if (UNTAG_Bool(REGB0)) {
17504 } else {
17505 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3223);
17506 }
17507 /* parser/parser_prod.nit:3224 */
17508 ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
17509 } else {
17510 /* parser/parser_prod.nit:3226 */
17511 ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = NIT_NULL;
17512 }
17513 /* parser/parser_prod.nit:3228 */
17514 goto label1;
17515 }
17516 /* parser/parser_prod.nit:3230 */
17517 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0])!=NIT_NULL);
17518 if (UNTAG_Bool(REGB0)) {
17519 } else {
17520 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3230);
17521 }
17522 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0]);
17523 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17524 if (UNTAG_Bool(REGB0)) {
17525 } else {
17526 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17527 REGB0 = REGB1;
17528 }
17529 if (UNTAG_Bool(REGB0)) {
17530 /* parser/parser_prod.nit:3231 */
17531 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17532 if (UNTAG_Bool(REGB0)) {
17533 } else {
17534 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17535 if (UNTAG_Bool(REGB1)) {
17536 REGB1 = TAG_Bool(false);
17537 REGB0 = REGB1;
17538 } else {
17539 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17540 REGB0 = REGB1;
17541 }
17542 }
17543 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17544 if (UNTAG_Bool(REGB0)) {
17545 /* parser/parser_prod.nit:3232 */
17546 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17547 if (UNTAG_Bool(REGB0)) {
17548 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3232);
17549 }
17550 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17551 /* parser/parser_prod.nit:3233 */
17552 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
17553 if (UNTAG_Bool(REGB0)) {
17554 } else {
17555 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3233);
17556 }
17557 /* parser/parser_prod.nit:3234 */
17558 ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0]) = fra.me.REG[2];
17559 } else {
17560 /* parser/parser_prod.nit:3236 */
17561 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3236);
17562 }
17563 /* parser/parser_prod.nit:3238 */
17564 goto label1;
17565 }
17566 /* parser/parser_prod.nit:3240 */
17567 REGB0 = TAG_Int(0);
17568 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
17569 if (UNTAG_Bool(REGB1)) {
17570 } else {
17571 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3240);
17572 }
17573 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
17574 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
17575 /* ../lib/standard/kernel.nit:352 */
17576 while(1) {
17577 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
17578 if (UNTAG_Bool(REGB2)) {
17579 } else {
17580 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
17581 }
17582 /* ../lib/standard/kernel.nit:232 */
17583 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
17584 /* ../lib/standard/kernel.nit:352 */
17585 if (UNTAG_Bool(REGB2)) {
17586 /* parser/parser_prod.nit:3240 */
17587 REGB2 = REGB0;
17588 /* parser/parser_prod.nit:3241 */
17589 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
17590 if (UNTAG_Bool(REGB3)) {
17591 } else {
17592 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3241);
17593 }
17594 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
17595 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
17596 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17597 if (UNTAG_Bool(REGB3)) {
17598 } else {
17599 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17600 if (UNTAG_Bool(REGB4)) {
17601 REGB4 = TAG_Bool(false);
17602 REGB3 = REGB4;
17603 } else {
17604 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17605 REGB3 = REGB4;
17606 }
17607 }
17608 if (UNTAG_Bool(REGB3)) {
17609 /* parser/parser_prod.nit:3242 */
17610 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17611 if (UNTAG_Bool(REGB3)) {
17612 } else {
17613 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17614 if (UNTAG_Bool(REGB4)) {
17615 REGB4 = TAG_Bool(false);
17616 REGB3 = REGB4;
17617 } else {
17618 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17619 REGB3 = REGB4;
17620 }
17621 }
17622 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
17623 if (UNTAG_Bool(REGB3)) {
17624 /* parser/parser_prod.nit:3243 */
17625 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
17626 if (UNTAG_Bool(REGB3)) {
17627 } else {
17628 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3243);
17629 }
17630 /* parser/parser_prod.nit:3244 */
17631 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
17632 if (UNTAG_Bool(REGB3)) {
17633 } else {
17634 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3244);
17635 }
17636 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
17637 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
17638 /* parser/parser_prod.nit:3245 */
17639 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17640 if (UNTAG_Bool(REGB3)) {
17641 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3245);
17642 }
17643 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17644 } else {
17645 /* parser/parser_prod.nit:3247 */
17646 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
17647 if (UNTAG_Bool(REGB3)) {
17648 } else {
17649 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3247);
17650 }
17651 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
17652 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
17653 }
17654 /* parser/parser_prod.nit:3249 */
17655 goto label1;
17656 }
17657 /* ../lib/standard/kernel.nit:354 */
17658 REGB2 = TAG_Int(1);
17659 /* ../lib/standard/kernel.nit:235 */
17660 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
17661 /* ../lib/standard/kernel.nit:354 */
17662 REGB0 = REGB2;
17663 } else {
17664 /* ../lib/standard/kernel.nit:352 */
17665 goto label2;
17666 }
17667 }
17668 label2: while(0);
17669 label1: while(0);
17670 stack_frame_head = fra.me.prev;
17671 return;
17672 }
17673 void parser___parser_prod___AType___visit_all(val_t p0, val_t p1){
17674 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17675 val_t REGB0;
17676 val_t REGB1;
17677 val_t tmp;
17678 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17679 fra.me.file = LOCATE_parser___parser_prod;
17680 fra.me.line = 3254;
17681 fra.me.meth = LOCATE_parser___parser_prod___AType___visit_all;
17682 fra.me.has_broke = 0;
17683 fra.me.REG_size = 4;
17684 fra.me.nitni_local_ref_head = NULL;
17685 fra.me.REG[0] = NIT_NULL;
17686 fra.me.REG[1] = NIT_NULL;
17687 fra.me.REG[2] = NIT_NULL;
17688 fra.me.REG[3] = NIT_NULL;
17689 fra.me.REG[0] = p0;
17690 fra.me.REG[1] = p1;
17691 /* parser/parser_prod.nit:3254 */
17692 fra.me.REG[2] = fra.me.REG[0];
17693 /* parser/parser_prod.nit:3256 */
17694 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[2]);
17695 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17696 if (UNTAG_Bool(REGB0)) {
17697 } else {
17698 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17699 if (UNTAG_Bool(REGB1)) {
17700 REGB1 = TAG_Bool(false);
17701 REGB0 = REGB1;
17702 } else {
17703 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17704 REGB0 = REGB1;
17705 }
17706 }
17707 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17708 if (UNTAG_Bool(REGB0)) {
17709 /* parser/parser_prod.nit:3257 */
17710 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[2]);
17711 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwnullable, ID_parser___parser_nodes___TKwnullable)) /*cast TKwnullable*/;
17712 if (UNTAG_Bool(REGB0)) {
17713 } else {
17714 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3257);
17715 }
17716 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17717 }
17718 /* parser/parser_prod.nit:3259 */
17719 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[2])!=NIT_NULL);
17720 if (UNTAG_Bool(REGB0)) {
17721 } else {
17722 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3259);
17723 }
17724 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[2]);
17725 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17726 /* parser/parser_prod.nit:3260 */
17727 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[2])!=NIT_NULL);
17728 if (UNTAG_Bool(REGB0)) {
17729 } else {
17730 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3260);
17731 }
17732 fra.me.REG[2] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[2]);
17733 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AType___visit_all_1));
17734 stack_frame_head = fra.me.prev;
17735 return;
17736 }
17737 void OC_parser___parser_prod___AType___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
17738 struct {struct stack_frame_t me;} fra;
17739 fun_t CREG[1];
17740 val_t tmp;
17741 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17742 fra.me.file = LOCATE_parser___parser_prod;
17743 fra.me.line = 0;
17744 fra.me.meth = LOCATE_parser___parser_prod___AType___visit_all;
17745 fra.me.has_broke = 0;
17746 fra.me.REG_size = 1;
17747 fra.me.nitni_local_ref_head = NULL;
17748 fra.me.REG[0] = NIT_NULL;
17749 fra.me.closure_ctx = closctx_param;
17750 fra.me.closure_funs = CREG;
17751 fra.me.REG[0] = p0;
17752 CREG[0] = clos_fun0;
17753 /* parser/parser_prod.nit:3261 */
17754 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
17755 stack_frame_head = fra.me.prev;
17756 return;
17757 }
17758 void parser___parser_prod___ALabel___empty_init(val_t p0, int* init_table){
17759 int itpos105 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALabel].i;
17760 struct {struct stack_frame_t me;} fra;
17761 val_t tmp;
17762 if (init_table[itpos105]) return;
17763 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17764 fra.me.file = LOCATE_parser___parser_prod;
17765 fra.me.line = 3266;
17766 fra.me.meth = LOCATE_parser___parser_prod___ALabel___empty_init;
17767 fra.me.has_broke = 0;
17768 fra.me.REG_size = 1;
17769 fra.me.nitni_local_ref_head = NULL;
17770 fra.me.REG[0] = NIT_NULL;
17771 fra.me.REG[0] = p0;
17772 stack_frame_head = fra.me.prev;
17773 init_table[itpos105] = 1;
17774 return;
17775 }
17776 void parser___parser_prod___ALabel___init_alabel(val_t p0, val_t p1, val_t p2, int* init_table){
17777 int itpos106 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALabel].i;
17778 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17779 val_t REGB0;
17780 val_t tmp;
17781 if (init_table[itpos106]) return;
17782 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17783 fra.me.file = LOCATE_parser___parser_prod;
17784 fra.me.line = 3268;
17785 fra.me.meth = LOCATE_parser___parser_prod___ALabel___init_alabel;
17786 fra.me.has_broke = 0;
17787 fra.me.REG_size = 4;
17788 fra.me.nitni_local_ref_head = NULL;
17789 fra.me.REG[0] = NIT_NULL;
17790 fra.me.REG[1] = NIT_NULL;
17791 fra.me.REG[2] = NIT_NULL;
17792 fra.me.REG[3] = NIT_NULL;
17793 fra.me.REG[0] = p0;
17794 fra.me.REG[1] = p1;
17795 fra.me.REG[2] = p2;
17796 /* parser/parser_prod.nit:3268 */
17797 fra.me.REG[3] = fra.me.REG[0];
17798 /* parser/parser_prod.nit:3273 */
17799 CALL_parser___parser_prod___ALabel___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
17800 /* parser/parser_prod.nit:3274 */
17801 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
17802 if (UNTAG_Bool(REGB0)) {
17803 } else {
17804 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3274);
17805 }
17806 ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[3]) = fra.me.REG[1];
17807 /* parser/parser_prod.nit:3275 */
17808 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17809 if (UNTAG_Bool(REGB0)) {
17810 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3275);
17811 }
17812 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17813 /* parser/parser_prod.nit:3276 */
17814 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
17815 if (UNTAG_Bool(REGB0)) {
17816 } else {
17817 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3276);
17818 }
17819 ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[3]) = fra.me.REG[2];
17820 /* parser/parser_prod.nit:3277 */
17821 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17822 if (UNTAG_Bool(REGB0)) {
17823 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3277);
17824 }
17825 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17826 stack_frame_head = fra.me.prev;
17827 init_table[itpos106] = 1;
17828 return;
17829 }
17830 void parser___parser_prod___ALabel___replace_child(val_t p0, val_t p1, val_t p2){
17831 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17832 val_t REGB0;
17833 val_t REGB1;
17834 val_t tmp;
17835 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17836 fra.me.file = LOCATE_parser___parser_prod;
17837 fra.me.line = 3280;
17838 fra.me.meth = LOCATE_parser___parser_prod___ALabel___replace_child;
17839 fra.me.has_broke = 0;
17840 fra.me.REG_size = 4;
17841 fra.me.nitni_local_ref_head = NULL;
17842 fra.me.REG[0] = NIT_NULL;
17843 fra.me.REG[1] = NIT_NULL;
17844 fra.me.REG[2] = NIT_NULL;
17845 fra.me.REG[3] = NIT_NULL;
17846 fra.me.REG[0] = p0;
17847 fra.me.REG[1] = p1;
17848 fra.me.REG[2] = p2;
17849 /* parser/parser_prod.nit:3282 */
17850 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0])!=NIT_NULL);
17851 if (UNTAG_Bool(REGB0)) {
17852 } else {
17853 nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser___parser_prod, 3282);
17854 }
17855 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]);
17856 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17857 if (UNTAG_Bool(REGB0)) {
17858 } else {
17859 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17860 REGB0 = REGB1;
17861 }
17862 if (UNTAG_Bool(REGB0)) {
17863 /* parser/parser_prod.nit:3283 */
17864 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17865 if (UNTAG_Bool(REGB0)) {
17866 } else {
17867 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17868 if (UNTAG_Bool(REGB1)) {
17869 REGB1 = TAG_Bool(false);
17870 REGB0 = REGB1;
17871 } else {
17872 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17873 REGB0 = REGB1;
17874 }
17875 }
17876 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17877 if (UNTAG_Bool(REGB0)) {
17878 /* parser/parser_prod.nit:3284 */
17879 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17880 if (UNTAG_Bool(REGB0)) {
17881 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3284);
17882 }
17883 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17884 /* parser/parser_prod.nit:3285 */
17885 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwlabel, ID_parser___parser_nodes___TKwlabel)) /*cast TKwlabel*/;
17886 if (UNTAG_Bool(REGB0)) {
17887 } else {
17888 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3285);
17889 }
17890 /* parser/parser_prod.nit:3286 */
17891 ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]) = fra.me.REG[2];
17892 } else {
17893 /* parser/parser_prod.nit:3288 */
17894 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3288);
17895 }
17896 /* parser/parser_prod.nit:3290 */
17897 goto label1;
17898 }
17899 /* parser/parser_prod.nit:3292 */
17900 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0])!=NIT_NULL);
17901 if (UNTAG_Bool(REGB0)) {
17902 } else {
17903 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3292);
17904 }
17905 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]);
17906 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17907 if (UNTAG_Bool(REGB0)) {
17908 } else {
17909 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17910 REGB0 = REGB1;
17911 }
17912 if (UNTAG_Bool(REGB0)) {
17913 /* parser/parser_prod.nit:3293 */
17914 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17915 if (UNTAG_Bool(REGB0)) {
17916 } else {
17917 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17918 if (UNTAG_Bool(REGB1)) {
17919 REGB1 = TAG_Bool(false);
17920 REGB0 = REGB1;
17921 } else {
17922 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17923 REGB0 = REGB1;
17924 }
17925 }
17926 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17927 if (UNTAG_Bool(REGB0)) {
17928 /* parser/parser_prod.nit:3294 */
17929 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17930 if (UNTAG_Bool(REGB0)) {
17931 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3294);
17932 }
17933 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17934 /* parser/parser_prod.nit:3295 */
17935 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
17936 if (UNTAG_Bool(REGB0)) {
17937 } else {
17938 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3295);
17939 }
17940 /* parser/parser_prod.nit:3296 */
17941 ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]) = fra.me.REG[2];
17942 } else {
17943 /* parser/parser_prod.nit:3298 */
17944 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3298);
17945 }
17946 /* parser/parser_prod.nit:3300 */
17947 goto label1;
17948 }
17949 label1: while(0);
17950 stack_frame_head = fra.me.prev;
17951 return;
17952 }
17953 void parser___parser_prod___ALabel___visit_all(val_t p0, val_t p1){
17954 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
17955 val_t REGB0;
17956 val_t tmp;
17957 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17958 fra.me.file = LOCATE_parser___parser_prod;
17959 fra.me.line = 3304;
17960 fra.me.meth = LOCATE_parser___parser_prod___ALabel___visit_all;
17961 fra.me.has_broke = 0;
17962 fra.me.REG_size = 3;
17963 fra.me.nitni_local_ref_head = NULL;
17964 fra.me.REG[0] = NIT_NULL;
17965 fra.me.REG[1] = NIT_NULL;
17966 fra.me.REG[2] = NIT_NULL;
17967 fra.me.REG[0] = p0;
17968 fra.me.REG[1] = p1;
17969 /* parser/parser_prod.nit:3306 */
17970 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0])!=NIT_NULL);
17971 if (UNTAG_Bool(REGB0)) {
17972 } else {
17973 nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser___parser_prod, 3306);
17974 }
17975 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]);
17976 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17977 /* parser/parser_prod.nit:3307 */
17978 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0])!=NIT_NULL);
17979 if (UNTAG_Bool(REGB0)) {
17980 } else {
17981 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3307);
17982 }
17983 fra.me.REG[0] = ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]);
17984 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17985 stack_frame_head = fra.me.prev;
17986 return;
17987 }
17988 void parser___parser_prod___ABlockExpr___empty_init(val_t p0, int* init_table){
17989 int itpos107 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABlockExpr].i;
17990 struct {struct stack_frame_t me;} fra;
17991 val_t tmp;
17992 if (init_table[itpos107]) return;
17993 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17994 fra.me.file = LOCATE_parser___parser_prod;
17995 fra.me.line = 3311;
17996 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___empty_init;
17997 fra.me.has_broke = 0;
17998 fra.me.REG_size = 1;
17999 fra.me.nitni_local_ref_head = NULL;
18000 fra.me.REG[0] = NIT_NULL;
18001 fra.me.REG[0] = p0;
18002 stack_frame_head = fra.me.prev;
18003 init_table[itpos107] = 1;
18004 return;
18005 }
18006 void parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0, val_t p1, val_t p2, int* init_table){
18007 int itpos108 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABlockExpr].i;
18008 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
18009 val_t REGB0;
18010 val_t REGB1;
18011 val_t tmp;
18012 if (init_table[itpos108]) return;
18013 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18014 fra.me.file = LOCATE_parser___parser_prod;
18015 fra.me.line = 3313;
18016 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___init_ablockexpr;
18017 fra.me.has_broke = 0;
18018 fra.me.REG_size = 3;
18019 fra.me.nitni_local_ref_head = NULL;
18020 fra.me.REG[0] = NIT_NULL;
18021 fra.me.REG[1] = NIT_NULL;
18022 fra.me.REG[2] = NIT_NULL;
18023 fra.me.REG[0] = p0;
18024 fra.me.REG[1] = p1;
18025 fra.me.REG[2] = p2;
18026 /* parser/parser_prod.nit:3318 */
18027 CALL_parser___parser_prod___ABlockExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
18028 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABlockExpr___init_ablockexpr_1));
18029 /* parser/parser_prod.nit:3324 */
18030 ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[0]) = fra.me.REG[2];
18031 /* parser/parser_prod.nit:3325 */
18032 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18033 if (UNTAG_Bool(REGB0)) {
18034 } else {
18035 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18036 if (UNTAG_Bool(REGB1)) {
18037 REGB1 = TAG_Bool(false);
18038 REGB0 = REGB1;
18039 } else {
18040 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18041 REGB0 = REGB1;
18042 }
18043 }
18044 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18045 if (UNTAG_Bool(REGB0)) {
18046 /* parser/parser_prod.nit:3326 */
18047 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18048 if (UNTAG_Bool(REGB0)) {
18049 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3326);
18050 }
18051 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18052 }
18053 stack_frame_head = fra.me.prev;
18054 init_table[itpos108] = 1;
18055 return;
18056 }
18057 void OC_parser___parser_prod___ABlockExpr___init_ablockexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
18058 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
18059 val_t REGB0;
18060 fun_t CREG[1];
18061 val_t tmp;
18062 /* parser/parser_prod.nit:3319 */
18063 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18064 fra.me.file = LOCATE_parser___parser_prod;
18065 fra.me.line = 0;
18066 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___init_ablockexpr;
18067 fra.me.has_broke = 0;
18068 fra.me.REG_size = 2;
18069 fra.me.nitni_local_ref_head = NULL;
18070 fra.me.REG[0] = NIT_NULL;
18071 fra.me.REG[1] = NIT_NULL;
18072 fra.me.closure_ctx = closctx_param;
18073 fra.me.closure_funs = CREG;
18074 fra.me.REG[0] = p0;
18075 CREG[0] = clos_fun0;
18076 /* parser/parser_prod.nit:3320 */
18077 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
18078 if (UNTAG_Bool(REGB0)) {
18079 } else {
18080 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3320);
18081 }
18082 /* parser/parser_prod.nit:3321 */
18083 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(closctx->REG[0])!=NIT_NULL);
18084 if (UNTAG_Bool(REGB0)) {
18085 } else {
18086 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3321);
18087 }
18088 fra.me.REG[1] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(closctx->REG[0]);
18089 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18090 /* parser/parser_prod.nit:3322 */
18091 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
18092 stack_frame_head = fra.me.prev;
18093 return;
18094 }
18095 void parser___parser_prod___ABlockExpr___replace_child(val_t p0, val_t p1, val_t p2){
18096 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18097 val_t REGB0;
18098 val_t REGB1;
18099 val_t REGB2;
18100 val_t REGB3;
18101 val_t REGB4;
18102 val_t tmp;
18103 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18104 fra.me.file = LOCATE_parser___parser_prod;
18105 fra.me.line = 3330;
18106 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___replace_child;
18107 fra.me.has_broke = 0;
18108 fra.me.REG_size = 4;
18109 fra.me.nitni_local_ref_head = NULL;
18110 fra.me.REG[0] = NIT_NULL;
18111 fra.me.REG[1] = NIT_NULL;
18112 fra.me.REG[2] = NIT_NULL;
18113 fra.me.REG[3] = NIT_NULL;
18114 fra.me.REG[0] = p0;
18115 fra.me.REG[1] = p1;
18116 fra.me.REG[2] = p2;
18117 /* parser/parser_prod.nit:3332 */
18118 REGB0 = TAG_Int(0);
18119 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
18120 if (UNTAG_Bool(REGB1)) {
18121 } else {
18122 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3332);
18123 }
18124 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
18125 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
18126 /* ../lib/standard/kernel.nit:352 */
18127 while(1) {
18128 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
18129 if (UNTAG_Bool(REGB2)) {
18130 } else {
18131 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
18132 }
18133 /* ../lib/standard/kernel.nit:232 */
18134 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
18135 /* ../lib/standard/kernel.nit:352 */
18136 if (UNTAG_Bool(REGB2)) {
18137 /* parser/parser_prod.nit:3332 */
18138 REGB2 = REGB0;
18139 /* parser/parser_prod.nit:3333 */
18140 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
18141 if (UNTAG_Bool(REGB3)) {
18142 } else {
18143 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3333);
18144 }
18145 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
18146 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
18147 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18148 if (UNTAG_Bool(REGB3)) {
18149 } else {
18150 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18151 if (UNTAG_Bool(REGB4)) {
18152 REGB4 = TAG_Bool(false);
18153 REGB3 = REGB4;
18154 } else {
18155 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18156 REGB3 = REGB4;
18157 }
18158 }
18159 if (UNTAG_Bool(REGB3)) {
18160 /* parser/parser_prod.nit:3334 */
18161 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18162 if (UNTAG_Bool(REGB3)) {
18163 } else {
18164 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18165 if (UNTAG_Bool(REGB4)) {
18166 REGB4 = TAG_Bool(false);
18167 REGB3 = REGB4;
18168 } else {
18169 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18170 REGB3 = REGB4;
18171 }
18172 }
18173 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
18174 if (UNTAG_Bool(REGB3)) {
18175 /* parser/parser_prod.nit:3335 */
18176 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
18177 if (UNTAG_Bool(REGB3)) {
18178 } else {
18179 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3335);
18180 }
18181 /* parser/parser_prod.nit:3336 */
18182 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
18183 if (UNTAG_Bool(REGB3)) {
18184 } else {
18185 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3336);
18186 }
18187 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
18188 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
18189 /* parser/parser_prod.nit:3337 */
18190 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18191 if (UNTAG_Bool(REGB3)) {
18192 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3337);
18193 }
18194 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18195 } else {
18196 /* parser/parser_prod.nit:3339 */
18197 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
18198 if (UNTAG_Bool(REGB3)) {
18199 } else {
18200 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3339);
18201 }
18202 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
18203 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
18204 }
18205 /* parser/parser_prod.nit:3341 */
18206 goto label1;
18207 }
18208 /* ../lib/standard/kernel.nit:354 */
18209 REGB2 = TAG_Int(1);
18210 /* ../lib/standard/kernel.nit:235 */
18211 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
18212 /* ../lib/standard/kernel.nit:354 */
18213 REGB0 = REGB2;
18214 } else {
18215 /* ../lib/standard/kernel.nit:352 */
18216 goto label2;
18217 }
18218 }
18219 label2: while(0);
18220 /* parser/parser_prod.nit:3344 */
18221 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[0]);
18222 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18223 if (UNTAG_Bool(REGB0)) {
18224 } else {
18225 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18226 if (UNTAG_Bool(REGB1)) {
18227 REGB1 = TAG_Bool(false);
18228 REGB0 = REGB1;
18229 } else {
18230 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18231 REGB0 = REGB1;
18232 }
18233 }
18234 if (UNTAG_Bool(REGB0)) {
18235 /* parser/parser_prod.nit:3345 */
18236 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18237 if (UNTAG_Bool(REGB0)) {
18238 } else {
18239 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18240 if (UNTAG_Bool(REGB1)) {
18241 REGB1 = TAG_Bool(false);
18242 REGB0 = REGB1;
18243 } else {
18244 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18245 REGB0 = REGB1;
18246 }
18247 }
18248 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18249 if (UNTAG_Bool(REGB0)) {
18250 /* parser/parser_prod.nit:3346 */
18251 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18252 if (UNTAG_Bool(REGB0)) {
18253 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3346);
18254 }
18255 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18256 /* parser/parser_prod.nit:3347 */
18257 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast TKwend*/;
18258 if (UNTAG_Bool(REGB0)) {
18259 } else {
18260 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3347);
18261 }
18262 /* parser/parser_prod.nit:3348 */
18263 ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[0]) = fra.me.REG[2];
18264 } else {
18265 /* parser/parser_prod.nit:3350 */
18266 ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[0]) = NIT_NULL;
18267 }
18268 /* parser/parser_prod.nit:3352 */
18269 goto label1;
18270 }
18271 label1: while(0);
18272 stack_frame_head = fra.me.prev;
18273 return;
18274 }
18275 void parser___parser_prod___ABlockExpr___visit_all(val_t p0, val_t p1){
18276 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18277 val_t REGB0;
18278 val_t REGB1;
18279 val_t tmp;
18280 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18281 fra.me.file = LOCATE_parser___parser_prod;
18282 fra.me.line = 3356;
18283 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___visit_all;
18284 fra.me.has_broke = 0;
18285 fra.me.REG_size = 4;
18286 fra.me.nitni_local_ref_head = NULL;
18287 fra.me.REG[0] = NIT_NULL;
18288 fra.me.REG[1] = NIT_NULL;
18289 fra.me.REG[2] = NIT_NULL;
18290 fra.me.REG[3] = NIT_NULL;
18291 fra.me.REG[0] = p0;
18292 fra.me.REG[1] = p1;
18293 /* parser/parser_prod.nit:3356 */
18294 fra.me.REG[2] = fra.me.REG[0];
18295 /* parser/parser_prod.nit:3358 */
18296 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
18297 if (UNTAG_Bool(REGB0)) {
18298 } else {
18299 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3358);
18300 }
18301 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[2]);
18302 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABlockExpr___visit_all_1));
18303 /* parser/parser_prod.nit:3361 */
18304 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[2]);
18305 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18306 if (UNTAG_Bool(REGB0)) {
18307 } else {
18308 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18309 if (UNTAG_Bool(REGB1)) {
18310 REGB1 = TAG_Bool(false);
18311 REGB0 = REGB1;
18312 } else {
18313 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18314 REGB0 = REGB1;
18315 }
18316 }
18317 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18318 if (UNTAG_Bool(REGB0)) {
18319 /* parser/parser_prod.nit:3362 */
18320 fra.me.REG[2] = ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[2]);
18321 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast TKwend*/;
18322 if (UNTAG_Bool(REGB0)) {
18323 } else {
18324 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3362);
18325 }
18326 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18327 }
18328 stack_frame_head = fra.me.prev;
18329 return;
18330 }
18331 void OC_parser___parser_prod___ABlockExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
18332 struct {struct stack_frame_t me;} fra;
18333 fun_t CREG[1];
18334 val_t tmp;
18335 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18336 fra.me.file = LOCATE_parser___parser_prod;
18337 fra.me.line = 0;
18338 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___visit_all;
18339 fra.me.has_broke = 0;
18340 fra.me.REG_size = 1;
18341 fra.me.nitni_local_ref_head = NULL;
18342 fra.me.REG[0] = NIT_NULL;
18343 fra.me.closure_ctx = closctx_param;
18344 fra.me.closure_funs = CREG;
18345 fra.me.REG[0] = p0;
18346 CREG[0] = clos_fun0;
18347 /* parser/parser_prod.nit:3359 */
18348 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
18349 stack_frame_head = fra.me.prev;
18350 return;
18351 }
18352 void parser___parser_prod___AVardeclExpr___empty_init(val_t p0, int* init_table){
18353 int itpos109 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVardeclExpr].i;
18354 struct {struct stack_frame_t me;} fra;
18355 val_t tmp;
18356 if (init_table[itpos109]) return;
18357 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18358 fra.me.file = LOCATE_parser___parser_prod;
18359 fra.me.line = 3367;
18360 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___empty_init;
18361 fra.me.has_broke = 0;
18362 fra.me.REG_size = 1;
18363 fra.me.nitni_local_ref_head = NULL;
18364 fra.me.REG[0] = NIT_NULL;
18365 fra.me.REG[0] = p0;
18366 stack_frame_head = fra.me.prev;
18367 init_table[itpos109] = 1;
18368 return;
18369 }
18370 void parser___parser_prod___AVardeclExpr___init_avardeclexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
18371 int itpos110 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVardeclExpr].i;
18372 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
18373 val_t REGB0;
18374 val_t REGB1;
18375 val_t tmp;
18376 if (init_table[itpos110]) return;
18377 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18378 fra.me.file = LOCATE_parser___parser_prod;
18379 fra.me.line = 3369;
18380 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___init_avardeclexpr;
18381 fra.me.has_broke = 0;
18382 fra.me.REG_size = 7;
18383 fra.me.nitni_local_ref_head = NULL;
18384 fra.me.REG[0] = NIT_NULL;
18385 fra.me.REG[1] = NIT_NULL;
18386 fra.me.REG[2] = NIT_NULL;
18387 fra.me.REG[3] = NIT_NULL;
18388 fra.me.REG[4] = NIT_NULL;
18389 fra.me.REG[5] = NIT_NULL;
18390 fra.me.REG[6] = NIT_NULL;
18391 fra.me.REG[0] = p0;
18392 fra.me.REG[1] = p1;
18393 fra.me.REG[2] = p2;
18394 fra.me.REG[3] = p3;
18395 fra.me.REG[4] = p4;
18396 fra.me.REG[5] = p5;
18397 /* parser/parser_prod.nit:3369 */
18398 fra.me.REG[6] = fra.me.REG[0];
18399 /* parser/parser_prod.nit:3377 */
18400 CALL_parser___parser_prod___AVardeclExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
18401 /* parser/parser_prod.nit:3378 */
18402 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
18403 if (UNTAG_Bool(REGB0)) {
18404 } else {
18405 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3378);
18406 }
18407 ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[6]) = fra.me.REG[1];
18408 /* parser/parser_prod.nit:3379 */
18409 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18410 if (UNTAG_Bool(REGB0)) {
18411 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3379);
18412 }
18413 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
18414 /* parser/parser_prod.nit:3380 */
18415 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
18416 if (UNTAG_Bool(REGB0)) {
18417 } else {
18418 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3380);
18419 }
18420 ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[6]) = fra.me.REG[2];
18421 /* parser/parser_prod.nit:3381 */
18422 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18423 if (UNTAG_Bool(REGB0)) {
18424 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3381);
18425 }
18426 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
18427 /* parser/parser_prod.nit:3382 */
18428 ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[6]) = fra.me.REG[3];
18429 /* parser/parser_prod.nit:3383 */
18430 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18431 if (UNTAG_Bool(REGB0)) {
18432 } else {
18433 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18434 if (UNTAG_Bool(REGB1)) {
18435 REGB1 = TAG_Bool(false);
18436 REGB0 = REGB1;
18437 } else {
18438 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18439 REGB0 = REGB1;
18440 }
18441 }
18442 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18443 if (UNTAG_Bool(REGB0)) {
18444 /* parser/parser_prod.nit:3384 */
18445 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18446 if (UNTAG_Bool(REGB0)) {
18447 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3384);
18448 }
18449 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
18450 }
18451 /* parser/parser_prod.nit:3386 */
18452 ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[6]) = fra.me.REG[4];
18453 /* parser/parser_prod.nit:3387 */
18454 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
18455 if (UNTAG_Bool(REGB0)) {
18456 } else {
18457 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
18458 if (UNTAG_Bool(REGB1)) {
18459 REGB1 = TAG_Bool(false);
18460 REGB0 = REGB1;
18461 } else {
18462 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
18463 REGB0 = REGB1;
18464 }
18465 }
18466 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18467 if (UNTAG_Bool(REGB0)) {
18468 /* parser/parser_prod.nit:3388 */
18469 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
18470 if (UNTAG_Bool(REGB0)) {
18471 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3388);
18472 }
18473 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
18474 }
18475 /* parser/parser_prod.nit:3390 */
18476 ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[6]) = fra.me.REG[5];
18477 /* parser/parser_prod.nit:3391 */
18478 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
18479 if (UNTAG_Bool(REGB0)) {
18480 } else {
18481 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
18482 if (UNTAG_Bool(REGB1)) {
18483 REGB1 = TAG_Bool(false);
18484 REGB0 = REGB1;
18485 } else {
18486 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
18487 REGB0 = REGB1;
18488 }
18489 }
18490 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18491 if (UNTAG_Bool(REGB0)) {
18492 /* parser/parser_prod.nit:3392 */
18493 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
18494 if (UNTAG_Bool(REGB0)) {
18495 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3392);
18496 }
18497 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
18498 }
18499 stack_frame_head = fra.me.prev;
18500 init_table[itpos110] = 1;
18501 return;
18502 }
18503 void parser___parser_prod___AVardeclExpr___replace_child(val_t p0, val_t p1, val_t p2){
18504 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18505 val_t REGB0;
18506 val_t REGB1;
18507 val_t tmp;
18508 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18509 fra.me.file = LOCATE_parser___parser_prod;
18510 fra.me.line = 3396;
18511 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___replace_child;
18512 fra.me.has_broke = 0;
18513 fra.me.REG_size = 4;
18514 fra.me.nitni_local_ref_head = NULL;
18515 fra.me.REG[0] = NIT_NULL;
18516 fra.me.REG[1] = NIT_NULL;
18517 fra.me.REG[2] = NIT_NULL;
18518 fra.me.REG[3] = NIT_NULL;
18519 fra.me.REG[0] = p0;
18520 fra.me.REG[1] = p1;
18521 fra.me.REG[2] = p2;
18522 /* parser/parser_prod.nit:3398 */
18523 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0])!=NIT_NULL);
18524 if (UNTAG_Bool(REGB0)) {
18525 } else {
18526 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 3398);
18527 }
18528 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]);
18529 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18530 if (UNTAG_Bool(REGB0)) {
18531 } else {
18532 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18533 REGB0 = REGB1;
18534 }
18535 if (UNTAG_Bool(REGB0)) {
18536 /* parser/parser_prod.nit:3399 */
18537 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18538 if (UNTAG_Bool(REGB0)) {
18539 } else {
18540 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18541 if (UNTAG_Bool(REGB1)) {
18542 REGB1 = TAG_Bool(false);
18543 REGB0 = REGB1;
18544 } else {
18545 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18546 REGB0 = REGB1;
18547 }
18548 }
18549 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18550 if (UNTAG_Bool(REGB0)) {
18551 /* parser/parser_prod.nit:3400 */
18552 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18553 if (UNTAG_Bool(REGB0)) {
18554 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3400);
18555 }
18556 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18557 /* parser/parser_prod.nit:3401 */
18558 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast TKwvar*/;
18559 if (UNTAG_Bool(REGB0)) {
18560 } else {
18561 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3401);
18562 }
18563 /* parser/parser_prod.nit:3402 */
18564 ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]) = fra.me.REG[2];
18565 } else {
18566 /* parser/parser_prod.nit:3404 */
18567 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3404);
18568 }
18569 /* parser/parser_prod.nit:3406 */
18570 goto label1;
18571 }
18572 /* parser/parser_prod.nit:3408 */
18573 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0])!=NIT_NULL);
18574 if (UNTAG_Bool(REGB0)) {
18575 } else {
18576 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3408);
18577 }
18578 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]);
18579 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18580 if (UNTAG_Bool(REGB0)) {
18581 } else {
18582 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18583 REGB0 = REGB1;
18584 }
18585 if (UNTAG_Bool(REGB0)) {
18586 /* parser/parser_prod.nit:3409 */
18587 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18588 if (UNTAG_Bool(REGB0)) {
18589 } else {
18590 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18591 if (UNTAG_Bool(REGB1)) {
18592 REGB1 = TAG_Bool(false);
18593 REGB0 = REGB1;
18594 } else {
18595 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18596 REGB0 = REGB1;
18597 }
18598 }
18599 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18600 if (UNTAG_Bool(REGB0)) {
18601 /* parser/parser_prod.nit:3410 */
18602 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18603 if (UNTAG_Bool(REGB0)) {
18604 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3410);
18605 }
18606 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18607 /* parser/parser_prod.nit:3411 */
18608 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
18609 if (UNTAG_Bool(REGB0)) {
18610 } else {
18611 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3411);
18612 }
18613 /* parser/parser_prod.nit:3412 */
18614 ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
18615 } else {
18616 /* parser/parser_prod.nit:3414 */
18617 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3414);
18618 }
18619 /* parser/parser_prod.nit:3416 */
18620 goto label1;
18621 }
18622 /* parser/parser_prod.nit:3418 */
18623 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]);
18624 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18625 if (UNTAG_Bool(REGB0)) {
18626 } else {
18627 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18628 if (UNTAG_Bool(REGB1)) {
18629 REGB1 = TAG_Bool(false);
18630 REGB0 = REGB1;
18631 } else {
18632 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18633 REGB0 = REGB1;
18634 }
18635 }
18636 if (UNTAG_Bool(REGB0)) {
18637 /* parser/parser_prod.nit:3419 */
18638 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18639 if (UNTAG_Bool(REGB0)) {
18640 } else {
18641 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18642 if (UNTAG_Bool(REGB1)) {
18643 REGB1 = TAG_Bool(false);
18644 REGB0 = REGB1;
18645 } else {
18646 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18647 REGB0 = REGB1;
18648 }
18649 }
18650 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18651 if (UNTAG_Bool(REGB0)) {
18652 /* parser/parser_prod.nit:3420 */
18653 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18654 if (UNTAG_Bool(REGB0)) {
18655 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3420);
18656 }
18657 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18658 /* parser/parser_prod.nit:3421 */
18659 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
18660 if (UNTAG_Bool(REGB0)) {
18661 } else {
18662 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3421);
18663 }
18664 /* parser/parser_prod.nit:3422 */
18665 ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
18666 } else {
18667 /* parser/parser_prod.nit:3424 */
18668 ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = NIT_NULL;
18669 }
18670 /* parser/parser_prod.nit:3426 */
18671 goto label1;
18672 }
18673 /* parser/parser_prod.nit:3428 */
18674 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]);
18675 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18676 if (UNTAG_Bool(REGB0)) {
18677 } else {
18678 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18679 if (UNTAG_Bool(REGB1)) {
18680 REGB1 = TAG_Bool(false);
18681 REGB0 = REGB1;
18682 } else {
18683 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18684 REGB0 = REGB1;
18685 }
18686 }
18687 if (UNTAG_Bool(REGB0)) {
18688 /* parser/parser_prod.nit:3429 */
18689 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18690 if (UNTAG_Bool(REGB0)) {
18691 } else {
18692 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18693 if (UNTAG_Bool(REGB1)) {
18694 REGB1 = TAG_Bool(false);
18695 REGB0 = REGB1;
18696 } else {
18697 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18698 REGB0 = REGB1;
18699 }
18700 }
18701 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18702 if (UNTAG_Bool(REGB0)) {
18703 /* parser/parser_prod.nit:3430 */
18704 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18705 if (UNTAG_Bool(REGB0)) {
18706 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3430);
18707 }
18708 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18709 /* parser/parser_prod.nit:3431 */
18710 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
18711 if (UNTAG_Bool(REGB0)) {
18712 } else {
18713 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3431);
18714 }
18715 /* parser/parser_prod.nit:3432 */
18716 ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
18717 } else {
18718 /* parser/parser_prod.nit:3434 */
18719 ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = NIT_NULL;
18720 }
18721 /* parser/parser_prod.nit:3436 */
18722 goto label1;
18723 }
18724 /* parser/parser_prod.nit:3438 */
18725 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]);
18726 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18727 if (UNTAG_Bool(REGB0)) {
18728 } else {
18729 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18730 if (UNTAG_Bool(REGB1)) {
18731 REGB1 = TAG_Bool(false);
18732 REGB0 = REGB1;
18733 } else {
18734 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18735 REGB0 = REGB1;
18736 }
18737 }
18738 if (UNTAG_Bool(REGB0)) {
18739 /* parser/parser_prod.nit:3439 */
18740 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18741 if (UNTAG_Bool(REGB0)) {
18742 } else {
18743 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18744 if (UNTAG_Bool(REGB1)) {
18745 REGB1 = TAG_Bool(false);
18746 REGB0 = REGB1;
18747 } else {
18748 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18749 REGB0 = REGB1;
18750 }
18751 }
18752 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18753 if (UNTAG_Bool(REGB0)) {
18754 /* parser/parser_prod.nit:3440 */
18755 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18756 if (UNTAG_Bool(REGB0)) {
18757 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3440);
18758 }
18759 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18760 /* parser/parser_prod.nit:3441 */
18761 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
18762 if (UNTAG_Bool(REGB0)) {
18763 } else {
18764 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3441);
18765 }
18766 /* parser/parser_prod.nit:3442 */
18767 ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
18768 } else {
18769 /* parser/parser_prod.nit:3444 */
18770 ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
18771 }
18772 /* parser/parser_prod.nit:3446 */
18773 goto label1;
18774 }
18775 label1: while(0);
18776 stack_frame_head = fra.me.prev;
18777 return;
18778 }
18779 void parser___parser_prod___AVardeclExpr___visit_all(val_t p0, val_t p1){
18780 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18781 val_t REGB0;
18782 val_t REGB1;
18783 val_t tmp;
18784 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18785 fra.me.file = LOCATE_parser___parser_prod;
18786 fra.me.line = 3450;
18787 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___visit_all;
18788 fra.me.has_broke = 0;
18789 fra.me.REG_size = 4;
18790 fra.me.nitni_local_ref_head = NULL;
18791 fra.me.REG[0] = NIT_NULL;
18792 fra.me.REG[1] = NIT_NULL;
18793 fra.me.REG[2] = NIT_NULL;
18794 fra.me.REG[3] = NIT_NULL;
18795 fra.me.REG[0] = p0;
18796 fra.me.REG[1] = p1;
18797 /* parser/parser_prod.nit:3450 */
18798 fra.me.REG[2] = fra.me.REG[0];
18799 /* parser/parser_prod.nit:3452 */
18800 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[2])!=NIT_NULL);
18801 if (UNTAG_Bool(REGB0)) {
18802 } else {
18803 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 3452);
18804 }
18805 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[2]);
18806 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18807 /* parser/parser_prod.nit:3453 */
18808 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[2])!=NIT_NULL);
18809 if (UNTAG_Bool(REGB0)) {
18810 } else {
18811 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3453);
18812 }
18813 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[2]);
18814 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18815 /* parser/parser_prod.nit:3454 */
18816 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[2]);
18817 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18818 if (UNTAG_Bool(REGB0)) {
18819 } else {
18820 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18821 if (UNTAG_Bool(REGB1)) {
18822 REGB1 = TAG_Bool(false);
18823 REGB0 = REGB1;
18824 } else {
18825 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18826 REGB0 = REGB1;
18827 }
18828 }
18829 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18830 if (UNTAG_Bool(REGB0)) {
18831 /* parser/parser_prod.nit:3455 */
18832 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[2]);
18833 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
18834 if (UNTAG_Bool(REGB0)) {
18835 } else {
18836 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3455);
18837 }
18838 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18839 }
18840 /* parser/parser_prod.nit:3457 */
18841 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[2]);
18842 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18843 if (UNTAG_Bool(REGB0)) {
18844 } else {
18845 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18846 if (UNTAG_Bool(REGB1)) {
18847 REGB1 = TAG_Bool(false);
18848 REGB0 = REGB1;
18849 } else {
18850 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18851 REGB0 = REGB1;
18852 }
18853 }
18854 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18855 if (UNTAG_Bool(REGB0)) {
18856 /* parser/parser_prod.nit:3458 */
18857 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[2]);
18858 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
18859 if (UNTAG_Bool(REGB0)) {
18860 } else {
18861 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3458);
18862 }
18863 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18864 }
18865 /* parser/parser_prod.nit:3460 */
18866 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[2]);
18867 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18868 if (UNTAG_Bool(REGB0)) {
18869 } else {
18870 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18871 if (UNTAG_Bool(REGB1)) {
18872 REGB1 = TAG_Bool(false);
18873 REGB0 = REGB1;
18874 } else {
18875 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18876 REGB0 = REGB1;
18877 }
18878 }
18879 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18880 if (UNTAG_Bool(REGB0)) {
18881 /* parser/parser_prod.nit:3461 */
18882 fra.me.REG[2] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[2]);
18883 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
18884 if (UNTAG_Bool(REGB0)) {
18885 } else {
18886 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3461);
18887 }
18888 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18889 }
18890 stack_frame_head = fra.me.prev;
18891 return;
18892 }
18893 void parser___parser_prod___AReturnExpr___empty_init(val_t p0, int* init_table){
18894 int itpos111 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReturnExpr].i;
18895 struct {struct stack_frame_t me;} fra;
18896 val_t tmp;
18897 if (init_table[itpos111]) return;
18898 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18899 fra.me.file = LOCATE_parser___parser_prod;
18900 fra.me.line = 3466;
18901 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___empty_init;
18902 fra.me.has_broke = 0;
18903 fra.me.REG_size = 1;
18904 fra.me.nitni_local_ref_head = NULL;
18905 fra.me.REG[0] = NIT_NULL;
18906 fra.me.REG[0] = p0;
18907 stack_frame_head = fra.me.prev;
18908 init_table[itpos111] = 1;
18909 return;
18910 }
18911 void parser___parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1, val_t p2, int* init_table){
18912 int itpos112 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReturnExpr].i;
18913 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
18914 val_t REGB0;
18915 val_t REGB1;
18916 val_t tmp;
18917 if (init_table[itpos112]) return;
18918 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18919 fra.me.file = LOCATE_parser___parser_prod;
18920 fra.me.line = 3468;
18921 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___init_areturnexpr;
18922 fra.me.has_broke = 0;
18923 fra.me.REG_size = 3;
18924 fra.me.nitni_local_ref_head = NULL;
18925 fra.me.REG[0] = NIT_NULL;
18926 fra.me.REG[1] = NIT_NULL;
18927 fra.me.REG[2] = NIT_NULL;
18928 fra.me.REG[0] = p0;
18929 fra.me.REG[1] = p1;
18930 fra.me.REG[2] = p2;
18931 /* parser/parser_prod.nit:3473 */
18932 CALL_parser___parser_prod___AReturnExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
18933 /* parser/parser_prod.nit:3474 */
18934 ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[1];
18935 /* parser/parser_prod.nit:3475 */
18936 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18937 if (UNTAG_Bool(REGB0)) {
18938 } else {
18939 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18940 if (UNTAG_Bool(REGB1)) {
18941 REGB1 = TAG_Bool(false);
18942 REGB0 = REGB1;
18943 } else {
18944 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
18945 REGB0 = REGB1;
18946 }
18947 }
18948 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18949 if (UNTAG_Bool(REGB0)) {
18950 /* parser/parser_prod.nit:3476 */
18951 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18952 if (UNTAG_Bool(REGB0)) {
18953 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3476);
18954 }
18955 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18956 }
18957 /* parser/parser_prod.nit:3478 */
18958 ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
18959 /* parser/parser_prod.nit:3479 */
18960 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18961 if (UNTAG_Bool(REGB0)) {
18962 } else {
18963 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18964 if (UNTAG_Bool(REGB1)) {
18965 REGB1 = TAG_Bool(false);
18966 REGB0 = REGB1;
18967 } else {
18968 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18969 REGB0 = REGB1;
18970 }
18971 }
18972 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18973 if (UNTAG_Bool(REGB0)) {
18974 /* parser/parser_prod.nit:3480 */
18975 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18976 if (UNTAG_Bool(REGB0)) {
18977 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3480);
18978 }
18979 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18980 }
18981 stack_frame_head = fra.me.prev;
18982 init_table[itpos112] = 1;
18983 return;
18984 }
18985 void parser___parser_prod___AReturnExpr___replace_child(val_t p0, val_t p1, val_t p2){
18986 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18987 val_t REGB0;
18988 val_t REGB1;
18989 val_t tmp;
18990 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18991 fra.me.file = LOCATE_parser___parser_prod;
18992 fra.me.line = 3484;
18993 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___replace_child;
18994 fra.me.has_broke = 0;
18995 fra.me.REG_size = 4;
18996 fra.me.nitni_local_ref_head = NULL;
18997 fra.me.REG[0] = NIT_NULL;
18998 fra.me.REG[1] = NIT_NULL;
18999 fra.me.REG[2] = NIT_NULL;
19000 fra.me.REG[3] = NIT_NULL;
19001 fra.me.REG[0] = p0;
19002 fra.me.REG[1] = p1;
19003 fra.me.REG[2] = p2;
19004 /* parser/parser_prod.nit:3486 */
19005 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]);
19006 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19007 if (UNTAG_Bool(REGB0)) {
19008 } else {
19009 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19010 if (UNTAG_Bool(REGB1)) {
19011 REGB1 = TAG_Bool(false);
19012 REGB0 = REGB1;
19013 } else {
19014 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19015 REGB0 = REGB1;
19016 }
19017 }
19018 if (UNTAG_Bool(REGB0)) {
19019 /* parser/parser_prod.nit:3487 */
19020 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19021 if (UNTAG_Bool(REGB0)) {
19022 } else {
19023 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19024 if (UNTAG_Bool(REGB1)) {
19025 REGB1 = TAG_Bool(false);
19026 REGB0 = REGB1;
19027 } else {
19028 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19029 REGB0 = REGB1;
19030 }
19031 }
19032 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19033 if (UNTAG_Bool(REGB0)) {
19034 /* parser/parser_prod.nit:3488 */
19035 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19036 if (UNTAG_Bool(REGB0)) {
19037 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3488);
19038 }
19039 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19040 /* parser/parser_prod.nit:3489 */
19041 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwreturn, ID_parser___parser_nodes___TKwreturn)) /*cast TKwreturn*/;
19042 if (UNTAG_Bool(REGB0)) {
19043 } else {
19044 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3489);
19045 }
19046 /* parser/parser_prod.nit:3490 */
19047 ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[2];
19048 } else {
19049 /* parser/parser_prod.nit:3492 */
19050 ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = NIT_NULL;
19051 }
19052 /* parser/parser_prod.nit:3494 */
19053 goto label1;
19054 }
19055 /* parser/parser_prod.nit:3496 */
19056 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]);
19057 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19058 if (UNTAG_Bool(REGB0)) {
19059 } else {
19060 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19061 if (UNTAG_Bool(REGB1)) {
19062 REGB1 = TAG_Bool(false);
19063 REGB0 = REGB1;
19064 } else {
19065 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19066 REGB0 = REGB1;
19067 }
19068 }
19069 if (UNTAG_Bool(REGB0)) {
19070 /* parser/parser_prod.nit:3497 */
19071 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19072 if (UNTAG_Bool(REGB0)) {
19073 } else {
19074 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19075 if (UNTAG_Bool(REGB1)) {
19076 REGB1 = TAG_Bool(false);
19077 REGB0 = REGB1;
19078 } else {
19079 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19080 REGB0 = REGB1;
19081 }
19082 }
19083 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19084 if (UNTAG_Bool(REGB0)) {
19085 /* parser/parser_prod.nit:3498 */
19086 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19087 if (UNTAG_Bool(REGB0)) {
19088 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3498);
19089 }
19090 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19091 /* parser/parser_prod.nit:3499 */
19092 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19093 if (UNTAG_Bool(REGB0)) {
19094 } else {
19095 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3499);
19096 }
19097 /* parser/parser_prod.nit:3500 */
19098 ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
19099 } else {
19100 /* parser/parser_prod.nit:3502 */
19101 ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
19102 }
19103 /* parser/parser_prod.nit:3504 */
19104 goto label1;
19105 }
19106 label1: while(0);
19107 stack_frame_head = fra.me.prev;
19108 return;
19109 }
19110 void parser___parser_prod___AReturnExpr___visit_all(val_t p0, val_t p1){
19111 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19112 val_t REGB0;
19113 val_t REGB1;
19114 val_t tmp;
19115 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19116 fra.me.file = LOCATE_parser___parser_prod;
19117 fra.me.line = 3508;
19118 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___visit_all;
19119 fra.me.has_broke = 0;
19120 fra.me.REG_size = 4;
19121 fra.me.nitni_local_ref_head = NULL;
19122 fra.me.REG[0] = NIT_NULL;
19123 fra.me.REG[1] = NIT_NULL;
19124 fra.me.REG[2] = NIT_NULL;
19125 fra.me.REG[3] = NIT_NULL;
19126 fra.me.REG[0] = p0;
19127 fra.me.REG[1] = p1;
19128 /* parser/parser_prod.nit:3508 */
19129 fra.me.REG[2] = fra.me.REG[0];
19130 /* parser/parser_prod.nit:3510 */
19131 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[2]);
19132 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19133 if (UNTAG_Bool(REGB0)) {
19134 } else {
19135 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19136 if (UNTAG_Bool(REGB1)) {
19137 REGB1 = TAG_Bool(false);
19138 REGB0 = REGB1;
19139 } else {
19140 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19141 REGB0 = REGB1;
19142 }
19143 }
19144 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19145 if (UNTAG_Bool(REGB0)) {
19146 /* parser/parser_prod.nit:3511 */
19147 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[2]);
19148 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwreturn, ID_parser___parser_nodes___TKwreturn)) /*cast TKwreturn*/;
19149 if (UNTAG_Bool(REGB0)) {
19150 } else {
19151 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3511);
19152 }
19153 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19154 }
19155 /* parser/parser_prod.nit:3513 */
19156 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[2]);
19157 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19158 if (UNTAG_Bool(REGB0)) {
19159 } else {
19160 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19161 if (UNTAG_Bool(REGB1)) {
19162 REGB1 = TAG_Bool(false);
19163 REGB0 = REGB1;
19164 } else {
19165 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19166 REGB0 = REGB1;
19167 }
19168 }
19169 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19170 if (UNTAG_Bool(REGB0)) {
19171 /* parser/parser_prod.nit:3514 */
19172 fra.me.REG[2] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[2]);
19173 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19174 if (UNTAG_Bool(REGB0)) {
19175 } else {
19176 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3514);
19177 }
19178 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19179 }
19180 stack_frame_head = fra.me.prev;
19181 return;
19182 }
19183 void parser___parser_prod___ABreakExpr___empty_init(val_t p0, int* init_table){
19184 int itpos113 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakExpr].i;
19185 struct {struct stack_frame_t me;} fra;
19186 val_t tmp;
19187 if (init_table[itpos113]) return;
19188 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19189 fra.me.file = LOCATE_parser___parser_prod;
19190 fra.me.line = 3519;
19191 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___empty_init;
19192 fra.me.has_broke = 0;
19193 fra.me.REG_size = 1;
19194 fra.me.nitni_local_ref_head = NULL;
19195 fra.me.REG[0] = NIT_NULL;
19196 fra.me.REG[0] = p0;
19197 stack_frame_head = fra.me.prev;
19198 init_table[itpos113] = 1;
19199 return;
19200 }
19201 void parser___parser_prod___ABreakExpr___init_abreakexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
19202 int itpos114 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakExpr].i;
19203 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
19204 val_t REGB0;
19205 val_t REGB1;
19206 val_t tmp;
19207 if (init_table[itpos114]) return;
19208 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19209 fra.me.file = LOCATE_parser___parser_prod;
19210 fra.me.line = 3521;
19211 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___init_abreakexpr;
19212 fra.me.has_broke = 0;
19213 fra.me.REG_size = 5;
19214 fra.me.nitni_local_ref_head = NULL;
19215 fra.me.REG[0] = NIT_NULL;
19216 fra.me.REG[1] = NIT_NULL;
19217 fra.me.REG[2] = NIT_NULL;
19218 fra.me.REG[3] = NIT_NULL;
19219 fra.me.REG[4] = NIT_NULL;
19220 fra.me.REG[0] = p0;
19221 fra.me.REG[1] = p1;
19222 fra.me.REG[2] = p2;
19223 fra.me.REG[3] = p3;
19224 /* parser/parser_prod.nit:3521 */
19225 fra.me.REG[4] = fra.me.REG[0];
19226 /* parser/parser_prod.nit:3527 */
19227 CALL_parser___parser_prod___ABreakExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
19228 /* parser/parser_prod.nit:3528 */
19229 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
19230 if (UNTAG_Bool(REGB0)) {
19231 } else {
19232 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3528);
19233 }
19234 ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[4]) = fra.me.REG[1];
19235 /* parser/parser_prod.nit:3529 */
19236 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19237 if (UNTAG_Bool(REGB0)) {
19238 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3529);
19239 }
19240 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
19241 /* parser/parser_prod.nit:3530 */
19242 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[2];
19243 /* parser/parser_prod.nit:3531 */
19244 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19245 if (UNTAG_Bool(REGB0)) {
19246 } else {
19247 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19248 if (UNTAG_Bool(REGB1)) {
19249 REGB1 = TAG_Bool(false);
19250 REGB0 = REGB1;
19251 } else {
19252 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19253 REGB0 = REGB1;
19254 }
19255 }
19256 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19257 if (UNTAG_Bool(REGB0)) {
19258 /* parser/parser_prod.nit:3532 */
19259 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19260 if (UNTAG_Bool(REGB0)) {
19261 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3532);
19262 }
19263 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
19264 }
19265 /* parser/parser_prod.nit:3534 */
19266 ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[4]) = fra.me.REG[3];
19267 /* parser/parser_prod.nit:3535 */
19268 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19269 if (UNTAG_Bool(REGB0)) {
19270 } else {
19271 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19272 if (UNTAG_Bool(REGB1)) {
19273 REGB1 = TAG_Bool(false);
19274 REGB0 = REGB1;
19275 } else {
19276 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19277 REGB0 = REGB1;
19278 }
19279 }
19280 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19281 if (UNTAG_Bool(REGB0)) {
19282 /* parser/parser_prod.nit:3536 */
19283 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19284 if (UNTAG_Bool(REGB0)) {
19285 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3536);
19286 }
19287 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
19288 }
19289 stack_frame_head = fra.me.prev;
19290 init_table[itpos114] = 1;
19291 return;
19292 }
19293 void parser___parser_prod___ABreakExpr___replace_child(val_t p0, val_t p1, val_t p2){
19294 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19295 val_t REGB0;
19296 val_t REGB1;
19297 val_t tmp;
19298 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19299 fra.me.file = LOCATE_parser___parser_prod;
19300 fra.me.line = 3540;
19301 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___replace_child;
19302 fra.me.has_broke = 0;
19303 fra.me.REG_size = 4;
19304 fra.me.nitni_local_ref_head = NULL;
19305 fra.me.REG[0] = NIT_NULL;
19306 fra.me.REG[1] = NIT_NULL;
19307 fra.me.REG[2] = NIT_NULL;
19308 fra.me.REG[3] = NIT_NULL;
19309 fra.me.REG[0] = p0;
19310 fra.me.REG[1] = p1;
19311 fra.me.REG[2] = p2;
19312 /* parser/parser_prod.nit:3542 */
19313 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
19314 if (UNTAG_Bool(REGB0)) {
19315 } else {
19316 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 3542);
19317 }
19318 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]);
19319 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19320 if (UNTAG_Bool(REGB0)) {
19321 } else {
19322 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19323 REGB0 = REGB1;
19324 }
19325 if (UNTAG_Bool(REGB0)) {
19326 /* parser/parser_prod.nit:3543 */
19327 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19328 if (UNTAG_Bool(REGB0)) {
19329 } else {
19330 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19331 if (UNTAG_Bool(REGB1)) {
19332 REGB1 = TAG_Bool(false);
19333 REGB0 = REGB1;
19334 } else {
19335 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19336 REGB0 = REGB1;
19337 }
19338 }
19339 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19340 if (UNTAG_Bool(REGB0)) {
19341 /* parser/parser_prod.nit:3544 */
19342 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19343 if (UNTAG_Bool(REGB0)) {
19344 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3544);
19345 }
19346 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19347 /* parser/parser_prod.nit:3545 */
19348 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwbreak, ID_parser___parser_nodes___TKwbreak)) /*cast TKwbreak*/;
19349 if (UNTAG_Bool(REGB0)) {
19350 } else {
19351 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3545);
19352 }
19353 /* parser/parser_prod.nit:3546 */
19354 ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
19355 } else {
19356 /* parser/parser_prod.nit:3548 */
19357 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3548);
19358 }
19359 /* parser/parser_prod.nit:3550 */
19360 goto label1;
19361 }
19362 /* parser/parser_prod.nit:3552 */
19363 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
19364 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19365 if (UNTAG_Bool(REGB0)) {
19366 } else {
19367 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19368 if (UNTAG_Bool(REGB1)) {
19369 REGB1 = TAG_Bool(false);
19370 REGB0 = REGB1;
19371 } else {
19372 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19373 REGB0 = REGB1;
19374 }
19375 }
19376 if (UNTAG_Bool(REGB0)) {
19377 /* parser/parser_prod.nit:3553 */
19378 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19379 if (UNTAG_Bool(REGB0)) {
19380 } else {
19381 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19382 if (UNTAG_Bool(REGB1)) {
19383 REGB1 = TAG_Bool(false);
19384 REGB0 = REGB1;
19385 } else {
19386 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19387 REGB0 = REGB1;
19388 }
19389 }
19390 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19391 if (UNTAG_Bool(REGB0)) {
19392 /* parser/parser_prod.nit:3554 */
19393 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19394 if (UNTAG_Bool(REGB0)) {
19395 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3554);
19396 }
19397 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19398 /* parser/parser_prod.nit:3555 */
19399 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
19400 if (UNTAG_Bool(REGB0)) {
19401 } else {
19402 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3555);
19403 }
19404 /* parser/parser_prod.nit:3556 */
19405 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
19406 } else {
19407 /* parser/parser_prod.nit:3558 */
19408 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
19409 }
19410 /* parser/parser_prod.nit:3560 */
19411 goto label1;
19412 }
19413 /* parser/parser_prod.nit:3562 */
19414 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]);
19415 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19416 if (UNTAG_Bool(REGB0)) {
19417 } else {
19418 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19419 if (UNTAG_Bool(REGB1)) {
19420 REGB1 = TAG_Bool(false);
19421 REGB0 = REGB1;
19422 } else {
19423 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19424 REGB0 = REGB1;
19425 }
19426 }
19427 if (UNTAG_Bool(REGB0)) {
19428 /* parser/parser_prod.nit:3563 */
19429 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19430 if (UNTAG_Bool(REGB0)) {
19431 } else {
19432 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19433 if (UNTAG_Bool(REGB1)) {
19434 REGB1 = TAG_Bool(false);
19435 REGB0 = REGB1;
19436 } else {
19437 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19438 REGB0 = REGB1;
19439 }
19440 }
19441 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19442 if (UNTAG_Bool(REGB0)) {
19443 /* parser/parser_prod.nit:3564 */
19444 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19445 if (UNTAG_Bool(REGB0)) {
19446 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3564);
19447 }
19448 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19449 /* parser/parser_prod.nit:3565 */
19450 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19451 if (UNTAG_Bool(REGB0)) {
19452 } else {
19453 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3565);
19454 }
19455 /* parser/parser_prod.nit:3566 */
19456 ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
19457 } else {
19458 /* parser/parser_prod.nit:3568 */
19459 ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
19460 }
19461 /* parser/parser_prod.nit:3570 */
19462 goto label1;
19463 }
19464 label1: while(0);
19465 stack_frame_head = fra.me.prev;
19466 return;
19467 }
19468 void parser___parser_prod___ABreakExpr___visit_all(val_t p0, val_t p1){
19469 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19470 val_t REGB0;
19471 val_t REGB1;
19472 val_t tmp;
19473 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19474 fra.me.file = LOCATE_parser___parser_prod;
19475 fra.me.line = 3574;
19476 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___visit_all;
19477 fra.me.has_broke = 0;
19478 fra.me.REG_size = 4;
19479 fra.me.nitni_local_ref_head = NULL;
19480 fra.me.REG[0] = NIT_NULL;
19481 fra.me.REG[1] = NIT_NULL;
19482 fra.me.REG[2] = NIT_NULL;
19483 fra.me.REG[3] = NIT_NULL;
19484 fra.me.REG[0] = p0;
19485 fra.me.REG[1] = p1;
19486 /* parser/parser_prod.nit:3574 */
19487 fra.me.REG[2] = fra.me.REG[0];
19488 /* parser/parser_prod.nit:3576 */
19489 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[2])!=NIT_NULL);
19490 if (UNTAG_Bool(REGB0)) {
19491 } else {
19492 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 3576);
19493 }
19494 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[2]);
19495 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19496 /* parser/parser_prod.nit:3577 */
19497 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
19498 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19499 if (UNTAG_Bool(REGB0)) {
19500 } else {
19501 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19502 if (UNTAG_Bool(REGB1)) {
19503 REGB1 = TAG_Bool(false);
19504 REGB0 = REGB1;
19505 } else {
19506 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19507 REGB0 = REGB1;
19508 }
19509 }
19510 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19511 if (UNTAG_Bool(REGB0)) {
19512 /* parser/parser_prod.nit:3578 */
19513 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
19514 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
19515 if (UNTAG_Bool(REGB0)) {
19516 } else {
19517 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3578);
19518 }
19519 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19520 }
19521 /* parser/parser_prod.nit:3580 */
19522 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[2]);
19523 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19524 if (UNTAG_Bool(REGB0)) {
19525 } else {
19526 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19527 if (UNTAG_Bool(REGB1)) {
19528 REGB1 = TAG_Bool(false);
19529 REGB0 = REGB1;
19530 } else {
19531 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19532 REGB0 = REGB1;
19533 }
19534 }
19535 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19536 if (UNTAG_Bool(REGB0)) {
19537 /* parser/parser_prod.nit:3581 */
19538 fra.me.REG[2] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[2]);
19539 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19540 if (UNTAG_Bool(REGB0)) {
19541 } else {
19542 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3581);
19543 }
19544 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19545 }
19546 stack_frame_head = fra.me.prev;
19547 return;
19548 }
19549 void parser___parser_prod___AAbortExpr___empty_init(val_t p0, int* init_table){
19550 int itpos115 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbortExpr].i;
19551 struct {struct stack_frame_t me;} fra;
19552 val_t tmp;
19553 if (init_table[itpos115]) return;
19554 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19555 fra.me.file = LOCATE_parser___parser_prod;
19556 fra.me.line = 3586;
19557 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___empty_init;
19558 fra.me.has_broke = 0;
19559 fra.me.REG_size = 1;
19560 fra.me.nitni_local_ref_head = NULL;
19561 fra.me.REG[0] = NIT_NULL;
19562 fra.me.REG[0] = p0;
19563 stack_frame_head = fra.me.prev;
19564 init_table[itpos115] = 1;
19565 return;
19566 }
19567 void parser___parser_prod___AAbortExpr___init_aabortexpr(val_t p0, val_t p1, int* init_table){
19568 int itpos116 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbortExpr].i;
19569 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
19570 val_t REGB0;
19571 val_t tmp;
19572 if (init_table[itpos116]) return;
19573 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19574 fra.me.file = LOCATE_parser___parser_prod;
19575 fra.me.line = 3588;
19576 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___init_aabortexpr;
19577 fra.me.has_broke = 0;
19578 fra.me.REG_size = 3;
19579 fra.me.nitni_local_ref_head = NULL;
19580 fra.me.REG[0] = NIT_NULL;
19581 fra.me.REG[1] = NIT_NULL;
19582 fra.me.REG[2] = NIT_NULL;
19583 fra.me.REG[0] = p0;
19584 fra.me.REG[1] = p1;
19585 /* parser/parser_prod.nit:3588 */
19586 fra.me.REG[2] = fra.me.REG[0];
19587 /* parser/parser_prod.nit:3592 */
19588 CALL_parser___parser_prod___AAbortExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
19589 /* parser/parser_prod.nit:3593 */
19590 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
19591 if (UNTAG_Bool(REGB0)) {
19592 } else {
19593 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3593);
19594 }
19595 ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[2]) = fra.me.REG[1];
19596 /* parser/parser_prod.nit:3594 */
19597 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19598 if (UNTAG_Bool(REGB0)) {
19599 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3594);
19600 }
19601 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19602 stack_frame_head = fra.me.prev;
19603 init_table[itpos116] = 1;
19604 return;
19605 }
19606 void parser___parser_prod___AAbortExpr___replace_child(val_t p0, val_t p1, val_t p2){
19607 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19608 val_t REGB0;
19609 val_t REGB1;
19610 val_t tmp;
19611 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19612 fra.me.file = LOCATE_parser___parser_prod;
19613 fra.me.line = 3597;
19614 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___replace_child;
19615 fra.me.has_broke = 0;
19616 fra.me.REG_size = 4;
19617 fra.me.nitni_local_ref_head = NULL;
19618 fra.me.REG[0] = NIT_NULL;
19619 fra.me.REG[1] = NIT_NULL;
19620 fra.me.REG[2] = NIT_NULL;
19621 fra.me.REG[3] = NIT_NULL;
19622 fra.me.REG[0] = p0;
19623 fra.me.REG[1] = p1;
19624 fra.me.REG[2] = p2;
19625 /* parser/parser_prod.nit:3599 */
19626 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0])!=NIT_NULL);
19627 if (UNTAG_Bool(REGB0)) {
19628 } else {
19629 nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser___parser_prod, 3599);
19630 }
19631 fra.me.REG[3] = ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]);
19632 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19633 if (UNTAG_Bool(REGB0)) {
19634 } else {
19635 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19636 REGB0 = REGB1;
19637 }
19638 if (UNTAG_Bool(REGB0)) {
19639 /* parser/parser_prod.nit:3600 */
19640 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19641 if (UNTAG_Bool(REGB0)) {
19642 } else {
19643 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19644 if (UNTAG_Bool(REGB1)) {
19645 REGB1 = TAG_Bool(false);
19646 REGB0 = REGB1;
19647 } else {
19648 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19649 REGB0 = REGB1;
19650 }
19651 }
19652 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19653 if (UNTAG_Bool(REGB0)) {
19654 /* parser/parser_prod.nit:3601 */
19655 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19656 if (UNTAG_Bool(REGB0)) {
19657 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3601);
19658 }
19659 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19660 /* parser/parser_prod.nit:3602 */
19661 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwabort, ID_parser___parser_nodes___TKwabort)) /*cast TKwabort*/;
19662 if (UNTAG_Bool(REGB0)) {
19663 } else {
19664 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3602);
19665 }
19666 /* parser/parser_prod.nit:3603 */
19667 ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]) = fra.me.REG[2];
19668 } else {
19669 /* parser/parser_prod.nit:3605 */
19670 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3605);
19671 }
19672 /* parser/parser_prod.nit:3607 */
19673 goto label1;
19674 }
19675 label1: while(0);
19676 stack_frame_head = fra.me.prev;
19677 return;
19678 }
19679 void parser___parser_prod___AAbortExpr___visit_all(val_t p0, val_t p1){
19680 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19681 val_t REGB0;
19682 val_t tmp;
19683 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19684 fra.me.file = LOCATE_parser___parser_prod;
19685 fra.me.line = 3611;
19686 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___visit_all;
19687 fra.me.has_broke = 0;
19688 fra.me.REG_size = 2;
19689 fra.me.nitni_local_ref_head = NULL;
19690 fra.me.REG[0] = NIT_NULL;
19691 fra.me.REG[1] = NIT_NULL;
19692 fra.me.REG[0] = p0;
19693 fra.me.REG[1] = p1;
19694 /* parser/parser_prod.nit:3613 */
19695 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0])!=NIT_NULL);
19696 if (UNTAG_Bool(REGB0)) {
19697 } else {
19698 nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser___parser_prod, 3613);
19699 }
19700 fra.me.REG[0] = ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]);
19701 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
19702 stack_frame_head = fra.me.prev;
19703 return;
19704 }
19705 void parser___parser_prod___AContinueExpr___empty_init(val_t p0, int* init_table){
19706 int itpos117 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AContinueExpr].i;
19707 struct {struct stack_frame_t me;} fra;
19708 val_t tmp;
19709 if (init_table[itpos117]) return;
19710 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19711 fra.me.file = LOCATE_parser___parser_prod;
19712 fra.me.line = 3617;
19713 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___empty_init;
19714 fra.me.has_broke = 0;
19715 fra.me.REG_size = 1;
19716 fra.me.nitni_local_ref_head = NULL;
19717 fra.me.REG[0] = NIT_NULL;
19718 fra.me.REG[0] = p0;
19719 stack_frame_head = fra.me.prev;
19720 init_table[itpos117] = 1;
19721 return;
19722 }
19723 void parser___parser_prod___AContinueExpr___init_acontinueexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
19724 int itpos118 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AContinueExpr].i;
19725 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19726 val_t REGB0;
19727 val_t REGB1;
19728 val_t tmp;
19729 if (init_table[itpos118]) return;
19730 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19731 fra.me.file = LOCATE_parser___parser_prod;
19732 fra.me.line = 3619;
19733 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___init_acontinueexpr;
19734 fra.me.has_broke = 0;
19735 fra.me.REG_size = 4;
19736 fra.me.nitni_local_ref_head = NULL;
19737 fra.me.REG[0] = NIT_NULL;
19738 fra.me.REG[1] = NIT_NULL;
19739 fra.me.REG[2] = NIT_NULL;
19740 fra.me.REG[3] = NIT_NULL;
19741 fra.me.REG[0] = p0;
19742 fra.me.REG[1] = p1;
19743 fra.me.REG[2] = p2;
19744 fra.me.REG[3] = p3;
19745 /* parser/parser_prod.nit:3625 */
19746 CALL_parser___parser_prod___AContinueExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
19747 /* parser/parser_prod.nit:3626 */
19748 ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = fra.me.REG[1];
19749 /* parser/parser_prod.nit:3627 */
19750 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19751 if (UNTAG_Bool(REGB0)) {
19752 } else {
19753 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19754 if (UNTAG_Bool(REGB1)) {
19755 REGB1 = TAG_Bool(false);
19756 REGB0 = REGB1;
19757 } else {
19758 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
19759 REGB0 = REGB1;
19760 }
19761 }
19762 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19763 if (UNTAG_Bool(REGB0)) {
19764 /* parser/parser_prod.nit:3628 */
19765 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19766 if (UNTAG_Bool(REGB0)) {
19767 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3628);
19768 }
19769 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
19770 }
19771 /* parser/parser_prod.nit:3630 */
19772 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
19773 /* parser/parser_prod.nit:3631 */
19774 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19775 if (UNTAG_Bool(REGB0)) {
19776 } else {
19777 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19778 if (UNTAG_Bool(REGB1)) {
19779 REGB1 = TAG_Bool(false);
19780 REGB0 = REGB1;
19781 } else {
19782 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19783 REGB0 = REGB1;
19784 }
19785 }
19786 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19787 if (UNTAG_Bool(REGB0)) {
19788 /* parser/parser_prod.nit:3632 */
19789 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19790 if (UNTAG_Bool(REGB0)) {
19791 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3632);
19792 }
19793 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19794 }
19795 /* parser/parser_prod.nit:3634 */
19796 ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = fra.me.REG[3];
19797 /* parser/parser_prod.nit:3635 */
19798 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19799 if (UNTAG_Bool(REGB0)) {
19800 } else {
19801 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19802 if (UNTAG_Bool(REGB1)) {
19803 REGB1 = TAG_Bool(false);
19804 REGB0 = REGB1;
19805 } else {
19806 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19807 REGB0 = REGB1;
19808 }
19809 }
19810 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19811 if (UNTAG_Bool(REGB0)) {
19812 /* parser/parser_prod.nit:3636 */
19813 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19814 if (UNTAG_Bool(REGB0)) {
19815 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3636);
19816 }
19817 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
19818 }
19819 stack_frame_head = fra.me.prev;
19820 init_table[itpos118] = 1;
19821 return;
19822 }
19823 void parser___parser_prod___AContinueExpr___replace_child(val_t p0, val_t p1, val_t p2){
19824 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19825 val_t REGB0;
19826 val_t REGB1;
19827 val_t tmp;
19828 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19829 fra.me.file = LOCATE_parser___parser_prod;
19830 fra.me.line = 3640;
19831 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___replace_child;
19832 fra.me.has_broke = 0;
19833 fra.me.REG_size = 4;
19834 fra.me.nitni_local_ref_head = NULL;
19835 fra.me.REG[0] = NIT_NULL;
19836 fra.me.REG[1] = NIT_NULL;
19837 fra.me.REG[2] = NIT_NULL;
19838 fra.me.REG[3] = NIT_NULL;
19839 fra.me.REG[0] = p0;
19840 fra.me.REG[1] = p1;
19841 fra.me.REG[2] = p2;
19842 /* parser/parser_prod.nit:3642 */
19843 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]);
19844 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19845 if (UNTAG_Bool(REGB0)) {
19846 } else {
19847 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19848 if (UNTAG_Bool(REGB1)) {
19849 REGB1 = TAG_Bool(false);
19850 REGB0 = REGB1;
19851 } else {
19852 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19853 REGB0 = REGB1;
19854 }
19855 }
19856 if (UNTAG_Bool(REGB0)) {
19857 /* parser/parser_prod.nit:3643 */
19858 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19859 if (UNTAG_Bool(REGB0)) {
19860 } else {
19861 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19862 if (UNTAG_Bool(REGB1)) {
19863 REGB1 = TAG_Bool(false);
19864 REGB0 = REGB1;
19865 } else {
19866 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19867 REGB0 = REGB1;
19868 }
19869 }
19870 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19871 if (UNTAG_Bool(REGB0)) {
19872 /* parser/parser_prod.nit:3644 */
19873 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19874 if (UNTAG_Bool(REGB0)) {
19875 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3644);
19876 }
19877 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19878 /* parser/parser_prod.nit:3645 */
19879 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwcontinue, ID_parser___parser_nodes___TKwcontinue)) /*cast TKwcontinue*/;
19880 if (UNTAG_Bool(REGB0)) {
19881 } else {
19882 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3645);
19883 }
19884 /* parser/parser_prod.nit:3646 */
19885 ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = fra.me.REG[2];
19886 } else {
19887 /* parser/parser_prod.nit:3648 */
19888 ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = NIT_NULL;
19889 }
19890 /* parser/parser_prod.nit:3650 */
19891 goto label1;
19892 }
19893 /* parser/parser_prod.nit:3652 */
19894 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
19895 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19896 if (UNTAG_Bool(REGB0)) {
19897 } else {
19898 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19899 if (UNTAG_Bool(REGB1)) {
19900 REGB1 = TAG_Bool(false);
19901 REGB0 = REGB1;
19902 } else {
19903 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19904 REGB0 = REGB1;
19905 }
19906 }
19907 if (UNTAG_Bool(REGB0)) {
19908 /* parser/parser_prod.nit:3653 */
19909 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19910 if (UNTAG_Bool(REGB0)) {
19911 } else {
19912 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19913 if (UNTAG_Bool(REGB1)) {
19914 REGB1 = TAG_Bool(false);
19915 REGB0 = REGB1;
19916 } else {
19917 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19918 REGB0 = REGB1;
19919 }
19920 }
19921 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19922 if (UNTAG_Bool(REGB0)) {
19923 /* parser/parser_prod.nit:3654 */
19924 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19925 if (UNTAG_Bool(REGB0)) {
19926 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3654);
19927 }
19928 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19929 /* parser/parser_prod.nit:3655 */
19930 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
19931 if (UNTAG_Bool(REGB0)) {
19932 } else {
19933 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3655);
19934 }
19935 /* parser/parser_prod.nit:3656 */
19936 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
19937 } else {
19938 /* parser/parser_prod.nit:3658 */
19939 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
19940 }
19941 /* parser/parser_prod.nit:3660 */
19942 goto label1;
19943 }
19944 /* parser/parser_prod.nit:3662 */
19945 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]);
19946 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19947 if (UNTAG_Bool(REGB0)) {
19948 } else {
19949 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19950 if (UNTAG_Bool(REGB1)) {
19951 REGB1 = TAG_Bool(false);
19952 REGB0 = REGB1;
19953 } else {
19954 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19955 REGB0 = REGB1;
19956 }
19957 }
19958 if (UNTAG_Bool(REGB0)) {
19959 /* parser/parser_prod.nit:3663 */
19960 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19961 if (UNTAG_Bool(REGB0)) {
19962 } else {
19963 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19964 if (UNTAG_Bool(REGB1)) {
19965 REGB1 = TAG_Bool(false);
19966 REGB0 = REGB1;
19967 } else {
19968 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19969 REGB0 = REGB1;
19970 }
19971 }
19972 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19973 if (UNTAG_Bool(REGB0)) {
19974 /* parser/parser_prod.nit:3664 */
19975 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19976 if (UNTAG_Bool(REGB0)) {
19977 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3664);
19978 }
19979 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19980 /* parser/parser_prod.nit:3665 */
19981 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19982 if (UNTAG_Bool(REGB0)) {
19983 } else {
19984 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3665);
19985 }
19986 /* parser/parser_prod.nit:3666 */
19987 ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
19988 } else {
19989 /* parser/parser_prod.nit:3668 */
19990 ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
19991 }
19992 /* parser/parser_prod.nit:3670 */
19993 goto label1;
19994 }
19995 label1: while(0);
19996 stack_frame_head = fra.me.prev;
19997 return;
19998 }
19999 void parser___parser_prod___AContinueExpr___visit_all(val_t p0, val_t p1){
20000 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20001 val_t REGB0;
20002 val_t REGB1;
20003 val_t tmp;
20004 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20005 fra.me.file = LOCATE_parser___parser_prod;
20006 fra.me.line = 3674;
20007 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___visit_all;
20008 fra.me.has_broke = 0;
20009 fra.me.REG_size = 4;
20010 fra.me.nitni_local_ref_head = NULL;
20011 fra.me.REG[0] = NIT_NULL;
20012 fra.me.REG[1] = NIT_NULL;
20013 fra.me.REG[2] = NIT_NULL;
20014 fra.me.REG[3] = NIT_NULL;
20015 fra.me.REG[0] = p0;
20016 fra.me.REG[1] = p1;
20017 /* parser/parser_prod.nit:3674 */
20018 fra.me.REG[2] = fra.me.REG[0];
20019 /* parser/parser_prod.nit:3676 */
20020 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[2]);
20021 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20022 if (UNTAG_Bool(REGB0)) {
20023 } else {
20024 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20025 if (UNTAG_Bool(REGB1)) {
20026 REGB1 = TAG_Bool(false);
20027 REGB0 = REGB1;
20028 } else {
20029 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20030 REGB0 = REGB1;
20031 }
20032 }
20033 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20034 if (UNTAG_Bool(REGB0)) {
20035 /* parser/parser_prod.nit:3677 */
20036 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[2]);
20037 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwcontinue, ID_parser___parser_nodes___TKwcontinue)) /*cast TKwcontinue*/;
20038 if (UNTAG_Bool(REGB0)) {
20039 } else {
20040 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3677);
20041 }
20042 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20043 }
20044 /* parser/parser_prod.nit:3679 */
20045 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
20046 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20047 if (UNTAG_Bool(REGB0)) {
20048 } else {
20049 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20050 if (UNTAG_Bool(REGB1)) {
20051 REGB1 = TAG_Bool(false);
20052 REGB0 = REGB1;
20053 } else {
20054 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20055 REGB0 = REGB1;
20056 }
20057 }
20058 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20059 if (UNTAG_Bool(REGB0)) {
20060 /* parser/parser_prod.nit:3680 */
20061 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
20062 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
20063 if (UNTAG_Bool(REGB0)) {
20064 } else {
20065 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3680);
20066 }
20067 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20068 }
20069 /* parser/parser_prod.nit:3682 */
20070 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[2]);
20071 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20072 if (UNTAG_Bool(REGB0)) {
20073 } else {
20074 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20075 if (UNTAG_Bool(REGB1)) {
20076 REGB1 = TAG_Bool(false);
20077 REGB0 = REGB1;
20078 } else {
20079 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20080 REGB0 = REGB1;
20081 }
20082 }
20083 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20084 if (UNTAG_Bool(REGB0)) {
20085 /* parser/parser_prod.nit:3683 */
20086 fra.me.REG[2] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[2]);
20087 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20088 if (UNTAG_Bool(REGB0)) {
20089 } else {
20090 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3683);
20091 }
20092 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20093 }
20094 stack_frame_head = fra.me.prev;
20095 return;
20096 }
20097 void parser___parser_prod___ADoExpr___empty_init(val_t p0, int* init_table){
20098 int itpos119 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoExpr].i;
20099 struct {struct stack_frame_t me;} fra;
20100 val_t tmp;
20101 if (init_table[itpos119]) return;
20102 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20103 fra.me.file = LOCATE_parser___parser_prod;
20104 fra.me.line = 3688;
20105 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___empty_init;
20106 fra.me.has_broke = 0;
20107 fra.me.REG_size = 1;
20108 fra.me.nitni_local_ref_head = NULL;
20109 fra.me.REG[0] = NIT_NULL;
20110 fra.me.REG[0] = p0;
20111 stack_frame_head = fra.me.prev;
20112 init_table[itpos119] = 1;
20113 return;
20114 }
20115 void parser___parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
20116 int itpos120 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoExpr].i;
20117 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
20118 val_t REGB0;
20119 val_t REGB1;
20120 val_t tmp;
20121 if (init_table[itpos120]) return;
20122 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20123 fra.me.file = LOCATE_parser___parser_prod;
20124 fra.me.line = 3690;
20125 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___init_adoexpr;
20126 fra.me.has_broke = 0;
20127 fra.me.REG_size = 5;
20128 fra.me.nitni_local_ref_head = NULL;
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[4] = NIT_NULL;
20134 fra.me.REG[0] = p0;
20135 fra.me.REG[1] = p1;
20136 fra.me.REG[2] = p2;
20137 fra.me.REG[3] = p3;
20138 /* parser/parser_prod.nit:3690 */
20139 fra.me.REG[4] = fra.me.REG[0];
20140 /* parser/parser_prod.nit:3696 */
20141 CALL_parser___parser_prod___ADoExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
20142 /* parser/parser_prod.nit:3697 */
20143 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
20144 if (UNTAG_Bool(REGB0)) {
20145 } else {
20146 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3697);
20147 }
20148 ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[4]) = fra.me.REG[1];
20149 /* parser/parser_prod.nit:3698 */
20150 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20151 if (UNTAG_Bool(REGB0)) {
20152 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3698);
20153 }
20154 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
20155 /* parser/parser_prod.nit:3699 */
20156 ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[4]) = fra.me.REG[2];
20157 /* parser/parser_prod.nit:3700 */
20158 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20159 if (UNTAG_Bool(REGB0)) {
20160 } else {
20161 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20162 if (UNTAG_Bool(REGB1)) {
20163 REGB1 = TAG_Bool(false);
20164 REGB0 = REGB1;
20165 } else {
20166 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20167 REGB0 = REGB1;
20168 }
20169 }
20170 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20171 if (UNTAG_Bool(REGB0)) {
20172 /* parser/parser_prod.nit:3701 */
20173 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20174 if (UNTAG_Bool(REGB0)) {
20175 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3701);
20176 }
20177 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
20178 }
20179 /* parser/parser_prod.nit:3703 */
20180 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[3];
20181 /* parser/parser_prod.nit:3704 */
20182 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20183 if (UNTAG_Bool(REGB0)) {
20184 } else {
20185 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20186 if (UNTAG_Bool(REGB1)) {
20187 REGB1 = TAG_Bool(false);
20188 REGB0 = REGB1;
20189 } else {
20190 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20191 REGB0 = REGB1;
20192 }
20193 }
20194 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20195 if (UNTAG_Bool(REGB0)) {
20196 /* parser/parser_prod.nit:3705 */
20197 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20198 if (UNTAG_Bool(REGB0)) {
20199 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3705);
20200 }
20201 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
20202 }
20203 stack_frame_head = fra.me.prev;
20204 init_table[itpos120] = 1;
20205 return;
20206 }
20207 void parser___parser_prod___ADoExpr___replace_child(val_t p0, val_t p1, val_t p2){
20208 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20209 val_t REGB0;
20210 val_t REGB1;
20211 val_t tmp;
20212 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20213 fra.me.file = LOCATE_parser___parser_prod;
20214 fra.me.line = 3709;
20215 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___replace_child;
20216 fra.me.has_broke = 0;
20217 fra.me.REG_size = 4;
20218 fra.me.nitni_local_ref_head = NULL;
20219 fra.me.REG[0] = NIT_NULL;
20220 fra.me.REG[1] = NIT_NULL;
20221 fra.me.REG[2] = NIT_NULL;
20222 fra.me.REG[3] = NIT_NULL;
20223 fra.me.REG[0] = p0;
20224 fra.me.REG[1] = p1;
20225 fra.me.REG[2] = p2;
20226 /* parser/parser_prod.nit:3711 */
20227 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
20228 if (UNTAG_Bool(REGB0)) {
20229 } else {
20230 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3711);
20231 }
20232 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]);
20233 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20234 if (UNTAG_Bool(REGB0)) {
20235 } else {
20236 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20237 REGB0 = REGB1;
20238 }
20239 if (UNTAG_Bool(REGB0)) {
20240 /* parser/parser_prod.nit:3712 */
20241 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20242 if (UNTAG_Bool(REGB0)) {
20243 } else {
20244 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20245 if (UNTAG_Bool(REGB1)) {
20246 REGB1 = TAG_Bool(false);
20247 REGB0 = REGB1;
20248 } else {
20249 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20250 REGB0 = REGB1;
20251 }
20252 }
20253 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20254 if (UNTAG_Bool(REGB0)) {
20255 /* parser/parser_prod.nit:3713 */
20256 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20257 if (UNTAG_Bool(REGB0)) {
20258 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3713);
20259 }
20260 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20261 /* parser/parser_prod.nit:3714 */
20262 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast TKwdo*/;
20263 if (UNTAG_Bool(REGB0)) {
20264 } else {
20265 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3714);
20266 }
20267 /* parser/parser_prod.nit:3715 */
20268 ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
20269 } else {
20270 /* parser/parser_prod.nit:3717 */
20271 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3717);
20272 }
20273 /* parser/parser_prod.nit:3719 */
20274 goto label1;
20275 }
20276 /* parser/parser_prod.nit:3721 */
20277 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]);
20278 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20279 if (UNTAG_Bool(REGB0)) {
20280 } else {
20281 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20282 if (UNTAG_Bool(REGB1)) {
20283 REGB1 = TAG_Bool(false);
20284 REGB0 = REGB1;
20285 } else {
20286 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20287 REGB0 = REGB1;
20288 }
20289 }
20290 if (UNTAG_Bool(REGB0)) {
20291 /* parser/parser_prod.nit:3722 */
20292 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20293 if (UNTAG_Bool(REGB0)) {
20294 } else {
20295 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20296 if (UNTAG_Bool(REGB1)) {
20297 REGB1 = TAG_Bool(false);
20298 REGB0 = REGB1;
20299 } else {
20300 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20301 REGB0 = REGB1;
20302 }
20303 }
20304 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20305 if (UNTAG_Bool(REGB0)) {
20306 /* parser/parser_prod.nit:3723 */
20307 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20308 if (UNTAG_Bool(REGB0)) {
20309 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3723);
20310 }
20311 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20312 /* parser/parser_prod.nit:3724 */
20313 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20314 if (UNTAG_Bool(REGB0)) {
20315 } else {
20316 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3724);
20317 }
20318 /* parser/parser_prod.nit:3725 */
20319 ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
20320 } else {
20321 /* parser/parser_prod.nit:3727 */
20322 ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = NIT_NULL;
20323 }
20324 /* parser/parser_prod.nit:3729 */
20325 goto label1;
20326 }
20327 /* parser/parser_prod.nit:3731 */
20328 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
20329 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20330 if (UNTAG_Bool(REGB0)) {
20331 } else {
20332 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20333 if (UNTAG_Bool(REGB1)) {
20334 REGB1 = TAG_Bool(false);
20335 REGB0 = REGB1;
20336 } else {
20337 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20338 REGB0 = REGB1;
20339 }
20340 }
20341 if (UNTAG_Bool(REGB0)) {
20342 /* parser/parser_prod.nit:3732 */
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_standard___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:3733 */
20358 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20359 if (UNTAG_Bool(REGB0)) {
20360 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3733);
20361 }
20362 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20363 /* parser/parser_prod.nit:3734 */
20364 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
20365 if (UNTAG_Bool(REGB0)) {
20366 } else {
20367 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3734);
20368 }
20369 /* parser/parser_prod.nit:3735 */
20370 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
20371 } else {
20372 /* parser/parser_prod.nit:3737 */
20373 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
20374 }
20375 /* parser/parser_prod.nit:3739 */
20376 goto label1;
20377 }
20378 label1: while(0);
20379 stack_frame_head = fra.me.prev;
20380 return;
20381 }
20382 void parser___parser_prod___ADoExpr___visit_all(val_t p0, val_t p1){
20383 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20384 val_t REGB0;
20385 val_t REGB1;
20386 val_t tmp;
20387 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20388 fra.me.file = LOCATE_parser___parser_prod;
20389 fra.me.line = 3743;
20390 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___visit_all;
20391 fra.me.has_broke = 0;
20392 fra.me.REG_size = 4;
20393 fra.me.nitni_local_ref_head = NULL;
20394 fra.me.REG[0] = NIT_NULL;
20395 fra.me.REG[1] = NIT_NULL;
20396 fra.me.REG[2] = NIT_NULL;
20397 fra.me.REG[3] = NIT_NULL;
20398 fra.me.REG[0] = p0;
20399 fra.me.REG[1] = p1;
20400 /* parser/parser_prod.nit:3743 */
20401 fra.me.REG[2] = fra.me.REG[0];
20402 /* parser/parser_prod.nit:3745 */
20403 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
20404 if (UNTAG_Bool(REGB0)) {
20405 } else {
20406 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3745);
20407 }
20408 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[2]);
20409 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20410 /* parser/parser_prod.nit:3746 */
20411 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[2]);
20412 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20413 if (UNTAG_Bool(REGB0)) {
20414 } else {
20415 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20416 if (UNTAG_Bool(REGB1)) {
20417 REGB1 = TAG_Bool(false);
20418 REGB0 = REGB1;
20419 } else {
20420 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20421 REGB0 = REGB1;
20422 }
20423 }
20424 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20425 if (UNTAG_Bool(REGB0)) {
20426 /* parser/parser_prod.nit:3747 */
20427 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[2]);
20428 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20429 if (UNTAG_Bool(REGB0)) {
20430 } else {
20431 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3747);
20432 }
20433 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20434 }
20435 /* parser/parser_prod.nit:3749 */
20436 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
20437 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20438 if (UNTAG_Bool(REGB0)) {
20439 } else {
20440 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20441 if (UNTAG_Bool(REGB1)) {
20442 REGB1 = TAG_Bool(false);
20443 REGB0 = REGB1;
20444 } else {
20445 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20446 REGB0 = REGB1;
20447 }
20448 }
20449 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20450 if (UNTAG_Bool(REGB0)) {
20451 /* parser/parser_prod.nit:3750 */
20452 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
20453 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
20454 if (UNTAG_Bool(REGB0)) {
20455 } else {
20456 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3750);
20457 }
20458 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20459 }
20460 stack_frame_head = fra.me.prev;
20461 return;
20462 }
20463 void parser___parser_prod___AIfExpr___empty_init(val_t p0, int* init_table){
20464 int itpos121 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfExpr].i;
20465 struct {struct stack_frame_t me;} fra;
20466 val_t tmp;
20467 if (init_table[itpos121]) return;
20468 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20469 fra.me.file = LOCATE_parser___parser_prod;
20470 fra.me.line = 3755;
20471 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___empty_init;
20472 fra.me.has_broke = 0;
20473 fra.me.REG_size = 1;
20474 fra.me.nitni_local_ref_head = NULL;
20475 fra.me.REG[0] = NIT_NULL;
20476 fra.me.REG[0] = p0;
20477 stack_frame_head = fra.me.prev;
20478 init_table[itpos121] = 1;
20479 return;
20480 }
20481 void parser___parser_prod___AIfExpr___init_aifexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
20482 int itpos122 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfExpr].i;
20483 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
20484 val_t REGB0;
20485 val_t REGB1;
20486 val_t tmp;
20487 if (init_table[itpos122]) return;
20488 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20489 fra.me.file = LOCATE_parser___parser_prod;
20490 fra.me.line = 3757;
20491 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___init_aifexpr;
20492 fra.me.has_broke = 0;
20493 fra.me.REG_size = 6;
20494 fra.me.nitni_local_ref_head = NULL;
20495 fra.me.REG[0] = NIT_NULL;
20496 fra.me.REG[1] = NIT_NULL;
20497 fra.me.REG[2] = NIT_NULL;
20498 fra.me.REG[3] = NIT_NULL;
20499 fra.me.REG[4] = NIT_NULL;
20500 fra.me.REG[5] = NIT_NULL;
20501 fra.me.REG[0] = p0;
20502 fra.me.REG[1] = p1;
20503 fra.me.REG[2] = p2;
20504 fra.me.REG[3] = p3;
20505 fra.me.REG[4] = p4;
20506 /* parser/parser_prod.nit:3757 */
20507 fra.me.REG[5] = fra.me.REG[0];
20508 /* parser/parser_prod.nit:3764 */
20509 CALL_parser___parser_prod___AIfExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
20510 /* parser/parser_prod.nit:3765 */
20511 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
20512 if (UNTAG_Bool(REGB0)) {
20513 } else {
20514 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3765);
20515 }
20516 ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[5]) = fra.me.REG[1];
20517 /* parser/parser_prod.nit:3766 */
20518 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20519 if (UNTAG_Bool(REGB0)) {
20520 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3766);
20521 }
20522 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
20523 /* parser/parser_prod.nit:3767 */
20524 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
20525 if (UNTAG_Bool(REGB0)) {
20526 } else {
20527 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3767);
20528 }
20529 ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[5]) = fra.me.REG[2];
20530 /* parser/parser_prod.nit:3768 */
20531 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20532 if (UNTAG_Bool(REGB0)) {
20533 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3768);
20534 }
20535 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
20536 /* parser/parser_prod.nit:3769 */
20537 ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[5]) = fra.me.REG[3];
20538 /* parser/parser_prod.nit:3770 */
20539 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20540 if (UNTAG_Bool(REGB0)) {
20541 } else {
20542 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20543 if (UNTAG_Bool(REGB1)) {
20544 REGB1 = TAG_Bool(false);
20545 REGB0 = REGB1;
20546 } else {
20547 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20548 REGB0 = REGB1;
20549 }
20550 }
20551 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20552 if (UNTAG_Bool(REGB0)) {
20553 /* parser/parser_prod.nit:3771 */
20554 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20555 if (UNTAG_Bool(REGB0)) {
20556 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3771);
20557 }
20558 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
20559 }
20560 /* parser/parser_prod.nit:3773 */
20561 ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[5]) = fra.me.REG[4];
20562 /* parser/parser_prod.nit:3774 */
20563 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
20564 if (UNTAG_Bool(REGB0)) {
20565 } else {
20566 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
20567 if (UNTAG_Bool(REGB1)) {
20568 REGB1 = TAG_Bool(false);
20569 REGB0 = REGB1;
20570 } else {
20571 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
20572 REGB0 = REGB1;
20573 }
20574 }
20575 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20576 if (UNTAG_Bool(REGB0)) {
20577 /* parser/parser_prod.nit:3775 */
20578 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
20579 if (UNTAG_Bool(REGB0)) {
20580 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3775);
20581 }
20582 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
20583 }
20584 stack_frame_head = fra.me.prev;
20585 init_table[itpos122] = 1;
20586 return;
20587 }
20588 void parser___parser_prod___AIfExpr___replace_child(val_t p0, val_t p1, val_t p2){
20589 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20590 val_t REGB0;
20591 val_t REGB1;
20592 val_t tmp;
20593 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20594 fra.me.file = LOCATE_parser___parser_prod;
20595 fra.me.line = 3779;
20596 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___replace_child;
20597 fra.me.has_broke = 0;
20598 fra.me.REG_size = 4;
20599 fra.me.nitni_local_ref_head = NULL;
20600 fra.me.REG[0] = NIT_NULL;
20601 fra.me.REG[1] = NIT_NULL;
20602 fra.me.REG[2] = NIT_NULL;
20603 fra.me.REG[3] = NIT_NULL;
20604 fra.me.REG[0] = p0;
20605 fra.me.REG[1] = p1;
20606 fra.me.REG[2] = p2;
20607 /* parser/parser_prod.nit:3781 */
20608 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
20609 if (UNTAG_Bool(REGB0)) {
20610 } else {
20611 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3781);
20612 }
20613 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]);
20614 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20615 if (UNTAG_Bool(REGB0)) {
20616 } else {
20617 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20618 REGB0 = REGB1;
20619 }
20620 if (UNTAG_Bool(REGB0)) {
20621 /* parser/parser_prod.nit:3782 */
20622 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20623 if (UNTAG_Bool(REGB0)) {
20624 } else {
20625 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20626 if (UNTAG_Bool(REGB1)) {
20627 REGB1 = TAG_Bool(false);
20628 REGB0 = REGB1;
20629 } else {
20630 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20631 REGB0 = REGB1;
20632 }
20633 }
20634 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20635 if (UNTAG_Bool(REGB0)) {
20636 /* parser/parser_prod.nit:3783 */
20637 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20638 if (UNTAG_Bool(REGB0)) {
20639 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3783);
20640 }
20641 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20642 /* parser/parser_prod.nit:3784 */
20643 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwif, ID_parser___parser_nodes___TKwif)) /*cast TKwif*/;
20644 if (UNTAG_Bool(REGB0)) {
20645 } else {
20646 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3784);
20647 }
20648 /* parser/parser_prod.nit:3785 */
20649 ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[2];
20650 } else {
20651 /* parser/parser_prod.nit:3787 */
20652 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3787);
20653 }
20654 /* parser/parser_prod.nit:3789 */
20655 goto label1;
20656 }
20657 /* parser/parser_prod.nit:3791 */
20658 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
20659 if (UNTAG_Bool(REGB0)) {
20660 } else {
20661 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3791);
20662 }
20663 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0]);
20664 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20665 if (UNTAG_Bool(REGB0)) {
20666 } else {
20667 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20668 REGB0 = REGB1;
20669 }
20670 if (UNTAG_Bool(REGB0)) {
20671 /* parser/parser_prod.nit:3792 */
20672 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20673 if (UNTAG_Bool(REGB0)) {
20674 } else {
20675 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20676 if (UNTAG_Bool(REGB1)) {
20677 REGB1 = TAG_Bool(false);
20678 REGB0 = REGB1;
20679 } else {
20680 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20681 REGB0 = REGB1;
20682 }
20683 }
20684 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20685 if (UNTAG_Bool(REGB0)) {
20686 /* parser/parser_prod.nit:3793 */
20687 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20688 if (UNTAG_Bool(REGB0)) {
20689 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3793);
20690 }
20691 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20692 /* parser/parser_prod.nit:3794 */
20693 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20694 if (UNTAG_Bool(REGB0)) {
20695 } else {
20696 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3794);
20697 }
20698 /* parser/parser_prod.nit:3795 */
20699 ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
20700 } else {
20701 /* parser/parser_prod.nit:3797 */
20702 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3797);
20703 }
20704 /* parser/parser_prod.nit:3799 */
20705 goto label1;
20706 }
20707 /* parser/parser_prod.nit:3801 */
20708 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]);
20709 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20710 if (UNTAG_Bool(REGB0)) {
20711 } else {
20712 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20713 if (UNTAG_Bool(REGB1)) {
20714 REGB1 = TAG_Bool(false);
20715 REGB0 = REGB1;
20716 } else {
20717 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20718 REGB0 = REGB1;
20719 }
20720 }
20721 if (UNTAG_Bool(REGB0)) {
20722 /* parser/parser_prod.nit:3802 */
20723 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20724 if (UNTAG_Bool(REGB0)) {
20725 } else {
20726 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20727 if (UNTAG_Bool(REGB1)) {
20728 REGB1 = TAG_Bool(false);
20729 REGB0 = REGB1;
20730 } else {
20731 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20732 REGB0 = REGB1;
20733 }
20734 }
20735 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20736 if (UNTAG_Bool(REGB0)) {
20737 /* parser/parser_prod.nit:3803 */
20738 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20739 if (UNTAG_Bool(REGB0)) {
20740 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3803);
20741 }
20742 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20743 /* parser/parser_prod.nit:3804 */
20744 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20745 if (UNTAG_Bool(REGB0)) {
20746 } else {
20747 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3804);
20748 }
20749 /* parser/parser_prod.nit:3805 */
20750 ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = fra.me.REG[2];
20751 } else {
20752 /* parser/parser_prod.nit:3807 */
20753 ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = NIT_NULL;
20754 }
20755 /* parser/parser_prod.nit:3809 */
20756 goto label1;
20757 }
20758 /* parser/parser_prod.nit:3811 */
20759 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]);
20760 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20761 if (UNTAG_Bool(REGB0)) {
20762 } else {
20763 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20764 if (UNTAG_Bool(REGB1)) {
20765 REGB1 = TAG_Bool(false);
20766 REGB0 = REGB1;
20767 } else {
20768 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20769 REGB0 = REGB1;
20770 }
20771 }
20772 if (UNTAG_Bool(REGB0)) {
20773 /* parser/parser_prod.nit:3812 */
20774 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20775 if (UNTAG_Bool(REGB0)) {
20776 } else {
20777 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20778 if (UNTAG_Bool(REGB1)) {
20779 REGB1 = TAG_Bool(false);
20780 REGB0 = REGB1;
20781 } else {
20782 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20783 REGB0 = REGB1;
20784 }
20785 }
20786 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20787 if (UNTAG_Bool(REGB0)) {
20788 /* parser/parser_prod.nit:3813 */
20789 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20790 if (UNTAG_Bool(REGB0)) {
20791 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3813);
20792 }
20793 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20794 /* parser/parser_prod.nit:3814 */
20795 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20796 if (UNTAG_Bool(REGB0)) {
20797 } else {
20798 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3814);
20799 }
20800 /* parser/parser_prod.nit:3815 */
20801 ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
20802 } else {
20803 /* parser/parser_prod.nit:3817 */
20804 ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = NIT_NULL;
20805 }
20806 /* parser/parser_prod.nit:3819 */
20807 goto label1;
20808 }
20809 label1: while(0);
20810 stack_frame_head = fra.me.prev;
20811 return;
20812 }
20813 void parser___parser_prod___AIfExpr___visit_all(val_t p0, val_t p1){
20814 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20815 val_t REGB0;
20816 val_t REGB1;
20817 val_t tmp;
20818 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20819 fra.me.file = LOCATE_parser___parser_prod;
20820 fra.me.line = 3823;
20821 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___visit_all;
20822 fra.me.has_broke = 0;
20823 fra.me.REG_size = 4;
20824 fra.me.nitni_local_ref_head = NULL;
20825 fra.me.REG[0] = NIT_NULL;
20826 fra.me.REG[1] = NIT_NULL;
20827 fra.me.REG[2] = NIT_NULL;
20828 fra.me.REG[3] = NIT_NULL;
20829 fra.me.REG[0] = p0;
20830 fra.me.REG[1] = p1;
20831 /* parser/parser_prod.nit:3823 */
20832 fra.me.REG[2] = fra.me.REG[0];
20833 /* parser/parser_prod.nit:3825 */
20834 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[2])!=NIT_NULL);
20835 if (UNTAG_Bool(REGB0)) {
20836 } else {
20837 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3825);
20838 }
20839 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[2]);
20840 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20841 /* parser/parser_prod.nit:3826 */
20842 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
20843 if (UNTAG_Bool(REGB0)) {
20844 } else {
20845 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3826);
20846 }
20847 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[2]);
20848 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20849 /* parser/parser_prod.nit:3827 */
20850 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[2]);
20851 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20852 if (UNTAG_Bool(REGB0)) {
20853 } else {
20854 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20855 if (UNTAG_Bool(REGB1)) {
20856 REGB1 = TAG_Bool(false);
20857 REGB0 = REGB1;
20858 } else {
20859 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20860 REGB0 = REGB1;
20861 }
20862 }
20863 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20864 if (UNTAG_Bool(REGB0)) {
20865 /* parser/parser_prod.nit:3828 */
20866 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[2]);
20867 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20868 if (UNTAG_Bool(REGB0)) {
20869 } else {
20870 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3828);
20871 }
20872 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20873 }
20874 /* parser/parser_prod.nit:3830 */
20875 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[2]);
20876 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20877 if (UNTAG_Bool(REGB0)) {
20878 } else {
20879 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20880 if (UNTAG_Bool(REGB1)) {
20881 REGB1 = TAG_Bool(false);
20882 REGB0 = REGB1;
20883 } else {
20884 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20885 REGB0 = REGB1;
20886 }
20887 }
20888 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20889 if (UNTAG_Bool(REGB0)) {
20890 /* parser/parser_prod.nit:3831 */
20891 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[2]);
20892 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20893 if (UNTAG_Bool(REGB0)) {
20894 } else {
20895 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3831);
20896 }
20897 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20898 }
20899 stack_frame_head = fra.me.prev;
20900 return;
20901 }
20902 void parser___parser_prod___AIfexprExpr___empty_init(val_t p0, int* init_table){
20903 int itpos123 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfexprExpr].i;
20904 struct {struct stack_frame_t me;} fra;
20905 val_t tmp;
20906 if (init_table[itpos123]) return;
20907 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20908 fra.me.file = LOCATE_parser___parser_prod;
20909 fra.me.line = 3836;
20910 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___empty_init;
20911 fra.me.has_broke = 0;
20912 fra.me.REG_size = 1;
20913 fra.me.nitni_local_ref_head = NULL;
20914 fra.me.REG[0] = NIT_NULL;
20915 fra.me.REG[0] = p0;
20916 stack_frame_head = fra.me.prev;
20917 init_table[itpos123] = 1;
20918 return;
20919 }
20920 void parser___parser_prod___AIfexprExpr___init_aifexprexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, int* init_table){
20921 int itpos124 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfexprExpr].i;
20922 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
20923 val_t REGB0;
20924 val_t tmp;
20925 if (init_table[itpos124]) return;
20926 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20927 fra.me.file = LOCATE_parser___parser_prod;
20928 fra.me.line = 3838;
20929 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___init_aifexprexpr;
20930 fra.me.has_broke = 0;
20931 fra.me.REG_size = 8;
20932 fra.me.nitni_local_ref_head = NULL;
20933 fra.me.REG[0] = NIT_NULL;
20934 fra.me.REG[1] = NIT_NULL;
20935 fra.me.REG[2] = NIT_NULL;
20936 fra.me.REG[3] = NIT_NULL;
20937 fra.me.REG[4] = NIT_NULL;
20938 fra.me.REG[5] = NIT_NULL;
20939 fra.me.REG[6] = NIT_NULL;
20940 fra.me.REG[7] = NIT_NULL;
20941 fra.me.REG[0] = p0;
20942 fra.me.REG[1] = p1;
20943 fra.me.REG[2] = p2;
20944 fra.me.REG[3] = p3;
20945 fra.me.REG[4] = p4;
20946 fra.me.REG[5] = p5;
20947 fra.me.REG[6] = p6;
20948 /* parser/parser_prod.nit:3838 */
20949 fra.me.REG[7] = fra.me.REG[0];
20950 /* parser/parser_prod.nit:3847 */
20951 CALL_parser___parser_prod___AIfexprExpr___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
20952 /* parser/parser_prod.nit:3848 */
20953 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
20954 if (UNTAG_Bool(REGB0)) {
20955 } else {
20956 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3848);
20957 }
20958 ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[7]) = fra.me.REG[1];
20959 /* parser/parser_prod.nit:3849 */
20960 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20961 if (UNTAG_Bool(REGB0)) {
20962 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3849);
20963 }
20964 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
20965 /* parser/parser_prod.nit:3850 */
20966 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
20967 if (UNTAG_Bool(REGB0)) {
20968 } else {
20969 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3850);
20970 }
20971 ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[7]) = fra.me.REG[2];
20972 /* parser/parser_prod.nit:3851 */
20973 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20974 if (UNTAG_Bool(REGB0)) {
20975 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3851);
20976 }
20977 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
20978 /* parser/parser_prod.nit:3852 */
20979 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
20980 if (UNTAG_Bool(REGB0)) {
20981 } else {
20982 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3852);
20983 }
20984 ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[7]) = fra.me.REG[3];
20985 /* parser/parser_prod.nit:3853 */
20986 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20987 if (UNTAG_Bool(REGB0)) {
20988 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3853);
20989 }
20990 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
20991 /* parser/parser_prod.nit:3854 */
20992 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
20993 if (UNTAG_Bool(REGB0)) {
20994 } else {
20995 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3854);
20996 }
20997 ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[7]) = fra.me.REG[4];
20998 /* parser/parser_prod.nit:3855 */
20999 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
21000 if (UNTAG_Bool(REGB0)) {
21001 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3855);
21002 }
21003 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
21004 /* parser/parser_prod.nit:3856 */
21005 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
21006 if (UNTAG_Bool(REGB0)) {
21007 } else {
21008 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3856);
21009 }
21010 ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[7]) = fra.me.REG[5];
21011 /* parser/parser_prod.nit:3857 */
21012 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
21013 if (UNTAG_Bool(REGB0)) {
21014 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3857);
21015 }
21016 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
21017 /* parser/parser_prod.nit:3858 */
21018 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
21019 if (UNTAG_Bool(REGB0)) {
21020 } else {
21021 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3858);
21022 }
21023 ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[7]) = fra.me.REG[6];
21024 /* parser/parser_prod.nit:3859 */
21025 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
21026 if (UNTAG_Bool(REGB0)) {
21027 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3859);
21028 }
21029 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
21030 stack_frame_head = fra.me.prev;
21031 init_table[itpos124] = 1;
21032 return;
21033 }
21034 void parser___parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_t p2){
21035 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21036 val_t REGB0;
21037 val_t REGB1;
21038 val_t tmp;
21039 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21040 fra.me.file = LOCATE_parser___parser_prod;
21041 fra.me.line = 3862;
21042 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___replace_child;
21043 fra.me.has_broke = 0;
21044 fra.me.REG_size = 4;
21045 fra.me.nitni_local_ref_head = NULL;
21046 fra.me.REG[0] = NIT_NULL;
21047 fra.me.REG[1] = NIT_NULL;
21048 fra.me.REG[2] = NIT_NULL;
21049 fra.me.REG[3] = NIT_NULL;
21050 fra.me.REG[0] = p0;
21051 fra.me.REG[1] = p1;
21052 fra.me.REG[2] = p2;
21053 /* parser/parser_prod.nit:3864 */
21054 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
21055 if (UNTAG_Bool(REGB0)) {
21056 } else {
21057 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3864);
21058 }
21059 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]);
21060 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21061 if (UNTAG_Bool(REGB0)) {
21062 } else {
21063 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21064 REGB0 = REGB1;
21065 }
21066 if (UNTAG_Bool(REGB0)) {
21067 /* parser/parser_prod.nit:3865 */
21068 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21069 if (UNTAG_Bool(REGB0)) {
21070 } else {
21071 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21072 if (UNTAG_Bool(REGB1)) {
21073 REGB1 = TAG_Bool(false);
21074 REGB0 = REGB1;
21075 } else {
21076 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21077 REGB0 = REGB1;
21078 }
21079 }
21080 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21081 if (UNTAG_Bool(REGB0)) {
21082 /* parser/parser_prod.nit:3866 */
21083 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21084 if (UNTAG_Bool(REGB0)) {
21085 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3866);
21086 }
21087 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21088 /* parser/parser_prod.nit:3867 */
21089 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwif, ID_parser___parser_nodes___TKwif)) /*cast TKwif*/;
21090 if (UNTAG_Bool(REGB0)) {
21091 } else {
21092 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3867);
21093 }
21094 /* parser/parser_prod.nit:3868 */
21095 ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[2];
21096 } else {
21097 /* parser/parser_prod.nit:3870 */
21098 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3870);
21099 }
21100 /* parser/parser_prod.nit:3872 */
21101 goto label1;
21102 }
21103 /* parser/parser_prod.nit:3874 */
21104 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21105 if (UNTAG_Bool(REGB0)) {
21106 } else {
21107 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3874);
21108 }
21109 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]);
21110 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21111 if (UNTAG_Bool(REGB0)) {
21112 } else {
21113 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21114 REGB0 = REGB1;
21115 }
21116 if (UNTAG_Bool(REGB0)) {
21117 /* parser/parser_prod.nit:3875 */
21118 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21119 if (UNTAG_Bool(REGB0)) {
21120 } else {
21121 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21122 if (UNTAG_Bool(REGB1)) {
21123 REGB1 = TAG_Bool(false);
21124 REGB0 = REGB1;
21125 } else {
21126 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21127 REGB0 = REGB1;
21128 }
21129 }
21130 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21131 if (UNTAG_Bool(REGB0)) {
21132 /* parser/parser_prod.nit:3876 */
21133 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21134 if (UNTAG_Bool(REGB0)) {
21135 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3876);
21136 }
21137 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21138 /* parser/parser_prod.nit:3877 */
21139 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21140 if (UNTAG_Bool(REGB0)) {
21141 } else {
21142 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3877);
21143 }
21144 /* parser/parser_prod.nit:3878 */
21145 ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21146 } else {
21147 /* parser/parser_prod.nit:3880 */
21148 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3880);
21149 }
21150 /* parser/parser_prod.nit:3882 */
21151 goto label1;
21152 }
21153 /* parser/parser_prod.nit:3884 */
21154 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0])!=NIT_NULL);
21155 if (UNTAG_Bool(REGB0)) {
21156 } else {
21157 nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser___parser_prod, 3884);
21158 }
21159 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]);
21160 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21161 if (UNTAG_Bool(REGB0)) {
21162 } else {
21163 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21164 REGB0 = REGB1;
21165 }
21166 if (UNTAG_Bool(REGB0)) {
21167 /* parser/parser_prod.nit:3885 */
21168 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21169 if (UNTAG_Bool(REGB0)) {
21170 } else {
21171 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21172 if (UNTAG_Bool(REGB1)) {
21173 REGB1 = TAG_Bool(false);
21174 REGB0 = REGB1;
21175 } else {
21176 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21177 REGB0 = REGB1;
21178 }
21179 }
21180 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21181 if (UNTAG_Bool(REGB0)) {
21182 /* parser/parser_prod.nit:3886 */
21183 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21184 if (UNTAG_Bool(REGB0)) {
21185 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3886);
21186 }
21187 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21188 /* parser/parser_prod.nit:3887 */
21189 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwthen, ID_parser___parser_nodes___TKwthen)) /*cast TKwthen*/;
21190 if (UNTAG_Bool(REGB0)) {
21191 } else {
21192 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3887);
21193 }
21194 /* parser/parser_prod.nit:3888 */
21195 ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]) = fra.me.REG[2];
21196 } else {
21197 /* parser/parser_prod.nit:3890 */
21198 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3890);
21199 }
21200 /* parser/parser_prod.nit:3892 */
21201 goto label1;
21202 }
21203 /* parser/parser_prod.nit:3894 */
21204 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0])!=NIT_NULL);
21205 if (UNTAG_Bool(REGB0)) {
21206 } else {
21207 nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser___parser_prod, 3894);
21208 }
21209 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]);
21210 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21211 if (UNTAG_Bool(REGB0)) {
21212 } else {
21213 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21214 REGB0 = REGB1;
21215 }
21216 if (UNTAG_Bool(REGB0)) {
21217 /* parser/parser_prod.nit:3895 */
21218 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21219 if (UNTAG_Bool(REGB0)) {
21220 } else {
21221 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21222 if (UNTAG_Bool(REGB1)) {
21223 REGB1 = TAG_Bool(false);
21224 REGB0 = REGB1;
21225 } else {
21226 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21227 REGB0 = REGB1;
21228 }
21229 }
21230 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21231 if (UNTAG_Bool(REGB0)) {
21232 /* parser/parser_prod.nit:3896 */
21233 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21234 if (UNTAG_Bool(REGB0)) {
21235 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3896);
21236 }
21237 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21238 /* parser/parser_prod.nit:3897 */
21239 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21240 if (UNTAG_Bool(REGB0)) {
21241 } else {
21242 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3897);
21243 }
21244 /* parser/parser_prod.nit:3898 */
21245 ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]) = fra.me.REG[2];
21246 } else {
21247 /* parser/parser_prod.nit:3900 */
21248 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3900);
21249 }
21250 /* parser/parser_prod.nit:3902 */
21251 goto label1;
21252 }
21253 /* parser/parser_prod.nit:3904 */
21254 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0])!=NIT_NULL);
21255 if (UNTAG_Bool(REGB0)) {
21256 } else {
21257 nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser___parser_prod, 3904);
21258 }
21259 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]);
21260 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21261 if (UNTAG_Bool(REGB0)) {
21262 } else {
21263 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21264 REGB0 = REGB1;
21265 }
21266 if (UNTAG_Bool(REGB0)) {
21267 /* parser/parser_prod.nit:3905 */
21268 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21269 if (UNTAG_Bool(REGB0)) {
21270 } else {
21271 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21272 if (UNTAG_Bool(REGB1)) {
21273 REGB1 = TAG_Bool(false);
21274 REGB0 = REGB1;
21275 } else {
21276 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21277 REGB0 = REGB1;
21278 }
21279 }
21280 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21281 if (UNTAG_Bool(REGB0)) {
21282 /* parser/parser_prod.nit:3906 */
21283 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21284 if (UNTAG_Bool(REGB0)) {
21285 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3906);
21286 }
21287 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21288 /* parser/parser_prod.nit:3907 */
21289 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwelse, ID_parser___parser_nodes___TKwelse)) /*cast TKwelse*/;
21290 if (UNTAG_Bool(REGB0)) {
21291 } else {
21292 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3907);
21293 }
21294 /* parser/parser_prod.nit:3908 */
21295 ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]) = fra.me.REG[2];
21296 } else {
21297 /* parser/parser_prod.nit:3910 */
21298 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3910);
21299 }
21300 /* parser/parser_prod.nit:3912 */
21301 goto label1;
21302 }
21303 /* parser/parser_prod.nit:3914 */
21304 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0])!=NIT_NULL);
21305 if (UNTAG_Bool(REGB0)) {
21306 } else {
21307 nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser___parser_prod, 3914);
21308 }
21309 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]);
21310 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21311 if (UNTAG_Bool(REGB0)) {
21312 } else {
21313 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21314 REGB0 = REGB1;
21315 }
21316 if (UNTAG_Bool(REGB0)) {
21317 /* parser/parser_prod.nit:3915 */
21318 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21319 if (UNTAG_Bool(REGB0)) {
21320 } else {
21321 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21322 if (UNTAG_Bool(REGB1)) {
21323 REGB1 = TAG_Bool(false);
21324 REGB0 = REGB1;
21325 } else {
21326 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21327 REGB0 = REGB1;
21328 }
21329 }
21330 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21331 if (UNTAG_Bool(REGB0)) {
21332 /* parser/parser_prod.nit:3916 */
21333 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21334 if (UNTAG_Bool(REGB0)) {
21335 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3916);
21336 }
21337 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21338 /* parser/parser_prod.nit:3917 */
21339 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21340 if (UNTAG_Bool(REGB0)) {
21341 } else {
21342 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3917);
21343 }
21344 /* parser/parser_prod.nit:3918 */
21345 ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
21346 } else {
21347 /* parser/parser_prod.nit:3920 */
21348 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3920);
21349 }
21350 /* parser/parser_prod.nit:3922 */
21351 goto label1;
21352 }
21353 label1: while(0);
21354 stack_frame_head = fra.me.prev;
21355 return;
21356 }
21357 void parser___parser_prod___AIfexprExpr___visit_all(val_t p0, val_t p1){
21358 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
21359 val_t REGB0;
21360 val_t tmp;
21361 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21362 fra.me.file = LOCATE_parser___parser_prod;
21363 fra.me.line = 3926;
21364 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___visit_all;
21365 fra.me.has_broke = 0;
21366 fra.me.REG_size = 3;
21367 fra.me.nitni_local_ref_head = NULL;
21368 fra.me.REG[0] = NIT_NULL;
21369 fra.me.REG[1] = NIT_NULL;
21370 fra.me.REG[2] = NIT_NULL;
21371 fra.me.REG[0] = p0;
21372 fra.me.REG[1] = p1;
21373 /* parser/parser_prod.nit:3928 */
21374 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
21375 if (UNTAG_Bool(REGB0)) {
21376 } else {
21377 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3928);
21378 }
21379 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]);
21380 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21381 /* parser/parser_prod.nit:3929 */
21382 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21383 if (UNTAG_Bool(REGB0)) {
21384 } else {
21385 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3929);
21386 }
21387 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]);
21388 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21389 /* parser/parser_prod.nit:3930 */
21390 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0])!=NIT_NULL);
21391 if (UNTAG_Bool(REGB0)) {
21392 } else {
21393 nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser___parser_prod, 3930);
21394 }
21395 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]);
21396 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21397 /* parser/parser_prod.nit:3931 */
21398 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0])!=NIT_NULL);
21399 if (UNTAG_Bool(REGB0)) {
21400 } else {
21401 nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser___parser_prod, 3931);
21402 }
21403 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]);
21404 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21405 /* parser/parser_prod.nit:3932 */
21406 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0])!=NIT_NULL);
21407 if (UNTAG_Bool(REGB0)) {
21408 } else {
21409 nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser___parser_prod, 3932);
21410 }
21411 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]);
21412 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21413 /* parser/parser_prod.nit:3933 */
21414 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0])!=NIT_NULL);
21415 if (UNTAG_Bool(REGB0)) {
21416 } else {
21417 nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser___parser_prod, 3933);
21418 }
21419 fra.me.REG[0] = ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]);
21420 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21421 stack_frame_head = fra.me.prev;
21422 return;
21423 }
21424 void parser___parser_prod___AWhileExpr___empty_init(val_t p0, int* init_table){
21425 int itpos125 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWhileExpr].i;
21426 struct {struct stack_frame_t me;} fra;
21427 val_t tmp;
21428 if (init_table[itpos125]) return;
21429 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21430 fra.me.file = LOCATE_parser___parser_prod;
21431 fra.me.line = 3937;
21432 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___empty_init;
21433 fra.me.has_broke = 0;
21434 fra.me.REG_size = 1;
21435 fra.me.nitni_local_ref_head = NULL;
21436 fra.me.REG[0] = NIT_NULL;
21437 fra.me.REG[0] = p0;
21438 stack_frame_head = fra.me.prev;
21439 init_table[itpos125] = 1;
21440 return;
21441 }
21442 void parser___parser_prod___AWhileExpr___init_awhileexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
21443 int itpos126 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWhileExpr].i;
21444 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
21445 val_t REGB0;
21446 val_t REGB1;
21447 val_t tmp;
21448 if (init_table[itpos126]) return;
21449 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21450 fra.me.file = LOCATE_parser___parser_prod;
21451 fra.me.line = 3939;
21452 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___init_awhileexpr;
21453 fra.me.has_broke = 0;
21454 fra.me.REG_size = 7;
21455 fra.me.nitni_local_ref_head = NULL;
21456 fra.me.REG[0] = NIT_NULL;
21457 fra.me.REG[1] = NIT_NULL;
21458 fra.me.REG[2] = NIT_NULL;
21459 fra.me.REG[3] = NIT_NULL;
21460 fra.me.REG[4] = NIT_NULL;
21461 fra.me.REG[5] = NIT_NULL;
21462 fra.me.REG[6] = NIT_NULL;
21463 fra.me.REG[0] = p0;
21464 fra.me.REG[1] = p1;
21465 fra.me.REG[2] = p2;
21466 fra.me.REG[3] = p3;
21467 fra.me.REG[4] = p4;
21468 fra.me.REG[5] = p5;
21469 /* parser/parser_prod.nit:3939 */
21470 fra.me.REG[6] = fra.me.REG[0];
21471 /* parser/parser_prod.nit:3947 */
21472 CALL_parser___parser_prod___AWhileExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
21473 /* parser/parser_prod.nit:3948 */
21474 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21475 if (UNTAG_Bool(REGB0)) {
21476 } else {
21477 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3948);
21478 }
21479 ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[6]) = fra.me.REG[1];
21480 /* parser/parser_prod.nit:3949 */
21481 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21482 if (UNTAG_Bool(REGB0)) {
21483 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3949);
21484 }
21485 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
21486 /* parser/parser_prod.nit:3950 */
21487 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
21488 if (UNTAG_Bool(REGB0)) {
21489 } else {
21490 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3950);
21491 }
21492 ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[6]) = fra.me.REG[2];
21493 /* parser/parser_prod.nit:3951 */
21494 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21495 if (UNTAG_Bool(REGB0)) {
21496 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3951);
21497 }
21498 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
21499 /* parser/parser_prod.nit:3952 */
21500 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
21501 if (UNTAG_Bool(REGB0)) {
21502 } else {
21503 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3952);
21504 }
21505 ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[6]) = fra.me.REG[3];
21506 /* parser/parser_prod.nit:3953 */
21507 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21508 if (UNTAG_Bool(REGB0)) {
21509 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3953);
21510 }
21511 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
21512 /* parser/parser_prod.nit:3954 */
21513 ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[6]) = fra.me.REG[4];
21514 /* parser/parser_prod.nit:3955 */
21515 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
21516 if (UNTAG_Bool(REGB0)) {
21517 } else {
21518 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
21519 if (UNTAG_Bool(REGB1)) {
21520 REGB1 = TAG_Bool(false);
21521 REGB0 = REGB1;
21522 } else {
21523 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
21524 REGB0 = REGB1;
21525 }
21526 }
21527 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21528 if (UNTAG_Bool(REGB0)) {
21529 /* parser/parser_prod.nit:3956 */
21530 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
21531 if (UNTAG_Bool(REGB0)) {
21532 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3956);
21533 }
21534 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
21535 }
21536 /* parser/parser_prod.nit:3958 */
21537 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[6]) = fra.me.REG[5];
21538 /* parser/parser_prod.nit:3959 */
21539 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
21540 if (UNTAG_Bool(REGB0)) {
21541 } else {
21542 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
21543 if (UNTAG_Bool(REGB1)) {
21544 REGB1 = TAG_Bool(false);
21545 REGB0 = REGB1;
21546 } else {
21547 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
21548 REGB0 = REGB1;
21549 }
21550 }
21551 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21552 if (UNTAG_Bool(REGB0)) {
21553 /* parser/parser_prod.nit:3960 */
21554 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
21555 if (UNTAG_Bool(REGB0)) {
21556 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3960);
21557 }
21558 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
21559 }
21560 stack_frame_head = fra.me.prev;
21561 init_table[itpos126] = 1;
21562 return;
21563 }
21564 void parser___parser_prod___AWhileExpr___replace_child(val_t p0, val_t p1, val_t p2){
21565 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21566 val_t REGB0;
21567 val_t REGB1;
21568 val_t tmp;
21569 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21570 fra.me.file = LOCATE_parser___parser_prod;
21571 fra.me.line = 3964;
21572 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___replace_child;
21573 fra.me.has_broke = 0;
21574 fra.me.REG_size = 4;
21575 fra.me.nitni_local_ref_head = NULL;
21576 fra.me.REG[0] = NIT_NULL;
21577 fra.me.REG[1] = NIT_NULL;
21578 fra.me.REG[2] = NIT_NULL;
21579 fra.me.REG[3] = NIT_NULL;
21580 fra.me.REG[0] = p0;
21581 fra.me.REG[1] = p1;
21582 fra.me.REG[2] = p2;
21583 /* parser/parser_prod.nit:3966 */
21584 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0])!=NIT_NULL);
21585 if (UNTAG_Bool(REGB0)) {
21586 } else {
21587 nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser___parser_prod, 3966);
21588 }
21589 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]);
21590 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21591 if (UNTAG_Bool(REGB0)) {
21592 } else {
21593 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21594 REGB0 = REGB1;
21595 }
21596 if (UNTAG_Bool(REGB0)) {
21597 /* parser/parser_prod.nit:3967 */
21598 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21599 if (UNTAG_Bool(REGB0)) {
21600 } else {
21601 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21602 if (UNTAG_Bool(REGB1)) {
21603 REGB1 = TAG_Bool(false);
21604 REGB0 = REGB1;
21605 } else {
21606 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21607 REGB0 = REGB1;
21608 }
21609 }
21610 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21611 if (UNTAG_Bool(REGB0)) {
21612 /* parser/parser_prod.nit:3968 */
21613 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21614 if (UNTAG_Bool(REGB0)) {
21615 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3968);
21616 }
21617 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21618 /* parser/parser_prod.nit:3969 */
21619 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwwhile, ID_parser___parser_nodes___TKwwhile)) /*cast TKwwhile*/;
21620 if (UNTAG_Bool(REGB0)) {
21621 } else {
21622 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3969);
21623 }
21624 /* parser/parser_prod.nit:3970 */
21625 ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]) = fra.me.REG[2];
21626 } else {
21627 /* parser/parser_prod.nit:3972 */
21628 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3972);
21629 }
21630 /* parser/parser_prod.nit:3974 */
21631 goto label1;
21632 }
21633 /* parser/parser_prod.nit:3976 */
21634 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21635 if (UNTAG_Bool(REGB0)) {
21636 } else {
21637 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3976);
21638 }
21639 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]);
21640 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21641 if (UNTAG_Bool(REGB0)) {
21642 } else {
21643 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21644 REGB0 = REGB1;
21645 }
21646 if (UNTAG_Bool(REGB0)) {
21647 /* parser/parser_prod.nit:3977 */
21648 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21649 if (UNTAG_Bool(REGB0)) {
21650 } else {
21651 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21652 if (UNTAG_Bool(REGB1)) {
21653 REGB1 = TAG_Bool(false);
21654 REGB0 = REGB1;
21655 } else {
21656 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21657 REGB0 = REGB1;
21658 }
21659 }
21660 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21661 if (UNTAG_Bool(REGB0)) {
21662 /* parser/parser_prod.nit:3978 */
21663 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21664 if (UNTAG_Bool(REGB0)) {
21665 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3978);
21666 }
21667 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21668 /* parser/parser_prod.nit:3979 */
21669 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21670 if (UNTAG_Bool(REGB0)) {
21671 } else {
21672 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3979);
21673 }
21674 /* parser/parser_prod.nit:3980 */
21675 ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21676 } else {
21677 /* parser/parser_prod.nit:3982 */
21678 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3982);
21679 }
21680 /* parser/parser_prod.nit:3984 */
21681 goto label1;
21682 }
21683 /* parser/parser_prod.nit:3986 */
21684 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
21685 if (UNTAG_Bool(REGB0)) {
21686 } else {
21687 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3986);
21688 }
21689 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]);
21690 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21691 if (UNTAG_Bool(REGB0)) {
21692 } else {
21693 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21694 REGB0 = REGB1;
21695 }
21696 if (UNTAG_Bool(REGB0)) {
21697 /* parser/parser_prod.nit:3987 */
21698 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21699 if (UNTAG_Bool(REGB0)) {
21700 } else {
21701 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21702 if (UNTAG_Bool(REGB1)) {
21703 REGB1 = TAG_Bool(false);
21704 REGB0 = REGB1;
21705 } else {
21706 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21707 REGB0 = REGB1;
21708 }
21709 }
21710 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21711 if (UNTAG_Bool(REGB0)) {
21712 /* parser/parser_prod.nit:3988 */
21713 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21714 if (UNTAG_Bool(REGB0)) {
21715 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3988);
21716 }
21717 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21718 /* parser/parser_prod.nit:3989 */
21719 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast TKwdo*/;
21720 if (UNTAG_Bool(REGB0)) {
21721 } else {
21722 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3989);
21723 }
21724 /* parser/parser_prod.nit:3990 */
21725 ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
21726 } else {
21727 /* parser/parser_prod.nit:3992 */
21728 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3992);
21729 }
21730 /* parser/parser_prod.nit:3994 */
21731 goto label1;
21732 }
21733 /* parser/parser_prod.nit:3996 */
21734 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]);
21735 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21736 if (UNTAG_Bool(REGB0)) {
21737 } else {
21738 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21739 if (UNTAG_Bool(REGB1)) {
21740 REGB1 = TAG_Bool(false);
21741 REGB0 = REGB1;
21742 } else {
21743 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21744 REGB0 = REGB1;
21745 }
21746 }
21747 if (UNTAG_Bool(REGB0)) {
21748 /* parser/parser_prod.nit:3997 */
21749 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21750 if (UNTAG_Bool(REGB0)) {
21751 } else {
21752 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21753 if (UNTAG_Bool(REGB1)) {
21754 REGB1 = TAG_Bool(false);
21755 REGB0 = REGB1;
21756 } else {
21757 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21758 REGB0 = REGB1;
21759 }
21760 }
21761 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21762 if (UNTAG_Bool(REGB0)) {
21763 /* parser/parser_prod.nit:3998 */
21764 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21765 if (UNTAG_Bool(REGB0)) {
21766 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3998);
21767 }
21768 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21769 /* parser/parser_prod.nit:3999 */
21770 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21771 if (UNTAG_Bool(REGB0)) {
21772 } else {
21773 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3999);
21774 }
21775 /* parser/parser_prod.nit:4000 */
21776 ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
21777 } else {
21778 /* parser/parser_prod.nit:4002 */
21779 ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = NIT_NULL;
21780 }
21781 /* parser/parser_prod.nit:4004 */
21782 goto label1;
21783 }
21784 /* parser/parser_prod.nit:4006 */
21785 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
21786 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21787 if (UNTAG_Bool(REGB0)) {
21788 } else {
21789 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21790 if (UNTAG_Bool(REGB1)) {
21791 REGB1 = TAG_Bool(false);
21792 REGB0 = REGB1;
21793 } else {
21794 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21795 REGB0 = REGB1;
21796 }
21797 }
21798 if (UNTAG_Bool(REGB0)) {
21799 /* parser/parser_prod.nit:4007 */
21800 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21801 if (UNTAG_Bool(REGB0)) {
21802 } else {
21803 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21804 if (UNTAG_Bool(REGB1)) {
21805 REGB1 = TAG_Bool(false);
21806 REGB0 = REGB1;
21807 } else {
21808 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21809 REGB0 = REGB1;
21810 }
21811 }
21812 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21813 if (UNTAG_Bool(REGB0)) {
21814 /* parser/parser_prod.nit:4008 */
21815 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21816 if (UNTAG_Bool(REGB0)) {
21817 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4008);
21818 }
21819 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21820 /* parser/parser_prod.nit:4009 */
21821 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
21822 if (UNTAG_Bool(REGB0)) {
21823 } else {
21824 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4009);
21825 }
21826 /* parser/parser_prod.nit:4010 */
21827 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
21828 } else {
21829 /* parser/parser_prod.nit:4012 */
21830 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
21831 }
21832 /* parser/parser_prod.nit:4014 */
21833 goto label1;
21834 }
21835 label1: while(0);
21836 stack_frame_head = fra.me.prev;
21837 return;
21838 }
21839 void parser___parser_prod___AWhileExpr___visit_all(val_t p0, val_t p1){
21840 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21841 val_t REGB0;
21842 val_t REGB1;
21843 val_t tmp;
21844 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21845 fra.me.file = LOCATE_parser___parser_prod;
21846 fra.me.line = 4018;
21847 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___visit_all;
21848 fra.me.has_broke = 0;
21849 fra.me.REG_size = 4;
21850 fra.me.nitni_local_ref_head = NULL;
21851 fra.me.REG[0] = NIT_NULL;
21852 fra.me.REG[1] = NIT_NULL;
21853 fra.me.REG[2] = NIT_NULL;
21854 fra.me.REG[3] = NIT_NULL;
21855 fra.me.REG[0] = p0;
21856 fra.me.REG[1] = p1;
21857 /* parser/parser_prod.nit:4018 */
21858 fra.me.REG[2] = fra.me.REG[0];
21859 /* parser/parser_prod.nit:4020 */
21860 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[2])!=NIT_NULL);
21861 if (UNTAG_Bool(REGB0)) {
21862 } else {
21863 nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser___parser_prod, 4020);
21864 }
21865 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[2]);
21866 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21867 /* parser/parser_prod.nit:4021 */
21868 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
21869 if (UNTAG_Bool(REGB0)) {
21870 } else {
21871 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4021);
21872 }
21873 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[2]);
21874 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21875 /* parser/parser_prod.nit:4022 */
21876 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
21877 if (UNTAG_Bool(REGB0)) {
21878 } else {
21879 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4022);
21880 }
21881 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[2]);
21882 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21883 /* parser/parser_prod.nit:4023 */
21884 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[2]);
21885 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21886 if (UNTAG_Bool(REGB0)) {
21887 } else {
21888 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21889 if (UNTAG_Bool(REGB1)) {
21890 REGB1 = TAG_Bool(false);
21891 REGB0 = REGB1;
21892 } else {
21893 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21894 REGB0 = REGB1;
21895 }
21896 }
21897 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21898 if (UNTAG_Bool(REGB0)) {
21899 /* parser/parser_prod.nit:4024 */
21900 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[2]);
21901 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21902 if (UNTAG_Bool(REGB0)) {
21903 } else {
21904 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4024);
21905 }
21906 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21907 }
21908 /* parser/parser_prod.nit:4026 */
21909 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
21910 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21911 if (UNTAG_Bool(REGB0)) {
21912 } else {
21913 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21914 if (UNTAG_Bool(REGB1)) {
21915 REGB1 = TAG_Bool(false);
21916 REGB0 = REGB1;
21917 } else {
21918 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21919 REGB0 = REGB1;
21920 }
21921 }
21922 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21923 if (UNTAG_Bool(REGB0)) {
21924 /* parser/parser_prod.nit:4027 */
21925 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
21926 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
21927 if (UNTAG_Bool(REGB0)) {
21928 } else {
21929 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4027);
21930 }
21931 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21932 }
21933 stack_frame_head = fra.me.prev;
21934 return;
21935 }
21936 void parser___parser_prod___ALoopExpr___empty_init(val_t p0, int* init_table){
21937 int itpos127 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALoopExpr].i;
21938 struct {struct stack_frame_t me;} fra;
21939 val_t tmp;
21940 if (init_table[itpos127]) return;
21941 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21942 fra.me.file = LOCATE_parser___parser_prod;
21943 fra.me.line = 4032;
21944 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___empty_init;
21945 fra.me.has_broke = 0;
21946 fra.me.REG_size = 1;
21947 fra.me.nitni_local_ref_head = NULL;
21948 fra.me.REG[0] = NIT_NULL;
21949 fra.me.REG[0] = p0;
21950 stack_frame_head = fra.me.prev;
21951 init_table[itpos127] = 1;
21952 return;
21953 }
21954 void parser___parser_prod___ALoopExpr___init_aloopexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
21955 int itpos128 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALoopExpr].i;
21956 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
21957 val_t REGB0;
21958 val_t REGB1;
21959 val_t tmp;
21960 if (init_table[itpos128]) return;
21961 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21962 fra.me.file = LOCATE_parser___parser_prod;
21963 fra.me.line = 4034;
21964 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___init_aloopexpr;
21965 fra.me.has_broke = 0;
21966 fra.me.REG_size = 5;
21967 fra.me.nitni_local_ref_head = NULL;
21968 fra.me.REG[0] = NIT_NULL;
21969 fra.me.REG[1] = NIT_NULL;
21970 fra.me.REG[2] = NIT_NULL;
21971 fra.me.REG[3] = NIT_NULL;
21972 fra.me.REG[4] = NIT_NULL;
21973 fra.me.REG[0] = p0;
21974 fra.me.REG[1] = p1;
21975 fra.me.REG[2] = p2;
21976 fra.me.REG[3] = p3;
21977 /* parser/parser_prod.nit:4034 */
21978 fra.me.REG[4] = fra.me.REG[0];
21979 /* parser/parser_prod.nit:4040 */
21980 CALL_parser___parser_prod___ALoopExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
21981 /* parser/parser_prod.nit:4041 */
21982 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21983 if (UNTAG_Bool(REGB0)) {
21984 } else {
21985 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4041);
21986 }
21987 ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[4]) = fra.me.REG[1];
21988 /* parser/parser_prod.nit:4042 */
21989 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21990 if (UNTAG_Bool(REGB0)) {
21991 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4042);
21992 }
21993 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
21994 /* parser/parser_prod.nit:4043 */
21995 ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[4]) = fra.me.REG[2];
21996 /* parser/parser_prod.nit:4044 */
21997 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21998 if (UNTAG_Bool(REGB0)) {
21999 } else {
22000 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22001 if (UNTAG_Bool(REGB1)) {
22002 REGB1 = TAG_Bool(false);
22003 REGB0 = REGB1;
22004 } else {
22005 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22006 REGB0 = REGB1;
22007 }
22008 }
22009 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22010 if (UNTAG_Bool(REGB0)) {
22011 /* parser/parser_prod.nit:4045 */
22012 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22013 if (UNTAG_Bool(REGB0)) {
22014 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4045);
22015 }
22016 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
22017 }
22018 /* parser/parser_prod.nit:4047 */
22019 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[3];
22020 /* parser/parser_prod.nit:4048 */
22021 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22022 if (UNTAG_Bool(REGB0)) {
22023 } else {
22024 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22025 if (UNTAG_Bool(REGB1)) {
22026 REGB1 = TAG_Bool(false);
22027 REGB0 = REGB1;
22028 } else {
22029 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22030 REGB0 = REGB1;
22031 }
22032 }
22033 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22034 if (UNTAG_Bool(REGB0)) {
22035 /* parser/parser_prod.nit:4049 */
22036 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22037 if (UNTAG_Bool(REGB0)) {
22038 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4049);
22039 }
22040 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
22041 }
22042 stack_frame_head = fra.me.prev;
22043 init_table[itpos128] = 1;
22044 return;
22045 }
22046 void parser___parser_prod___ALoopExpr___replace_child(val_t p0, val_t p1, val_t p2){
22047 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22048 val_t REGB0;
22049 val_t REGB1;
22050 val_t tmp;
22051 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22052 fra.me.file = LOCATE_parser___parser_prod;
22053 fra.me.line = 4053;
22054 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___replace_child;
22055 fra.me.has_broke = 0;
22056 fra.me.REG_size = 4;
22057 fra.me.nitni_local_ref_head = NULL;
22058 fra.me.REG[0] = NIT_NULL;
22059 fra.me.REG[1] = NIT_NULL;
22060 fra.me.REG[2] = NIT_NULL;
22061 fra.me.REG[3] = NIT_NULL;
22062 fra.me.REG[0] = p0;
22063 fra.me.REG[1] = p1;
22064 fra.me.REG[2] = p2;
22065 /* parser/parser_prod.nit:4055 */
22066 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0])!=NIT_NULL);
22067 if (UNTAG_Bool(REGB0)) {
22068 } else {
22069 nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser___parser_prod, 4055);
22070 }
22071 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]);
22072 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22073 if (UNTAG_Bool(REGB0)) {
22074 } else {
22075 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22076 REGB0 = REGB1;
22077 }
22078 if (UNTAG_Bool(REGB0)) {
22079 /* parser/parser_prod.nit:4056 */
22080 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22081 if (UNTAG_Bool(REGB0)) {
22082 } else {
22083 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22084 if (UNTAG_Bool(REGB1)) {
22085 REGB1 = TAG_Bool(false);
22086 REGB0 = REGB1;
22087 } else {
22088 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22089 REGB0 = REGB1;
22090 }
22091 }
22092 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22093 if (UNTAG_Bool(REGB0)) {
22094 /* parser/parser_prod.nit:4057 */
22095 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22096 if (UNTAG_Bool(REGB0)) {
22097 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4057);
22098 }
22099 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22100 /* parser/parser_prod.nit:4058 */
22101 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwloop, ID_parser___parser_nodes___TKwloop)) /*cast TKwloop*/;
22102 if (UNTAG_Bool(REGB0)) {
22103 } else {
22104 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4058);
22105 }
22106 /* parser/parser_prod.nit:4059 */
22107 ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]) = fra.me.REG[2];
22108 } else {
22109 /* parser/parser_prod.nit:4061 */
22110 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4061);
22111 }
22112 /* parser/parser_prod.nit:4063 */
22113 goto label1;
22114 }
22115 /* parser/parser_prod.nit:4065 */
22116 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]);
22117 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22118 if (UNTAG_Bool(REGB0)) {
22119 } else {
22120 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22121 if (UNTAG_Bool(REGB1)) {
22122 REGB1 = TAG_Bool(false);
22123 REGB0 = REGB1;
22124 } else {
22125 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22126 REGB0 = REGB1;
22127 }
22128 }
22129 if (UNTAG_Bool(REGB0)) {
22130 /* parser/parser_prod.nit:4066 */
22131 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22132 if (UNTAG_Bool(REGB0)) {
22133 } else {
22134 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22135 if (UNTAG_Bool(REGB1)) {
22136 REGB1 = TAG_Bool(false);
22137 REGB0 = REGB1;
22138 } else {
22139 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22140 REGB0 = REGB1;
22141 }
22142 }
22143 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22144 if (UNTAG_Bool(REGB0)) {
22145 /* parser/parser_prod.nit:4067 */
22146 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22147 if (UNTAG_Bool(REGB0)) {
22148 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4067);
22149 }
22150 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22151 /* parser/parser_prod.nit:4068 */
22152 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22153 if (UNTAG_Bool(REGB0)) {
22154 } else {
22155 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4068);
22156 }
22157 /* parser/parser_prod.nit:4069 */
22158 ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
22159 } else {
22160 /* parser/parser_prod.nit:4071 */
22161 ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = NIT_NULL;
22162 }
22163 /* parser/parser_prod.nit:4073 */
22164 goto label1;
22165 }
22166 /* parser/parser_prod.nit:4075 */
22167 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
22168 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22169 if (UNTAG_Bool(REGB0)) {
22170 } else {
22171 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22172 if (UNTAG_Bool(REGB1)) {
22173 REGB1 = TAG_Bool(false);
22174 REGB0 = REGB1;
22175 } else {
22176 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22177 REGB0 = REGB1;
22178 }
22179 }
22180 if (UNTAG_Bool(REGB0)) {
22181 /* parser/parser_prod.nit:4076 */
22182 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22183 if (UNTAG_Bool(REGB0)) {
22184 } else {
22185 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22186 if (UNTAG_Bool(REGB1)) {
22187 REGB1 = TAG_Bool(false);
22188 REGB0 = REGB1;
22189 } else {
22190 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22191 REGB0 = REGB1;
22192 }
22193 }
22194 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22195 if (UNTAG_Bool(REGB0)) {
22196 /* parser/parser_prod.nit:4077 */
22197 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22198 if (UNTAG_Bool(REGB0)) {
22199 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4077);
22200 }
22201 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22202 /* parser/parser_prod.nit:4078 */
22203 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
22204 if (UNTAG_Bool(REGB0)) {
22205 } else {
22206 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4078);
22207 }
22208 /* parser/parser_prod.nit:4079 */
22209 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
22210 } else {
22211 /* parser/parser_prod.nit:4081 */
22212 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
22213 }
22214 /* parser/parser_prod.nit:4083 */
22215 goto label1;
22216 }
22217 label1: while(0);
22218 stack_frame_head = fra.me.prev;
22219 return;
22220 }
22221 void parser___parser_prod___ALoopExpr___visit_all(val_t p0, val_t p1){
22222 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22223 val_t REGB0;
22224 val_t REGB1;
22225 val_t tmp;
22226 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22227 fra.me.file = LOCATE_parser___parser_prod;
22228 fra.me.line = 4087;
22229 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___visit_all;
22230 fra.me.has_broke = 0;
22231 fra.me.REG_size = 4;
22232 fra.me.nitni_local_ref_head = NULL;
22233 fra.me.REG[0] = NIT_NULL;
22234 fra.me.REG[1] = NIT_NULL;
22235 fra.me.REG[2] = NIT_NULL;
22236 fra.me.REG[3] = NIT_NULL;
22237 fra.me.REG[0] = p0;
22238 fra.me.REG[1] = p1;
22239 /* parser/parser_prod.nit:4087 */
22240 fra.me.REG[2] = fra.me.REG[0];
22241 /* parser/parser_prod.nit:4089 */
22242 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[2])!=NIT_NULL);
22243 if (UNTAG_Bool(REGB0)) {
22244 } else {
22245 nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser___parser_prod, 4089);
22246 }
22247 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[2]);
22248 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22249 /* parser/parser_prod.nit:4090 */
22250 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[2]);
22251 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22252 if (UNTAG_Bool(REGB0)) {
22253 } else {
22254 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22255 if (UNTAG_Bool(REGB1)) {
22256 REGB1 = TAG_Bool(false);
22257 REGB0 = REGB1;
22258 } else {
22259 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22260 REGB0 = REGB1;
22261 }
22262 }
22263 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22264 if (UNTAG_Bool(REGB0)) {
22265 /* parser/parser_prod.nit:4091 */
22266 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[2]);
22267 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22268 if (UNTAG_Bool(REGB0)) {
22269 } else {
22270 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4091);
22271 }
22272 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22273 }
22274 /* parser/parser_prod.nit:4093 */
22275 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
22276 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22277 if (UNTAG_Bool(REGB0)) {
22278 } else {
22279 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22280 if (UNTAG_Bool(REGB1)) {
22281 REGB1 = TAG_Bool(false);
22282 REGB0 = REGB1;
22283 } else {
22284 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22285 REGB0 = REGB1;
22286 }
22287 }
22288 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22289 if (UNTAG_Bool(REGB0)) {
22290 /* parser/parser_prod.nit:4094 */
22291 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
22292 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
22293 if (UNTAG_Bool(REGB0)) {
22294 } else {
22295 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4094);
22296 }
22297 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22298 }
22299 stack_frame_head = fra.me.prev;
22300 return;
22301 }
22302 void parser___parser_prod___AForExpr___empty_init(val_t p0, int* init_table){
22303 int itpos129 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AForExpr].i;
22304 struct {struct stack_frame_t me;} fra;
22305 val_t tmp;
22306 if (init_table[itpos129]) return;
22307 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22308 fra.me.file = LOCATE_parser___parser_prod;
22309 fra.me.line = 4099;
22310 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___empty_init;
22311 fra.me.has_broke = 0;
22312 fra.me.REG_size = 1;
22313 fra.me.nitni_local_ref_head = NULL;
22314 fra.me.REG[0] = NIT_NULL;
22315 fra.me.REG[0] = p0;
22316 stack_frame_head = fra.me.prev;
22317 init_table[itpos129] = 1;
22318 return;
22319 }
22320 void parser___parser_prod___AForExpr___init_aforexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, int* init_table){
22321 int itpos130 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AForExpr].i;
22322 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
22323 val_t REGB0;
22324 val_t REGB1;
22325 val_t tmp;
22326 if (init_table[itpos130]) return;
22327 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22328 fra.me.file = LOCATE_parser___parser_prod;
22329 fra.me.line = 4101;
22330 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___init_aforexpr;
22331 fra.me.has_broke = 0;
22332 fra.me.REG_size = 8;
22333 fra.me.nitni_local_ref_head = NULL;
22334 fra.me.REG[0] = NIT_NULL;
22335 fra.me.REG[1] = NIT_NULL;
22336 fra.me.REG[2] = NIT_NULL;
22337 fra.me.REG[3] = NIT_NULL;
22338 fra.me.REG[4] = NIT_NULL;
22339 fra.me.REG[5] = NIT_NULL;
22340 fra.me.REG[6] = NIT_NULL;
22341 fra.me.REG[7] = NIT_NULL;
22342 fra.me.REG[0] = p0;
22343 fra.me.REG[1] = p1;
22344 fra.me.REG[2] = p2;
22345 fra.me.REG[3] = p3;
22346 fra.me.REG[4] = p4;
22347 fra.me.REG[5] = p5;
22348 fra.me.REG[6] = p6;
22349 /* parser/parser_prod.nit:4101 */
22350 fra.me.REG[7] = fra.me.REG[0];
22351 /* parser/parser_prod.nit:4110 */
22352 CALL_parser___parser_prod___AForExpr___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
22353 /* parser/parser_prod.nit:4111 */
22354 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22355 if (UNTAG_Bool(REGB0)) {
22356 } else {
22357 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4111);
22358 }
22359 ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[7]) = fra.me.REG[1];
22360 /* parser/parser_prod.nit:4112 */
22361 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22362 if (UNTAG_Bool(REGB0)) {
22363 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4112);
22364 }
22365 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
22366 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AForExpr___init_aforexpr_1));
22367 /* parser/parser_prod.nit:4118 */
22368 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
22369 if (UNTAG_Bool(REGB0)) {
22370 } else {
22371 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4118);
22372 }
22373 ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[7]) = fra.me.REG[3];
22374 /* parser/parser_prod.nit:4119 */
22375 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22376 if (UNTAG_Bool(REGB0)) {
22377 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4119);
22378 }
22379 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
22380 /* parser/parser_prod.nit:4120 */
22381 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
22382 if (UNTAG_Bool(REGB0)) {
22383 } else {
22384 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4120);
22385 }
22386 ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[7]) = fra.me.REG[4];
22387 /* parser/parser_prod.nit:4121 */
22388 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
22389 if (UNTAG_Bool(REGB0)) {
22390 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4121);
22391 }
22392 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
22393 /* parser/parser_prod.nit:4122 */
22394 ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[7]) = fra.me.REG[5];
22395 /* parser/parser_prod.nit:4123 */
22396 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
22397 if (UNTAG_Bool(REGB0)) {
22398 } else {
22399 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
22400 if (UNTAG_Bool(REGB1)) {
22401 REGB1 = TAG_Bool(false);
22402 REGB0 = REGB1;
22403 } else {
22404 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
22405 REGB0 = REGB1;
22406 }
22407 }
22408 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22409 if (UNTAG_Bool(REGB0)) {
22410 /* parser/parser_prod.nit:4124 */
22411 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
22412 if (UNTAG_Bool(REGB0)) {
22413 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4124);
22414 }
22415 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
22416 }
22417 /* parser/parser_prod.nit:4126 */
22418 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[7]) = fra.me.REG[6];
22419 /* parser/parser_prod.nit:4127 */
22420 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
22421 if (UNTAG_Bool(REGB0)) {
22422 } else {
22423 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
22424 if (UNTAG_Bool(REGB1)) {
22425 REGB1 = TAG_Bool(false);
22426 REGB0 = REGB1;
22427 } else {
22428 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
22429 REGB0 = REGB1;
22430 }
22431 }
22432 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22433 if (UNTAG_Bool(REGB0)) {
22434 /* parser/parser_prod.nit:4128 */
22435 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
22436 if (UNTAG_Bool(REGB0)) {
22437 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4128);
22438 }
22439 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
22440 }
22441 stack_frame_head = fra.me.prev;
22442 init_table[itpos130] = 1;
22443 return;
22444 }
22445 void OC_parser___parser_prod___AForExpr___init_aforexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
22446 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22447 val_t REGB0;
22448 fun_t CREG[1];
22449 val_t tmp;
22450 /* parser/parser_prod.nit:4113 */
22451 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22452 fra.me.file = LOCATE_parser___parser_prod;
22453 fra.me.line = 0;
22454 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___init_aforexpr;
22455 fra.me.has_broke = 0;
22456 fra.me.REG_size = 2;
22457 fra.me.nitni_local_ref_head = NULL;
22458 fra.me.REG[0] = NIT_NULL;
22459 fra.me.REG[1] = NIT_NULL;
22460 fra.me.closure_ctx = closctx_param;
22461 fra.me.closure_funs = CREG;
22462 fra.me.REG[0] = p0;
22463 CREG[0] = clos_fun0;
22464 /* parser/parser_prod.nit:4114 */
22465 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
22466 if (UNTAG_Bool(REGB0)) {
22467 } else {
22468 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4114);
22469 }
22470 /* parser/parser_prod.nit:4115 */
22471 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(closctx->REG[7])!=NIT_NULL);
22472 if (UNTAG_Bool(REGB0)) {
22473 } else {
22474 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4115);
22475 }
22476 fra.me.REG[1] = ATTR_parser___parser_nodes___AForExpr____n_ids(closctx->REG[7]);
22477 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22478 /* parser/parser_prod.nit:4116 */
22479 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[7]);
22480 stack_frame_head = fra.me.prev;
22481 return;
22482 }
22483 void parser___parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p2){
22484 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22485 val_t REGB0;
22486 val_t REGB1;
22487 val_t REGB2;
22488 val_t REGB3;
22489 val_t REGB4;
22490 val_t tmp;
22491 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22492 fra.me.file = LOCATE_parser___parser_prod;
22493 fra.me.line = 4132;
22494 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___replace_child;
22495 fra.me.has_broke = 0;
22496 fra.me.REG_size = 4;
22497 fra.me.nitni_local_ref_head = NULL;
22498 fra.me.REG[0] = NIT_NULL;
22499 fra.me.REG[1] = NIT_NULL;
22500 fra.me.REG[2] = NIT_NULL;
22501 fra.me.REG[3] = NIT_NULL;
22502 fra.me.REG[0] = p0;
22503 fra.me.REG[1] = p1;
22504 fra.me.REG[2] = p2;
22505 /* parser/parser_prod.nit:4134 */
22506 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0])!=NIT_NULL);
22507 if (UNTAG_Bool(REGB0)) {
22508 } else {
22509 nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser___parser_prod, 4134);
22510 }
22511 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]);
22512 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22513 if (UNTAG_Bool(REGB0)) {
22514 } else {
22515 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22516 REGB0 = REGB1;
22517 }
22518 if (UNTAG_Bool(REGB0)) {
22519 /* parser/parser_prod.nit:4135 */
22520 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22521 if (UNTAG_Bool(REGB0)) {
22522 } else {
22523 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22524 if (UNTAG_Bool(REGB1)) {
22525 REGB1 = TAG_Bool(false);
22526 REGB0 = REGB1;
22527 } else {
22528 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22529 REGB0 = REGB1;
22530 }
22531 }
22532 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22533 if (UNTAG_Bool(REGB0)) {
22534 /* parser/parser_prod.nit:4136 */
22535 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22536 if (UNTAG_Bool(REGB0)) {
22537 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4136);
22538 }
22539 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22540 /* parser/parser_prod.nit:4137 */
22541 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwfor, ID_parser___parser_nodes___TKwfor)) /*cast TKwfor*/;
22542 if (UNTAG_Bool(REGB0)) {
22543 } else {
22544 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4137);
22545 }
22546 /* parser/parser_prod.nit:4138 */
22547 ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]) = fra.me.REG[2];
22548 } else {
22549 /* parser/parser_prod.nit:4140 */
22550 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4140);
22551 }
22552 /* parser/parser_prod.nit:4142 */
22553 goto label1;
22554 }
22555 /* parser/parser_prod.nit:4144 */
22556 REGB0 = TAG_Int(0);
22557 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
22558 if (UNTAG_Bool(REGB1)) {
22559 } else {
22560 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4144);
22561 }
22562 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
22563 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
22564 /* ../lib/standard/kernel.nit:352 */
22565 while(1) {
22566 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
22567 if (UNTAG_Bool(REGB2)) {
22568 } else {
22569 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
22570 }
22571 /* ../lib/standard/kernel.nit:232 */
22572 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
22573 /* ../lib/standard/kernel.nit:352 */
22574 if (UNTAG_Bool(REGB2)) {
22575 /* parser/parser_prod.nit:4144 */
22576 REGB2 = REGB0;
22577 /* parser/parser_prod.nit:4145 */
22578 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
22579 if (UNTAG_Bool(REGB3)) {
22580 } else {
22581 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4145);
22582 }
22583 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
22584 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
22585 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22586 if (UNTAG_Bool(REGB3)) {
22587 } else {
22588 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22589 if (UNTAG_Bool(REGB4)) {
22590 REGB4 = TAG_Bool(false);
22591 REGB3 = REGB4;
22592 } else {
22593 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22594 REGB3 = REGB4;
22595 }
22596 }
22597 if (UNTAG_Bool(REGB3)) {
22598 /* parser/parser_prod.nit:4146 */
22599 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22600 if (UNTAG_Bool(REGB3)) {
22601 } else {
22602 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22603 if (UNTAG_Bool(REGB4)) {
22604 REGB4 = TAG_Bool(false);
22605 REGB3 = REGB4;
22606 } else {
22607 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22608 REGB3 = REGB4;
22609 }
22610 }
22611 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
22612 if (UNTAG_Bool(REGB3)) {
22613 /* parser/parser_prod.nit:4147 */
22614 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
22615 if (UNTAG_Bool(REGB3)) {
22616 } else {
22617 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4147);
22618 }
22619 /* parser/parser_prod.nit:4148 */
22620 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
22621 if (UNTAG_Bool(REGB3)) {
22622 } else {
22623 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4148);
22624 }
22625 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
22626 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
22627 /* parser/parser_prod.nit:4149 */
22628 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22629 if (UNTAG_Bool(REGB3)) {
22630 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4149);
22631 }
22632 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22633 } else {
22634 /* parser/parser_prod.nit:4151 */
22635 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
22636 if (UNTAG_Bool(REGB3)) {
22637 } else {
22638 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4151);
22639 }
22640 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
22641 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
22642 }
22643 /* parser/parser_prod.nit:4153 */
22644 goto label1;
22645 }
22646 /* ../lib/standard/kernel.nit:354 */
22647 REGB2 = TAG_Int(1);
22648 /* ../lib/standard/kernel.nit:235 */
22649 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
22650 /* ../lib/standard/kernel.nit:354 */
22651 REGB0 = REGB2;
22652 } else {
22653 /* ../lib/standard/kernel.nit:352 */
22654 goto label2;
22655 }
22656 }
22657 label2: while(0);
22658 /* parser/parser_prod.nit:4156 */
22659 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22660 if (UNTAG_Bool(REGB0)) {
22661 } else {
22662 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4156);
22663 }
22664 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0]);
22665 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22666 if (UNTAG_Bool(REGB0)) {
22667 } else {
22668 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22669 REGB0 = REGB1;
22670 }
22671 if (UNTAG_Bool(REGB0)) {
22672 /* parser/parser_prod.nit:4157 */
22673 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22674 if (UNTAG_Bool(REGB0)) {
22675 } else {
22676 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22677 if (UNTAG_Bool(REGB1)) {
22678 REGB1 = TAG_Bool(false);
22679 REGB0 = REGB1;
22680 } else {
22681 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22682 REGB0 = REGB1;
22683 }
22684 }
22685 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22686 if (UNTAG_Bool(REGB0)) {
22687 /* parser/parser_prod.nit:4158 */
22688 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22689 if (UNTAG_Bool(REGB0)) {
22690 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4158);
22691 }
22692 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22693 /* parser/parser_prod.nit:4159 */
22694 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22695 if (UNTAG_Bool(REGB0)) {
22696 } else {
22697 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4159);
22698 }
22699 /* parser/parser_prod.nit:4160 */
22700 ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22701 } else {
22702 /* parser/parser_prod.nit:4162 */
22703 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4162);
22704 }
22705 /* parser/parser_prod.nit:4164 */
22706 goto label1;
22707 }
22708 /* parser/parser_prod.nit:4166 */
22709 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
22710 if (UNTAG_Bool(REGB0)) {
22711 } else {
22712 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4166);
22713 }
22714 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]);
22715 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22716 if (UNTAG_Bool(REGB0)) {
22717 } else {
22718 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22719 REGB0 = REGB1;
22720 }
22721 if (UNTAG_Bool(REGB0)) {
22722 /* parser/parser_prod.nit:4167 */
22723 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22724 if (UNTAG_Bool(REGB0)) {
22725 } else {
22726 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22727 if (UNTAG_Bool(REGB1)) {
22728 REGB1 = TAG_Bool(false);
22729 REGB0 = REGB1;
22730 } else {
22731 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22732 REGB0 = REGB1;
22733 }
22734 }
22735 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22736 if (UNTAG_Bool(REGB0)) {
22737 /* parser/parser_prod.nit:4168 */
22738 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22739 if (UNTAG_Bool(REGB0)) {
22740 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4168);
22741 }
22742 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22743 /* parser/parser_prod.nit:4169 */
22744 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast TKwdo*/;
22745 if (UNTAG_Bool(REGB0)) {
22746 } else {
22747 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4169);
22748 }
22749 /* parser/parser_prod.nit:4170 */
22750 ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
22751 } else {
22752 /* parser/parser_prod.nit:4172 */
22753 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4172);
22754 }
22755 /* parser/parser_prod.nit:4174 */
22756 goto label1;
22757 }
22758 /* parser/parser_prod.nit:4176 */
22759 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]);
22760 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22761 if (UNTAG_Bool(REGB0)) {
22762 } else {
22763 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22764 if (UNTAG_Bool(REGB1)) {
22765 REGB1 = TAG_Bool(false);
22766 REGB0 = REGB1;
22767 } else {
22768 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22769 REGB0 = REGB1;
22770 }
22771 }
22772 if (UNTAG_Bool(REGB0)) {
22773 /* parser/parser_prod.nit:4177 */
22774 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22775 if (UNTAG_Bool(REGB0)) {
22776 } else {
22777 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22778 if (UNTAG_Bool(REGB1)) {
22779 REGB1 = TAG_Bool(false);
22780 REGB0 = REGB1;
22781 } else {
22782 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22783 REGB0 = REGB1;
22784 }
22785 }
22786 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22787 if (UNTAG_Bool(REGB0)) {
22788 /* parser/parser_prod.nit:4178 */
22789 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22790 if (UNTAG_Bool(REGB0)) {
22791 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4178);
22792 }
22793 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22794 /* parser/parser_prod.nit:4179 */
22795 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22796 if (UNTAG_Bool(REGB0)) {
22797 } else {
22798 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4179);
22799 }
22800 /* parser/parser_prod.nit:4180 */
22801 ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
22802 } else {
22803 /* parser/parser_prod.nit:4182 */
22804 ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]) = NIT_NULL;
22805 }
22806 /* parser/parser_prod.nit:4184 */
22807 goto label1;
22808 }
22809 /* parser/parser_prod.nit:4186 */
22810 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
22811 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22812 if (UNTAG_Bool(REGB0)) {
22813 } else {
22814 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22815 if (UNTAG_Bool(REGB1)) {
22816 REGB1 = TAG_Bool(false);
22817 REGB0 = REGB1;
22818 } else {
22819 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22820 REGB0 = REGB1;
22821 }
22822 }
22823 if (UNTAG_Bool(REGB0)) {
22824 /* parser/parser_prod.nit:4187 */
22825 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22826 if (UNTAG_Bool(REGB0)) {
22827 } else {
22828 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22829 if (UNTAG_Bool(REGB1)) {
22830 REGB1 = TAG_Bool(false);
22831 REGB0 = REGB1;
22832 } else {
22833 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22834 REGB0 = REGB1;
22835 }
22836 }
22837 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22838 if (UNTAG_Bool(REGB0)) {
22839 /* parser/parser_prod.nit:4188 */
22840 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22841 if (UNTAG_Bool(REGB0)) {
22842 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4188);
22843 }
22844 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22845 /* parser/parser_prod.nit:4189 */
22846 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
22847 if (UNTAG_Bool(REGB0)) {
22848 } else {
22849 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4189);
22850 }
22851 /* parser/parser_prod.nit:4190 */
22852 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
22853 } else {
22854 /* parser/parser_prod.nit:4192 */
22855 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
22856 }
22857 /* parser/parser_prod.nit:4194 */
22858 goto label1;
22859 }
22860 label1: while(0);
22861 stack_frame_head = fra.me.prev;
22862 return;
22863 }
22864 void parser___parser_prod___AForExpr___visit_all(val_t p0, val_t p1){
22865 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22866 val_t REGB0;
22867 val_t REGB1;
22868 val_t tmp;
22869 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22870 fra.me.file = LOCATE_parser___parser_prod;
22871 fra.me.line = 4198;
22872 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___visit_all;
22873 fra.me.has_broke = 0;
22874 fra.me.REG_size = 4;
22875 fra.me.nitni_local_ref_head = NULL;
22876 fra.me.REG[0] = NIT_NULL;
22877 fra.me.REG[1] = NIT_NULL;
22878 fra.me.REG[2] = NIT_NULL;
22879 fra.me.REG[3] = NIT_NULL;
22880 fra.me.REG[0] = p0;
22881 fra.me.REG[1] = p1;
22882 /* parser/parser_prod.nit:4198 */
22883 fra.me.REG[2] = fra.me.REG[0];
22884 /* parser/parser_prod.nit:4200 */
22885 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[2])!=NIT_NULL);
22886 if (UNTAG_Bool(REGB0)) {
22887 } else {
22888 nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser___parser_prod, 4200);
22889 }
22890 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[2]);
22891 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22892 /* parser/parser_prod.nit:4201 */
22893 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[2])!=NIT_NULL);
22894 if (UNTAG_Bool(REGB0)) {
22895 } else {
22896 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4201);
22897 }
22898 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[2]);
22899 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AForExpr___visit_all_1));
22900 /* parser/parser_prod.nit:4204 */
22901 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
22902 if (UNTAG_Bool(REGB0)) {
22903 } else {
22904 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4204);
22905 }
22906 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[2]);
22907 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22908 /* parser/parser_prod.nit:4205 */
22909 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
22910 if (UNTAG_Bool(REGB0)) {
22911 } else {
22912 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4205);
22913 }
22914 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[2]);
22915 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22916 /* parser/parser_prod.nit:4206 */
22917 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[2]);
22918 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22919 if (UNTAG_Bool(REGB0)) {
22920 } else {
22921 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22922 if (UNTAG_Bool(REGB1)) {
22923 REGB1 = TAG_Bool(false);
22924 REGB0 = REGB1;
22925 } else {
22926 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22927 REGB0 = REGB1;
22928 }
22929 }
22930 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22931 if (UNTAG_Bool(REGB0)) {
22932 /* parser/parser_prod.nit:4207 */
22933 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[2]);
22934 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22935 if (UNTAG_Bool(REGB0)) {
22936 } else {
22937 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4207);
22938 }
22939 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22940 }
22941 /* parser/parser_prod.nit:4209 */
22942 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
22943 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22944 if (UNTAG_Bool(REGB0)) {
22945 } else {
22946 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22947 if (UNTAG_Bool(REGB1)) {
22948 REGB1 = TAG_Bool(false);
22949 REGB0 = REGB1;
22950 } else {
22951 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22952 REGB0 = REGB1;
22953 }
22954 }
22955 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22956 if (UNTAG_Bool(REGB0)) {
22957 /* parser/parser_prod.nit:4210 */
22958 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
22959 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
22960 if (UNTAG_Bool(REGB0)) {
22961 } else {
22962 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4210);
22963 }
22964 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22965 }
22966 stack_frame_head = fra.me.prev;
22967 return;
22968 }
22969 void OC_parser___parser_prod___AForExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
22970 struct {struct stack_frame_t me;} fra;
22971 fun_t CREG[1];
22972 val_t tmp;
22973 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22974 fra.me.file = LOCATE_parser___parser_prod;
22975 fra.me.line = 0;
22976 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___visit_all;
22977 fra.me.has_broke = 0;
22978 fra.me.REG_size = 1;
22979 fra.me.nitni_local_ref_head = NULL;
22980 fra.me.REG[0] = NIT_NULL;
22981 fra.me.closure_ctx = closctx_param;
22982 fra.me.closure_funs = CREG;
22983 fra.me.REG[0] = p0;
22984 CREG[0] = clos_fun0;
22985 /* parser/parser_prod.nit:4202 */
22986 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
22987 stack_frame_head = fra.me.prev;
22988 return;
22989 }
22990 void parser___parser_prod___AAssertExpr___empty_init(val_t p0, int* init_table){
22991 int itpos131 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssertExpr].i;
22992 struct {struct stack_frame_t me;} fra;
22993 val_t tmp;
22994 if (init_table[itpos131]) return;
22995 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22996 fra.me.file = LOCATE_parser___parser_prod;
22997 fra.me.line = 4215;
22998 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___empty_init;
22999 fra.me.has_broke = 0;
23000 fra.me.REG_size = 1;
23001 fra.me.nitni_local_ref_head = NULL;
23002 fra.me.REG[0] = NIT_NULL;
23003 fra.me.REG[0] = p0;
23004 stack_frame_head = fra.me.prev;
23005 init_table[itpos131] = 1;
23006 return;
23007 }
23008 void parser___parser_prod___AAssertExpr___init_aassertexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
23009 int itpos132 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssertExpr].i;
23010 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
23011 val_t REGB0;
23012 val_t REGB1;
23013 val_t tmp;
23014 if (init_table[itpos132]) return;
23015 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23016 fra.me.file = LOCATE_parser___parser_prod;
23017 fra.me.line = 4217;
23018 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___init_aassertexpr;
23019 fra.me.has_broke = 0;
23020 fra.me.REG_size = 6;
23021 fra.me.nitni_local_ref_head = NULL;
23022 fra.me.REG[0] = NIT_NULL;
23023 fra.me.REG[1] = NIT_NULL;
23024 fra.me.REG[2] = NIT_NULL;
23025 fra.me.REG[3] = NIT_NULL;
23026 fra.me.REG[4] = NIT_NULL;
23027 fra.me.REG[5] = NIT_NULL;
23028 fra.me.REG[0] = p0;
23029 fra.me.REG[1] = p1;
23030 fra.me.REG[2] = p2;
23031 fra.me.REG[3] = p3;
23032 fra.me.REG[4] = p4;
23033 /* parser/parser_prod.nit:4217 */
23034 fra.me.REG[5] = fra.me.REG[0];
23035 /* parser/parser_prod.nit:4224 */
23036 CALL_parser___parser_prod___AAssertExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
23037 /* parser/parser_prod.nit:4225 */
23038 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23039 if (UNTAG_Bool(REGB0)) {
23040 } else {
23041 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4225);
23042 }
23043 ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[5]) = fra.me.REG[1];
23044 /* parser/parser_prod.nit:4226 */
23045 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23046 if (UNTAG_Bool(REGB0)) {
23047 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4226);
23048 }
23049 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
23050 /* parser/parser_prod.nit:4227 */
23051 ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
23052 /* parser/parser_prod.nit:4228 */
23053 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23054 if (UNTAG_Bool(REGB0)) {
23055 } else {
23056 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23057 if (UNTAG_Bool(REGB1)) {
23058 REGB1 = TAG_Bool(false);
23059 REGB0 = REGB1;
23060 } else {
23061 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23062 REGB0 = REGB1;
23063 }
23064 }
23065 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23066 if (UNTAG_Bool(REGB0)) {
23067 /* parser/parser_prod.nit:4229 */
23068 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23069 if (UNTAG_Bool(REGB0)) {
23070 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4229);
23071 }
23072 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
23073 }
23074 /* parser/parser_prod.nit:4231 */
23075 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
23076 if (UNTAG_Bool(REGB0)) {
23077 } else {
23078 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4231);
23079 }
23080 ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[5]) = fra.me.REG[3];
23081 /* parser/parser_prod.nit:4232 */
23082 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23083 if (UNTAG_Bool(REGB0)) {
23084 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4232);
23085 }
23086 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
23087 /* parser/parser_prod.nit:4233 */
23088 ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[5]) = fra.me.REG[4];
23089 /* parser/parser_prod.nit:4234 */
23090 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
23091 if (UNTAG_Bool(REGB0)) {
23092 } else {
23093 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
23094 if (UNTAG_Bool(REGB1)) {
23095 REGB1 = TAG_Bool(false);
23096 REGB0 = REGB1;
23097 } else {
23098 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
23099 REGB0 = REGB1;
23100 }
23101 }
23102 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23103 if (UNTAG_Bool(REGB0)) {
23104 /* parser/parser_prod.nit:4235 */
23105 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
23106 if (UNTAG_Bool(REGB0)) {
23107 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4235);
23108 }
23109 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
23110 }
23111 stack_frame_head = fra.me.prev;
23112 init_table[itpos132] = 1;
23113 return;
23114 }
23115 void parser___parser_prod___AAssertExpr___replace_child(val_t p0, val_t p1, val_t p2){
23116 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23117 val_t REGB0;
23118 val_t REGB1;
23119 val_t tmp;
23120 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23121 fra.me.file = LOCATE_parser___parser_prod;
23122 fra.me.line = 4239;
23123 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___replace_child;
23124 fra.me.has_broke = 0;
23125 fra.me.REG_size = 4;
23126 fra.me.nitni_local_ref_head = NULL;
23127 fra.me.REG[0] = NIT_NULL;
23128 fra.me.REG[1] = NIT_NULL;
23129 fra.me.REG[2] = NIT_NULL;
23130 fra.me.REG[3] = NIT_NULL;
23131 fra.me.REG[0] = p0;
23132 fra.me.REG[1] = p1;
23133 fra.me.REG[2] = p2;
23134 /* parser/parser_prod.nit:4241 */
23135 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0])!=NIT_NULL);
23136 if (UNTAG_Bool(REGB0)) {
23137 } else {
23138 nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser___parser_prod, 4241);
23139 }
23140 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]);
23141 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23142 if (UNTAG_Bool(REGB0)) {
23143 } else {
23144 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23145 REGB0 = REGB1;
23146 }
23147 if (UNTAG_Bool(REGB0)) {
23148 /* parser/parser_prod.nit:4242 */
23149 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23150 if (UNTAG_Bool(REGB0)) {
23151 } else {
23152 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23153 if (UNTAG_Bool(REGB1)) {
23154 REGB1 = TAG_Bool(false);
23155 REGB0 = REGB1;
23156 } else {
23157 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23158 REGB0 = REGB1;
23159 }
23160 }
23161 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23162 if (UNTAG_Bool(REGB0)) {
23163 /* parser/parser_prod.nit:4243 */
23164 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23165 if (UNTAG_Bool(REGB0)) {
23166 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4243);
23167 }
23168 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23169 /* parser/parser_prod.nit:4244 */
23170 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwassert, ID_parser___parser_nodes___TKwassert)) /*cast TKwassert*/;
23171 if (UNTAG_Bool(REGB0)) {
23172 } else {
23173 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4244);
23174 }
23175 /* parser/parser_prod.nit:4245 */
23176 ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]) = fra.me.REG[2];
23177 } else {
23178 /* parser/parser_prod.nit:4247 */
23179 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4247);
23180 }
23181 /* parser/parser_prod.nit:4249 */
23182 goto label1;
23183 }
23184 /* parser/parser_prod.nit:4251 */
23185 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]);
23186 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
23187 if (UNTAG_Bool(REGB0)) {
23188 } else {
23189 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23190 if (UNTAG_Bool(REGB1)) {
23191 REGB1 = TAG_Bool(false);
23192 REGB0 = REGB1;
23193 } else {
23194 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23195 REGB0 = REGB1;
23196 }
23197 }
23198 if (UNTAG_Bool(REGB0)) {
23199 /* parser/parser_prod.nit:4252 */
23200 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23201 if (UNTAG_Bool(REGB0)) {
23202 } else {
23203 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23204 if (UNTAG_Bool(REGB1)) {
23205 REGB1 = TAG_Bool(false);
23206 REGB0 = REGB1;
23207 } else {
23208 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23209 REGB0 = REGB1;
23210 }
23211 }
23212 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23213 if (UNTAG_Bool(REGB0)) {
23214 /* parser/parser_prod.nit:4253 */
23215 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23216 if (UNTAG_Bool(REGB0)) {
23217 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4253);
23218 }
23219 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23220 /* parser/parser_prod.nit:4254 */
23221 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
23222 if (UNTAG_Bool(REGB0)) {
23223 } else {
23224 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4254);
23225 }
23226 /* parser/parser_prod.nit:4255 */
23227 ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
23228 } else {
23229 /* parser/parser_prod.nit:4257 */
23230 ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = NIT_NULL;
23231 }
23232 /* parser/parser_prod.nit:4259 */
23233 goto label1;
23234 }
23235 /* parser/parser_prod.nit:4261 */
23236 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23237 if (UNTAG_Bool(REGB0)) {
23238 } else {
23239 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4261);
23240 }
23241 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]);
23242 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23243 if (UNTAG_Bool(REGB0)) {
23244 } else {
23245 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23246 REGB0 = REGB1;
23247 }
23248 if (UNTAG_Bool(REGB0)) {
23249 /* parser/parser_prod.nit:4262 */
23250 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23251 if (UNTAG_Bool(REGB0)) {
23252 } else {
23253 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23254 if (UNTAG_Bool(REGB1)) {
23255 REGB1 = TAG_Bool(false);
23256 REGB0 = REGB1;
23257 } else {
23258 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23259 REGB0 = REGB1;
23260 }
23261 }
23262 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23263 if (UNTAG_Bool(REGB0)) {
23264 /* parser/parser_prod.nit:4263 */
23265 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23266 if (UNTAG_Bool(REGB0)) {
23267 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4263);
23268 }
23269 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23270 /* parser/parser_prod.nit:4264 */
23271 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23272 if (UNTAG_Bool(REGB0)) {
23273 } else {
23274 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4264);
23275 }
23276 /* parser/parser_prod.nit:4265 */
23277 ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23278 } else {
23279 /* parser/parser_prod.nit:4267 */
23280 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4267);
23281 }
23282 /* parser/parser_prod.nit:4269 */
23283 goto label1;
23284 }
23285 /* parser/parser_prod.nit:4271 */
23286 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]);
23287 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
23288 if (UNTAG_Bool(REGB0)) {
23289 } else {
23290 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23291 if (UNTAG_Bool(REGB1)) {
23292 REGB1 = TAG_Bool(false);
23293 REGB0 = REGB1;
23294 } else {
23295 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23296 REGB0 = REGB1;
23297 }
23298 }
23299 if (UNTAG_Bool(REGB0)) {
23300 /* parser/parser_prod.nit:4272 */
23301 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23302 if (UNTAG_Bool(REGB0)) {
23303 } else {
23304 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23305 if (UNTAG_Bool(REGB1)) {
23306 REGB1 = TAG_Bool(false);
23307 REGB0 = REGB1;
23308 } else {
23309 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23310 REGB0 = REGB1;
23311 }
23312 }
23313 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23314 if (UNTAG_Bool(REGB0)) {
23315 /* parser/parser_prod.nit:4273 */
23316 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23317 if (UNTAG_Bool(REGB0)) {
23318 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4273);
23319 }
23320 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23321 /* parser/parser_prod.nit:4274 */
23322 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23323 if (UNTAG_Bool(REGB0)) {
23324 } else {
23325 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4274);
23326 }
23327 /* parser/parser_prod.nit:4275 */
23328 ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
23329 } else {
23330 /* parser/parser_prod.nit:4277 */
23331 ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = NIT_NULL;
23332 }
23333 /* parser/parser_prod.nit:4279 */
23334 goto label1;
23335 }
23336 label1: while(0);
23337 stack_frame_head = fra.me.prev;
23338 return;
23339 }
23340 void parser___parser_prod___AAssertExpr___visit_all(val_t p0, val_t p1){
23341 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23342 val_t REGB0;
23343 val_t REGB1;
23344 val_t tmp;
23345 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23346 fra.me.file = LOCATE_parser___parser_prod;
23347 fra.me.line = 4283;
23348 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___visit_all;
23349 fra.me.has_broke = 0;
23350 fra.me.REG_size = 4;
23351 fra.me.nitni_local_ref_head = NULL;
23352 fra.me.REG[0] = NIT_NULL;
23353 fra.me.REG[1] = NIT_NULL;
23354 fra.me.REG[2] = NIT_NULL;
23355 fra.me.REG[3] = NIT_NULL;
23356 fra.me.REG[0] = p0;
23357 fra.me.REG[1] = p1;
23358 /* parser/parser_prod.nit:4283 */
23359 fra.me.REG[2] = fra.me.REG[0];
23360 /* parser/parser_prod.nit:4285 */
23361 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[2])!=NIT_NULL);
23362 if (UNTAG_Bool(REGB0)) {
23363 } else {
23364 nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser___parser_prod, 4285);
23365 }
23366 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[2]);
23367 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23368 /* parser/parser_prod.nit:4286 */
23369 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[2]);
23370 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23371 if (UNTAG_Bool(REGB0)) {
23372 } else {
23373 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23374 if (UNTAG_Bool(REGB1)) {
23375 REGB1 = TAG_Bool(false);
23376 REGB0 = REGB1;
23377 } else {
23378 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
23379 REGB0 = REGB1;
23380 }
23381 }
23382 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23383 if (UNTAG_Bool(REGB0)) {
23384 /* parser/parser_prod.nit:4287 */
23385 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[2]);
23386 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
23387 if (UNTAG_Bool(REGB0)) {
23388 } else {
23389 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4287);
23390 }
23391 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23392 }
23393 /* parser/parser_prod.nit:4289 */
23394 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
23395 if (UNTAG_Bool(REGB0)) {
23396 } else {
23397 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4289);
23398 }
23399 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[2]);
23400 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23401 /* parser/parser_prod.nit:4290 */
23402 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[2]);
23403 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23404 if (UNTAG_Bool(REGB0)) {
23405 } else {
23406 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23407 if (UNTAG_Bool(REGB1)) {
23408 REGB1 = TAG_Bool(false);
23409 REGB0 = REGB1;
23410 } else {
23411 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
23412 REGB0 = REGB1;
23413 }
23414 }
23415 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23416 if (UNTAG_Bool(REGB0)) {
23417 /* parser/parser_prod.nit:4291 */
23418 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[2]);
23419 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23420 if (UNTAG_Bool(REGB0)) {
23421 } else {
23422 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4291);
23423 }
23424 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23425 }
23426 stack_frame_head = fra.me.prev;
23427 return;
23428 }
23429 void parser___parser_prod___AOnceExpr___empty_init(val_t p0, int* init_table){
23430 int itpos133 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOnceExpr].i;
23431 struct {struct stack_frame_t me;} fra;
23432 val_t tmp;
23433 if (init_table[itpos133]) return;
23434 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23435 fra.me.file = LOCATE_parser___parser_prod;
23436 fra.me.line = 4296;
23437 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___empty_init;
23438 fra.me.has_broke = 0;
23439 fra.me.REG_size = 1;
23440 fra.me.nitni_local_ref_head = NULL;
23441 fra.me.REG[0] = NIT_NULL;
23442 fra.me.REG[0] = p0;
23443 stack_frame_head = fra.me.prev;
23444 init_table[itpos133] = 1;
23445 return;
23446 }
23447 void parser___parser_prod___AOnceExpr___init_aonceexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23448 int itpos134 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOnceExpr].i;
23449 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23450 val_t REGB0;
23451 val_t tmp;
23452 if (init_table[itpos134]) return;
23453 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23454 fra.me.file = LOCATE_parser___parser_prod;
23455 fra.me.line = 4298;
23456 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___init_aonceexpr;
23457 fra.me.has_broke = 0;
23458 fra.me.REG_size = 4;
23459 fra.me.nitni_local_ref_head = NULL;
23460 fra.me.REG[0] = NIT_NULL;
23461 fra.me.REG[1] = NIT_NULL;
23462 fra.me.REG[2] = NIT_NULL;
23463 fra.me.REG[3] = NIT_NULL;
23464 fra.me.REG[0] = p0;
23465 fra.me.REG[1] = p1;
23466 fra.me.REG[2] = p2;
23467 /* parser/parser_prod.nit:4298 */
23468 fra.me.REG[3] = fra.me.REG[0];
23469 /* parser/parser_prod.nit:4303 */
23470 CALL_parser___parser_prod___AOnceExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
23471 /* parser/parser_prod.nit:4304 */
23472 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23473 if (UNTAG_Bool(REGB0)) {
23474 } else {
23475 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4304);
23476 }
23477 ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[3]) = fra.me.REG[1];
23478 /* parser/parser_prod.nit:4305 */
23479 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23480 if (UNTAG_Bool(REGB0)) {
23481 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4305);
23482 }
23483 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23484 /* parser/parser_prod.nit:4306 */
23485 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23486 if (UNTAG_Bool(REGB0)) {
23487 } else {
23488 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4306);
23489 }
23490 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
23491 /* parser/parser_prod.nit:4307 */
23492 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23493 if (UNTAG_Bool(REGB0)) {
23494 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4307);
23495 }
23496 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
23497 stack_frame_head = fra.me.prev;
23498 init_table[itpos134] = 1;
23499 return;
23500 }
23501 void parser___parser_prod___AOnceExpr___replace_child(val_t p0, val_t p1, val_t p2){
23502 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23503 val_t REGB0;
23504 val_t REGB1;
23505 val_t tmp;
23506 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23507 fra.me.file = LOCATE_parser___parser_prod;
23508 fra.me.line = 4310;
23509 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___replace_child;
23510 fra.me.has_broke = 0;
23511 fra.me.REG_size = 4;
23512 fra.me.nitni_local_ref_head = NULL;
23513 fra.me.REG[0] = NIT_NULL;
23514 fra.me.REG[1] = NIT_NULL;
23515 fra.me.REG[2] = NIT_NULL;
23516 fra.me.REG[3] = NIT_NULL;
23517 fra.me.REG[0] = p0;
23518 fra.me.REG[1] = p1;
23519 fra.me.REG[2] = p2;
23520 /* parser/parser_prod.nit:4312 */
23521 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
23522 if (UNTAG_Bool(REGB0)) {
23523 } else {
23524 nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser___parser_prod, 4312);
23525 }
23526 fra.me.REG[3] = ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]);
23527 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23528 if (UNTAG_Bool(REGB0)) {
23529 } else {
23530 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23531 REGB0 = REGB1;
23532 }
23533 if (UNTAG_Bool(REGB0)) {
23534 /* parser/parser_prod.nit:4313 */
23535 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23536 if (UNTAG_Bool(REGB0)) {
23537 } else {
23538 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23539 if (UNTAG_Bool(REGB1)) {
23540 REGB1 = TAG_Bool(false);
23541 REGB0 = REGB1;
23542 } else {
23543 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23544 REGB0 = REGB1;
23545 }
23546 }
23547 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23548 if (UNTAG_Bool(REGB0)) {
23549 /* parser/parser_prod.nit:4314 */
23550 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23551 if (UNTAG_Bool(REGB0)) {
23552 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4314);
23553 }
23554 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23555 /* parser/parser_prod.nit:4315 */
23556 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwonce, ID_parser___parser_nodes___TKwonce)) /*cast TKwonce*/;
23557 if (UNTAG_Bool(REGB0)) {
23558 } else {
23559 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4315);
23560 }
23561 /* parser/parser_prod.nit:4316 */
23562 ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]) = fra.me.REG[2];
23563 } else {
23564 /* parser/parser_prod.nit:4318 */
23565 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4318);
23566 }
23567 /* parser/parser_prod.nit:4320 */
23568 goto label1;
23569 }
23570 /* parser/parser_prod.nit:4322 */
23571 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23572 if (UNTAG_Bool(REGB0)) {
23573 } else {
23574 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4322);
23575 }
23576 fra.me.REG[3] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
23577 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23578 if (UNTAG_Bool(REGB0)) {
23579 } else {
23580 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23581 REGB0 = REGB1;
23582 }
23583 if (UNTAG_Bool(REGB0)) {
23584 /* parser/parser_prod.nit:4323 */
23585 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23586 if (UNTAG_Bool(REGB0)) {
23587 } else {
23588 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23589 if (UNTAG_Bool(REGB1)) {
23590 REGB1 = TAG_Bool(false);
23591 REGB0 = REGB1;
23592 } else {
23593 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23594 REGB0 = REGB1;
23595 }
23596 }
23597 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23598 if (UNTAG_Bool(REGB0)) {
23599 /* parser/parser_prod.nit:4324 */
23600 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23601 if (UNTAG_Bool(REGB0)) {
23602 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4324);
23603 }
23604 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23605 /* parser/parser_prod.nit:4325 */
23606 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23607 if (UNTAG_Bool(REGB0)) {
23608 } else {
23609 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4325);
23610 }
23611 /* parser/parser_prod.nit:4326 */
23612 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23613 } else {
23614 /* parser/parser_prod.nit:4328 */
23615 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4328);
23616 }
23617 /* parser/parser_prod.nit:4330 */
23618 goto label1;
23619 }
23620 label1: while(0);
23621 stack_frame_head = fra.me.prev;
23622 return;
23623 }
23624 void parser___parser_prod___AOnceExpr___visit_all(val_t p0, val_t p1){
23625 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23626 val_t REGB0;
23627 val_t tmp;
23628 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23629 fra.me.file = LOCATE_parser___parser_prod;
23630 fra.me.line = 4334;
23631 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___visit_all;
23632 fra.me.has_broke = 0;
23633 fra.me.REG_size = 3;
23634 fra.me.nitni_local_ref_head = NULL;
23635 fra.me.REG[0] = NIT_NULL;
23636 fra.me.REG[1] = NIT_NULL;
23637 fra.me.REG[2] = NIT_NULL;
23638 fra.me.REG[0] = p0;
23639 fra.me.REG[1] = p1;
23640 /* parser/parser_prod.nit:4336 */
23641 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
23642 if (UNTAG_Bool(REGB0)) {
23643 } else {
23644 nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser___parser_prod, 4336);
23645 }
23646 fra.me.REG[2] = ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]);
23647 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23648 /* parser/parser_prod.nit:4337 */
23649 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23650 if (UNTAG_Bool(REGB0)) {
23651 } else {
23652 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4337);
23653 }
23654 fra.me.REG[0] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
23655 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23656 stack_frame_head = fra.me.prev;
23657 return;
23658 }
23659 void parser___parser_prod___ASendExpr___empty_init(val_t p0, int* init_table){
23660 int itpos135 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASendExpr].i;
23661 struct {struct stack_frame_t me;} fra;
23662 val_t tmp;
23663 if (init_table[itpos135]) return;
23664 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23665 fra.me.file = LOCATE_parser___parser_prod;
23666 fra.me.line = 4341;
23667 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___empty_init;
23668 fra.me.has_broke = 0;
23669 fra.me.REG_size = 1;
23670 fra.me.nitni_local_ref_head = NULL;
23671 fra.me.REG[0] = NIT_NULL;
23672 fra.me.REG[0] = p0;
23673 stack_frame_head = fra.me.prev;
23674 init_table[itpos135] = 1;
23675 return;
23676 }
23677 void parser___parser_prod___ASendExpr___init_asendexpr(val_t p0, val_t p1, int* init_table){
23678 int itpos136 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASendExpr].i;
23679 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23680 val_t REGB0;
23681 val_t tmp;
23682 if (init_table[itpos136]) return;
23683 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23684 fra.me.file = LOCATE_parser___parser_prod;
23685 fra.me.line = 4343;
23686 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___init_asendexpr;
23687 fra.me.has_broke = 0;
23688 fra.me.REG_size = 3;
23689 fra.me.nitni_local_ref_head = NULL;
23690 fra.me.REG[0] = NIT_NULL;
23691 fra.me.REG[1] = NIT_NULL;
23692 fra.me.REG[2] = NIT_NULL;
23693 fra.me.REG[0] = p0;
23694 fra.me.REG[1] = p1;
23695 /* parser/parser_prod.nit:4343 */
23696 fra.me.REG[2] = fra.me.REG[0];
23697 /* parser/parser_prod.nit:4347 */
23698 CALL_parser___parser_prod___ASendExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
23699 /* parser/parser_prod.nit:4348 */
23700 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23701 if (UNTAG_Bool(REGB0)) {
23702 } else {
23703 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4348);
23704 }
23705 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[2]) = fra.me.REG[1];
23706 /* parser/parser_prod.nit:4349 */
23707 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23708 if (UNTAG_Bool(REGB0)) {
23709 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4349);
23710 }
23711 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23712 stack_frame_head = fra.me.prev;
23713 init_table[itpos136] = 1;
23714 return;
23715 }
23716 void parser___parser_prod___ASendExpr___replace_child(val_t p0, val_t p1, val_t p2){
23717 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23718 val_t REGB0;
23719 val_t REGB1;
23720 val_t tmp;
23721 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23722 fra.me.file = LOCATE_parser___parser_prod;
23723 fra.me.line = 4352;
23724 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___replace_child;
23725 fra.me.has_broke = 0;
23726 fra.me.REG_size = 4;
23727 fra.me.nitni_local_ref_head = NULL;
23728 fra.me.REG[0] = NIT_NULL;
23729 fra.me.REG[1] = NIT_NULL;
23730 fra.me.REG[2] = NIT_NULL;
23731 fra.me.REG[3] = NIT_NULL;
23732 fra.me.REG[0] = p0;
23733 fra.me.REG[1] = p1;
23734 fra.me.REG[2] = p2;
23735 /* parser/parser_prod.nit:4354 */
23736 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23737 if (UNTAG_Bool(REGB0)) {
23738 } else {
23739 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4354);
23740 }
23741 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23742 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23743 if (UNTAG_Bool(REGB0)) {
23744 } else {
23745 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23746 REGB0 = REGB1;
23747 }
23748 if (UNTAG_Bool(REGB0)) {
23749 /* parser/parser_prod.nit:4355 */
23750 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23751 if (UNTAG_Bool(REGB0)) {
23752 } else {
23753 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23754 if (UNTAG_Bool(REGB1)) {
23755 REGB1 = TAG_Bool(false);
23756 REGB0 = REGB1;
23757 } else {
23758 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23759 REGB0 = REGB1;
23760 }
23761 }
23762 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23763 if (UNTAG_Bool(REGB0)) {
23764 /* parser/parser_prod.nit:4356 */
23765 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23766 if (UNTAG_Bool(REGB0)) {
23767 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4356);
23768 }
23769 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23770 /* parser/parser_prod.nit:4357 */
23771 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23772 if (UNTAG_Bool(REGB0)) {
23773 } else {
23774 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4357);
23775 }
23776 /* parser/parser_prod.nit:4358 */
23777 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23778 } else {
23779 /* parser/parser_prod.nit:4360 */
23780 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4360);
23781 }
23782 /* parser/parser_prod.nit:4362 */
23783 goto label1;
23784 }
23785 label1: while(0);
23786 stack_frame_head = fra.me.prev;
23787 return;
23788 }
23789 void parser___parser_prod___ASendExpr___visit_all(val_t p0, val_t p1){
23790 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23791 val_t REGB0;
23792 val_t tmp;
23793 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23794 fra.me.file = LOCATE_parser___parser_prod;
23795 fra.me.line = 4366;
23796 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___visit_all;
23797 fra.me.has_broke = 0;
23798 fra.me.REG_size = 2;
23799 fra.me.nitni_local_ref_head = NULL;
23800 fra.me.REG[0] = NIT_NULL;
23801 fra.me.REG[1] = NIT_NULL;
23802 fra.me.REG[0] = p0;
23803 fra.me.REG[1] = p1;
23804 /* parser/parser_prod.nit:4368 */
23805 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23806 if (UNTAG_Bool(REGB0)) {
23807 } else {
23808 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4368);
23809 }
23810 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23811 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23812 stack_frame_head = fra.me.prev;
23813 return;
23814 }
23815 void parser___parser_prod___ABinopExpr___empty_init(val_t p0, int* init_table){
23816 int itpos137 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABinopExpr].i;
23817 struct {struct stack_frame_t me;} fra;
23818 val_t tmp;
23819 if (init_table[itpos137]) return;
23820 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23821 fra.me.file = LOCATE_parser___parser_prod;
23822 fra.me.line = 4372;
23823 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___empty_init;
23824 fra.me.has_broke = 0;
23825 fra.me.REG_size = 1;
23826 fra.me.nitni_local_ref_head = NULL;
23827 fra.me.REG[0] = NIT_NULL;
23828 fra.me.REG[0] = p0;
23829 stack_frame_head = fra.me.prev;
23830 init_table[itpos137] = 1;
23831 return;
23832 }
23833 void parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23834 int itpos138 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABinopExpr].i;
23835 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23836 val_t REGB0;
23837 val_t tmp;
23838 if (init_table[itpos138]) return;
23839 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23840 fra.me.file = LOCATE_parser___parser_prod;
23841 fra.me.line = 4374;
23842 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___init_abinopexpr;
23843 fra.me.has_broke = 0;
23844 fra.me.REG_size = 4;
23845 fra.me.nitni_local_ref_head = NULL;
23846 fra.me.REG[0] = NIT_NULL;
23847 fra.me.REG[1] = NIT_NULL;
23848 fra.me.REG[2] = NIT_NULL;
23849 fra.me.REG[3] = NIT_NULL;
23850 fra.me.REG[0] = p0;
23851 fra.me.REG[1] = p1;
23852 fra.me.REG[2] = p2;
23853 /* parser/parser_prod.nit:4374 */
23854 fra.me.REG[3] = fra.me.REG[0];
23855 /* parser/parser_prod.nit:4379 */
23856 CALL_parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
23857 /* parser/parser_prod.nit:4380 */
23858 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23859 if (UNTAG_Bool(REGB0)) {
23860 } else {
23861 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4380);
23862 }
23863 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
23864 /* parser/parser_prod.nit:4381 */
23865 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23866 if (UNTAG_Bool(REGB0)) {
23867 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4381);
23868 }
23869 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23870 /* parser/parser_prod.nit:4382 */
23871 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23872 if (UNTAG_Bool(REGB0)) {
23873 } else {
23874 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4382);
23875 }
23876 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
23877 /* parser/parser_prod.nit:4383 */
23878 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23879 if (UNTAG_Bool(REGB0)) {
23880 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4383);
23881 }
23882 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
23883 stack_frame_head = fra.me.prev;
23884 init_table[itpos138] = 1;
23885 return;
23886 }
23887 void parser___parser_prod___ABinopExpr___replace_child(val_t p0, val_t p1, val_t p2){
23888 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23889 val_t REGB0;
23890 val_t REGB1;
23891 val_t tmp;
23892 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23893 fra.me.file = LOCATE_parser___parser_prod;
23894 fra.me.line = 4386;
23895 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___replace_child;
23896 fra.me.has_broke = 0;
23897 fra.me.REG_size = 4;
23898 fra.me.nitni_local_ref_head = NULL;
23899 fra.me.REG[0] = NIT_NULL;
23900 fra.me.REG[1] = NIT_NULL;
23901 fra.me.REG[2] = NIT_NULL;
23902 fra.me.REG[3] = NIT_NULL;
23903 fra.me.REG[0] = p0;
23904 fra.me.REG[1] = p1;
23905 fra.me.REG[2] = p2;
23906 /* parser/parser_prod.nit:4388 */
23907 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23908 if (UNTAG_Bool(REGB0)) {
23909 } else {
23910 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4388);
23911 }
23912 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23913 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23914 if (UNTAG_Bool(REGB0)) {
23915 } else {
23916 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23917 REGB0 = REGB1;
23918 }
23919 if (UNTAG_Bool(REGB0)) {
23920 /* parser/parser_prod.nit:4389 */
23921 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23922 if (UNTAG_Bool(REGB0)) {
23923 } else {
23924 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23925 if (UNTAG_Bool(REGB1)) {
23926 REGB1 = TAG_Bool(false);
23927 REGB0 = REGB1;
23928 } else {
23929 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23930 REGB0 = REGB1;
23931 }
23932 }
23933 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23934 if (UNTAG_Bool(REGB0)) {
23935 /* parser/parser_prod.nit:4390 */
23936 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23937 if (UNTAG_Bool(REGB0)) {
23938 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4390);
23939 }
23940 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23941 /* parser/parser_prod.nit:4391 */
23942 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23943 if (UNTAG_Bool(REGB0)) {
23944 } else {
23945 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4391);
23946 }
23947 /* parser/parser_prod.nit:4392 */
23948 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23949 } else {
23950 /* parser/parser_prod.nit:4394 */
23951 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4394);
23952 }
23953 /* parser/parser_prod.nit:4396 */
23954 goto label1;
23955 }
23956 /* parser/parser_prod.nit:4398 */
23957 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23958 if (UNTAG_Bool(REGB0)) {
23959 } else {
23960 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4398);
23961 }
23962 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23963 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23964 if (UNTAG_Bool(REGB0)) {
23965 } else {
23966 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23967 REGB0 = REGB1;
23968 }
23969 if (UNTAG_Bool(REGB0)) {
23970 /* parser/parser_prod.nit:4399 */
23971 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23972 if (UNTAG_Bool(REGB0)) {
23973 } else {
23974 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23975 if (UNTAG_Bool(REGB1)) {
23976 REGB1 = TAG_Bool(false);
23977 REGB0 = REGB1;
23978 } else {
23979 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23980 REGB0 = REGB1;
23981 }
23982 }
23983 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23984 if (UNTAG_Bool(REGB0)) {
23985 /* parser/parser_prod.nit:4400 */
23986 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23987 if (UNTAG_Bool(REGB0)) {
23988 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4400);
23989 }
23990 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23991 /* parser/parser_prod.nit:4401 */
23992 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23993 if (UNTAG_Bool(REGB0)) {
23994 } else {
23995 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4401);
23996 }
23997 /* parser/parser_prod.nit:4402 */
23998 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23999 } else {
24000 /* parser/parser_prod.nit:4404 */
24001 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4404);
24002 }
24003 /* parser/parser_prod.nit:4406 */
24004 goto label1;
24005 }
24006 label1: while(0);
24007 stack_frame_head = fra.me.prev;
24008 return;
24009 }
24010 void parser___parser_prod___ABinopExpr___visit_all(val_t p0, val_t p1){
24011 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24012 val_t REGB0;
24013 val_t tmp;
24014 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24015 fra.me.file = LOCATE_parser___parser_prod;
24016 fra.me.line = 4410;
24017 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___visit_all;
24018 fra.me.has_broke = 0;
24019 fra.me.REG_size = 3;
24020 fra.me.nitni_local_ref_head = NULL;
24021 fra.me.REG[0] = NIT_NULL;
24022 fra.me.REG[1] = NIT_NULL;
24023 fra.me.REG[2] = NIT_NULL;
24024 fra.me.REG[0] = p0;
24025 fra.me.REG[1] = p1;
24026 /* parser/parser_prod.nit:4412 */
24027 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24028 if (UNTAG_Bool(REGB0)) {
24029 } else {
24030 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4412);
24031 }
24032 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24033 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24034 /* parser/parser_prod.nit:4413 */
24035 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24036 if (UNTAG_Bool(REGB0)) {
24037 } else {
24038 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4413);
24039 }
24040 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24041 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24042 stack_frame_head = fra.me.prev;
24043 return;
24044 }
24045 void parser___parser_prod___AOrExpr___empty_init(val_t p0, int* init_table){
24046 int itpos139 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrExpr].i;
24047 struct {struct stack_frame_t me;} fra;
24048 val_t tmp;
24049 if (init_table[itpos139]) return;
24050 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24051 fra.me.file = LOCATE_parser___parser_prod;
24052 fra.me.line = 4417;
24053 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___empty_init;
24054 fra.me.has_broke = 0;
24055 fra.me.REG_size = 1;
24056 fra.me.nitni_local_ref_head = NULL;
24057 fra.me.REG[0] = NIT_NULL;
24058 fra.me.REG[0] = p0;
24059 stack_frame_head = fra.me.prev;
24060 init_table[itpos139] = 1;
24061 return;
24062 }
24063 void parser___parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24064 int itpos140 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrExpr].i;
24065 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24066 val_t REGB0;
24067 val_t tmp;
24068 if (init_table[itpos140]) return;
24069 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24070 fra.me.file = LOCATE_parser___parser_prod;
24071 fra.me.line = 4419;
24072 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___init_aorexpr;
24073 fra.me.has_broke = 0;
24074 fra.me.REG_size = 4;
24075 fra.me.nitni_local_ref_head = NULL;
24076 fra.me.REG[0] = NIT_NULL;
24077 fra.me.REG[1] = NIT_NULL;
24078 fra.me.REG[2] = NIT_NULL;
24079 fra.me.REG[3] = NIT_NULL;
24080 fra.me.REG[0] = p0;
24081 fra.me.REG[1] = p1;
24082 fra.me.REG[2] = p2;
24083 /* parser/parser_prod.nit:4419 */
24084 fra.me.REG[3] = fra.me.REG[0];
24085 /* parser/parser_prod.nit:4424 */
24086 CALL_parser___parser_prod___AOrExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
24087 /* parser/parser_prod.nit:4425 */
24088 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24089 if (UNTAG_Bool(REGB0)) {
24090 } else {
24091 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4425);
24092 }
24093 ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
24094 /* parser/parser_prod.nit:4426 */
24095 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24096 if (UNTAG_Bool(REGB0)) {
24097 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4426);
24098 }
24099 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24100 /* parser/parser_prod.nit:4427 */
24101 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24102 if (UNTAG_Bool(REGB0)) {
24103 } else {
24104 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4427);
24105 }
24106 ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
24107 /* parser/parser_prod.nit:4428 */
24108 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24109 if (UNTAG_Bool(REGB0)) {
24110 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4428);
24111 }
24112 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
24113 stack_frame_head = fra.me.prev;
24114 init_table[itpos140] = 1;
24115 return;
24116 }
24117 void parser___parser_prod___AOrExpr___replace_child(val_t p0, val_t p1, val_t p2){
24118 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24119 val_t REGB0;
24120 val_t REGB1;
24121 val_t tmp;
24122 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24123 fra.me.file = LOCATE_parser___parser_prod;
24124 fra.me.line = 4431;
24125 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___replace_child;
24126 fra.me.has_broke = 0;
24127 fra.me.REG_size = 4;
24128 fra.me.nitni_local_ref_head = NULL;
24129 fra.me.REG[0] = NIT_NULL;
24130 fra.me.REG[1] = NIT_NULL;
24131 fra.me.REG[2] = NIT_NULL;
24132 fra.me.REG[3] = NIT_NULL;
24133 fra.me.REG[0] = p0;
24134 fra.me.REG[1] = p1;
24135 fra.me.REG[2] = p2;
24136 /* parser/parser_prod.nit:4433 */
24137 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24138 if (UNTAG_Bool(REGB0)) {
24139 } else {
24140 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4433);
24141 }
24142 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]);
24143 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24144 if (UNTAG_Bool(REGB0)) {
24145 } else {
24146 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24147 REGB0 = REGB1;
24148 }
24149 if (UNTAG_Bool(REGB0)) {
24150 /* parser/parser_prod.nit:4434 */
24151 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24152 if (UNTAG_Bool(REGB0)) {
24153 } else {
24154 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24155 if (UNTAG_Bool(REGB1)) {
24156 REGB1 = TAG_Bool(false);
24157 REGB0 = REGB1;
24158 } else {
24159 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24160 REGB0 = REGB1;
24161 }
24162 }
24163 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24164 if (UNTAG_Bool(REGB0)) {
24165 /* parser/parser_prod.nit:4435 */
24166 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24167 if (UNTAG_Bool(REGB0)) {
24168 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4435);
24169 }
24170 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24171 /* parser/parser_prod.nit:4436 */
24172 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24173 if (UNTAG_Bool(REGB0)) {
24174 } else {
24175 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4436);
24176 }
24177 /* parser/parser_prod.nit:4437 */
24178 ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24179 } else {
24180 /* parser/parser_prod.nit:4439 */
24181 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4439);
24182 }
24183 /* parser/parser_prod.nit:4441 */
24184 goto label1;
24185 }
24186 /* parser/parser_prod.nit:4443 */
24187 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24188 if (UNTAG_Bool(REGB0)) {
24189 } else {
24190 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4443);
24191 }
24192 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]);
24193 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24194 if (UNTAG_Bool(REGB0)) {
24195 } else {
24196 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24197 REGB0 = REGB1;
24198 }
24199 if (UNTAG_Bool(REGB0)) {
24200 /* parser/parser_prod.nit:4444 */
24201 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24202 if (UNTAG_Bool(REGB0)) {
24203 } else {
24204 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24205 if (UNTAG_Bool(REGB1)) {
24206 REGB1 = TAG_Bool(false);
24207 REGB0 = REGB1;
24208 } else {
24209 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24210 REGB0 = REGB1;
24211 }
24212 }
24213 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24214 if (UNTAG_Bool(REGB0)) {
24215 /* parser/parser_prod.nit:4445 */
24216 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24217 if (UNTAG_Bool(REGB0)) {
24218 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4445);
24219 }
24220 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24221 /* parser/parser_prod.nit:4446 */
24222 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24223 if (UNTAG_Bool(REGB0)) {
24224 } else {
24225 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4446);
24226 }
24227 /* parser/parser_prod.nit:4447 */
24228 ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24229 } else {
24230 /* parser/parser_prod.nit:4449 */
24231 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4449);
24232 }
24233 /* parser/parser_prod.nit:4451 */
24234 goto label1;
24235 }
24236 label1: while(0);
24237 stack_frame_head = fra.me.prev;
24238 return;
24239 }
24240 void parser___parser_prod___AOrExpr___visit_all(val_t p0, val_t p1){
24241 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24242 val_t REGB0;
24243 val_t tmp;
24244 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24245 fra.me.file = LOCATE_parser___parser_prod;
24246 fra.me.line = 4455;
24247 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___visit_all;
24248 fra.me.has_broke = 0;
24249 fra.me.REG_size = 3;
24250 fra.me.nitni_local_ref_head = NULL;
24251 fra.me.REG[0] = NIT_NULL;
24252 fra.me.REG[1] = NIT_NULL;
24253 fra.me.REG[2] = NIT_NULL;
24254 fra.me.REG[0] = p0;
24255 fra.me.REG[1] = p1;
24256 /* parser/parser_prod.nit:4457 */
24257 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24258 if (UNTAG_Bool(REGB0)) {
24259 } else {
24260 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4457);
24261 }
24262 fra.me.REG[2] = ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]);
24263 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24264 /* parser/parser_prod.nit:4458 */
24265 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24266 if (UNTAG_Bool(REGB0)) {
24267 } else {
24268 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4458);
24269 }
24270 fra.me.REG[0] = ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]);
24271 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24272 stack_frame_head = fra.me.prev;
24273 return;
24274 }
24275 void parser___parser_prod___AAndExpr___empty_init(val_t p0, int* init_table){
24276 int itpos141 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAndExpr].i;
24277 struct {struct stack_frame_t me;} fra;
24278 val_t tmp;
24279 if (init_table[itpos141]) return;
24280 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24281 fra.me.file = LOCATE_parser___parser_prod;
24282 fra.me.line = 4462;
24283 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___empty_init;
24284 fra.me.has_broke = 0;
24285 fra.me.REG_size = 1;
24286 fra.me.nitni_local_ref_head = NULL;
24287 fra.me.REG[0] = NIT_NULL;
24288 fra.me.REG[0] = p0;
24289 stack_frame_head = fra.me.prev;
24290 init_table[itpos141] = 1;
24291 return;
24292 }
24293 void parser___parser_prod___AAndExpr___init_aandexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24294 int itpos142 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAndExpr].i;
24295 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24296 val_t REGB0;
24297 val_t tmp;
24298 if (init_table[itpos142]) return;
24299 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24300 fra.me.file = LOCATE_parser___parser_prod;
24301 fra.me.line = 4464;
24302 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___init_aandexpr;
24303 fra.me.has_broke = 0;
24304 fra.me.REG_size = 4;
24305 fra.me.nitni_local_ref_head = NULL;
24306 fra.me.REG[0] = NIT_NULL;
24307 fra.me.REG[1] = NIT_NULL;
24308 fra.me.REG[2] = NIT_NULL;
24309 fra.me.REG[3] = NIT_NULL;
24310 fra.me.REG[0] = p0;
24311 fra.me.REG[1] = p1;
24312 fra.me.REG[2] = p2;
24313 /* parser/parser_prod.nit:4464 */
24314 fra.me.REG[3] = fra.me.REG[0];
24315 /* parser/parser_prod.nit:4469 */
24316 CALL_parser___parser_prod___AAndExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
24317 /* parser/parser_prod.nit:4470 */
24318 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24319 if (UNTAG_Bool(REGB0)) {
24320 } else {
24321 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4470);
24322 }
24323 ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
24324 /* parser/parser_prod.nit:4471 */
24325 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24326 if (UNTAG_Bool(REGB0)) {
24327 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4471);
24328 }
24329 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24330 /* parser/parser_prod.nit:4472 */
24331 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24332 if (UNTAG_Bool(REGB0)) {
24333 } else {
24334 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4472);
24335 }
24336 ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
24337 /* parser/parser_prod.nit:4473 */
24338 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24339 if (UNTAG_Bool(REGB0)) {
24340 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4473);
24341 }
24342 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
24343 stack_frame_head = fra.me.prev;
24344 init_table[itpos142] = 1;
24345 return;
24346 }
24347 void parser___parser_prod___AAndExpr___replace_child(val_t p0, val_t p1, val_t p2){
24348 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24349 val_t REGB0;
24350 val_t REGB1;
24351 val_t tmp;
24352 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24353 fra.me.file = LOCATE_parser___parser_prod;
24354 fra.me.line = 4476;
24355 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___replace_child;
24356 fra.me.has_broke = 0;
24357 fra.me.REG_size = 4;
24358 fra.me.nitni_local_ref_head = NULL;
24359 fra.me.REG[0] = NIT_NULL;
24360 fra.me.REG[1] = NIT_NULL;
24361 fra.me.REG[2] = NIT_NULL;
24362 fra.me.REG[3] = NIT_NULL;
24363 fra.me.REG[0] = p0;
24364 fra.me.REG[1] = p1;
24365 fra.me.REG[2] = p2;
24366 /* parser/parser_prod.nit:4478 */
24367 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24368 if (UNTAG_Bool(REGB0)) {
24369 } else {
24370 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4478);
24371 }
24372 fra.me.REG[3] = ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]);
24373 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24374 if (UNTAG_Bool(REGB0)) {
24375 } else {
24376 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24377 REGB0 = REGB1;
24378 }
24379 if (UNTAG_Bool(REGB0)) {
24380 /* parser/parser_prod.nit:4479 */
24381 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24382 if (UNTAG_Bool(REGB0)) {
24383 } else {
24384 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24385 if (UNTAG_Bool(REGB1)) {
24386 REGB1 = TAG_Bool(false);
24387 REGB0 = REGB1;
24388 } else {
24389 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24390 REGB0 = REGB1;
24391 }
24392 }
24393 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24394 if (UNTAG_Bool(REGB0)) {
24395 /* parser/parser_prod.nit:4480 */
24396 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24397 if (UNTAG_Bool(REGB0)) {
24398 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4480);
24399 }
24400 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24401 /* parser/parser_prod.nit:4481 */
24402 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24403 if (UNTAG_Bool(REGB0)) {
24404 } else {
24405 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4481);
24406 }
24407 /* parser/parser_prod.nit:4482 */
24408 ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24409 } else {
24410 /* parser/parser_prod.nit:4484 */
24411 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4484);
24412 }
24413 /* parser/parser_prod.nit:4486 */
24414 goto label1;
24415 }
24416 /* parser/parser_prod.nit:4488 */
24417 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24418 if (UNTAG_Bool(REGB0)) {
24419 } else {
24420 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4488);
24421 }
24422 fra.me.REG[3] = ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]);
24423 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24424 if (UNTAG_Bool(REGB0)) {
24425 } else {
24426 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24427 REGB0 = REGB1;
24428 }
24429 if (UNTAG_Bool(REGB0)) {
24430 /* parser/parser_prod.nit:4489 */
24431 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24432 if (UNTAG_Bool(REGB0)) {
24433 } else {
24434 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24435 if (UNTAG_Bool(REGB1)) {
24436 REGB1 = TAG_Bool(false);
24437 REGB0 = REGB1;
24438 } else {
24439 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24440 REGB0 = REGB1;
24441 }
24442 }
24443 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24444 if (UNTAG_Bool(REGB0)) {
24445 /* parser/parser_prod.nit:4490 */
24446 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24447 if (UNTAG_Bool(REGB0)) {
24448 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4490);
24449 }
24450 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24451 /* parser/parser_prod.nit:4491 */
24452 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24453 if (UNTAG_Bool(REGB0)) {
24454 } else {
24455 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4491);
24456 }
24457 /* parser/parser_prod.nit:4492 */
24458 ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24459 } else {
24460 /* parser/parser_prod.nit:4494 */
24461 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4494);
24462 }
24463 /* parser/parser_prod.nit:4496 */
24464 goto label1;
24465 }
24466 label1: while(0);
24467 stack_frame_head = fra.me.prev;
24468 return;
24469 }
24470 void parser___parser_prod___AAndExpr___visit_all(val_t p0, val_t p1){
24471 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24472 val_t REGB0;
24473 val_t tmp;
24474 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24475 fra.me.file = LOCATE_parser___parser_prod;
24476 fra.me.line = 4500;
24477 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___visit_all;
24478 fra.me.has_broke = 0;
24479 fra.me.REG_size = 3;
24480 fra.me.nitni_local_ref_head = NULL;
24481 fra.me.REG[0] = NIT_NULL;
24482 fra.me.REG[1] = NIT_NULL;
24483 fra.me.REG[2] = NIT_NULL;
24484 fra.me.REG[0] = p0;
24485 fra.me.REG[1] = p1;
24486 /* parser/parser_prod.nit:4502 */
24487 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24488 if (UNTAG_Bool(REGB0)) {
24489 } else {
24490 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4502);
24491 }
24492 fra.me.REG[2] = ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]);
24493 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24494 /* parser/parser_prod.nit:4503 */
24495 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24496 if (UNTAG_Bool(REGB0)) {
24497 } else {
24498 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4503);
24499 }
24500 fra.me.REG[0] = ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]);
24501 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24502 stack_frame_head = fra.me.prev;
24503 return;
24504 }
24505 void parser___parser_prod___AOrElseExpr___empty_init(val_t p0, int* init_table){
24506 int itpos143 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrElseExpr].i;
24507 struct {struct stack_frame_t me;} fra;
24508 val_t tmp;
24509 if (init_table[itpos143]) return;
24510 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24511 fra.me.file = LOCATE_parser___parser_prod;
24512 fra.me.line = 4507;
24513 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___empty_init;
24514 fra.me.has_broke = 0;
24515 fra.me.REG_size = 1;
24516 fra.me.nitni_local_ref_head = NULL;
24517 fra.me.REG[0] = NIT_NULL;
24518 fra.me.REG[0] = p0;
24519 stack_frame_head = fra.me.prev;
24520 init_table[itpos143] = 1;
24521 return;
24522 }
24523 void parser___parser_prod___AOrElseExpr___init_aorelseexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24524 int itpos144 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrElseExpr].i;
24525 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24526 val_t REGB0;
24527 val_t tmp;
24528 if (init_table[itpos144]) return;
24529 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24530 fra.me.file = LOCATE_parser___parser_prod;
24531 fra.me.line = 4509;
24532 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___init_aorelseexpr;
24533 fra.me.has_broke = 0;
24534 fra.me.REG_size = 4;
24535 fra.me.nitni_local_ref_head = NULL;
24536 fra.me.REG[0] = NIT_NULL;
24537 fra.me.REG[1] = NIT_NULL;
24538 fra.me.REG[2] = NIT_NULL;
24539 fra.me.REG[3] = NIT_NULL;
24540 fra.me.REG[0] = p0;
24541 fra.me.REG[1] = p1;
24542 fra.me.REG[2] = p2;
24543 /* parser/parser_prod.nit:4509 */
24544 fra.me.REG[3] = fra.me.REG[0];
24545 /* parser/parser_prod.nit:4514 */
24546 CALL_parser___parser_prod___AOrElseExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
24547 /* parser/parser_prod.nit:4515 */
24548 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24549 if (UNTAG_Bool(REGB0)) {
24550 } else {
24551 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4515);
24552 }
24553 ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
24554 /* parser/parser_prod.nit:4516 */
24555 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24556 if (UNTAG_Bool(REGB0)) {
24557 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4516);
24558 }
24559 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24560 /* parser/parser_prod.nit:4517 */
24561 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24562 if (UNTAG_Bool(REGB0)) {
24563 } else {
24564 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4517);
24565 }
24566 ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
24567 /* parser/parser_prod.nit:4518 */
24568 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24569 if (UNTAG_Bool(REGB0)) {
24570 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4518);
24571 }
24572 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
24573 stack_frame_head = fra.me.prev;
24574 init_table[itpos144] = 1;
24575 return;
24576 }
24577 void parser___parser_prod___AOrElseExpr___replace_child(val_t p0, val_t p1, val_t p2){
24578 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24579 val_t REGB0;
24580 val_t REGB1;
24581 val_t tmp;
24582 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24583 fra.me.file = LOCATE_parser___parser_prod;
24584 fra.me.line = 4521;
24585 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___replace_child;
24586 fra.me.has_broke = 0;
24587 fra.me.REG_size = 4;
24588 fra.me.nitni_local_ref_head = NULL;
24589 fra.me.REG[0] = NIT_NULL;
24590 fra.me.REG[1] = NIT_NULL;
24591 fra.me.REG[2] = NIT_NULL;
24592 fra.me.REG[3] = NIT_NULL;
24593 fra.me.REG[0] = p0;
24594 fra.me.REG[1] = p1;
24595 fra.me.REG[2] = p2;
24596 /* parser/parser_prod.nit:4523 */
24597 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24598 if (UNTAG_Bool(REGB0)) {
24599 } else {
24600 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4523);
24601 }
24602 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]);
24603 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24604 if (UNTAG_Bool(REGB0)) {
24605 } else {
24606 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24607 REGB0 = REGB1;
24608 }
24609 if (UNTAG_Bool(REGB0)) {
24610 /* parser/parser_prod.nit:4524 */
24611 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24612 if (UNTAG_Bool(REGB0)) {
24613 } else {
24614 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24615 if (UNTAG_Bool(REGB1)) {
24616 REGB1 = TAG_Bool(false);
24617 REGB0 = REGB1;
24618 } else {
24619 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24620 REGB0 = REGB1;
24621 }
24622 }
24623 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24624 if (UNTAG_Bool(REGB0)) {
24625 /* parser/parser_prod.nit:4525 */
24626 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24627 if (UNTAG_Bool(REGB0)) {
24628 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4525);
24629 }
24630 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24631 /* parser/parser_prod.nit:4526 */
24632 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24633 if (UNTAG_Bool(REGB0)) {
24634 } else {
24635 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4526);
24636 }
24637 /* parser/parser_prod.nit:4527 */
24638 ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24639 } else {
24640 /* parser/parser_prod.nit:4529 */
24641 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4529);
24642 }
24643 /* parser/parser_prod.nit:4531 */
24644 goto label1;
24645 }
24646 /* parser/parser_prod.nit:4533 */
24647 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24648 if (UNTAG_Bool(REGB0)) {
24649 } else {
24650 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4533);
24651 }
24652 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]);
24653 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24654 if (UNTAG_Bool(REGB0)) {
24655 } else {
24656 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24657 REGB0 = REGB1;
24658 }
24659 if (UNTAG_Bool(REGB0)) {
24660 /* parser/parser_prod.nit:4534 */
24661 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24662 if (UNTAG_Bool(REGB0)) {
24663 } else {
24664 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24665 if (UNTAG_Bool(REGB1)) {
24666 REGB1 = TAG_Bool(false);
24667 REGB0 = REGB1;
24668 } else {
24669 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24670 REGB0 = REGB1;
24671 }
24672 }
24673 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24674 if (UNTAG_Bool(REGB0)) {
24675 /* parser/parser_prod.nit:4535 */
24676 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24677 if (UNTAG_Bool(REGB0)) {
24678 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4535);
24679 }
24680 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24681 /* parser/parser_prod.nit:4536 */
24682 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24683 if (UNTAG_Bool(REGB0)) {
24684 } else {
24685 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4536);
24686 }
24687 /* parser/parser_prod.nit:4537 */
24688 ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24689 } else {
24690 /* parser/parser_prod.nit:4539 */
24691 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4539);
24692 }
24693 /* parser/parser_prod.nit:4541 */
24694 goto label1;
24695 }
24696 label1: while(0);
24697 stack_frame_head = fra.me.prev;
24698 return;
24699 }
24700 void parser___parser_prod___AOrElseExpr___visit_all(val_t p0, val_t p1){
24701 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24702 val_t REGB0;
24703 val_t tmp;
24704 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24705 fra.me.file = LOCATE_parser___parser_prod;
24706 fra.me.line = 4545;
24707 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___visit_all;
24708 fra.me.has_broke = 0;
24709 fra.me.REG_size = 3;
24710 fra.me.nitni_local_ref_head = NULL;
24711 fra.me.REG[0] = NIT_NULL;
24712 fra.me.REG[1] = NIT_NULL;
24713 fra.me.REG[2] = NIT_NULL;
24714 fra.me.REG[0] = p0;
24715 fra.me.REG[1] = p1;
24716 /* parser/parser_prod.nit:4547 */
24717 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24718 if (UNTAG_Bool(REGB0)) {
24719 } else {
24720 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4547);
24721 }
24722 fra.me.REG[2] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]);
24723 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24724 /* parser/parser_prod.nit:4548 */
24725 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24726 if (UNTAG_Bool(REGB0)) {
24727 } else {
24728 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4548);
24729 }
24730 fra.me.REG[0] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]);
24731 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24732 stack_frame_head = fra.me.prev;
24733 return;
24734 }
24735 void parser___parser_prod___ANotExpr___empty_init(val_t p0, int* init_table){
24736 int itpos145 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANotExpr].i;
24737 struct {struct stack_frame_t me;} fra;
24738 val_t tmp;
24739 if (init_table[itpos145]) return;
24740 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24741 fra.me.file = LOCATE_parser___parser_prod;
24742 fra.me.line = 4552;
24743 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___empty_init;
24744 fra.me.has_broke = 0;
24745 fra.me.REG_size = 1;
24746 fra.me.nitni_local_ref_head = NULL;
24747 fra.me.REG[0] = NIT_NULL;
24748 fra.me.REG[0] = p0;
24749 stack_frame_head = fra.me.prev;
24750 init_table[itpos145] = 1;
24751 return;
24752 }
24753 void parser___parser_prod___ANotExpr___init_anotexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24754 int itpos146 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANotExpr].i;
24755 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24756 val_t REGB0;
24757 val_t tmp;
24758 if (init_table[itpos146]) return;
24759 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24760 fra.me.file = LOCATE_parser___parser_prod;
24761 fra.me.line = 4554;
24762 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___init_anotexpr;
24763 fra.me.has_broke = 0;
24764 fra.me.REG_size = 4;
24765 fra.me.nitni_local_ref_head = NULL;
24766 fra.me.REG[0] = NIT_NULL;
24767 fra.me.REG[1] = NIT_NULL;
24768 fra.me.REG[2] = NIT_NULL;
24769 fra.me.REG[3] = NIT_NULL;
24770 fra.me.REG[0] = p0;
24771 fra.me.REG[1] = p1;
24772 fra.me.REG[2] = p2;
24773 /* parser/parser_prod.nit:4554 */
24774 fra.me.REG[3] = fra.me.REG[0];
24775 /* parser/parser_prod.nit:4559 */
24776 CALL_parser___parser_prod___ANotExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
24777 /* parser/parser_prod.nit:4560 */
24778 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24779 if (UNTAG_Bool(REGB0)) {
24780 } else {
24781 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4560);
24782 }
24783 ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[3]) = fra.me.REG[1];
24784 /* parser/parser_prod.nit:4561 */
24785 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24786 if (UNTAG_Bool(REGB0)) {
24787 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4561);
24788 }
24789 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24790 /* parser/parser_prod.nit:4562 */
24791 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24792 if (UNTAG_Bool(REGB0)) {
24793 } else {
24794 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4562);
24795 }
24796 ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
24797 /* parser/parser_prod.nit:4563 */
24798 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24799 if (UNTAG_Bool(REGB0)) {
24800 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4563);
24801 }
24802 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
24803 stack_frame_head = fra.me.prev;
24804 init_table[itpos146] = 1;
24805 return;
24806 }
24807 void parser___parser_prod___ANotExpr___replace_child(val_t p0, val_t p1, val_t p2){
24808 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24809 val_t REGB0;
24810 val_t REGB1;
24811 val_t tmp;
24812 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24813 fra.me.file = LOCATE_parser___parser_prod;
24814 fra.me.line = 4566;
24815 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___replace_child;
24816 fra.me.has_broke = 0;
24817 fra.me.REG_size = 4;
24818 fra.me.nitni_local_ref_head = NULL;
24819 fra.me.REG[0] = NIT_NULL;
24820 fra.me.REG[1] = NIT_NULL;
24821 fra.me.REG[2] = NIT_NULL;
24822 fra.me.REG[3] = NIT_NULL;
24823 fra.me.REG[0] = p0;
24824 fra.me.REG[1] = p1;
24825 fra.me.REG[2] = p2;
24826 /* parser/parser_prod.nit:4568 */
24827 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
24828 if (UNTAG_Bool(REGB0)) {
24829 } else {
24830 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 4568);
24831 }
24832 fra.me.REG[3] = ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]);
24833 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24834 if (UNTAG_Bool(REGB0)) {
24835 } else {
24836 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24837 REGB0 = REGB1;
24838 }
24839 if (UNTAG_Bool(REGB0)) {
24840 /* parser/parser_prod.nit:4569 */
24841 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24842 if (UNTAG_Bool(REGB0)) {
24843 } else {
24844 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24845 if (UNTAG_Bool(REGB1)) {
24846 REGB1 = TAG_Bool(false);
24847 REGB0 = REGB1;
24848 } else {
24849 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24850 REGB0 = REGB1;
24851 }
24852 }
24853 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24854 if (UNTAG_Bool(REGB0)) {
24855 /* parser/parser_prod.nit:4570 */
24856 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24857 if (UNTAG_Bool(REGB0)) {
24858 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4570);
24859 }
24860 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24861 /* parser/parser_prod.nit:4571 */
24862 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnot, ID_parser___parser_nodes___TKwnot)) /*cast TKwnot*/;
24863 if (UNTAG_Bool(REGB0)) {
24864 } else {
24865 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4571);
24866 }
24867 /* parser/parser_prod.nit:4572 */
24868 ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
24869 } else {
24870 /* parser/parser_prod.nit:4574 */
24871 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4574);
24872 }
24873 /* parser/parser_prod.nit:4576 */
24874 goto label1;
24875 }
24876 /* parser/parser_prod.nit:4578 */
24877 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24878 if (UNTAG_Bool(REGB0)) {
24879 } else {
24880 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4578);
24881 }
24882 fra.me.REG[3] = ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]);
24883 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24884 if (UNTAG_Bool(REGB0)) {
24885 } else {
24886 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24887 REGB0 = REGB1;
24888 }
24889 if (UNTAG_Bool(REGB0)) {
24890 /* parser/parser_prod.nit:4579 */
24891 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24892 if (UNTAG_Bool(REGB0)) {
24893 } else {
24894 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24895 if (UNTAG_Bool(REGB1)) {
24896 REGB1 = TAG_Bool(false);
24897 REGB0 = REGB1;
24898 } else {
24899 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24900 REGB0 = REGB1;
24901 }
24902 }
24903 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24904 if (UNTAG_Bool(REGB0)) {
24905 /* parser/parser_prod.nit:4580 */
24906 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24907 if (UNTAG_Bool(REGB0)) {
24908 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4580);
24909 }
24910 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24911 /* parser/parser_prod.nit:4581 */
24912 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24913 if (UNTAG_Bool(REGB0)) {
24914 } else {
24915 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4581);
24916 }
24917 /* parser/parser_prod.nit:4582 */
24918 ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24919 } else {
24920 /* parser/parser_prod.nit:4584 */
24921 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4584);
24922 }
24923 /* parser/parser_prod.nit:4586 */
24924 goto label1;
24925 }
24926 label1: while(0);
24927 stack_frame_head = fra.me.prev;
24928 return;
24929 }
24930 void parser___parser_prod___ANotExpr___visit_all(val_t p0, val_t p1){
24931 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24932 val_t REGB0;
24933 val_t tmp;
24934 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24935 fra.me.file = LOCATE_parser___parser_prod;
24936 fra.me.line = 4590;
24937 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___visit_all;
24938 fra.me.has_broke = 0;
24939 fra.me.REG_size = 3;
24940 fra.me.nitni_local_ref_head = NULL;
24941 fra.me.REG[0] = NIT_NULL;
24942 fra.me.REG[1] = NIT_NULL;
24943 fra.me.REG[2] = NIT_NULL;
24944 fra.me.REG[0] = p0;
24945 fra.me.REG[1] = p1;
24946 /* parser/parser_prod.nit:4592 */
24947 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
24948 if (UNTAG_Bool(REGB0)) {
24949 } else {
24950 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 4592);
24951 }
24952 fra.me.REG[2] = ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]);
24953 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24954 /* parser/parser_prod.nit:4593 */
24955 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24956 if (UNTAG_Bool(REGB0)) {
24957 } else {
24958 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4593);
24959 }
24960 fra.me.REG[0] = ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]);
24961 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24962 stack_frame_head = fra.me.prev;
24963 return;
24964 }
24965 void parser___parser_prod___AEqExpr___empty_init(val_t p0, int* init_table){
24966 int itpos147 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqExpr].i;
24967 struct {struct stack_frame_t me;} fra;
24968 val_t tmp;
24969 if (init_table[itpos147]) return;
24970 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24971 fra.me.file = LOCATE_parser___parser_prod;
24972 fra.me.line = 4597;
24973 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___empty_init;
24974 fra.me.has_broke = 0;
24975 fra.me.REG_size = 1;
24976 fra.me.nitni_local_ref_head = NULL;
24977 fra.me.REG[0] = NIT_NULL;
24978 fra.me.REG[0] = p0;
24979 stack_frame_head = fra.me.prev;
24980 init_table[itpos147] = 1;
24981 return;
24982 }
24983 void parser___parser_prod___AEqExpr___init_aeqexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24984 int itpos148 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqExpr].i;
24985 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24986 val_t REGB0;
24987 val_t tmp;
24988 if (init_table[itpos148]) return;
24989 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24990 fra.me.file = LOCATE_parser___parser_prod;
24991 fra.me.line = 4599;
24992 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___init_aeqexpr;
24993 fra.me.has_broke = 0;
24994 fra.me.REG_size = 4;
24995 fra.me.nitni_local_ref_head = NULL;
24996 fra.me.REG[0] = NIT_NULL;
24997 fra.me.REG[1] = NIT_NULL;
24998 fra.me.REG[2] = NIT_NULL;
24999 fra.me.REG[3] = NIT_NULL;
25000 fra.me.REG[0] = p0;
25001 fra.me.REG[1] = p1;
25002 fra.me.REG[2] = p2;
25003 /* parser/parser_prod.nit:4599 */
25004 fra.me.REG[3] = fra.me.REG[0];
25005 /* parser/parser_prod.nit:4604 */
25006 CALL_parser___parser_prod___AEqExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25007 /* parser/parser_prod.nit:4605 */
25008 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25009 if (UNTAG_Bool(REGB0)) {
25010 } else {
25011 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4605);
25012 }
25013 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25014 /* parser/parser_prod.nit:4606 */
25015 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25016 if (UNTAG_Bool(REGB0)) {
25017 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4606);
25018 }
25019 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25020 /* parser/parser_prod.nit:4607 */
25021 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25022 if (UNTAG_Bool(REGB0)) {
25023 } else {
25024 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4607);
25025 }
25026 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25027 /* parser/parser_prod.nit:4608 */
25028 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25029 if (UNTAG_Bool(REGB0)) {
25030 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4608);
25031 }
25032 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25033 stack_frame_head = fra.me.prev;
25034 init_table[itpos148] = 1;
25035 return;
25036 }
25037 void parser___parser_prod___AEqExpr___replace_child(val_t p0, val_t p1, val_t p2){
25038 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25039 val_t REGB0;
25040 val_t REGB1;
25041 val_t tmp;
25042 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25043 fra.me.file = LOCATE_parser___parser_prod;
25044 fra.me.line = 4611;
25045 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___replace_child;
25046 fra.me.has_broke = 0;
25047 fra.me.REG_size = 4;
25048 fra.me.nitni_local_ref_head = NULL;
25049 fra.me.REG[0] = NIT_NULL;
25050 fra.me.REG[1] = NIT_NULL;
25051 fra.me.REG[2] = NIT_NULL;
25052 fra.me.REG[3] = NIT_NULL;
25053 fra.me.REG[0] = p0;
25054 fra.me.REG[1] = p1;
25055 fra.me.REG[2] = p2;
25056 /* parser/parser_prod.nit:4613 */
25057 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25058 if (UNTAG_Bool(REGB0)) {
25059 } else {
25060 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4613);
25061 }
25062 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25063 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25064 if (UNTAG_Bool(REGB0)) {
25065 } else {
25066 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25067 REGB0 = REGB1;
25068 }
25069 if (UNTAG_Bool(REGB0)) {
25070 /* parser/parser_prod.nit:4614 */
25071 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25072 if (UNTAG_Bool(REGB0)) {
25073 } else {
25074 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25075 if (UNTAG_Bool(REGB1)) {
25076 REGB1 = TAG_Bool(false);
25077 REGB0 = REGB1;
25078 } else {
25079 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25080 REGB0 = REGB1;
25081 }
25082 }
25083 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25084 if (UNTAG_Bool(REGB0)) {
25085 /* parser/parser_prod.nit:4615 */
25086 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25087 if (UNTAG_Bool(REGB0)) {
25088 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4615);
25089 }
25090 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25091 /* parser/parser_prod.nit:4616 */
25092 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25093 if (UNTAG_Bool(REGB0)) {
25094 } else {
25095 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4616);
25096 }
25097 /* parser/parser_prod.nit:4617 */
25098 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25099 } else {
25100 /* parser/parser_prod.nit:4619 */
25101 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4619);
25102 }
25103 /* parser/parser_prod.nit:4621 */
25104 goto label1;
25105 }
25106 /* parser/parser_prod.nit:4623 */
25107 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25108 if (UNTAG_Bool(REGB0)) {
25109 } else {
25110 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4623);
25111 }
25112 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25113 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25114 if (UNTAG_Bool(REGB0)) {
25115 } else {
25116 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25117 REGB0 = REGB1;
25118 }
25119 if (UNTAG_Bool(REGB0)) {
25120 /* parser/parser_prod.nit:4624 */
25121 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25122 if (UNTAG_Bool(REGB0)) {
25123 } else {
25124 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25125 if (UNTAG_Bool(REGB1)) {
25126 REGB1 = TAG_Bool(false);
25127 REGB0 = REGB1;
25128 } else {
25129 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25130 REGB0 = REGB1;
25131 }
25132 }
25133 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25134 if (UNTAG_Bool(REGB0)) {
25135 /* parser/parser_prod.nit:4625 */
25136 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25137 if (UNTAG_Bool(REGB0)) {
25138 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4625);
25139 }
25140 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25141 /* parser/parser_prod.nit:4626 */
25142 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25143 if (UNTAG_Bool(REGB0)) {
25144 } else {
25145 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4626);
25146 }
25147 /* parser/parser_prod.nit:4627 */
25148 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25149 } else {
25150 /* parser/parser_prod.nit:4629 */
25151 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4629);
25152 }
25153 /* parser/parser_prod.nit:4631 */
25154 goto label1;
25155 }
25156 label1: while(0);
25157 stack_frame_head = fra.me.prev;
25158 return;
25159 }
25160 void parser___parser_prod___AEqExpr___visit_all(val_t p0, val_t p1){
25161 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25162 val_t REGB0;
25163 val_t tmp;
25164 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25165 fra.me.file = LOCATE_parser___parser_prod;
25166 fra.me.line = 4635;
25167 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___visit_all;
25168 fra.me.has_broke = 0;
25169 fra.me.REG_size = 3;
25170 fra.me.nitni_local_ref_head = NULL;
25171 fra.me.REG[0] = NIT_NULL;
25172 fra.me.REG[1] = NIT_NULL;
25173 fra.me.REG[2] = NIT_NULL;
25174 fra.me.REG[0] = p0;
25175 fra.me.REG[1] = p1;
25176 /* parser/parser_prod.nit:4637 */
25177 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25178 if (UNTAG_Bool(REGB0)) {
25179 } else {
25180 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4637);
25181 }
25182 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25183 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25184 /* parser/parser_prod.nit:4638 */
25185 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25186 if (UNTAG_Bool(REGB0)) {
25187 } else {
25188 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4638);
25189 }
25190 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25191 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25192 stack_frame_head = fra.me.prev;
25193 return;
25194 }
25195 void parser___parser_prod___AEeExpr___empty_init(val_t p0, int* init_table){
25196 int itpos149 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEeExpr].i;
25197 struct {struct stack_frame_t me;} fra;
25198 val_t tmp;
25199 if (init_table[itpos149]) return;
25200 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25201 fra.me.file = LOCATE_parser___parser_prod;
25202 fra.me.line = 4642;
25203 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___empty_init;
25204 fra.me.has_broke = 0;
25205 fra.me.REG_size = 1;
25206 fra.me.nitni_local_ref_head = NULL;
25207 fra.me.REG[0] = NIT_NULL;
25208 fra.me.REG[0] = p0;
25209 stack_frame_head = fra.me.prev;
25210 init_table[itpos149] = 1;
25211 return;
25212 }
25213 void parser___parser_prod___AEeExpr___init_aeeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25214 int itpos150 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEeExpr].i;
25215 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25216 val_t REGB0;
25217 val_t tmp;
25218 if (init_table[itpos150]) return;
25219 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25220 fra.me.file = LOCATE_parser___parser_prod;
25221 fra.me.line = 4644;
25222 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___init_aeeexpr;
25223 fra.me.has_broke = 0;
25224 fra.me.REG_size = 4;
25225 fra.me.nitni_local_ref_head = NULL;
25226 fra.me.REG[0] = NIT_NULL;
25227 fra.me.REG[1] = NIT_NULL;
25228 fra.me.REG[2] = NIT_NULL;
25229 fra.me.REG[3] = NIT_NULL;
25230 fra.me.REG[0] = p0;
25231 fra.me.REG[1] = p1;
25232 fra.me.REG[2] = p2;
25233 /* parser/parser_prod.nit:4644 */
25234 fra.me.REG[3] = fra.me.REG[0];
25235 /* parser/parser_prod.nit:4649 */
25236 CALL_parser___parser_prod___AEeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25237 /* parser/parser_prod.nit:4650 */
25238 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25239 if (UNTAG_Bool(REGB0)) {
25240 } else {
25241 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4650);
25242 }
25243 ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25244 /* parser/parser_prod.nit:4651 */
25245 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25246 if (UNTAG_Bool(REGB0)) {
25247 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4651);
25248 }
25249 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25250 /* parser/parser_prod.nit:4652 */
25251 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25252 if (UNTAG_Bool(REGB0)) {
25253 } else {
25254 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4652);
25255 }
25256 ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25257 /* parser/parser_prod.nit:4653 */
25258 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25259 if (UNTAG_Bool(REGB0)) {
25260 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4653);
25261 }
25262 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25263 stack_frame_head = fra.me.prev;
25264 init_table[itpos150] = 1;
25265 return;
25266 }
25267 void parser___parser_prod___AEeExpr___replace_child(val_t p0, val_t p1, val_t p2){
25268 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25269 val_t REGB0;
25270 val_t REGB1;
25271 val_t tmp;
25272 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25273 fra.me.file = LOCATE_parser___parser_prod;
25274 fra.me.line = 4656;
25275 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___replace_child;
25276 fra.me.has_broke = 0;
25277 fra.me.REG_size = 4;
25278 fra.me.nitni_local_ref_head = NULL;
25279 fra.me.REG[0] = NIT_NULL;
25280 fra.me.REG[1] = NIT_NULL;
25281 fra.me.REG[2] = NIT_NULL;
25282 fra.me.REG[3] = NIT_NULL;
25283 fra.me.REG[0] = p0;
25284 fra.me.REG[1] = p1;
25285 fra.me.REG[2] = p2;
25286 /* parser/parser_prod.nit:4658 */
25287 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25288 if (UNTAG_Bool(REGB0)) {
25289 } else {
25290 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4658);
25291 }
25292 fra.me.REG[3] = ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]);
25293 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25294 if (UNTAG_Bool(REGB0)) {
25295 } else {
25296 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25297 REGB0 = REGB1;
25298 }
25299 if (UNTAG_Bool(REGB0)) {
25300 /* parser/parser_prod.nit:4659 */
25301 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25302 if (UNTAG_Bool(REGB0)) {
25303 } else {
25304 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25305 if (UNTAG_Bool(REGB1)) {
25306 REGB1 = TAG_Bool(false);
25307 REGB0 = REGB1;
25308 } else {
25309 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25310 REGB0 = REGB1;
25311 }
25312 }
25313 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25314 if (UNTAG_Bool(REGB0)) {
25315 /* parser/parser_prod.nit:4660 */
25316 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25317 if (UNTAG_Bool(REGB0)) {
25318 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4660);
25319 }
25320 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25321 /* parser/parser_prod.nit:4661 */
25322 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25323 if (UNTAG_Bool(REGB0)) {
25324 } else {
25325 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4661);
25326 }
25327 /* parser/parser_prod.nit:4662 */
25328 ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25329 } else {
25330 /* parser/parser_prod.nit:4664 */
25331 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4664);
25332 }
25333 /* parser/parser_prod.nit:4666 */
25334 goto label1;
25335 }
25336 /* parser/parser_prod.nit:4668 */
25337 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25338 if (UNTAG_Bool(REGB0)) {
25339 } else {
25340 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4668);
25341 }
25342 fra.me.REG[3] = ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]);
25343 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25344 if (UNTAG_Bool(REGB0)) {
25345 } else {
25346 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25347 REGB0 = REGB1;
25348 }
25349 if (UNTAG_Bool(REGB0)) {
25350 /* parser/parser_prod.nit:4669 */
25351 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25352 if (UNTAG_Bool(REGB0)) {
25353 } else {
25354 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25355 if (UNTAG_Bool(REGB1)) {
25356 REGB1 = TAG_Bool(false);
25357 REGB0 = REGB1;
25358 } else {
25359 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25360 REGB0 = REGB1;
25361 }
25362 }
25363 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25364 if (UNTAG_Bool(REGB0)) {
25365 /* parser/parser_prod.nit:4670 */
25366 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25367 if (UNTAG_Bool(REGB0)) {
25368 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4670);
25369 }
25370 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25371 /* parser/parser_prod.nit:4671 */
25372 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25373 if (UNTAG_Bool(REGB0)) {
25374 } else {
25375 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4671);
25376 }
25377 /* parser/parser_prod.nit:4672 */
25378 ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25379 } else {
25380 /* parser/parser_prod.nit:4674 */
25381 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4674);
25382 }
25383 /* parser/parser_prod.nit:4676 */
25384 goto label1;
25385 }
25386 label1: while(0);
25387 stack_frame_head = fra.me.prev;
25388 return;
25389 }
25390 void parser___parser_prod___AEeExpr___visit_all(val_t p0, val_t p1){
25391 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25392 val_t REGB0;
25393 val_t tmp;
25394 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25395 fra.me.file = LOCATE_parser___parser_prod;
25396 fra.me.line = 4680;
25397 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___visit_all;
25398 fra.me.has_broke = 0;
25399 fra.me.REG_size = 3;
25400 fra.me.nitni_local_ref_head = NULL;
25401 fra.me.REG[0] = NIT_NULL;
25402 fra.me.REG[1] = NIT_NULL;
25403 fra.me.REG[2] = NIT_NULL;
25404 fra.me.REG[0] = p0;
25405 fra.me.REG[1] = p1;
25406 /* parser/parser_prod.nit:4682 */
25407 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25408 if (UNTAG_Bool(REGB0)) {
25409 } else {
25410 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4682);
25411 }
25412 fra.me.REG[2] = ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]);
25413 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25414 /* parser/parser_prod.nit:4683 */
25415 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25416 if (UNTAG_Bool(REGB0)) {
25417 } else {
25418 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4683);
25419 }
25420 fra.me.REG[0] = ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]);
25421 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25422 stack_frame_head = fra.me.prev;
25423 return;
25424 }
25425 void parser___parser_prod___ANeExpr___empty_init(val_t p0, int* init_table){
25426 int itpos151 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeExpr].i;
25427 struct {struct stack_frame_t me;} fra;
25428 val_t tmp;
25429 if (init_table[itpos151]) return;
25430 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25431 fra.me.file = LOCATE_parser___parser_prod;
25432 fra.me.line = 4687;
25433 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___empty_init;
25434 fra.me.has_broke = 0;
25435 fra.me.REG_size = 1;
25436 fra.me.nitni_local_ref_head = NULL;
25437 fra.me.REG[0] = NIT_NULL;
25438 fra.me.REG[0] = p0;
25439 stack_frame_head = fra.me.prev;
25440 init_table[itpos151] = 1;
25441 return;
25442 }
25443 void parser___parser_prod___ANeExpr___init_aneexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25444 int itpos152 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeExpr].i;
25445 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25446 val_t REGB0;
25447 val_t tmp;
25448 if (init_table[itpos152]) return;
25449 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25450 fra.me.file = LOCATE_parser___parser_prod;
25451 fra.me.line = 4689;
25452 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___init_aneexpr;
25453 fra.me.has_broke = 0;
25454 fra.me.REG_size = 4;
25455 fra.me.nitni_local_ref_head = NULL;
25456 fra.me.REG[0] = NIT_NULL;
25457 fra.me.REG[1] = NIT_NULL;
25458 fra.me.REG[2] = NIT_NULL;
25459 fra.me.REG[3] = NIT_NULL;
25460 fra.me.REG[0] = p0;
25461 fra.me.REG[1] = p1;
25462 fra.me.REG[2] = p2;
25463 /* parser/parser_prod.nit:4689 */
25464 fra.me.REG[3] = fra.me.REG[0];
25465 /* parser/parser_prod.nit:4694 */
25466 CALL_parser___parser_prod___ANeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25467 /* parser/parser_prod.nit:4695 */
25468 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25469 if (UNTAG_Bool(REGB0)) {
25470 } else {
25471 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4695);
25472 }
25473 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25474 /* parser/parser_prod.nit:4696 */
25475 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25476 if (UNTAG_Bool(REGB0)) {
25477 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4696);
25478 }
25479 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25480 /* parser/parser_prod.nit:4697 */
25481 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25482 if (UNTAG_Bool(REGB0)) {
25483 } else {
25484 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4697);
25485 }
25486 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25487 /* parser/parser_prod.nit:4698 */
25488 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25489 if (UNTAG_Bool(REGB0)) {
25490 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4698);
25491 }
25492 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25493 stack_frame_head = fra.me.prev;
25494 init_table[itpos152] = 1;
25495 return;
25496 }
25497 void parser___parser_prod___ANeExpr___replace_child(val_t p0, val_t p1, val_t p2){
25498 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25499 val_t REGB0;
25500 val_t REGB1;
25501 val_t tmp;
25502 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25503 fra.me.file = LOCATE_parser___parser_prod;
25504 fra.me.line = 4701;
25505 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___replace_child;
25506 fra.me.has_broke = 0;
25507 fra.me.REG_size = 4;
25508 fra.me.nitni_local_ref_head = NULL;
25509 fra.me.REG[0] = NIT_NULL;
25510 fra.me.REG[1] = NIT_NULL;
25511 fra.me.REG[2] = NIT_NULL;
25512 fra.me.REG[3] = NIT_NULL;
25513 fra.me.REG[0] = p0;
25514 fra.me.REG[1] = p1;
25515 fra.me.REG[2] = p2;
25516 /* parser/parser_prod.nit:4703 */
25517 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25518 if (UNTAG_Bool(REGB0)) {
25519 } else {
25520 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4703);
25521 }
25522 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25523 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25524 if (UNTAG_Bool(REGB0)) {
25525 } else {
25526 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25527 REGB0 = REGB1;
25528 }
25529 if (UNTAG_Bool(REGB0)) {
25530 /* parser/parser_prod.nit:4704 */
25531 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25532 if (UNTAG_Bool(REGB0)) {
25533 } else {
25534 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25535 if (UNTAG_Bool(REGB1)) {
25536 REGB1 = TAG_Bool(false);
25537 REGB0 = REGB1;
25538 } else {
25539 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25540 REGB0 = REGB1;
25541 }
25542 }
25543 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25544 if (UNTAG_Bool(REGB0)) {
25545 /* parser/parser_prod.nit:4705 */
25546 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25547 if (UNTAG_Bool(REGB0)) {
25548 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4705);
25549 }
25550 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25551 /* parser/parser_prod.nit:4706 */
25552 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25553 if (UNTAG_Bool(REGB0)) {
25554 } else {
25555 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4706);
25556 }
25557 /* parser/parser_prod.nit:4707 */
25558 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25559 } else {
25560 /* parser/parser_prod.nit:4709 */
25561 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4709);
25562 }
25563 /* parser/parser_prod.nit:4711 */
25564 goto label1;
25565 }
25566 /* parser/parser_prod.nit:4713 */
25567 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25568 if (UNTAG_Bool(REGB0)) {
25569 } else {
25570 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4713);
25571 }
25572 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25573 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25574 if (UNTAG_Bool(REGB0)) {
25575 } else {
25576 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25577 REGB0 = REGB1;
25578 }
25579 if (UNTAG_Bool(REGB0)) {
25580 /* parser/parser_prod.nit:4714 */
25581 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25582 if (UNTAG_Bool(REGB0)) {
25583 } else {
25584 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25585 if (UNTAG_Bool(REGB1)) {
25586 REGB1 = TAG_Bool(false);
25587 REGB0 = REGB1;
25588 } else {
25589 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25590 REGB0 = REGB1;
25591 }
25592 }
25593 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25594 if (UNTAG_Bool(REGB0)) {
25595 /* parser/parser_prod.nit:4715 */
25596 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25597 if (UNTAG_Bool(REGB0)) {
25598 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4715);
25599 }
25600 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25601 /* parser/parser_prod.nit:4716 */
25602 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25603 if (UNTAG_Bool(REGB0)) {
25604 } else {
25605 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4716);
25606 }
25607 /* parser/parser_prod.nit:4717 */
25608 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25609 } else {
25610 /* parser/parser_prod.nit:4719 */
25611 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4719);
25612 }
25613 /* parser/parser_prod.nit:4721 */
25614 goto label1;
25615 }
25616 label1: while(0);
25617 stack_frame_head = fra.me.prev;
25618 return;
25619 }
25620 void parser___parser_prod___ANeExpr___visit_all(val_t p0, val_t p1){
25621 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25622 val_t REGB0;
25623 val_t tmp;
25624 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25625 fra.me.file = LOCATE_parser___parser_prod;
25626 fra.me.line = 4725;
25627 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___visit_all;
25628 fra.me.has_broke = 0;
25629 fra.me.REG_size = 3;
25630 fra.me.nitni_local_ref_head = NULL;
25631 fra.me.REG[0] = NIT_NULL;
25632 fra.me.REG[1] = NIT_NULL;
25633 fra.me.REG[2] = NIT_NULL;
25634 fra.me.REG[0] = p0;
25635 fra.me.REG[1] = p1;
25636 /* parser/parser_prod.nit:4727 */
25637 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25638 if (UNTAG_Bool(REGB0)) {
25639 } else {
25640 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4727);
25641 }
25642 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25643 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25644 /* parser/parser_prod.nit:4728 */
25645 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25646 if (UNTAG_Bool(REGB0)) {
25647 } else {
25648 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4728);
25649 }
25650 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25651 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25652 stack_frame_head = fra.me.prev;
25653 return;
25654 }
25655 void parser___parser_prod___ALtExpr___empty_init(val_t p0, int* init_table){
25656 int itpos153 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtExpr].i;
25657 struct {struct stack_frame_t me;} fra;
25658 val_t tmp;
25659 if (init_table[itpos153]) return;
25660 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25661 fra.me.file = LOCATE_parser___parser_prod;
25662 fra.me.line = 4732;
25663 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___empty_init;
25664 fra.me.has_broke = 0;
25665 fra.me.REG_size = 1;
25666 fra.me.nitni_local_ref_head = NULL;
25667 fra.me.REG[0] = NIT_NULL;
25668 fra.me.REG[0] = p0;
25669 stack_frame_head = fra.me.prev;
25670 init_table[itpos153] = 1;
25671 return;
25672 }
25673 void parser___parser_prod___ALtExpr___init_altexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25674 int itpos154 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtExpr].i;
25675 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25676 val_t REGB0;
25677 val_t tmp;
25678 if (init_table[itpos154]) return;
25679 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25680 fra.me.file = LOCATE_parser___parser_prod;
25681 fra.me.line = 4734;
25682 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___init_altexpr;
25683 fra.me.has_broke = 0;
25684 fra.me.REG_size = 4;
25685 fra.me.nitni_local_ref_head = NULL;
25686 fra.me.REG[0] = NIT_NULL;
25687 fra.me.REG[1] = NIT_NULL;
25688 fra.me.REG[2] = NIT_NULL;
25689 fra.me.REG[3] = NIT_NULL;
25690 fra.me.REG[0] = p0;
25691 fra.me.REG[1] = p1;
25692 fra.me.REG[2] = p2;
25693 /* parser/parser_prod.nit:4734 */
25694 fra.me.REG[3] = fra.me.REG[0];
25695 /* parser/parser_prod.nit:4739 */
25696 CALL_parser___parser_prod___ALtExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25697 /* parser/parser_prod.nit:4740 */
25698 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25699 if (UNTAG_Bool(REGB0)) {
25700 } else {
25701 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4740);
25702 }
25703 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25704 /* parser/parser_prod.nit:4741 */
25705 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25706 if (UNTAG_Bool(REGB0)) {
25707 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4741);
25708 }
25709 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25710 /* parser/parser_prod.nit:4742 */
25711 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25712 if (UNTAG_Bool(REGB0)) {
25713 } else {
25714 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4742);
25715 }
25716 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25717 /* parser/parser_prod.nit:4743 */
25718 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25719 if (UNTAG_Bool(REGB0)) {
25720 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4743);
25721 }
25722 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25723 stack_frame_head = fra.me.prev;
25724 init_table[itpos154] = 1;
25725 return;
25726 }
25727 void parser___parser_prod___ALtExpr___replace_child(val_t p0, val_t p1, val_t p2){
25728 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25729 val_t REGB0;
25730 val_t REGB1;
25731 val_t tmp;
25732 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25733 fra.me.file = LOCATE_parser___parser_prod;
25734 fra.me.line = 4746;
25735 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___replace_child;
25736 fra.me.has_broke = 0;
25737 fra.me.REG_size = 4;
25738 fra.me.nitni_local_ref_head = NULL;
25739 fra.me.REG[0] = NIT_NULL;
25740 fra.me.REG[1] = NIT_NULL;
25741 fra.me.REG[2] = NIT_NULL;
25742 fra.me.REG[3] = NIT_NULL;
25743 fra.me.REG[0] = p0;
25744 fra.me.REG[1] = p1;
25745 fra.me.REG[2] = p2;
25746 /* parser/parser_prod.nit:4748 */
25747 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25748 if (UNTAG_Bool(REGB0)) {
25749 } else {
25750 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4748);
25751 }
25752 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25753 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25754 if (UNTAG_Bool(REGB0)) {
25755 } else {
25756 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25757 REGB0 = REGB1;
25758 }
25759 if (UNTAG_Bool(REGB0)) {
25760 /* parser/parser_prod.nit:4749 */
25761 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25762 if (UNTAG_Bool(REGB0)) {
25763 } else {
25764 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25765 if (UNTAG_Bool(REGB1)) {
25766 REGB1 = TAG_Bool(false);
25767 REGB0 = REGB1;
25768 } else {
25769 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25770 REGB0 = REGB1;
25771 }
25772 }
25773 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25774 if (UNTAG_Bool(REGB0)) {
25775 /* parser/parser_prod.nit:4750 */
25776 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25777 if (UNTAG_Bool(REGB0)) {
25778 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4750);
25779 }
25780 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25781 /* parser/parser_prod.nit:4751 */
25782 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25783 if (UNTAG_Bool(REGB0)) {
25784 } else {
25785 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4751);
25786 }
25787 /* parser/parser_prod.nit:4752 */
25788 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25789 } else {
25790 /* parser/parser_prod.nit:4754 */
25791 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4754);
25792 }
25793 /* parser/parser_prod.nit:4756 */
25794 goto label1;
25795 }
25796 /* parser/parser_prod.nit:4758 */
25797 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25798 if (UNTAG_Bool(REGB0)) {
25799 } else {
25800 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4758);
25801 }
25802 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25803 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25804 if (UNTAG_Bool(REGB0)) {
25805 } else {
25806 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25807 REGB0 = REGB1;
25808 }
25809 if (UNTAG_Bool(REGB0)) {
25810 /* parser/parser_prod.nit:4759 */
25811 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25812 if (UNTAG_Bool(REGB0)) {
25813 } else {
25814 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25815 if (UNTAG_Bool(REGB1)) {
25816 REGB1 = TAG_Bool(false);
25817 REGB0 = REGB1;
25818 } else {
25819 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25820 REGB0 = REGB1;
25821 }
25822 }
25823 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25824 if (UNTAG_Bool(REGB0)) {
25825 /* parser/parser_prod.nit:4760 */
25826 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25827 if (UNTAG_Bool(REGB0)) {
25828 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4760);
25829 }
25830 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25831 /* parser/parser_prod.nit:4761 */
25832 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25833 if (UNTAG_Bool(REGB0)) {
25834 } else {
25835 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4761);
25836 }
25837 /* parser/parser_prod.nit:4762 */
25838 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25839 } else {
25840 /* parser/parser_prod.nit:4764 */
25841 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4764);
25842 }
25843 /* parser/parser_prod.nit:4766 */
25844 goto label1;
25845 }
25846 label1: while(0);
25847 stack_frame_head = fra.me.prev;
25848 return;
25849 }
25850 void parser___parser_prod___ALtExpr___visit_all(val_t p0, val_t p1){
25851 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25852 val_t REGB0;
25853 val_t tmp;
25854 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25855 fra.me.file = LOCATE_parser___parser_prod;
25856 fra.me.line = 4770;
25857 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___visit_all;
25858 fra.me.has_broke = 0;
25859 fra.me.REG_size = 3;
25860 fra.me.nitni_local_ref_head = NULL;
25861 fra.me.REG[0] = NIT_NULL;
25862 fra.me.REG[1] = NIT_NULL;
25863 fra.me.REG[2] = NIT_NULL;
25864 fra.me.REG[0] = p0;
25865 fra.me.REG[1] = p1;
25866 /* parser/parser_prod.nit:4772 */
25867 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25868 if (UNTAG_Bool(REGB0)) {
25869 } else {
25870 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4772);
25871 }
25872 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25873 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25874 /* parser/parser_prod.nit:4773 */
25875 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25876 if (UNTAG_Bool(REGB0)) {
25877 } else {
25878 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4773);
25879 }
25880 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25881 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25882 stack_frame_head = fra.me.prev;
25883 return;
25884 }
25885 void parser___parser_prod___ALeExpr___empty_init(val_t p0, int* init_table){
25886 int itpos155 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeExpr].i;
25887 struct {struct stack_frame_t me;} fra;
25888 val_t tmp;
25889 if (init_table[itpos155]) return;
25890 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25891 fra.me.file = LOCATE_parser___parser_prod;
25892 fra.me.line = 4777;
25893 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___empty_init;
25894 fra.me.has_broke = 0;
25895 fra.me.REG_size = 1;
25896 fra.me.nitni_local_ref_head = NULL;
25897 fra.me.REG[0] = NIT_NULL;
25898 fra.me.REG[0] = p0;
25899 stack_frame_head = fra.me.prev;
25900 init_table[itpos155] = 1;
25901 return;
25902 }
25903 void parser___parser_prod___ALeExpr___init_aleexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25904 int itpos156 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeExpr].i;
25905 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25906 val_t REGB0;
25907 val_t tmp;
25908 if (init_table[itpos156]) return;
25909 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25910 fra.me.file = LOCATE_parser___parser_prod;
25911 fra.me.line = 4779;
25912 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___init_aleexpr;
25913 fra.me.has_broke = 0;
25914 fra.me.REG_size = 4;
25915 fra.me.nitni_local_ref_head = NULL;
25916 fra.me.REG[0] = NIT_NULL;
25917 fra.me.REG[1] = NIT_NULL;
25918 fra.me.REG[2] = NIT_NULL;
25919 fra.me.REG[3] = NIT_NULL;
25920 fra.me.REG[0] = p0;
25921 fra.me.REG[1] = p1;
25922 fra.me.REG[2] = p2;
25923 /* parser/parser_prod.nit:4779 */
25924 fra.me.REG[3] = fra.me.REG[0];
25925 /* parser/parser_prod.nit:4784 */
25926 CALL_parser___parser_prod___ALeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25927 /* parser/parser_prod.nit:4785 */
25928 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25929 if (UNTAG_Bool(REGB0)) {
25930 } else {
25931 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4785);
25932 }
25933 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25934 /* parser/parser_prod.nit:4786 */
25935 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25936 if (UNTAG_Bool(REGB0)) {
25937 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4786);
25938 }
25939 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25940 /* parser/parser_prod.nit:4787 */
25941 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25942 if (UNTAG_Bool(REGB0)) {
25943 } else {
25944 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4787);
25945 }
25946 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25947 /* parser/parser_prod.nit:4788 */
25948 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25949 if (UNTAG_Bool(REGB0)) {
25950 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4788);
25951 }
25952 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25953 stack_frame_head = fra.me.prev;
25954 init_table[itpos156] = 1;
25955 return;
25956 }
25957 void parser___parser_prod___ALeExpr___replace_child(val_t p0, val_t p1, val_t p2){
25958 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25959 val_t REGB0;
25960 val_t REGB1;
25961 val_t tmp;
25962 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25963 fra.me.file = LOCATE_parser___parser_prod;
25964 fra.me.line = 4791;
25965 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___replace_child;
25966 fra.me.has_broke = 0;
25967 fra.me.REG_size = 4;
25968 fra.me.nitni_local_ref_head = NULL;
25969 fra.me.REG[0] = NIT_NULL;
25970 fra.me.REG[1] = NIT_NULL;
25971 fra.me.REG[2] = NIT_NULL;
25972 fra.me.REG[3] = NIT_NULL;
25973 fra.me.REG[0] = p0;
25974 fra.me.REG[1] = p1;
25975 fra.me.REG[2] = p2;
25976 /* parser/parser_prod.nit:4793 */
25977 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25978 if (UNTAG_Bool(REGB0)) {
25979 } else {
25980 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4793);
25981 }
25982 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25983 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25984 if (UNTAG_Bool(REGB0)) {
25985 } else {
25986 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25987 REGB0 = REGB1;
25988 }
25989 if (UNTAG_Bool(REGB0)) {
25990 /* parser/parser_prod.nit:4794 */
25991 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25992 if (UNTAG_Bool(REGB0)) {
25993 } else {
25994 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25995 if (UNTAG_Bool(REGB1)) {
25996 REGB1 = TAG_Bool(false);
25997 REGB0 = REGB1;
25998 } else {
25999 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26000 REGB0 = REGB1;
26001 }
26002 }
26003 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26004 if (UNTAG_Bool(REGB0)) {
26005 /* parser/parser_prod.nit:4795 */
26006 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26007 if (UNTAG_Bool(REGB0)) {
26008 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4795);
26009 }
26010 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26011 /* parser/parser_prod.nit:4796 */
26012 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26013 if (UNTAG_Bool(REGB0)) {
26014 } else {
26015 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4796);
26016 }
26017 /* parser/parser_prod.nit:4797 */
26018 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26019 } else {
26020 /* parser/parser_prod.nit:4799 */
26021 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4799);
26022 }
26023 /* parser/parser_prod.nit:4801 */
26024 goto label1;
26025 }
26026 /* parser/parser_prod.nit:4803 */
26027 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26028 if (UNTAG_Bool(REGB0)) {
26029 } else {
26030 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4803);
26031 }
26032 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26033 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26034 if (UNTAG_Bool(REGB0)) {
26035 } else {
26036 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26037 REGB0 = REGB1;
26038 }
26039 if (UNTAG_Bool(REGB0)) {
26040 /* parser/parser_prod.nit:4804 */
26041 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26042 if (UNTAG_Bool(REGB0)) {
26043 } else {
26044 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26045 if (UNTAG_Bool(REGB1)) {
26046 REGB1 = TAG_Bool(false);
26047 REGB0 = REGB1;
26048 } else {
26049 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26050 REGB0 = REGB1;
26051 }
26052 }
26053 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26054 if (UNTAG_Bool(REGB0)) {
26055 /* parser/parser_prod.nit:4805 */
26056 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26057 if (UNTAG_Bool(REGB0)) {
26058 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4805);
26059 }
26060 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26061 /* parser/parser_prod.nit:4806 */
26062 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26063 if (UNTAG_Bool(REGB0)) {
26064 } else {
26065 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4806);
26066 }
26067 /* parser/parser_prod.nit:4807 */
26068 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26069 } else {
26070 /* parser/parser_prod.nit:4809 */
26071 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4809);
26072 }
26073 /* parser/parser_prod.nit:4811 */
26074 goto label1;
26075 }
26076 label1: while(0);
26077 stack_frame_head = fra.me.prev;
26078 return;
26079 }
26080 void parser___parser_prod___ALeExpr___visit_all(val_t p0, val_t p1){
26081 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26082 val_t REGB0;
26083 val_t tmp;
26084 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26085 fra.me.file = LOCATE_parser___parser_prod;
26086 fra.me.line = 4815;
26087 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___visit_all;
26088 fra.me.has_broke = 0;
26089 fra.me.REG_size = 3;
26090 fra.me.nitni_local_ref_head = NULL;
26091 fra.me.REG[0] = NIT_NULL;
26092 fra.me.REG[1] = NIT_NULL;
26093 fra.me.REG[2] = NIT_NULL;
26094 fra.me.REG[0] = p0;
26095 fra.me.REG[1] = p1;
26096 /* parser/parser_prod.nit:4817 */
26097 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26098 if (UNTAG_Bool(REGB0)) {
26099 } else {
26100 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4817);
26101 }
26102 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26103 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26104 /* parser/parser_prod.nit:4818 */
26105 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26106 if (UNTAG_Bool(REGB0)) {
26107 } else {
26108 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4818);
26109 }
26110 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26111 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26112 stack_frame_head = fra.me.prev;
26113 return;
26114 }
26115 void parser___parser_prod___ALlExpr___empty_init(val_t p0, int* init_table){
26116 int itpos157 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlExpr].i;
26117 struct {struct stack_frame_t me;} fra;
26118 val_t tmp;
26119 if (init_table[itpos157]) return;
26120 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26121 fra.me.file = LOCATE_parser___parser_prod;
26122 fra.me.line = 4822;
26123 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___empty_init;
26124 fra.me.has_broke = 0;
26125 fra.me.REG_size = 1;
26126 fra.me.nitni_local_ref_head = NULL;
26127 fra.me.REG[0] = NIT_NULL;
26128 fra.me.REG[0] = p0;
26129 stack_frame_head = fra.me.prev;
26130 init_table[itpos157] = 1;
26131 return;
26132 }
26133 void parser___parser_prod___ALlExpr___init_allexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26134 int itpos158 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlExpr].i;
26135 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26136 val_t REGB0;
26137 val_t tmp;
26138 if (init_table[itpos158]) return;
26139 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26140 fra.me.file = LOCATE_parser___parser_prod;
26141 fra.me.line = 4824;
26142 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___init_allexpr;
26143 fra.me.has_broke = 0;
26144 fra.me.REG_size = 4;
26145 fra.me.nitni_local_ref_head = NULL;
26146 fra.me.REG[0] = NIT_NULL;
26147 fra.me.REG[1] = NIT_NULL;
26148 fra.me.REG[2] = NIT_NULL;
26149 fra.me.REG[3] = NIT_NULL;
26150 fra.me.REG[0] = p0;
26151 fra.me.REG[1] = p1;
26152 fra.me.REG[2] = p2;
26153 /* parser/parser_prod.nit:4824 */
26154 fra.me.REG[3] = fra.me.REG[0];
26155 /* parser/parser_prod.nit:4829 */
26156 CALL_parser___parser_prod___ALlExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26157 /* parser/parser_prod.nit:4830 */
26158 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26159 if (UNTAG_Bool(REGB0)) {
26160 } else {
26161 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4830);
26162 }
26163 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26164 /* parser/parser_prod.nit:4831 */
26165 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26166 if (UNTAG_Bool(REGB0)) {
26167 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4831);
26168 }
26169 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26170 /* parser/parser_prod.nit:4832 */
26171 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26172 if (UNTAG_Bool(REGB0)) {
26173 } else {
26174 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4832);
26175 }
26176 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26177 /* parser/parser_prod.nit:4833 */
26178 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26179 if (UNTAG_Bool(REGB0)) {
26180 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4833);
26181 }
26182 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26183 stack_frame_head = fra.me.prev;
26184 init_table[itpos158] = 1;
26185 return;
26186 }
26187 void parser___parser_prod___ALlExpr___replace_child(val_t p0, val_t p1, val_t p2){
26188 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26189 val_t REGB0;
26190 val_t REGB1;
26191 val_t tmp;
26192 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26193 fra.me.file = LOCATE_parser___parser_prod;
26194 fra.me.line = 4836;
26195 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___replace_child;
26196 fra.me.has_broke = 0;
26197 fra.me.REG_size = 4;
26198 fra.me.nitni_local_ref_head = NULL;
26199 fra.me.REG[0] = NIT_NULL;
26200 fra.me.REG[1] = NIT_NULL;
26201 fra.me.REG[2] = NIT_NULL;
26202 fra.me.REG[3] = NIT_NULL;
26203 fra.me.REG[0] = p0;
26204 fra.me.REG[1] = p1;
26205 fra.me.REG[2] = p2;
26206 /* parser/parser_prod.nit:4838 */
26207 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26208 if (UNTAG_Bool(REGB0)) {
26209 } else {
26210 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4838);
26211 }
26212 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26213 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26214 if (UNTAG_Bool(REGB0)) {
26215 } else {
26216 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26217 REGB0 = REGB1;
26218 }
26219 if (UNTAG_Bool(REGB0)) {
26220 /* parser/parser_prod.nit:4839 */
26221 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26222 if (UNTAG_Bool(REGB0)) {
26223 } else {
26224 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26225 if (UNTAG_Bool(REGB1)) {
26226 REGB1 = TAG_Bool(false);
26227 REGB0 = REGB1;
26228 } else {
26229 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26230 REGB0 = REGB1;
26231 }
26232 }
26233 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26234 if (UNTAG_Bool(REGB0)) {
26235 /* parser/parser_prod.nit:4840 */
26236 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26237 if (UNTAG_Bool(REGB0)) {
26238 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4840);
26239 }
26240 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26241 /* parser/parser_prod.nit:4841 */
26242 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26243 if (UNTAG_Bool(REGB0)) {
26244 } else {
26245 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4841);
26246 }
26247 /* parser/parser_prod.nit:4842 */
26248 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26249 } else {
26250 /* parser/parser_prod.nit:4844 */
26251 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4844);
26252 }
26253 /* parser/parser_prod.nit:4846 */
26254 goto label1;
26255 }
26256 /* parser/parser_prod.nit:4848 */
26257 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26258 if (UNTAG_Bool(REGB0)) {
26259 } else {
26260 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4848);
26261 }
26262 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26263 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26264 if (UNTAG_Bool(REGB0)) {
26265 } else {
26266 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26267 REGB0 = REGB1;
26268 }
26269 if (UNTAG_Bool(REGB0)) {
26270 /* parser/parser_prod.nit:4849 */
26271 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26272 if (UNTAG_Bool(REGB0)) {
26273 } else {
26274 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26275 if (UNTAG_Bool(REGB1)) {
26276 REGB1 = TAG_Bool(false);
26277 REGB0 = REGB1;
26278 } else {
26279 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26280 REGB0 = REGB1;
26281 }
26282 }
26283 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26284 if (UNTAG_Bool(REGB0)) {
26285 /* parser/parser_prod.nit:4850 */
26286 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26287 if (UNTAG_Bool(REGB0)) {
26288 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4850);
26289 }
26290 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26291 /* parser/parser_prod.nit:4851 */
26292 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26293 if (UNTAG_Bool(REGB0)) {
26294 } else {
26295 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4851);
26296 }
26297 /* parser/parser_prod.nit:4852 */
26298 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26299 } else {
26300 /* parser/parser_prod.nit:4854 */
26301 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4854);
26302 }
26303 /* parser/parser_prod.nit:4856 */
26304 goto label1;
26305 }
26306 label1: while(0);
26307 stack_frame_head = fra.me.prev;
26308 return;
26309 }
26310 void parser___parser_prod___ALlExpr___visit_all(val_t p0, val_t p1){
26311 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26312 val_t REGB0;
26313 val_t tmp;
26314 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26315 fra.me.file = LOCATE_parser___parser_prod;
26316 fra.me.line = 4860;
26317 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___visit_all;
26318 fra.me.has_broke = 0;
26319 fra.me.REG_size = 3;
26320 fra.me.nitni_local_ref_head = NULL;
26321 fra.me.REG[0] = NIT_NULL;
26322 fra.me.REG[1] = NIT_NULL;
26323 fra.me.REG[2] = NIT_NULL;
26324 fra.me.REG[0] = p0;
26325 fra.me.REG[1] = p1;
26326 /* parser/parser_prod.nit:4862 */
26327 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26328 if (UNTAG_Bool(REGB0)) {
26329 } else {
26330 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4862);
26331 }
26332 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26333 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26334 /* parser/parser_prod.nit:4863 */
26335 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26336 if (UNTAG_Bool(REGB0)) {
26337 } else {
26338 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4863);
26339 }
26340 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26341 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26342 stack_frame_head = fra.me.prev;
26343 return;
26344 }
26345 void parser___parser_prod___AGtExpr___empty_init(val_t p0, int* init_table){
26346 int itpos159 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtExpr].i;
26347 struct {struct stack_frame_t me;} fra;
26348 val_t tmp;
26349 if (init_table[itpos159]) return;
26350 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26351 fra.me.file = LOCATE_parser___parser_prod;
26352 fra.me.line = 4867;
26353 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___empty_init;
26354 fra.me.has_broke = 0;
26355 fra.me.REG_size = 1;
26356 fra.me.nitni_local_ref_head = NULL;
26357 fra.me.REG[0] = NIT_NULL;
26358 fra.me.REG[0] = p0;
26359 stack_frame_head = fra.me.prev;
26360 init_table[itpos159] = 1;
26361 return;
26362 }
26363 void parser___parser_prod___AGtExpr___init_agtexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26364 int itpos160 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtExpr].i;
26365 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26366 val_t REGB0;
26367 val_t tmp;
26368 if (init_table[itpos160]) return;
26369 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26370 fra.me.file = LOCATE_parser___parser_prod;
26371 fra.me.line = 4869;
26372 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___init_agtexpr;
26373 fra.me.has_broke = 0;
26374 fra.me.REG_size = 4;
26375 fra.me.nitni_local_ref_head = NULL;
26376 fra.me.REG[0] = NIT_NULL;
26377 fra.me.REG[1] = NIT_NULL;
26378 fra.me.REG[2] = NIT_NULL;
26379 fra.me.REG[3] = NIT_NULL;
26380 fra.me.REG[0] = p0;
26381 fra.me.REG[1] = p1;
26382 fra.me.REG[2] = p2;
26383 /* parser/parser_prod.nit:4869 */
26384 fra.me.REG[3] = fra.me.REG[0];
26385 /* parser/parser_prod.nit:4874 */
26386 CALL_parser___parser_prod___AGtExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26387 /* parser/parser_prod.nit:4875 */
26388 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26389 if (UNTAG_Bool(REGB0)) {
26390 } else {
26391 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4875);
26392 }
26393 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26394 /* parser/parser_prod.nit:4876 */
26395 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26396 if (UNTAG_Bool(REGB0)) {
26397 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4876);
26398 }
26399 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26400 /* parser/parser_prod.nit:4877 */
26401 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26402 if (UNTAG_Bool(REGB0)) {
26403 } else {
26404 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4877);
26405 }
26406 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26407 /* parser/parser_prod.nit:4878 */
26408 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26409 if (UNTAG_Bool(REGB0)) {
26410 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4878);
26411 }
26412 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26413 stack_frame_head = fra.me.prev;
26414 init_table[itpos160] = 1;
26415 return;
26416 }
26417 void parser___parser_prod___AGtExpr___replace_child(val_t p0, val_t p1, val_t p2){
26418 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26419 val_t REGB0;
26420 val_t REGB1;
26421 val_t tmp;
26422 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26423 fra.me.file = LOCATE_parser___parser_prod;
26424 fra.me.line = 4881;
26425 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___replace_child;
26426 fra.me.has_broke = 0;
26427 fra.me.REG_size = 4;
26428 fra.me.nitni_local_ref_head = NULL;
26429 fra.me.REG[0] = NIT_NULL;
26430 fra.me.REG[1] = NIT_NULL;
26431 fra.me.REG[2] = NIT_NULL;
26432 fra.me.REG[3] = NIT_NULL;
26433 fra.me.REG[0] = p0;
26434 fra.me.REG[1] = p1;
26435 fra.me.REG[2] = p2;
26436 /* parser/parser_prod.nit:4883 */
26437 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26438 if (UNTAG_Bool(REGB0)) {
26439 } else {
26440 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4883);
26441 }
26442 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26443 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26444 if (UNTAG_Bool(REGB0)) {
26445 } else {
26446 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26447 REGB0 = REGB1;
26448 }
26449 if (UNTAG_Bool(REGB0)) {
26450 /* parser/parser_prod.nit:4884 */
26451 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26452 if (UNTAG_Bool(REGB0)) {
26453 } else {
26454 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26455 if (UNTAG_Bool(REGB1)) {
26456 REGB1 = TAG_Bool(false);
26457 REGB0 = REGB1;
26458 } else {
26459 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26460 REGB0 = REGB1;
26461 }
26462 }
26463 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26464 if (UNTAG_Bool(REGB0)) {
26465 /* parser/parser_prod.nit:4885 */
26466 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26467 if (UNTAG_Bool(REGB0)) {
26468 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4885);
26469 }
26470 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26471 /* parser/parser_prod.nit:4886 */
26472 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26473 if (UNTAG_Bool(REGB0)) {
26474 } else {
26475 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4886);
26476 }
26477 /* parser/parser_prod.nit:4887 */
26478 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26479 } else {
26480 /* parser/parser_prod.nit:4889 */
26481 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4889);
26482 }
26483 /* parser/parser_prod.nit:4891 */
26484 goto label1;
26485 }
26486 /* parser/parser_prod.nit:4893 */
26487 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26488 if (UNTAG_Bool(REGB0)) {
26489 } else {
26490 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4893);
26491 }
26492 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26493 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26494 if (UNTAG_Bool(REGB0)) {
26495 } else {
26496 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26497 REGB0 = REGB1;
26498 }
26499 if (UNTAG_Bool(REGB0)) {
26500 /* parser/parser_prod.nit:4894 */
26501 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26502 if (UNTAG_Bool(REGB0)) {
26503 } else {
26504 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26505 if (UNTAG_Bool(REGB1)) {
26506 REGB1 = TAG_Bool(false);
26507 REGB0 = REGB1;
26508 } else {
26509 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26510 REGB0 = REGB1;
26511 }
26512 }
26513 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26514 if (UNTAG_Bool(REGB0)) {
26515 /* parser/parser_prod.nit:4895 */
26516 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26517 if (UNTAG_Bool(REGB0)) {
26518 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4895);
26519 }
26520 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26521 /* parser/parser_prod.nit:4896 */
26522 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26523 if (UNTAG_Bool(REGB0)) {
26524 } else {
26525 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4896);
26526 }
26527 /* parser/parser_prod.nit:4897 */
26528 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26529 } else {
26530 /* parser/parser_prod.nit:4899 */
26531 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4899);
26532 }
26533 /* parser/parser_prod.nit:4901 */
26534 goto label1;
26535 }
26536 label1: while(0);
26537 stack_frame_head = fra.me.prev;
26538 return;
26539 }
26540 void parser___parser_prod___AGtExpr___visit_all(val_t p0, val_t p1){
26541 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26542 val_t REGB0;
26543 val_t tmp;
26544 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26545 fra.me.file = LOCATE_parser___parser_prod;
26546 fra.me.line = 4905;
26547 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___visit_all;
26548 fra.me.has_broke = 0;
26549 fra.me.REG_size = 3;
26550 fra.me.nitni_local_ref_head = NULL;
26551 fra.me.REG[0] = NIT_NULL;
26552 fra.me.REG[1] = NIT_NULL;
26553 fra.me.REG[2] = NIT_NULL;
26554 fra.me.REG[0] = p0;
26555 fra.me.REG[1] = p1;
26556 /* parser/parser_prod.nit:4907 */
26557 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26558 if (UNTAG_Bool(REGB0)) {
26559 } else {
26560 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4907);
26561 }
26562 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26563 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26564 /* parser/parser_prod.nit:4908 */
26565 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26566 if (UNTAG_Bool(REGB0)) {
26567 } else {
26568 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4908);
26569 }
26570 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26571 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26572 stack_frame_head = fra.me.prev;
26573 return;
26574 }
26575 void parser___parser_prod___AGeExpr___empty_init(val_t p0, int* init_table){
26576 int itpos161 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeExpr].i;
26577 struct {struct stack_frame_t me;} fra;
26578 val_t tmp;
26579 if (init_table[itpos161]) return;
26580 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26581 fra.me.file = LOCATE_parser___parser_prod;
26582 fra.me.line = 4912;
26583 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___empty_init;
26584 fra.me.has_broke = 0;
26585 fra.me.REG_size = 1;
26586 fra.me.nitni_local_ref_head = NULL;
26587 fra.me.REG[0] = NIT_NULL;
26588 fra.me.REG[0] = p0;
26589 stack_frame_head = fra.me.prev;
26590 init_table[itpos161] = 1;
26591 return;
26592 }
26593 void parser___parser_prod___AGeExpr___init_ageexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26594 int itpos162 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeExpr].i;
26595 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26596 val_t REGB0;
26597 val_t tmp;
26598 if (init_table[itpos162]) return;
26599 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26600 fra.me.file = LOCATE_parser___parser_prod;
26601 fra.me.line = 4914;
26602 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___init_ageexpr;
26603 fra.me.has_broke = 0;
26604 fra.me.REG_size = 4;
26605 fra.me.nitni_local_ref_head = NULL;
26606 fra.me.REG[0] = NIT_NULL;
26607 fra.me.REG[1] = NIT_NULL;
26608 fra.me.REG[2] = NIT_NULL;
26609 fra.me.REG[3] = NIT_NULL;
26610 fra.me.REG[0] = p0;
26611 fra.me.REG[1] = p1;
26612 fra.me.REG[2] = p2;
26613 /* parser/parser_prod.nit:4914 */
26614 fra.me.REG[3] = fra.me.REG[0];
26615 /* parser/parser_prod.nit:4919 */
26616 CALL_parser___parser_prod___AGeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26617 /* parser/parser_prod.nit:4920 */
26618 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26619 if (UNTAG_Bool(REGB0)) {
26620 } else {
26621 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4920);
26622 }
26623 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26624 /* parser/parser_prod.nit:4921 */
26625 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26626 if (UNTAG_Bool(REGB0)) {
26627 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4921);
26628 }
26629 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26630 /* parser/parser_prod.nit:4922 */
26631 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26632 if (UNTAG_Bool(REGB0)) {
26633 } else {
26634 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4922);
26635 }
26636 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26637 /* parser/parser_prod.nit:4923 */
26638 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26639 if (UNTAG_Bool(REGB0)) {
26640 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4923);
26641 }
26642 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26643 stack_frame_head = fra.me.prev;
26644 init_table[itpos162] = 1;
26645 return;
26646 }
26647 void parser___parser_prod___AGeExpr___replace_child(val_t p0, val_t p1, val_t p2){
26648 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26649 val_t REGB0;
26650 val_t REGB1;
26651 val_t tmp;
26652 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26653 fra.me.file = LOCATE_parser___parser_prod;
26654 fra.me.line = 4926;
26655 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___replace_child;
26656 fra.me.has_broke = 0;
26657 fra.me.REG_size = 4;
26658 fra.me.nitni_local_ref_head = NULL;
26659 fra.me.REG[0] = NIT_NULL;
26660 fra.me.REG[1] = NIT_NULL;
26661 fra.me.REG[2] = NIT_NULL;
26662 fra.me.REG[3] = NIT_NULL;
26663 fra.me.REG[0] = p0;
26664 fra.me.REG[1] = p1;
26665 fra.me.REG[2] = p2;
26666 /* parser/parser_prod.nit:4928 */
26667 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26668 if (UNTAG_Bool(REGB0)) {
26669 } else {
26670 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4928);
26671 }
26672 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26673 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26674 if (UNTAG_Bool(REGB0)) {
26675 } else {
26676 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26677 REGB0 = REGB1;
26678 }
26679 if (UNTAG_Bool(REGB0)) {
26680 /* parser/parser_prod.nit:4929 */
26681 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26682 if (UNTAG_Bool(REGB0)) {
26683 } else {
26684 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26685 if (UNTAG_Bool(REGB1)) {
26686 REGB1 = TAG_Bool(false);
26687 REGB0 = REGB1;
26688 } else {
26689 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26690 REGB0 = REGB1;
26691 }
26692 }
26693 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26694 if (UNTAG_Bool(REGB0)) {
26695 /* parser/parser_prod.nit:4930 */
26696 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26697 if (UNTAG_Bool(REGB0)) {
26698 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4930);
26699 }
26700 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26701 /* parser/parser_prod.nit:4931 */
26702 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26703 if (UNTAG_Bool(REGB0)) {
26704 } else {
26705 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4931);
26706 }
26707 /* parser/parser_prod.nit:4932 */
26708 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26709 } else {
26710 /* parser/parser_prod.nit:4934 */
26711 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4934);
26712 }
26713 /* parser/parser_prod.nit:4936 */
26714 goto label1;
26715 }
26716 /* parser/parser_prod.nit:4938 */
26717 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26718 if (UNTAG_Bool(REGB0)) {
26719 } else {
26720 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4938);
26721 }
26722 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26723 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26724 if (UNTAG_Bool(REGB0)) {
26725 } else {
26726 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26727 REGB0 = REGB1;
26728 }
26729 if (UNTAG_Bool(REGB0)) {
26730 /* parser/parser_prod.nit:4939 */
26731 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26732 if (UNTAG_Bool(REGB0)) {
26733 } else {
26734 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26735 if (UNTAG_Bool(REGB1)) {
26736 REGB1 = TAG_Bool(false);
26737 REGB0 = REGB1;
26738 } else {
26739 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26740 REGB0 = REGB1;
26741 }
26742 }
26743 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26744 if (UNTAG_Bool(REGB0)) {
26745 /* parser/parser_prod.nit:4940 */
26746 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26747 if (UNTAG_Bool(REGB0)) {
26748 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4940);
26749 }
26750 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26751 /* parser/parser_prod.nit:4941 */
26752 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26753 if (UNTAG_Bool(REGB0)) {
26754 } else {
26755 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4941);
26756 }
26757 /* parser/parser_prod.nit:4942 */
26758 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26759 } else {
26760 /* parser/parser_prod.nit:4944 */
26761 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4944);
26762 }
26763 /* parser/parser_prod.nit:4946 */
26764 goto label1;
26765 }
26766 label1: while(0);
26767 stack_frame_head = fra.me.prev;
26768 return;
26769 }
26770 void parser___parser_prod___AGeExpr___visit_all(val_t p0, val_t p1){
26771 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26772 val_t REGB0;
26773 val_t tmp;
26774 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26775 fra.me.file = LOCATE_parser___parser_prod;
26776 fra.me.line = 4950;
26777 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___visit_all;
26778 fra.me.has_broke = 0;
26779 fra.me.REG_size = 3;
26780 fra.me.nitni_local_ref_head = NULL;
26781 fra.me.REG[0] = NIT_NULL;
26782 fra.me.REG[1] = NIT_NULL;
26783 fra.me.REG[2] = NIT_NULL;
26784 fra.me.REG[0] = p0;
26785 fra.me.REG[1] = p1;
26786 /* parser/parser_prod.nit:4952 */
26787 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26788 if (UNTAG_Bool(REGB0)) {
26789 } else {
26790 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4952);
26791 }
26792 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26793 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26794 /* parser/parser_prod.nit:4953 */
26795 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26796 if (UNTAG_Bool(REGB0)) {
26797 } else {
26798 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4953);
26799 }
26800 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26801 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26802 stack_frame_head = fra.me.prev;
26803 return;
26804 }
26805 void parser___parser_prod___AGgExpr___empty_init(val_t p0, int* init_table){
26806 int itpos163 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgExpr].i;
26807 struct {struct stack_frame_t me;} fra;
26808 val_t tmp;
26809 if (init_table[itpos163]) return;
26810 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26811 fra.me.file = LOCATE_parser___parser_prod;
26812 fra.me.line = 4957;
26813 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___empty_init;
26814 fra.me.has_broke = 0;
26815 fra.me.REG_size = 1;
26816 fra.me.nitni_local_ref_head = NULL;
26817 fra.me.REG[0] = NIT_NULL;
26818 fra.me.REG[0] = p0;
26819 stack_frame_head = fra.me.prev;
26820 init_table[itpos163] = 1;
26821 return;
26822 }
26823 void parser___parser_prod___AGgExpr___init_aggexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26824 int itpos164 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgExpr].i;
26825 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26826 val_t REGB0;
26827 val_t tmp;
26828 if (init_table[itpos164]) return;
26829 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26830 fra.me.file = LOCATE_parser___parser_prod;
26831 fra.me.line = 4959;
26832 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___init_aggexpr;
26833 fra.me.has_broke = 0;
26834 fra.me.REG_size = 4;
26835 fra.me.nitni_local_ref_head = NULL;
26836 fra.me.REG[0] = NIT_NULL;
26837 fra.me.REG[1] = NIT_NULL;
26838 fra.me.REG[2] = NIT_NULL;
26839 fra.me.REG[3] = NIT_NULL;
26840 fra.me.REG[0] = p0;
26841 fra.me.REG[1] = p1;
26842 fra.me.REG[2] = p2;
26843 /* parser/parser_prod.nit:4959 */
26844 fra.me.REG[3] = fra.me.REG[0];
26845 /* parser/parser_prod.nit:4964 */
26846 CALL_parser___parser_prod___AGgExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26847 /* parser/parser_prod.nit:4965 */
26848 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26849 if (UNTAG_Bool(REGB0)) {
26850 } else {
26851 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4965);
26852 }
26853 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26854 /* parser/parser_prod.nit:4966 */
26855 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26856 if (UNTAG_Bool(REGB0)) {
26857 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4966);
26858 }
26859 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26860 /* parser/parser_prod.nit:4967 */
26861 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26862 if (UNTAG_Bool(REGB0)) {
26863 } else {
26864 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4967);
26865 }
26866 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26867 /* parser/parser_prod.nit:4968 */
26868 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26869 if (UNTAG_Bool(REGB0)) {
26870 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4968);
26871 }
26872 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26873 stack_frame_head = fra.me.prev;
26874 init_table[itpos164] = 1;
26875 return;
26876 }
26877 void parser___parser_prod___AGgExpr___replace_child(val_t p0, val_t p1, val_t p2){
26878 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26879 val_t REGB0;
26880 val_t REGB1;
26881 val_t tmp;
26882 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26883 fra.me.file = LOCATE_parser___parser_prod;
26884 fra.me.line = 4971;
26885 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___replace_child;
26886 fra.me.has_broke = 0;
26887 fra.me.REG_size = 4;
26888 fra.me.nitni_local_ref_head = NULL;
26889 fra.me.REG[0] = NIT_NULL;
26890 fra.me.REG[1] = NIT_NULL;
26891 fra.me.REG[2] = NIT_NULL;
26892 fra.me.REG[3] = NIT_NULL;
26893 fra.me.REG[0] = p0;
26894 fra.me.REG[1] = p1;
26895 fra.me.REG[2] = p2;
26896 /* parser/parser_prod.nit:4973 */
26897 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26898 if (UNTAG_Bool(REGB0)) {
26899 } else {
26900 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4973);
26901 }
26902 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26903 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26904 if (UNTAG_Bool(REGB0)) {
26905 } else {
26906 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26907 REGB0 = REGB1;
26908 }
26909 if (UNTAG_Bool(REGB0)) {
26910 /* parser/parser_prod.nit:4974 */
26911 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26912 if (UNTAG_Bool(REGB0)) {
26913 } else {
26914 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26915 if (UNTAG_Bool(REGB1)) {
26916 REGB1 = TAG_Bool(false);
26917 REGB0 = REGB1;
26918 } else {
26919 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26920 REGB0 = REGB1;
26921 }
26922 }
26923 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26924 if (UNTAG_Bool(REGB0)) {
26925 /* parser/parser_prod.nit:4975 */
26926 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26927 if (UNTAG_Bool(REGB0)) {
26928 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4975);
26929 }
26930 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26931 /* parser/parser_prod.nit:4976 */
26932 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26933 if (UNTAG_Bool(REGB0)) {
26934 } else {
26935 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4976);
26936 }
26937 /* parser/parser_prod.nit:4977 */
26938 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26939 } else {
26940 /* parser/parser_prod.nit:4979 */
26941 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4979);
26942 }
26943 /* parser/parser_prod.nit:4981 */
26944 goto label1;
26945 }
26946 /* parser/parser_prod.nit:4983 */
26947 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26948 if (UNTAG_Bool(REGB0)) {
26949 } else {
26950 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4983);
26951 }
26952 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26953 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26954 if (UNTAG_Bool(REGB0)) {
26955 } else {
26956 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26957 REGB0 = REGB1;
26958 }
26959 if (UNTAG_Bool(REGB0)) {
26960 /* parser/parser_prod.nit:4984 */
26961 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26962 if (UNTAG_Bool(REGB0)) {
26963 } else {
26964 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26965 if (UNTAG_Bool(REGB1)) {
26966 REGB1 = TAG_Bool(false);
26967 REGB0 = REGB1;
26968 } else {
26969 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26970 REGB0 = REGB1;
26971 }
26972 }
26973 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26974 if (UNTAG_Bool(REGB0)) {
26975 /* parser/parser_prod.nit:4985 */
26976 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26977 if (UNTAG_Bool(REGB0)) {
26978 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4985);
26979 }
26980 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26981 /* parser/parser_prod.nit:4986 */
26982 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26983 if (UNTAG_Bool(REGB0)) {
26984 } else {
26985 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4986);
26986 }
26987 /* parser/parser_prod.nit:4987 */
26988 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26989 } else {
26990 /* parser/parser_prod.nit:4989 */
26991 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4989);
26992 }
26993 /* parser/parser_prod.nit:4991 */
26994 goto label1;
26995 }
26996 label1: while(0);
26997 stack_frame_head = fra.me.prev;
26998 return;
26999 }
27000 void parser___parser_prod___AGgExpr___visit_all(val_t p0, val_t p1){
27001 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27002 val_t REGB0;
27003 val_t tmp;
27004 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27005 fra.me.file = LOCATE_parser___parser_prod;
27006 fra.me.line = 4995;
27007 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___visit_all;
27008 fra.me.has_broke = 0;
27009 fra.me.REG_size = 3;
27010 fra.me.nitni_local_ref_head = NULL;
27011 fra.me.REG[0] = NIT_NULL;
27012 fra.me.REG[1] = NIT_NULL;
27013 fra.me.REG[2] = NIT_NULL;
27014 fra.me.REG[0] = p0;
27015 fra.me.REG[1] = p1;
27016 /* parser/parser_prod.nit:4997 */
27017 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27018 if (UNTAG_Bool(REGB0)) {
27019 } else {
27020 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4997);
27021 }
27022 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27023 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27024 /* parser/parser_prod.nit:4998 */
27025 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27026 if (UNTAG_Bool(REGB0)) {
27027 } else {
27028 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4998);
27029 }
27030 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27031 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27032 stack_frame_head = fra.me.prev;
27033 return;
27034 }
27035 void parser___parser_prod___AIsaExpr___empty_init(val_t p0, int* init_table){
27036 int itpos165 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIsaExpr].i;
27037 struct {struct stack_frame_t me;} fra;
27038 val_t tmp;
27039 if (init_table[itpos165]) return;
27040 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27041 fra.me.file = LOCATE_parser___parser_prod;
27042 fra.me.line = 5002;
27043 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___empty_init;
27044 fra.me.has_broke = 0;
27045 fra.me.REG_size = 1;
27046 fra.me.nitni_local_ref_head = NULL;
27047 fra.me.REG[0] = NIT_NULL;
27048 fra.me.REG[0] = p0;
27049 stack_frame_head = fra.me.prev;
27050 init_table[itpos165] = 1;
27051 return;
27052 }
27053 void parser___parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27054 int itpos166 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIsaExpr].i;
27055 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27056 val_t REGB0;
27057 val_t tmp;
27058 if (init_table[itpos166]) return;
27059 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27060 fra.me.file = LOCATE_parser___parser_prod;
27061 fra.me.line = 5004;
27062 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___init_aisaexpr;
27063 fra.me.has_broke = 0;
27064 fra.me.REG_size = 4;
27065 fra.me.nitni_local_ref_head = NULL;
27066 fra.me.REG[0] = NIT_NULL;
27067 fra.me.REG[1] = NIT_NULL;
27068 fra.me.REG[2] = NIT_NULL;
27069 fra.me.REG[3] = NIT_NULL;
27070 fra.me.REG[0] = p0;
27071 fra.me.REG[1] = p1;
27072 fra.me.REG[2] = p2;
27073 /* parser/parser_prod.nit:5004 */
27074 fra.me.REG[3] = fra.me.REG[0];
27075 /* parser/parser_prod.nit:5009 */
27076 CALL_parser___parser_prod___AIsaExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27077 /* parser/parser_prod.nit:5010 */
27078 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27079 if (UNTAG_Bool(REGB0)) {
27080 } else {
27081 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5010);
27082 }
27083 ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27084 /* parser/parser_prod.nit:5011 */
27085 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27086 if (UNTAG_Bool(REGB0)) {
27087 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5011);
27088 }
27089 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27090 /* parser/parser_prod.nit:5012 */
27091 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27092 if (UNTAG_Bool(REGB0)) {
27093 } else {
27094 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5012);
27095 }
27096 ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[3]) = fra.me.REG[2];
27097 /* parser/parser_prod.nit:5013 */
27098 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27099 if (UNTAG_Bool(REGB0)) {
27100 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5013);
27101 }
27102 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27103 stack_frame_head = fra.me.prev;
27104 init_table[itpos166] = 1;
27105 return;
27106 }
27107 void parser___parser_prod___AIsaExpr___replace_child(val_t p0, val_t p1, val_t p2){
27108 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27109 val_t REGB0;
27110 val_t REGB1;
27111 val_t tmp;
27112 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27113 fra.me.file = LOCATE_parser___parser_prod;
27114 fra.me.line = 5016;
27115 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___replace_child;
27116 fra.me.has_broke = 0;
27117 fra.me.REG_size = 4;
27118 fra.me.nitni_local_ref_head = NULL;
27119 fra.me.REG[0] = NIT_NULL;
27120 fra.me.REG[1] = NIT_NULL;
27121 fra.me.REG[2] = NIT_NULL;
27122 fra.me.REG[3] = NIT_NULL;
27123 fra.me.REG[0] = p0;
27124 fra.me.REG[1] = p1;
27125 fra.me.REG[2] = p2;
27126 /* parser/parser_prod.nit:5018 */
27127 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27128 if (UNTAG_Bool(REGB0)) {
27129 } else {
27130 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5018);
27131 }
27132 fra.me.REG[3] = ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]);
27133 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27134 if (UNTAG_Bool(REGB0)) {
27135 } else {
27136 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27137 REGB0 = REGB1;
27138 }
27139 if (UNTAG_Bool(REGB0)) {
27140 /* parser/parser_prod.nit:5019 */
27141 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27142 if (UNTAG_Bool(REGB0)) {
27143 } else {
27144 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27145 if (UNTAG_Bool(REGB1)) {
27146 REGB1 = TAG_Bool(false);
27147 REGB0 = REGB1;
27148 } else {
27149 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27150 REGB0 = REGB1;
27151 }
27152 }
27153 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27154 if (UNTAG_Bool(REGB0)) {
27155 /* parser/parser_prod.nit:5020 */
27156 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27157 if (UNTAG_Bool(REGB0)) {
27158 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5020);
27159 }
27160 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27161 /* parser/parser_prod.nit:5021 */
27162 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27163 if (UNTAG_Bool(REGB0)) {
27164 } else {
27165 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5021);
27166 }
27167 /* parser/parser_prod.nit:5022 */
27168 ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27169 } else {
27170 /* parser/parser_prod.nit:5024 */
27171 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5024);
27172 }
27173 /* parser/parser_prod.nit:5026 */
27174 goto label1;
27175 }
27176 /* parser/parser_prod.nit:5028 */
27177 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0])!=NIT_NULL);
27178 if (UNTAG_Bool(REGB0)) {
27179 } else {
27180 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5028);
27181 }
27182 fra.me.REG[3] = ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]);
27183 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27184 if (UNTAG_Bool(REGB0)) {
27185 } else {
27186 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27187 REGB0 = REGB1;
27188 }
27189 if (UNTAG_Bool(REGB0)) {
27190 /* parser/parser_prod.nit:5029 */
27191 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27192 if (UNTAG_Bool(REGB0)) {
27193 } else {
27194 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27195 if (UNTAG_Bool(REGB1)) {
27196 REGB1 = TAG_Bool(false);
27197 REGB0 = REGB1;
27198 } else {
27199 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27200 REGB0 = REGB1;
27201 }
27202 }
27203 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27204 if (UNTAG_Bool(REGB0)) {
27205 /* parser/parser_prod.nit:5030 */
27206 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27207 if (UNTAG_Bool(REGB0)) {
27208 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5030);
27209 }
27210 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27211 /* parser/parser_prod.nit:5031 */
27212 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
27213 if (UNTAG_Bool(REGB0)) {
27214 } else {
27215 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5031);
27216 }
27217 /* parser/parser_prod.nit:5032 */
27218 ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
27219 } else {
27220 /* parser/parser_prod.nit:5034 */
27221 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5034);
27222 }
27223 /* parser/parser_prod.nit:5036 */
27224 goto label1;
27225 }
27226 label1: while(0);
27227 stack_frame_head = fra.me.prev;
27228 return;
27229 }
27230 void parser___parser_prod___AIsaExpr___visit_all(val_t p0, val_t p1){
27231 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27232 val_t REGB0;
27233 val_t tmp;
27234 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27235 fra.me.file = LOCATE_parser___parser_prod;
27236 fra.me.line = 5040;
27237 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___visit_all;
27238 fra.me.has_broke = 0;
27239 fra.me.REG_size = 3;
27240 fra.me.nitni_local_ref_head = NULL;
27241 fra.me.REG[0] = NIT_NULL;
27242 fra.me.REG[1] = NIT_NULL;
27243 fra.me.REG[2] = NIT_NULL;
27244 fra.me.REG[0] = p0;
27245 fra.me.REG[1] = p1;
27246 /* parser/parser_prod.nit:5042 */
27247 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27248 if (UNTAG_Bool(REGB0)) {
27249 } else {
27250 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5042);
27251 }
27252 fra.me.REG[2] = ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]);
27253 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27254 /* parser/parser_prod.nit:5043 */
27255 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0])!=NIT_NULL);
27256 if (UNTAG_Bool(REGB0)) {
27257 } else {
27258 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5043);
27259 }
27260 fra.me.REG[0] = ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]);
27261 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27262 stack_frame_head = fra.me.prev;
27263 return;
27264 }
27265 void parser___parser_prod___APlusExpr___empty_init(val_t p0, int* init_table){
27266 int itpos167 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusExpr].i;
27267 struct {struct stack_frame_t me;} fra;
27268 val_t tmp;
27269 if (init_table[itpos167]) return;
27270 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27271 fra.me.file = LOCATE_parser___parser_prod;
27272 fra.me.line = 5047;
27273 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___empty_init;
27274 fra.me.has_broke = 0;
27275 fra.me.REG_size = 1;
27276 fra.me.nitni_local_ref_head = NULL;
27277 fra.me.REG[0] = NIT_NULL;
27278 fra.me.REG[0] = p0;
27279 stack_frame_head = fra.me.prev;
27280 init_table[itpos167] = 1;
27281 return;
27282 }
27283 void parser___parser_prod___APlusExpr___init_aplusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27284 int itpos168 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusExpr].i;
27285 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27286 val_t REGB0;
27287 val_t tmp;
27288 if (init_table[itpos168]) return;
27289 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27290 fra.me.file = LOCATE_parser___parser_prod;
27291 fra.me.line = 5049;
27292 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___init_aplusexpr;
27293 fra.me.has_broke = 0;
27294 fra.me.REG_size = 4;
27295 fra.me.nitni_local_ref_head = NULL;
27296 fra.me.REG[0] = NIT_NULL;
27297 fra.me.REG[1] = NIT_NULL;
27298 fra.me.REG[2] = NIT_NULL;
27299 fra.me.REG[3] = NIT_NULL;
27300 fra.me.REG[0] = p0;
27301 fra.me.REG[1] = p1;
27302 fra.me.REG[2] = p2;
27303 /* parser/parser_prod.nit:5049 */
27304 fra.me.REG[3] = fra.me.REG[0];
27305 /* parser/parser_prod.nit:5054 */
27306 CALL_parser___parser_prod___APlusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27307 /* parser/parser_prod.nit:5055 */
27308 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27309 if (UNTAG_Bool(REGB0)) {
27310 } else {
27311 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5055);
27312 }
27313 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27314 /* parser/parser_prod.nit:5056 */
27315 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27316 if (UNTAG_Bool(REGB0)) {
27317 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5056);
27318 }
27319 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27320 /* parser/parser_prod.nit:5057 */
27321 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27322 if (UNTAG_Bool(REGB0)) {
27323 } else {
27324 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5057);
27325 }
27326 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
27327 /* parser/parser_prod.nit:5058 */
27328 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27329 if (UNTAG_Bool(REGB0)) {
27330 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5058);
27331 }
27332 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27333 stack_frame_head = fra.me.prev;
27334 init_table[itpos168] = 1;
27335 return;
27336 }
27337 void parser___parser_prod___APlusExpr___replace_child(val_t p0, val_t p1, val_t p2){
27338 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27339 val_t REGB0;
27340 val_t REGB1;
27341 val_t tmp;
27342 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27343 fra.me.file = LOCATE_parser___parser_prod;
27344 fra.me.line = 5061;
27345 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___replace_child;
27346 fra.me.has_broke = 0;
27347 fra.me.REG_size = 4;
27348 fra.me.nitni_local_ref_head = NULL;
27349 fra.me.REG[0] = NIT_NULL;
27350 fra.me.REG[1] = NIT_NULL;
27351 fra.me.REG[2] = NIT_NULL;
27352 fra.me.REG[3] = NIT_NULL;
27353 fra.me.REG[0] = p0;
27354 fra.me.REG[1] = p1;
27355 fra.me.REG[2] = p2;
27356 /* parser/parser_prod.nit:5063 */
27357 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27358 if (UNTAG_Bool(REGB0)) {
27359 } else {
27360 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5063);
27361 }
27362 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27363 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27364 if (UNTAG_Bool(REGB0)) {
27365 } else {
27366 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27367 REGB0 = REGB1;
27368 }
27369 if (UNTAG_Bool(REGB0)) {
27370 /* parser/parser_prod.nit:5064 */
27371 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27372 if (UNTAG_Bool(REGB0)) {
27373 } else {
27374 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27375 if (UNTAG_Bool(REGB1)) {
27376 REGB1 = TAG_Bool(false);
27377 REGB0 = REGB1;
27378 } else {
27379 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27380 REGB0 = REGB1;
27381 }
27382 }
27383 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27384 if (UNTAG_Bool(REGB0)) {
27385 /* parser/parser_prod.nit:5065 */
27386 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27387 if (UNTAG_Bool(REGB0)) {
27388 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5065);
27389 }
27390 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27391 /* parser/parser_prod.nit:5066 */
27392 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27393 if (UNTAG_Bool(REGB0)) {
27394 } else {
27395 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5066);
27396 }
27397 /* parser/parser_prod.nit:5067 */
27398 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27399 } else {
27400 /* parser/parser_prod.nit:5069 */
27401 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5069);
27402 }
27403 /* parser/parser_prod.nit:5071 */
27404 goto label1;
27405 }
27406 /* parser/parser_prod.nit:5073 */
27407 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27408 if (UNTAG_Bool(REGB0)) {
27409 } else {
27410 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5073);
27411 }
27412 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27413 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27414 if (UNTAG_Bool(REGB0)) {
27415 } else {
27416 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27417 REGB0 = REGB1;
27418 }
27419 if (UNTAG_Bool(REGB0)) {
27420 /* parser/parser_prod.nit:5074 */
27421 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27422 if (UNTAG_Bool(REGB0)) {
27423 } else {
27424 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27425 if (UNTAG_Bool(REGB1)) {
27426 REGB1 = TAG_Bool(false);
27427 REGB0 = REGB1;
27428 } else {
27429 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27430 REGB0 = REGB1;
27431 }
27432 }
27433 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27434 if (UNTAG_Bool(REGB0)) {
27435 /* parser/parser_prod.nit:5075 */
27436 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27437 if (UNTAG_Bool(REGB0)) {
27438 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5075);
27439 }
27440 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27441 /* parser/parser_prod.nit:5076 */
27442 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27443 if (UNTAG_Bool(REGB0)) {
27444 } else {
27445 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5076);
27446 }
27447 /* parser/parser_prod.nit:5077 */
27448 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
27449 } else {
27450 /* parser/parser_prod.nit:5079 */
27451 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5079);
27452 }
27453 /* parser/parser_prod.nit:5081 */
27454 goto label1;
27455 }
27456 label1: while(0);
27457 stack_frame_head = fra.me.prev;
27458 return;
27459 }
27460 void parser___parser_prod___APlusExpr___visit_all(val_t p0, val_t p1){
27461 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27462 val_t REGB0;
27463 val_t tmp;
27464 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27465 fra.me.file = LOCATE_parser___parser_prod;
27466 fra.me.line = 5085;
27467 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___visit_all;
27468 fra.me.has_broke = 0;
27469 fra.me.REG_size = 3;
27470 fra.me.nitni_local_ref_head = NULL;
27471 fra.me.REG[0] = NIT_NULL;
27472 fra.me.REG[1] = NIT_NULL;
27473 fra.me.REG[2] = NIT_NULL;
27474 fra.me.REG[0] = p0;
27475 fra.me.REG[1] = p1;
27476 /* parser/parser_prod.nit:5087 */
27477 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27478 if (UNTAG_Bool(REGB0)) {
27479 } else {
27480 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5087);
27481 }
27482 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27483 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27484 /* parser/parser_prod.nit:5088 */
27485 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27486 if (UNTAG_Bool(REGB0)) {
27487 } else {
27488 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5088);
27489 }
27490 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27491 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27492 stack_frame_head = fra.me.prev;
27493 return;
27494 }
27495 void parser___parser_prod___AMinusExpr___empty_init(val_t p0, int* init_table){
27496 int itpos169 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusExpr].i;
27497 struct {struct stack_frame_t me;} fra;
27498 val_t tmp;
27499 if (init_table[itpos169]) return;
27500 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27501 fra.me.file = LOCATE_parser___parser_prod;
27502 fra.me.line = 5092;
27503 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___empty_init;
27504 fra.me.has_broke = 0;
27505 fra.me.REG_size = 1;
27506 fra.me.nitni_local_ref_head = NULL;
27507 fra.me.REG[0] = NIT_NULL;
27508 fra.me.REG[0] = p0;
27509 stack_frame_head = fra.me.prev;
27510 init_table[itpos169] = 1;
27511 return;
27512 }
27513 void parser___parser_prod___AMinusExpr___init_aminusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27514 int itpos170 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusExpr].i;
27515 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27516 val_t REGB0;
27517 val_t tmp;
27518 if (init_table[itpos170]) return;
27519 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27520 fra.me.file = LOCATE_parser___parser_prod;
27521 fra.me.line = 5094;
27522 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___init_aminusexpr;
27523 fra.me.has_broke = 0;
27524 fra.me.REG_size = 4;
27525 fra.me.nitni_local_ref_head = NULL;
27526 fra.me.REG[0] = NIT_NULL;
27527 fra.me.REG[1] = NIT_NULL;
27528 fra.me.REG[2] = NIT_NULL;
27529 fra.me.REG[3] = NIT_NULL;
27530 fra.me.REG[0] = p0;
27531 fra.me.REG[1] = p1;
27532 fra.me.REG[2] = p2;
27533 /* parser/parser_prod.nit:5094 */
27534 fra.me.REG[3] = fra.me.REG[0];
27535 /* parser/parser_prod.nit:5099 */
27536 CALL_parser___parser_prod___AMinusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27537 /* parser/parser_prod.nit:5100 */
27538 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27539 if (UNTAG_Bool(REGB0)) {
27540 } else {
27541 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5100);
27542 }
27543 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27544 /* parser/parser_prod.nit:5101 */
27545 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27546 if (UNTAG_Bool(REGB0)) {
27547 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5101);
27548 }
27549 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27550 /* parser/parser_prod.nit:5102 */
27551 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27552 if (UNTAG_Bool(REGB0)) {
27553 } else {
27554 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5102);
27555 }
27556 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
27557 /* parser/parser_prod.nit:5103 */
27558 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27559 if (UNTAG_Bool(REGB0)) {
27560 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5103);
27561 }
27562 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27563 stack_frame_head = fra.me.prev;
27564 init_table[itpos170] = 1;
27565 return;
27566 }
27567 void parser___parser_prod___AMinusExpr___replace_child(val_t p0, val_t p1, val_t p2){
27568 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27569 val_t REGB0;
27570 val_t REGB1;
27571 val_t tmp;
27572 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27573 fra.me.file = LOCATE_parser___parser_prod;
27574 fra.me.line = 5106;
27575 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___replace_child;
27576 fra.me.has_broke = 0;
27577 fra.me.REG_size = 4;
27578 fra.me.nitni_local_ref_head = NULL;
27579 fra.me.REG[0] = NIT_NULL;
27580 fra.me.REG[1] = NIT_NULL;
27581 fra.me.REG[2] = NIT_NULL;
27582 fra.me.REG[3] = NIT_NULL;
27583 fra.me.REG[0] = p0;
27584 fra.me.REG[1] = p1;
27585 fra.me.REG[2] = p2;
27586 /* parser/parser_prod.nit:5108 */
27587 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27588 if (UNTAG_Bool(REGB0)) {
27589 } else {
27590 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5108);
27591 }
27592 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27593 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27594 if (UNTAG_Bool(REGB0)) {
27595 } else {
27596 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27597 REGB0 = REGB1;
27598 }
27599 if (UNTAG_Bool(REGB0)) {
27600 /* parser/parser_prod.nit:5109 */
27601 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27602 if (UNTAG_Bool(REGB0)) {
27603 } else {
27604 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27605 if (UNTAG_Bool(REGB1)) {
27606 REGB1 = TAG_Bool(false);
27607 REGB0 = REGB1;
27608 } else {
27609 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27610 REGB0 = REGB1;
27611 }
27612 }
27613 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27614 if (UNTAG_Bool(REGB0)) {
27615 /* parser/parser_prod.nit:5110 */
27616 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27617 if (UNTAG_Bool(REGB0)) {
27618 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5110);
27619 }
27620 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27621 /* parser/parser_prod.nit:5111 */
27622 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27623 if (UNTAG_Bool(REGB0)) {
27624 } else {
27625 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5111);
27626 }
27627 /* parser/parser_prod.nit:5112 */
27628 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27629 } else {
27630 /* parser/parser_prod.nit:5114 */
27631 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5114);
27632 }
27633 /* parser/parser_prod.nit:5116 */
27634 goto label1;
27635 }
27636 /* parser/parser_prod.nit:5118 */
27637 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27638 if (UNTAG_Bool(REGB0)) {
27639 } else {
27640 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5118);
27641 }
27642 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27643 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27644 if (UNTAG_Bool(REGB0)) {
27645 } else {
27646 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27647 REGB0 = REGB1;
27648 }
27649 if (UNTAG_Bool(REGB0)) {
27650 /* parser/parser_prod.nit:5119 */
27651 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27652 if (UNTAG_Bool(REGB0)) {
27653 } else {
27654 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27655 if (UNTAG_Bool(REGB1)) {
27656 REGB1 = TAG_Bool(false);
27657 REGB0 = REGB1;
27658 } else {
27659 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27660 REGB0 = REGB1;
27661 }
27662 }
27663 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27664 if (UNTAG_Bool(REGB0)) {
27665 /* parser/parser_prod.nit:5120 */
27666 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27667 if (UNTAG_Bool(REGB0)) {
27668 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5120);
27669 }
27670 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27671 /* parser/parser_prod.nit:5121 */
27672 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27673 if (UNTAG_Bool(REGB0)) {
27674 } else {
27675 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5121);
27676 }
27677 /* parser/parser_prod.nit:5122 */
27678 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
27679 } else {
27680 /* parser/parser_prod.nit:5124 */
27681 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5124);
27682 }
27683 /* parser/parser_prod.nit:5126 */
27684 goto label1;
27685 }
27686 label1: while(0);
27687 stack_frame_head = fra.me.prev;
27688 return;
27689 }
27690 void parser___parser_prod___AMinusExpr___visit_all(val_t p0, val_t p1){
27691 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27692 val_t REGB0;
27693 val_t tmp;
27694 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27695 fra.me.file = LOCATE_parser___parser_prod;
27696 fra.me.line = 5130;
27697 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___visit_all;
27698 fra.me.has_broke = 0;
27699 fra.me.REG_size = 3;
27700 fra.me.nitni_local_ref_head = NULL;
27701 fra.me.REG[0] = NIT_NULL;
27702 fra.me.REG[1] = NIT_NULL;
27703 fra.me.REG[2] = NIT_NULL;
27704 fra.me.REG[0] = p0;
27705 fra.me.REG[1] = p1;
27706 /* parser/parser_prod.nit:5132 */
27707 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27708 if (UNTAG_Bool(REGB0)) {
27709 } else {
27710 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5132);
27711 }
27712 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27713 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27714 /* parser/parser_prod.nit:5133 */
27715 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27716 if (UNTAG_Bool(REGB0)) {
27717 } else {
27718 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5133);
27719 }
27720 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27721 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27722 stack_frame_head = fra.me.prev;
27723 return;
27724 }
27725 void parser___parser_prod___AStarshipExpr___empty_init(val_t p0, int* init_table){
27726 int itpos171 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipExpr].i;
27727 struct {struct stack_frame_t me;} fra;
27728 val_t tmp;
27729 if (init_table[itpos171]) return;
27730 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27731 fra.me.file = LOCATE_parser___parser_prod;
27732 fra.me.line = 5137;
27733 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___empty_init;
27734 fra.me.has_broke = 0;
27735 fra.me.REG_size = 1;
27736 fra.me.nitni_local_ref_head = NULL;
27737 fra.me.REG[0] = NIT_NULL;
27738 fra.me.REG[0] = p0;
27739 stack_frame_head = fra.me.prev;
27740 init_table[itpos171] = 1;
27741 return;
27742 }
27743 void parser___parser_prod___AStarshipExpr___init_astarshipexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27744 int itpos172 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipExpr].i;
27745 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27746 val_t REGB0;
27747 val_t tmp;
27748 if (init_table[itpos172]) return;
27749 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27750 fra.me.file = LOCATE_parser___parser_prod;
27751 fra.me.line = 5139;
27752 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___init_astarshipexpr;
27753 fra.me.has_broke = 0;
27754 fra.me.REG_size = 4;
27755 fra.me.nitni_local_ref_head = NULL;
27756 fra.me.REG[0] = NIT_NULL;
27757 fra.me.REG[1] = NIT_NULL;
27758 fra.me.REG[2] = NIT_NULL;
27759 fra.me.REG[3] = NIT_NULL;
27760 fra.me.REG[0] = p0;
27761 fra.me.REG[1] = p1;
27762 fra.me.REG[2] = p2;
27763 /* parser/parser_prod.nit:5139 */
27764 fra.me.REG[3] = fra.me.REG[0];
27765 /* parser/parser_prod.nit:5144 */
27766 CALL_parser___parser_prod___AStarshipExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27767 /* parser/parser_prod.nit:5145 */
27768 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27769 if (UNTAG_Bool(REGB0)) {
27770 } else {
27771 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5145);
27772 }
27773 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27774 /* parser/parser_prod.nit:5146 */
27775 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27776 if (UNTAG_Bool(REGB0)) {
27777 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5146);
27778 }
27779 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27780 /* parser/parser_prod.nit:5147 */
27781 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27782 if (UNTAG_Bool(REGB0)) {
27783 } else {
27784 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5147);
27785 }
27786 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
27787 /* parser/parser_prod.nit:5148 */
27788 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27789 if (UNTAG_Bool(REGB0)) {
27790 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5148);
27791 }
27792 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27793 stack_frame_head = fra.me.prev;
27794 init_table[itpos172] = 1;
27795 return;
27796 }
27797 void parser___parser_prod___AStarshipExpr___replace_child(val_t p0, val_t p1, val_t p2){
27798 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27799 val_t REGB0;
27800 val_t REGB1;
27801 val_t tmp;
27802 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27803 fra.me.file = LOCATE_parser___parser_prod;
27804 fra.me.line = 5151;
27805 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___replace_child;
27806 fra.me.has_broke = 0;
27807 fra.me.REG_size = 4;
27808 fra.me.nitni_local_ref_head = NULL;
27809 fra.me.REG[0] = NIT_NULL;
27810 fra.me.REG[1] = NIT_NULL;
27811 fra.me.REG[2] = NIT_NULL;
27812 fra.me.REG[3] = NIT_NULL;
27813 fra.me.REG[0] = p0;
27814 fra.me.REG[1] = p1;
27815 fra.me.REG[2] = p2;
27816 /* parser/parser_prod.nit:5153 */
27817 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27818 if (UNTAG_Bool(REGB0)) {
27819 } else {
27820 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5153);
27821 }
27822 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27823 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27824 if (UNTAG_Bool(REGB0)) {
27825 } else {
27826 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27827 REGB0 = REGB1;
27828 }
27829 if (UNTAG_Bool(REGB0)) {
27830 /* parser/parser_prod.nit:5154 */
27831 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27832 if (UNTAG_Bool(REGB0)) {
27833 } else {
27834 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27835 if (UNTAG_Bool(REGB1)) {
27836 REGB1 = TAG_Bool(false);
27837 REGB0 = REGB1;
27838 } else {
27839 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27840 REGB0 = REGB1;
27841 }
27842 }
27843 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27844 if (UNTAG_Bool(REGB0)) {
27845 /* parser/parser_prod.nit:5155 */
27846 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27847 if (UNTAG_Bool(REGB0)) {
27848 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5155);
27849 }
27850 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27851 /* parser/parser_prod.nit:5156 */
27852 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27853 if (UNTAG_Bool(REGB0)) {
27854 } else {
27855 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5156);
27856 }
27857 /* parser/parser_prod.nit:5157 */
27858 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27859 } else {
27860 /* parser/parser_prod.nit:5159 */
27861 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5159);
27862 }
27863 /* parser/parser_prod.nit:5161 */
27864 goto label1;
27865 }
27866 /* parser/parser_prod.nit:5163 */
27867 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27868 if (UNTAG_Bool(REGB0)) {
27869 } else {
27870 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5163);
27871 }
27872 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27873 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27874 if (UNTAG_Bool(REGB0)) {
27875 } else {
27876 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27877 REGB0 = REGB1;
27878 }
27879 if (UNTAG_Bool(REGB0)) {
27880 /* parser/parser_prod.nit:5164 */
27881 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27882 if (UNTAG_Bool(REGB0)) {
27883 } else {
27884 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27885 if (UNTAG_Bool(REGB1)) {
27886 REGB1 = TAG_Bool(false);
27887 REGB0 = REGB1;
27888 } else {
27889 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27890 REGB0 = REGB1;
27891 }
27892 }
27893 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27894 if (UNTAG_Bool(REGB0)) {
27895 /* parser/parser_prod.nit:5165 */
27896 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27897 if (UNTAG_Bool(REGB0)) {
27898 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5165);
27899 }
27900 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27901 /* parser/parser_prod.nit:5166 */
27902 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27903 if (UNTAG_Bool(REGB0)) {
27904 } else {
27905 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5166);
27906 }
27907 /* parser/parser_prod.nit:5167 */
27908 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
27909 } else {
27910 /* parser/parser_prod.nit:5169 */
27911 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5169);
27912 }
27913 /* parser/parser_prod.nit:5171 */
27914 goto label1;
27915 }
27916 label1: while(0);
27917 stack_frame_head = fra.me.prev;
27918 return;
27919 }
27920 void parser___parser_prod___AStarshipExpr___visit_all(val_t p0, val_t p1){
27921 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27922 val_t REGB0;
27923 val_t tmp;
27924 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27925 fra.me.file = LOCATE_parser___parser_prod;
27926 fra.me.line = 5175;
27927 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___visit_all;
27928 fra.me.has_broke = 0;
27929 fra.me.REG_size = 3;
27930 fra.me.nitni_local_ref_head = NULL;
27931 fra.me.REG[0] = NIT_NULL;
27932 fra.me.REG[1] = NIT_NULL;
27933 fra.me.REG[2] = NIT_NULL;
27934 fra.me.REG[0] = p0;
27935 fra.me.REG[1] = p1;
27936 /* parser/parser_prod.nit:5177 */
27937 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27938 if (UNTAG_Bool(REGB0)) {
27939 } else {
27940 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5177);
27941 }
27942 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27943 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27944 /* parser/parser_prod.nit:5178 */
27945 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27946 if (UNTAG_Bool(REGB0)) {
27947 } else {
27948 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5178);
27949 }
27950 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27951 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27952 stack_frame_head = fra.me.prev;
27953 return;
27954 }
27955 void parser___parser_prod___AStarExpr___empty_init(val_t p0, int* init_table){
27956 int itpos173 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarExpr].i;
27957 struct {struct stack_frame_t me;} fra;
27958 val_t tmp;
27959 if (init_table[itpos173]) return;
27960 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27961 fra.me.file = LOCATE_parser___parser_prod;
27962 fra.me.line = 5182;
27963 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___empty_init;
27964 fra.me.has_broke = 0;
27965 fra.me.REG_size = 1;
27966 fra.me.nitni_local_ref_head = NULL;
27967 fra.me.REG[0] = NIT_NULL;
27968 fra.me.REG[0] = p0;
27969 stack_frame_head = fra.me.prev;
27970 init_table[itpos173] = 1;
27971 return;
27972 }
27973 void parser___parser_prod___AStarExpr___init_astarexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27974 int itpos174 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarExpr].i;
27975 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27976 val_t REGB0;
27977 val_t tmp;
27978 if (init_table[itpos174]) return;
27979 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27980 fra.me.file = LOCATE_parser___parser_prod;
27981 fra.me.line = 5184;
27982 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___init_astarexpr;
27983 fra.me.has_broke = 0;
27984 fra.me.REG_size = 4;
27985 fra.me.nitni_local_ref_head = NULL;
27986 fra.me.REG[0] = NIT_NULL;
27987 fra.me.REG[1] = NIT_NULL;
27988 fra.me.REG[2] = NIT_NULL;
27989 fra.me.REG[3] = NIT_NULL;
27990 fra.me.REG[0] = p0;
27991 fra.me.REG[1] = p1;
27992 fra.me.REG[2] = p2;
27993 /* parser/parser_prod.nit:5184 */
27994 fra.me.REG[3] = fra.me.REG[0];
27995 /* parser/parser_prod.nit:5189 */
27996 CALL_parser___parser_prod___AStarExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27997 /* parser/parser_prod.nit:5190 */
27998 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27999 if (UNTAG_Bool(REGB0)) {
28000 } else {
28001 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5190);
28002 }
28003 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
28004 /* parser/parser_prod.nit:5191 */
28005 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28006 if (UNTAG_Bool(REGB0)) {
28007 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5191);
28008 }
28009 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28010 /* parser/parser_prod.nit:5192 */
28011 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28012 if (UNTAG_Bool(REGB0)) {
28013 } else {
28014 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5192);
28015 }
28016 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
28017 /* parser/parser_prod.nit:5193 */
28018 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28019 if (UNTAG_Bool(REGB0)) {
28020 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5193);
28021 }
28022 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
28023 stack_frame_head = fra.me.prev;
28024 init_table[itpos174] = 1;
28025 return;
28026 }
28027 void parser___parser_prod___AStarExpr___replace_child(val_t p0, val_t p1, val_t p2){
28028 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28029 val_t REGB0;
28030 val_t REGB1;
28031 val_t tmp;
28032 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28033 fra.me.file = LOCATE_parser___parser_prod;
28034 fra.me.line = 5196;
28035 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___replace_child;
28036 fra.me.has_broke = 0;
28037 fra.me.REG_size = 4;
28038 fra.me.nitni_local_ref_head = NULL;
28039 fra.me.REG[0] = NIT_NULL;
28040 fra.me.REG[1] = NIT_NULL;
28041 fra.me.REG[2] = NIT_NULL;
28042 fra.me.REG[3] = NIT_NULL;
28043 fra.me.REG[0] = p0;
28044 fra.me.REG[1] = p1;
28045 fra.me.REG[2] = p2;
28046 /* parser/parser_prod.nit:5198 */
28047 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28048 if (UNTAG_Bool(REGB0)) {
28049 } else {
28050 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5198);
28051 }
28052 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28053 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28054 if (UNTAG_Bool(REGB0)) {
28055 } else {
28056 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28057 REGB0 = REGB1;
28058 }
28059 if (UNTAG_Bool(REGB0)) {
28060 /* parser/parser_prod.nit:5199 */
28061 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28062 if (UNTAG_Bool(REGB0)) {
28063 } else {
28064 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28065 if (UNTAG_Bool(REGB1)) {
28066 REGB1 = TAG_Bool(false);
28067 REGB0 = REGB1;
28068 } else {
28069 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28070 REGB0 = REGB1;
28071 }
28072 }
28073 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28074 if (UNTAG_Bool(REGB0)) {
28075 /* parser/parser_prod.nit:5200 */
28076 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28077 if (UNTAG_Bool(REGB0)) {
28078 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5200);
28079 }
28080 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28081 /* parser/parser_prod.nit:5201 */
28082 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28083 if (UNTAG_Bool(REGB0)) {
28084 } else {
28085 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5201);
28086 }
28087 /* parser/parser_prod.nit:5202 */
28088 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28089 } else {
28090 /* parser/parser_prod.nit:5204 */
28091 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5204);
28092 }
28093 /* parser/parser_prod.nit:5206 */
28094 goto label1;
28095 }
28096 /* parser/parser_prod.nit:5208 */
28097 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28098 if (UNTAG_Bool(REGB0)) {
28099 } else {
28100 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5208);
28101 }
28102 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28103 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28104 if (UNTAG_Bool(REGB0)) {
28105 } else {
28106 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28107 REGB0 = REGB1;
28108 }
28109 if (UNTAG_Bool(REGB0)) {
28110 /* parser/parser_prod.nit:5209 */
28111 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28112 if (UNTAG_Bool(REGB0)) {
28113 } else {
28114 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28115 if (UNTAG_Bool(REGB1)) {
28116 REGB1 = TAG_Bool(false);
28117 REGB0 = REGB1;
28118 } else {
28119 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28120 REGB0 = REGB1;
28121 }
28122 }
28123 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28124 if (UNTAG_Bool(REGB0)) {
28125 /* parser/parser_prod.nit:5210 */
28126 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28127 if (UNTAG_Bool(REGB0)) {
28128 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5210);
28129 }
28130 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28131 /* parser/parser_prod.nit:5211 */
28132 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28133 if (UNTAG_Bool(REGB0)) {
28134 } else {
28135 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5211);
28136 }
28137 /* parser/parser_prod.nit:5212 */
28138 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
28139 } else {
28140 /* parser/parser_prod.nit:5214 */
28141 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5214);
28142 }
28143 /* parser/parser_prod.nit:5216 */
28144 goto label1;
28145 }
28146 label1: while(0);
28147 stack_frame_head = fra.me.prev;
28148 return;
28149 }
28150 void parser___parser_prod___AStarExpr___visit_all(val_t p0, val_t p1){
28151 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28152 val_t REGB0;
28153 val_t tmp;
28154 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28155 fra.me.file = LOCATE_parser___parser_prod;
28156 fra.me.line = 5220;
28157 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___visit_all;
28158 fra.me.has_broke = 0;
28159 fra.me.REG_size = 3;
28160 fra.me.nitni_local_ref_head = NULL;
28161 fra.me.REG[0] = NIT_NULL;
28162 fra.me.REG[1] = NIT_NULL;
28163 fra.me.REG[2] = NIT_NULL;
28164 fra.me.REG[0] = p0;
28165 fra.me.REG[1] = p1;
28166 /* parser/parser_prod.nit:5222 */
28167 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28168 if (UNTAG_Bool(REGB0)) {
28169 } else {
28170 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5222);
28171 }
28172 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28173 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28174 /* parser/parser_prod.nit:5223 */
28175 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28176 if (UNTAG_Bool(REGB0)) {
28177 } else {
28178 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5223);
28179 }
28180 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28181 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28182 stack_frame_head = fra.me.prev;
28183 return;
28184 }
28185 void parser___parser_prod___ASlashExpr___empty_init(val_t p0, int* init_table){
28186 int itpos175 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashExpr].i;
28187 struct {struct stack_frame_t me;} fra;
28188 val_t tmp;
28189 if (init_table[itpos175]) return;
28190 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28191 fra.me.file = LOCATE_parser___parser_prod;
28192 fra.me.line = 5227;
28193 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___empty_init;
28194 fra.me.has_broke = 0;
28195 fra.me.REG_size = 1;
28196 fra.me.nitni_local_ref_head = NULL;
28197 fra.me.REG[0] = NIT_NULL;
28198 fra.me.REG[0] = p0;
28199 stack_frame_head = fra.me.prev;
28200 init_table[itpos175] = 1;
28201 return;
28202 }
28203 void parser___parser_prod___ASlashExpr___init_aslashexpr(val_t p0, val_t p1, val_t p2, int* init_table){
28204 int itpos176 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashExpr].i;
28205 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28206 val_t REGB0;
28207 val_t tmp;
28208 if (init_table[itpos176]) return;
28209 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28210 fra.me.file = LOCATE_parser___parser_prod;
28211 fra.me.line = 5229;
28212 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___init_aslashexpr;
28213 fra.me.has_broke = 0;
28214 fra.me.REG_size = 4;
28215 fra.me.nitni_local_ref_head = NULL;
28216 fra.me.REG[0] = NIT_NULL;
28217 fra.me.REG[1] = NIT_NULL;
28218 fra.me.REG[2] = NIT_NULL;
28219 fra.me.REG[3] = NIT_NULL;
28220 fra.me.REG[0] = p0;
28221 fra.me.REG[1] = p1;
28222 fra.me.REG[2] = p2;
28223 /* parser/parser_prod.nit:5229 */
28224 fra.me.REG[3] = fra.me.REG[0];
28225 /* parser/parser_prod.nit:5234 */
28226 CALL_parser___parser_prod___ASlashExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
28227 /* parser/parser_prod.nit:5235 */
28228 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28229 if (UNTAG_Bool(REGB0)) {
28230 } else {
28231 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5235);
28232 }
28233 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
28234 /* parser/parser_prod.nit:5236 */
28235 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28236 if (UNTAG_Bool(REGB0)) {
28237 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5236);
28238 }
28239 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28240 /* parser/parser_prod.nit:5237 */
28241 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28242 if (UNTAG_Bool(REGB0)) {
28243 } else {
28244 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5237);
28245 }
28246 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
28247 /* parser/parser_prod.nit:5238 */
28248 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28249 if (UNTAG_Bool(REGB0)) {
28250 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5238);
28251 }
28252 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
28253 stack_frame_head = fra.me.prev;
28254 init_table[itpos176] = 1;
28255 return;
28256 }
28257 void parser___parser_prod___ASlashExpr___replace_child(val_t p0, val_t p1, val_t p2){
28258 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28259 val_t REGB0;
28260 val_t REGB1;
28261 val_t tmp;
28262 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28263 fra.me.file = LOCATE_parser___parser_prod;
28264 fra.me.line = 5241;
28265 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___replace_child;
28266 fra.me.has_broke = 0;
28267 fra.me.REG_size = 4;
28268 fra.me.nitni_local_ref_head = NULL;
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:5243 */
28277 REGB0 = TAG_Bool(ATTR_parser___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___parser_prod, 5243);
28281 }
28282 fra.me.REG[3] = ATTR_parser___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_standard___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:5244 */
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_standard___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:5245 */
28306 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28307 if (UNTAG_Bool(REGB0)) {
28308 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5245);
28309 }
28310 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28311 /* parser/parser_prod.nit:5246 */
28312 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28313 if (UNTAG_Bool(REGB0)) {
28314 } else {
28315 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5246);
28316 }
28317 /* parser/parser_prod.nit:5247 */
28318 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28319 } else {
28320 /* parser/parser_prod.nit:5249 */
28321 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5249);
28322 }
28323 /* parser/parser_prod.nit:5251 */
28324 goto label1;
28325 }
28326 /* parser/parser_prod.nit:5253 */
28327 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28328 if (UNTAG_Bool(REGB0)) {
28329 } else {
28330 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5253);
28331 }
28332 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(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_standard___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:5254 */
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_standard___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:5255 */
28356 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28357 if (UNTAG_Bool(REGB0)) {
28358 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5255);
28359 }
28360 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28361 /* parser/parser_prod.nit:5256 */
28362 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28363 if (UNTAG_Bool(REGB0)) {
28364 } else {
28365 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5256);
28366 }
28367 /* parser/parser_prod.nit:5257 */
28368 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
28369 } else {
28370 /* parser/parser_prod.nit:5259 */
28371 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5259);
28372 }
28373 /* parser/parser_prod.nit:5261 */
28374 goto label1;
28375 }
28376 label1: while(0);
28377 stack_frame_head = fra.me.prev;
28378 return;
28379 }
28380 void parser___parser_prod___ASlashExpr___visit_all(val_t p0, val_t p1){
28381 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28382 val_t REGB0;
28383 val_t tmp;
28384 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28385 fra.me.file = LOCATE_parser___parser_prod;
28386 fra.me.line = 5265;
28387 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___visit_all;
28388 fra.me.has_broke = 0;
28389 fra.me.REG_size = 3;
28390 fra.me.nitni_local_ref_head = NULL;
28391 fra.me.REG[0] = NIT_NULL;
28392 fra.me.REG[1] = NIT_NULL;
28393 fra.me.REG[2] = NIT_NULL;
28394 fra.me.REG[0] = p0;
28395 fra.me.REG[1] = p1;
28396 /* parser/parser_prod.nit:5267 */
28397 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28398 if (UNTAG_Bool(REGB0)) {
28399 } else {
28400 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5267);
28401 }
28402 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28403 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28404 /* parser/parser_prod.nit:5268 */
28405 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28406 if (UNTAG_Bool(REGB0)) {
28407 } else {
28408 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5268);
28409 }
28410 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28411 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28412 stack_frame_head = fra.me.prev;
28413 return;
28414 }
28415 void parser___parser_prod___APercentExpr___empty_init(val_t p0, int* init_table){
28416 int itpos177 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentExpr].i;
28417 struct {struct stack_frame_t me;} fra;
28418 val_t tmp;
28419 if (init_table[itpos177]) return;
28420 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28421 fra.me.file = LOCATE_parser___parser_prod;
28422 fra.me.line = 5272;
28423 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___empty_init;
28424 fra.me.has_broke = 0;
28425 fra.me.REG_size = 1;
28426 fra.me.nitni_local_ref_head = NULL;
28427 fra.me.REG[0] = NIT_NULL;
28428 fra.me.REG[0] = p0;
28429 stack_frame_head = fra.me.prev;
28430 init_table[itpos177] = 1;
28431 return;
28432 }
28433 void parser___parser_prod___APercentExpr___init_apercentexpr(val_t p0, val_t p1, val_t p2, int* init_table){
28434 int itpos178 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentExpr].i;
28435 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28436 val_t REGB0;
28437 val_t tmp;
28438 if (init_table[itpos178]) return;
28439 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28440 fra.me.file = LOCATE_parser___parser_prod;
28441 fra.me.line = 5274;
28442 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___init_apercentexpr;
28443 fra.me.has_broke = 0;
28444 fra.me.REG_size = 4;
28445 fra.me.nitni_local_ref_head = NULL;
28446 fra.me.REG[0] = NIT_NULL;
28447 fra.me.REG[1] = NIT_NULL;
28448 fra.me.REG[2] = NIT_NULL;
28449 fra.me.REG[3] = NIT_NULL;
28450 fra.me.REG[0] = p0;
28451 fra.me.REG[1] = p1;
28452 fra.me.REG[2] = p2;
28453 /* parser/parser_prod.nit:5274 */
28454 fra.me.REG[3] = fra.me.REG[0];
28455 /* parser/parser_prod.nit:5279 */
28456 CALL_parser___parser_prod___APercentExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
28457 /* parser/parser_prod.nit:5280 */
28458 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28459 if (UNTAG_Bool(REGB0)) {
28460 } else {
28461 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5280);
28462 }
28463 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
28464 /* parser/parser_prod.nit:5281 */
28465 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28466 if (UNTAG_Bool(REGB0)) {
28467 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5281);
28468 }
28469 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28470 /* parser/parser_prod.nit:5282 */
28471 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28472 if (UNTAG_Bool(REGB0)) {
28473 } else {
28474 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5282);
28475 }
28476 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
28477 /* parser/parser_prod.nit:5283 */
28478 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28479 if (UNTAG_Bool(REGB0)) {
28480 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5283);
28481 }
28482 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
28483 stack_frame_head = fra.me.prev;
28484 init_table[itpos178] = 1;
28485 return;
28486 }
28487 void parser___parser_prod___APercentExpr___replace_child(val_t p0, val_t p1, val_t p2){
28488 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28489 val_t REGB0;
28490 val_t REGB1;
28491 val_t tmp;
28492 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28493 fra.me.file = LOCATE_parser___parser_prod;
28494 fra.me.line = 5286;
28495 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___replace_child;
28496 fra.me.has_broke = 0;
28497 fra.me.REG_size = 4;
28498 fra.me.nitni_local_ref_head = NULL;
28499 fra.me.REG[0] = NIT_NULL;
28500 fra.me.REG[1] = NIT_NULL;
28501 fra.me.REG[2] = NIT_NULL;
28502 fra.me.REG[3] = NIT_NULL;
28503 fra.me.REG[0] = p0;
28504 fra.me.REG[1] = p1;
28505 fra.me.REG[2] = p2;
28506 /* parser/parser_prod.nit:5288 */
28507 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28508 if (UNTAG_Bool(REGB0)) {
28509 } else {
28510 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5288);
28511 }
28512 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28513 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28514 if (UNTAG_Bool(REGB0)) {
28515 } else {
28516 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28517 REGB0 = REGB1;
28518 }
28519 if (UNTAG_Bool(REGB0)) {
28520 /* parser/parser_prod.nit:5289 */
28521 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28522 if (UNTAG_Bool(REGB0)) {
28523 } else {
28524 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28525 if (UNTAG_Bool(REGB1)) {
28526 REGB1 = TAG_Bool(false);
28527 REGB0 = REGB1;
28528 } else {
28529 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28530 REGB0 = REGB1;
28531 }
28532 }
28533 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28534 if (UNTAG_Bool(REGB0)) {
28535 /* parser/parser_prod.nit:5290 */
28536 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28537 if (UNTAG_Bool(REGB0)) {
28538 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5290);
28539 }
28540 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28541 /* parser/parser_prod.nit:5291 */
28542 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28543 if (UNTAG_Bool(REGB0)) {
28544 } else {
28545 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5291);
28546 }
28547 /* parser/parser_prod.nit:5292 */
28548 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28549 } else {
28550 /* parser/parser_prod.nit:5294 */
28551 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5294);
28552 }
28553 /* parser/parser_prod.nit:5296 */
28554 goto label1;
28555 }
28556 /* parser/parser_prod.nit:5298 */
28557 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28558 if (UNTAG_Bool(REGB0)) {
28559 } else {
28560 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5298);
28561 }
28562 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28563 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28564 if (UNTAG_Bool(REGB0)) {
28565 } else {
28566 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28567 REGB0 = REGB1;
28568 }
28569 if (UNTAG_Bool(REGB0)) {
28570 /* parser/parser_prod.nit:5299 */
28571 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28572 if (UNTAG_Bool(REGB0)) {
28573 } else {
28574 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28575 if (UNTAG_Bool(REGB1)) {
28576 REGB1 = TAG_Bool(false);
28577 REGB0 = REGB1;
28578 } else {
28579 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28580 REGB0 = REGB1;
28581 }
28582 }
28583 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28584 if (UNTAG_Bool(REGB0)) {
28585 /* parser/parser_prod.nit:5300 */
28586 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28587 if (UNTAG_Bool(REGB0)) {
28588 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5300);
28589 }
28590 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28591 /* parser/parser_prod.nit:5301 */
28592 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28593 if (UNTAG_Bool(REGB0)) {
28594 } else {
28595 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5301);
28596 }
28597 /* parser/parser_prod.nit:5302 */
28598 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
28599 } else {
28600 /* parser/parser_prod.nit:5304 */
28601 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5304);
28602 }
28603 /* parser/parser_prod.nit:5306 */
28604 goto label1;
28605 }
28606 label1: while(0);
28607 stack_frame_head = fra.me.prev;
28608 return;
28609 }
28610 void parser___parser_prod___APercentExpr___visit_all(val_t p0, val_t p1){
28611 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28612 val_t REGB0;
28613 val_t tmp;
28614 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28615 fra.me.file = LOCATE_parser___parser_prod;
28616 fra.me.line = 5310;
28617 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___visit_all;
28618 fra.me.has_broke = 0;
28619 fra.me.REG_size = 3;
28620 fra.me.nitni_local_ref_head = NULL;
28621 fra.me.REG[0] = NIT_NULL;
28622 fra.me.REG[1] = NIT_NULL;
28623 fra.me.REG[2] = NIT_NULL;
28624 fra.me.REG[0] = p0;
28625 fra.me.REG[1] = p1;
28626 /* parser/parser_prod.nit:5312 */
28627 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28628 if (UNTAG_Bool(REGB0)) {
28629 } else {
28630 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5312);
28631 }
28632 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28633 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28634 /* parser/parser_prod.nit:5313 */
28635 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28636 if (UNTAG_Bool(REGB0)) {
28637 } else {
28638 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5313);
28639 }
28640 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28641 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28642 stack_frame_head = fra.me.prev;
28643 return;
28644 }
28645 void parser___parser_prod___AUminusExpr___empty_init(val_t p0, int* init_table){
28646 int itpos179 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AUminusExpr].i;
28647 struct {struct stack_frame_t me;} fra;
28648 val_t tmp;
28649 if (init_table[itpos179]) return;
28650 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28651 fra.me.file = LOCATE_parser___parser_prod;
28652 fra.me.line = 5317;
28653 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___empty_init;
28654 fra.me.has_broke = 0;
28655 fra.me.REG_size = 1;
28656 fra.me.nitni_local_ref_head = NULL;
28657 fra.me.REG[0] = NIT_NULL;
28658 fra.me.REG[0] = p0;
28659 stack_frame_head = fra.me.prev;
28660 init_table[itpos179] = 1;
28661 return;
28662 }
28663 void parser___parser_prod___AUminusExpr___init_auminusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
28664 int itpos180 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AUminusExpr].i;
28665 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28666 val_t REGB0;
28667 val_t tmp;
28668 if (init_table[itpos180]) return;
28669 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28670 fra.me.file = LOCATE_parser___parser_prod;
28671 fra.me.line = 5319;
28672 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___init_auminusexpr;
28673 fra.me.has_broke = 0;
28674 fra.me.REG_size = 4;
28675 fra.me.nitni_local_ref_head = NULL;
28676 fra.me.REG[0] = NIT_NULL;
28677 fra.me.REG[1] = NIT_NULL;
28678 fra.me.REG[2] = NIT_NULL;
28679 fra.me.REG[3] = NIT_NULL;
28680 fra.me.REG[0] = p0;
28681 fra.me.REG[1] = p1;
28682 fra.me.REG[2] = p2;
28683 /* parser/parser_prod.nit:5319 */
28684 fra.me.REG[3] = fra.me.REG[0];
28685 /* parser/parser_prod.nit:5324 */
28686 CALL_parser___parser_prod___AUminusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
28687 /* parser/parser_prod.nit:5325 */
28688 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28689 if (UNTAG_Bool(REGB0)) {
28690 } else {
28691 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5325);
28692 }
28693 ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[3]) = fra.me.REG[1];
28694 /* parser/parser_prod.nit:5326 */
28695 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28696 if (UNTAG_Bool(REGB0)) {
28697 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5326);
28698 }
28699 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28700 /* parser/parser_prod.nit:5327 */
28701 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28702 if (UNTAG_Bool(REGB0)) {
28703 } else {
28704 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5327);
28705 }
28706 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
28707 /* parser/parser_prod.nit:5328 */
28708 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28709 if (UNTAG_Bool(REGB0)) {
28710 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5328);
28711 }
28712 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
28713 stack_frame_head = fra.me.prev;
28714 init_table[itpos180] = 1;
28715 return;
28716 }
28717 void parser___parser_prod___AUminusExpr___replace_child(val_t p0, val_t p1, val_t p2){
28718 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28719 val_t REGB0;
28720 val_t REGB1;
28721 val_t tmp;
28722 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28723 fra.me.file = LOCATE_parser___parser_prod;
28724 fra.me.line = 5331;
28725 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___replace_child;
28726 fra.me.has_broke = 0;
28727 fra.me.REG_size = 4;
28728 fra.me.nitni_local_ref_head = NULL;
28729 fra.me.REG[0] = NIT_NULL;
28730 fra.me.REG[1] = NIT_NULL;
28731 fra.me.REG[2] = NIT_NULL;
28732 fra.me.REG[3] = NIT_NULL;
28733 fra.me.REG[0] = p0;
28734 fra.me.REG[1] = p1;
28735 fra.me.REG[2] = p2;
28736 /* parser/parser_prod.nit:5333 */
28737 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0])!=NIT_NULL);
28738 if (UNTAG_Bool(REGB0)) {
28739 } else {
28740 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 5333);
28741 }
28742 fra.me.REG[3] = ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]);
28743 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28744 if (UNTAG_Bool(REGB0)) {
28745 } else {
28746 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28747 REGB0 = REGB1;
28748 }
28749 if (UNTAG_Bool(REGB0)) {
28750 /* parser/parser_prod.nit:5334 */
28751 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28752 if (UNTAG_Bool(REGB0)) {
28753 } else {
28754 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28755 if (UNTAG_Bool(REGB1)) {
28756 REGB1 = TAG_Bool(false);
28757 REGB0 = REGB1;
28758 } else {
28759 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28760 REGB0 = REGB1;
28761 }
28762 }
28763 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28764 if (UNTAG_Bool(REGB0)) {
28765 /* parser/parser_prod.nit:5335 */
28766 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28767 if (UNTAG_Bool(REGB0)) {
28768 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5335);
28769 }
28770 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28771 /* parser/parser_prod.nit:5336 */
28772 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TMinus, ID_parser___parser_nodes___TMinus)) /*cast TMinus*/;
28773 if (UNTAG_Bool(REGB0)) {
28774 } else {
28775 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5336);
28776 }
28777 /* parser/parser_prod.nit:5337 */
28778 ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]) = fra.me.REG[2];
28779 } else {
28780 /* parser/parser_prod.nit:5339 */
28781 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5339);
28782 }
28783 /* parser/parser_prod.nit:5341 */
28784 goto label1;
28785 }
28786 /* parser/parser_prod.nit:5343 */
28787 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28788 if (UNTAG_Bool(REGB0)) {
28789 } else {
28790 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5343);
28791 }
28792 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28793 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28794 if (UNTAG_Bool(REGB0)) {
28795 } else {
28796 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28797 REGB0 = REGB1;
28798 }
28799 if (UNTAG_Bool(REGB0)) {
28800 /* parser/parser_prod.nit:5344 */
28801 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28802 if (UNTAG_Bool(REGB0)) {
28803 } else {
28804 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28805 if (UNTAG_Bool(REGB1)) {
28806 REGB1 = TAG_Bool(false);
28807 REGB0 = REGB1;
28808 } else {
28809 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28810 REGB0 = REGB1;
28811 }
28812 }
28813 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28814 if (UNTAG_Bool(REGB0)) {
28815 /* parser/parser_prod.nit:5345 */
28816 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28817 if (UNTAG_Bool(REGB0)) {
28818 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5345);
28819 }
28820 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28821 /* parser/parser_prod.nit:5346 */
28822 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28823 if (UNTAG_Bool(REGB0)) {
28824 } else {
28825 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5346);
28826 }
28827 /* parser/parser_prod.nit:5347 */
28828 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28829 } else {
28830 /* parser/parser_prod.nit:5349 */
28831 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5349);
28832 }
28833 /* parser/parser_prod.nit:5351 */
28834 goto label1;
28835 }
28836 label1: while(0);
28837 stack_frame_head = fra.me.prev;
28838 return;
28839 }
28840 void parser___parser_prod___AUminusExpr___visit_all(val_t p0, val_t p1){
28841 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28842 val_t REGB0;
28843 val_t tmp;
28844 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28845 fra.me.file = LOCATE_parser___parser_prod;
28846 fra.me.line = 5355;
28847 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___visit_all;
28848 fra.me.has_broke = 0;
28849 fra.me.REG_size = 3;
28850 fra.me.nitni_local_ref_head = NULL;
28851 fra.me.REG[0] = NIT_NULL;
28852 fra.me.REG[1] = NIT_NULL;
28853 fra.me.REG[2] = NIT_NULL;
28854 fra.me.REG[0] = p0;
28855 fra.me.REG[1] = p1;
28856 /* parser/parser_prod.nit:5357 */
28857 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0])!=NIT_NULL);
28858 if (UNTAG_Bool(REGB0)) {
28859 } else {
28860 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 5357);
28861 }
28862 fra.me.REG[2] = ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]);
28863 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28864 /* parser/parser_prod.nit:5358 */
28865 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28866 if (UNTAG_Bool(REGB0)) {
28867 } else {
28868 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5358);
28869 }
28870 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28871 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28872 stack_frame_head = fra.me.prev;
28873 return;
28874 }
28875 void parser___parser_prod___ANewExpr___empty_init(val_t p0, int* init_table){
28876 int itpos181 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANewExpr].i;
28877 struct {struct stack_frame_t me;} fra;
28878 val_t tmp;
28879 if (init_table[itpos181]) return;
28880 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28881 fra.me.file = LOCATE_parser___parser_prod;
28882 fra.me.line = 5362;
28883 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___empty_init;
28884 fra.me.has_broke = 0;
28885 fra.me.REG_size = 1;
28886 fra.me.nitni_local_ref_head = NULL;
28887 fra.me.REG[0] = NIT_NULL;
28888 fra.me.REG[0] = p0;
28889 stack_frame_head = fra.me.prev;
28890 init_table[itpos181] = 1;
28891 return;
28892 }
28893 void parser___parser_prod___ANewExpr___init_anewexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
28894 int itpos182 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANewExpr].i;
28895 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
28896 val_t REGB0;
28897 val_t REGB1;
28898 val_t tmp;
28899 if (init_table[itpos182]) return;
28900 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28901 fra.me.file = LOCATE_parser___parser_prod;
28902 fra.me.line = 5364;
28903 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___init_anewexpr;
28904 fra.me.has_broke = 0;
28905 fra.me.REG_size = 6;
28906 fra.me.nitni_local_ref_head = NULL;
28907 fra.me.REG[0] = NIT_NULL;
28908 fra.me.REG[1] = NIT_NULL;
28909 fra.me.REG[2] = NIT_NULL;
28910 fra.me.REG[3] = NIT_NULL;
28911 fra.me.REG[4] = NIT_NULL;
28912 fra.me.REG[5] = NIT_NULL;
28913 fra.me.REG[0] = p0;
28914 fra.me.REG[1] = p1;
28915 fra.me.REG[2] = p2;
28916 fra.me.REG[3] = p3;
28917 fra.me.REG[4] = p4;
28918 /* parser/parser_prod.nit:5364 */
28919 fra.me.REG[5] = fra.me.REG[0];
28920 /* parser/parser_prod.nit:5371 */
28921 CALL_parser___parser_prod___ANewExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
28922 /* parser/parser_prod.nit:5372 */
28923 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28924 if (UNTAG_Bool(REGB0)) {
28925 } else {
28926 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5372);
28927 }
28928 ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[5]) = fra.me.REG[1];
28929 /* parser/parser_prod.nit:5373 */
28930 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28931 if (UNTAG_Bool(REGB0)) {
28932 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5373);
28933 }
28934 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
28935 /* parser/parser_prod.nit:5374 */
28936 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28937 if (UNTAG_Bool(REGB0)) {
28938 } else {
28939 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5374);
28940 }
28941 ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[5]) = fra.me.REG[2];
28942 /* parser/parser_prod.nit:5375 */
28943 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28944 if (UNTAG_Bool(REGB0)) {
28945 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5375);
28946 }
28947 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
28948 /* parser/parser_prod.nit:5376 */
28949 ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[5]) = fra.me.REG[3];
28950 /* parser/parser_prod.nit:5377 */
28951 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28952 if (UNTAG_Bool(REGB0)) {
28953 } else {
28954 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28955 if (UNTAG_Bool(REGB1)) {
28956 REGB1 = TAG_Bool(false);
28957 REGB0 = REGB1;
28958 } else {
28959 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
28960 REGB0 = REGB1;
28961 }
28962 }
28963 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28964 if (UNTAG_Bool(REGB0)) {
28965 /* parser/parser_prod.nit:5378 */
28966 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28967 if (UNTAG_Bool(REGB0)) {
28968 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5378);
28969 }
28970 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
28971 }
28972 /* parser/parser_prod.nit:5380 */
28973 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
28974 if (UNTAG_Bool(REGB0)) {
28975 } else {
28976 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5380);
28977 }
28978 ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[5]) = fra.me.REG[4];
28979 /* parser/parser_prod.nit:5381 */
28980 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
28981 if (UNTAG_Bool(REGB0)) {
28982 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5381);
28983 }
28984 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
28985 stack_frame_head = fra.me.prev;
28986 init_table[itpos182] = 1;
28987 return;
28988 }
28989 void parser___parser_prod___ANewExpr___replace_child(val_t p0, val_t p1, val_t p2){
28990 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28991 val_t REGB0;
28992 val_t REGB1;
28993 val_t tmp;
28994 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28995 fra.me.file = LOCATE_parser___parser_prod;
28996 fra.me.line = 5384;
28997 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___replace_child;
28998 fra.me.has_broke = 0;
28999 fra.me.REG_size = 4;
29000 fra.me.nitni_local_ref_head = NULL;
29001 fra.me.REG[0] = NIT_NULL;
29002 fra.me.REG[1] = NIT_NULL;
29003 fra.me.REG[2] = NIT_NULL;
29004 fra.me.REG[3] = NIT_NULL;
29005 fra.me.REG[0] = p0;
29006 fra.me.REG[1] = p1;
29007 fra.me.REG[2] = p2;
29008 /* parser/parser_prod.nit:5386 */
29009 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0])!=NIT_NULL);
29010 if (UNTAG_Bool(REGB0)) {
29011 } else {
29012 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 5386);
29013 }
29014 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]);
29015 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29016 if (UNTAG_Bool(REGB0)) {
29017 } else {
29018 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29019 REGB0 = REGB1;
29020 }
29021 if (UNTAG_Bool(REGB0)) {
29022 /* parser/parser_prod.nit:5387 */
29023 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29024 if (UNTAG_Bool(REGB0)) {
29025 } else {
29026 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29027 if (UNTAG_Bool(REGB1)) {
29028 REGB1 = TAG_Bool(false);
29029 REGB0 = REGB1;
29030 } else {
29031 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29032 REGB0 = REGB1;
29033 }
29034 }
29035 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29036 if (UNTAG_Bool(REGB0)) {
29037 /* parser/parser_prod.nit:5388 */
29038 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29039 if (UNTAG_Bool(REGB0)) {
29040 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5388);
29041 }
29042 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29043 /* parser/parser_prod.nit:5389 */
29044 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast TKwnew*/;
29045 if (UNTAG_Bool(REGB0)) {
29046 } else {
29047 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5389);
29048 }
29049 /* parser/parser_prod.nit:5390 */
29050 ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]) = fra.me.REG[2];
29051 } else {
29052 /* parser/parser_prod.nit:5392 */
29053 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5392);
29054 }
29055 /* parser/parser_prod.nit:5394 */
29056 goto label1;
29057 }
29058 /* parser/parser_prod.nit:5396 */
29059 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0])!=NIT_NULL);
29060 if (UNTAG_Bool(REGB0)) {
29061 } else {
29062 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5396);
29063 }
29064 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0]);
29065 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29066 if (UNTAG_Bool(REGB0)) {
29067 } else {
29068 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29069 REGB0 = REGB1;
29070 }
29071 if (UNTAG_Bool(REGB0)) {
29072 /* parser/parser_prod.nit:5397 */
29073 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29074 if (UNTAG_Bool(REGB0)) {
29075 } else {
29076 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29077 if (UNTAG_Bool(REGB1)) {
29078 REGB1 = TAG_Bool(false);
29079 REGB0 = REGB1;
29080 } else {
29081 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29082 REGB0 = REGB1;
29083 }
29084 }
29085 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29086 if (UNTAG_Bool(REGB0)) {
29087 /* parser/parser_prod.nit:5398 */
29088 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29089 if (UNTAG_Bool(REGB0)) {
29090 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5398);
29091 }
29092 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29093 /* parser/parser_prod.nit:5399 */
29094 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
29095 if (UNTAG_Bool(REGB0)) {
29096 } else {
29097 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5399);
29098 }
29099 /* parser/parser_prod.nit:5400 */
29100 ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
29101 } else {
29102 /* parser/parser_prod.nit:5402 */
29103 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5402);
29104 }
29105 /* parser/parser_prod.nit:5404 */
29106 goto label1;
29107 }
29108 /* parser/parser_prod.nit:5406 */
29109 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]);
29110 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
29111 if (UNTAG_Bool(REGB0)) {
29112 } else {
29113 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29114 if (UNTAG_Bool(REGB1)) {
29115 REGB1 = TAG_Bool(false);
29116 REGB0 = REGB1;
29117 } else {
29118 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29119 REGB0 = REGB1;
29120 }
29121 }
29122 if (UNTAG_Bool(REGB0)) {
29123 /* parser/parser_prod.nit:5407 */
29124 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29125 if (UNTAG_Bool(REGB0)) {
29126 } else {
29127 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29128 if (UNTAG_Bool(REGB1)) {
29129 REGB1 = TAG_Bool(false);
29130 REGB0 = REGB1;
29131 } else {
29132 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29133 REGB0 = REGB1;
29134 }
29135 }
29136 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29137 if (UNTAG_Bool(REGB0)) {
29138 /* parser/parser_prod.nit:5408 */
29139 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29140 if (UNTAG_Bool(REGB0)) {
29141 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5408);
29142 }
29143 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29144 /* parser/parser_prod.nit:5409 */
29145 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
29146 if (UNTAG_Bool(REGB0)) {
29147 } else {
29148 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5409);
29149 }
29150 /* parser/parser_prod.nit:5410 */
29151 ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
29152 } else {
29153 /* parser/parser_prod.nit:5412 */
29154 ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = NIT_NULL;
29155 }
29156 /* parser/parser_prod.nit:5414 */
29157 goto label1;
29158 }
29159 /* parser/parser_prod.nit:5416 */
29160 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29161 if (UNTAG_Bool(REGB0)) {
29162 } else {
29163 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5416);
29164 }
29165 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
29166 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29167 if (UNTAG_Bool(REGB0)) {
29168 } else {
29169 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29170 REGB0 = REGB1;
29171 }
29172 if (UNTAG_Bool(REGB0)) {
29173 /* parser/parser_prod.nit:5417 */
29174 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29175 if (UNTAG_Bool(REGB0)) {
29176 } else {
29177 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29178 if (UNTAG_Bool(REGB1)) {
29179 REGB1 = TAG_Bool(false);
29180 REGB0 = REGB1;
29181 } else {
29182 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29183 REGB0 = REGB1;
29184 }
29185 }
29186 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29187 if (UNTAG_Bool(REGB0)) {
29188 /* parser/parser_prod.nit:5418 */
29189 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29190 if (UNTAG_Bool(REGB0)) {
29191 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5418);
29192 }
29193 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29194 /* parser/parser_prod.nit:5419 */
29195 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
29196 if (UNTAG_Bool(REGB0)) {
29197 } else {
29198 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5419);
29199 }
29200 /* parser/parser_prod.nit:5420 */
29201 ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
29202 } else {
29203 /* parser/parser_prod.nit:5422 */
29204 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5422);
29205 }
29206 /* parser/parser_prod.nit:5424 */
29207 goto label1;
29208 }
29209 label1: while(0);
29210 stack_frame_head = fra.me.prev;
29211 return;
29212 }
29213 void parser___parser_prod___ANewExpr___visit_all(val_t p0, val_t p1){
29214 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29215 val_t REGB0;
29216 val_t REGB1;
29217 val_t tmp;
29218 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29219 fra.me.file = LOCATE_parser___parser_prod;
29220 fra.me.line = 5428;
29221 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___visit_all;
29222 fra.me.has_broke = 0;
29223 fra.me.REG_size = 4;
29224 fra.me.nitni_local_ref_head = NULL;
29225 fra.me.REG[0] = NIT_NULL;
29226 fra.me.REG[1] = NIT_NULL;
29227 fra.me.REG[2] = NIT_NULL;
29228 fra.me.REG[3] = NIT_NULL;
29229 fra.me.REG[0] = p0;
29230 fra.me.REG[1] = p1;
29231 /* parser/parser_prod.nit:5428 */
29232 fra.me.REG[2] = fra.me.REG[0];
29233 /* parser/parser_prod.nit:5430 */
29234 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[2])!=NIT_NULL);
29235 if (UNTAG_Bool(REGB0)) {
29236 } else {
29237 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 5430);
29238 }
29239 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[2]);
29240 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
29241 /* parser/parser_prod.nit:5431 */
29242 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[2])!=NIT_NULL);
29243 if (UNTAG_Bool(REGB0)) {
29244 } else {
29245 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5431);
29246 }
29247 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[2]);
29248 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
29249 /* parser/parser_prod.nit:5432 */
29250 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[2]);
29251 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29252 if (UNTAG_Bool(REGB0)) {
29253 } else {
29254 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29255 if (UNTAG_Bool(REGB1)) {
29256 REGB1 = TAG_Bool(false);
29257 REGB0 = REGB1;
29258 } else {
29259 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
29260 REGB0 = REGB1;
29261 }
29262 }
29263 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29264 if (UNTAG_Bool(REGB0)) {
29265 /* parser/parser_prod.nit:5433 */
29266 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[2]);
29267 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
29268 if (UNTAG_Bool(REGB0)) {
29269 } else {
29270 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5433);
29271 }
29272 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
29273 }
29274 /* parser/parser_prod.nit:5435 */
29275 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[2])!=NIT_NULL);
29276 if (UNTAG_Bool(REGB0)) {
29277 } else {
29278 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5435);
29279 }
29280 fra.me.REG[2] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[2]);
29281 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29282 stack_frame_head = fra.me.prev;
29283 return;
29284 }
29285 void parser___parser_prod___AAttrExpr___empty_init(val_t p0, int* init_table){
29286 int itpos183 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrExpr].i;
29287 struct {struct stack_frame_t me;} fra;
29288 val_t tmp;
29289 if (init_table[itpos183]) return;
29290 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29291 fra.me.file = LOCATE_parser___parser_prod;
29292 fra.me.line = 5439;
29293 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___empty_init;
29294 fra.me.has_broke = 0;
29295 fra.me.REG_size = 1;
29296 fra.me.nitni_local_ref_head = NULL;
29297 fra.me.REG[0] = NIT_NULL;
29298 fra.me.REG[0] = p0;
29299 stack_frame_head = fra.me.prev;
29300 init_table[itpos183] = 1;
29301 return;
29302 }
29303 void parser___parser_prod___AAttrExpr___init_aattrexpr(val_t p0, val_t p1, val_t p2, int* init_table){
29304 int itpos184 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrExpr].i;
29305 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29306 val_t REGB0;
29307 val_t tmp;
29308 if (init_table[itpos184]) return;
29309 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29310 fra.me.file = LOCATE_parser___parser_prod;
29311 fra.me.line = 5441;
29312 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___init_aattrexpr;
29313 fra.me.has_broke = 0;
29314 fra.me.REG_size = 4;
29315 fra.me.nitni_local_ref_head = NULL;
29316 fra.me.REG[0] = NIT_NULL;
29317 fra.me.REG[1] = NIT_NULL;
29318 fra.me.REG[2] = NIT_NULL;
29319 fra.me.REG[3] = NIT_NULL;
29320 fra.me.REG[0] = p0;
29321 fra.me.REG[1] = p1;
29322 fra.me.REG[2] = p2;
29323 /* parser/parser_prod.nit:5441 */
29324 fra.me.REG[3] = fra.me.REG[0];
29325 /* parser/parser_prod.nit:5446 */
29326 CALL_parser___parser_prod___AAttrExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
29327 /* parser/parser_prod.nit:5447 */
29328 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
29329 if (UNTAG_Bool(REGB0)) {
29330 } else {
29331 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5447);
29332 }
29333 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
29334 /* parser/parser_prod.nit:5448 */
29335 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29336 if (UNTAG_Bool(REGB0)) {
29337 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5448);
29338 }
29339 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
29340 /* parser/parser_prod.nit:5449 */
29341 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29342 if (UNTAG_Bool(REGB0)) {
29343 } else {
29344 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5449);
29345 }
29346 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[3]) = fra.me.REG[2];
29347 /* parser/parser_prod.nit:5450 */
29348 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29349 if (UNTAG_Bool(REGB0)) {
29350 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5450);
29351 }
29352 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
29353 stack_frame_head = fra.me.prev;
29354 init_table[itpos184] = 1;
29355 return;
29356 }
29357 void parser___parser_prod___AAttrExpr___replace_child(val_t p0, val_t p1, val_t p2){
29358 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29359 val_t REGB0;
29360 val_t REGB1;
29361 val_t tmp;
29362 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29363 fra.me.file = LOCATE_parser___parser_prod;
29364 fra.me.line = 5453;
29365 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___replace_child;
29366 fra.me.has_broke = 0;
29367 fra.me.REG_size = 4;
29368 fra.me.nitni_local_ref_head = NULL;
29369 fra.me.REG[0] = NIT_NULL;
29370 fra.me.REG[1] = NIT_NULL;
29371 fra.me.REG[2] = NIT_NULL;
29372 fra.me.REG[3] = NIT_NULL;
29373 fra.me.REG[0] = p0;
29374 fra.me.REG[1] = p1;
29375 fra.me.REG[2] = p2;
29376 /* parser/parser_prod.nit:5455 */
29377 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29378 if (UNTAG_Bool(REGB0)) {
29379 } else {
29380 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5455);
29381 }
29382 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
29383 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29384 if (UNTAG_Bool(REGB0)) {
29385 } else {
29386 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29387 REGB0 = REGB1;
29388 }
29389 if (UNTAG_Bool(REGB0)) {
29390 /* parser/parser_prod.nit:5456 */
29391 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29392 if (UNTAG_Bool(REGB0)) {
29393 } else {
29394 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29395 if (UNTAG_Bool(REGB1)) {
29396 REGB1 = TAG_Bool(false);
29397 REGB0 = REGB1;
29398 } else {
29399 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29400 REGB0 = REGB1;
29401 }
29402 }
29403 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29404 if (UNTAG_Bool(REGB0)) {
29405 /* parser/parser_prod.nit:5457 */
29406 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29407 if (UNTAG_Bool(REGB0)) {
29408 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5457);
29409 }
29410 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29411 /* parser/parser_prod.nit:5458 */
29412 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29413 if (UNTAG_Bool(REGB0)) {
29414 } else {
29415 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5458);
29416 }
29417 /* parser/parser_prod.nit:5459 */
29418 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
29419 } else {
29420 /* parser/parser_prod.nit:5461 */
29421 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5461);
29422 }
29423 /* parser/parser_prod.nit:5463 */
29424 goto label1;
29425 }
29426 /* parser/parser_prod.nit:5465 */
29427 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29428 if (UNTAG_Bool(REGB0)) {
29429 } else {
29430 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5465);
29431 }
29432 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
29433 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29434 if (UNTAG_Bool(REGB0)) {
29435 } else {
29436 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29437 REGB0 = REGB1;
29438 }
29439 if (UNTAG_Bool(REGB0)) {
29440 /* parser/parser_prod.nit:5466 */
29441 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29442 if (UNTAG_Bool(REGB0)) {
29443 } else {
29444 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29445 if (UNTAG_Bool(REGB1)) {
29446 REGB1 = TAG_Bool(false);
29447 REGB0 = REGB1;
29448 } else {
29449 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29450 REGB0 = REGB1;
29451 }
29452 }
29453 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29454 if (UNTAG_Bool(REGB0)) {
29455 /* parser/parser_prod.nit:5467 */
29456 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29457 if (UNTAG_Bool(REGB0)) {
29458 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5467);
29459 }
29460 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29461 /* parser/parser_prod.nit:5468 */
29462 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast TAttrid*/;
29463 if (UNTAG_Bool(REGB0)) {
29464 } else {
29465 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5468);
29466 }
29467 /* parser/parser_prod.nit:5469 */
29468 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
29469 } else {
29470 /* parser/parser_prod.nit:5471 */
29471 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5471);
29472 }
29473 /* parser/parser_prod.nit:5473 */
29474 goto label1;
29475 }
29476 label1: while(0);
29477 stack_frame_head = fra.me.prev;
29478 return;
29479 }
29480 void parser___parser_prod___AAttrExpr___visit_all(val_t p0, val_t p1){
29481 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
29482 val_t REGB0;
29483 val_t tmp;
29484 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29485 fra.me.file = LOCATE_parser___parser_prod;
29486 fra.me.line = 5477;
29487 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___visit_all;
29488 fra.me.has_broke = 0;
29489 fra.me.REG_size = 3;
29490 fra.me.nitni_local_ref_head = NULL;
29491 fra.me.REG[0] = NIT_NULL;
29492 fra.me.REG[1] = NIT_NULL;
29493 fra.me.REG[2] = NIT_NULL;
29494 fra.me.REG[0] = p0;
29495 fra.me.REG[1] = p1;
29496 /* parser/parser_prod.nit:5479 */
29497 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29498 if (UNTAG_Bool(REGB0)) {
29499 } else {
29500 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5479);
29501 }
29502 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
29503 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29504 /* parser/parser_prod.nit:5480 */
29505 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29506 if (UNTAG_Bool(REGB0)) {
29507 } else {
29508 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5480);
29509 }
29510 fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
29511 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29512 stack_frame_head = fra.me.prev;
29513 return;
29514 }
29515 void parser___parser_prod___AAttrAssignExpr___empty_init(val_t p0, int* init_table){
29516 int itpos185 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrAssignExpr].i;
29517 struct {struct stack_frame_t me;} fra;
29518 val_t tmp;
29519 if (init_table[itpos185]) return;
29520 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29521 fra.me.file = LOCATE_parser___parser_prod;
29522 fra.me.line = 5484;
29523 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___empty_init;
29524 fra.me.has_broke = 0;
29525 fra.me.REG_size = 1;
29526 fra.me.nitni_local_ref_head = NULL;
29527 fra.me.REG[0] = NIT_NULL;
29528 fra.me.REG[0] = p0;
29529 stack_frame_head = fra.me.prev;
29530 init_table[itpos185] = 1;
29531 return;
29532 }
29533 void parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
29534 int itpos186 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrAssignExpr].i;
29535 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
29536 val_t REGB0;
29537 val_t tmp;
29538 if (init_table[itpos186]) return;
29539 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29540 fra.me.file = LOCATE_parser___parser_prod;
29541 fra.me.line = 5486;
29542 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr;
29543 fra.me.has_broke = 0;
29544 fra.me.REG_size = 6;
29545 fra.me.nitni_local_ref_head = NULL;
29546 fra.me.REG[0] = NIT_NULL;
29547 fra.me.REG[1] = NIT_NULL;
29548 fra.me.REG[2] = NIT_NULL;
29549 fra.me.REG[3] = NIT_NULL;
29550 fra.me.REG[4] = NIT_NULL;
29551 fra.me.REG[5] = NIT_NULL;
29552 fra.me.REG[0] = p0;
29553 fra.me.REG[1] = p1;
29554 fra.me.REG[2] = p2;
29555 fra.me.REG[3] = p3;
29556 fra.me.REG[4] = p4;
29557 /* parser/parser_prod.nit:5486 */
29558 fra.me.REG[5] = fra.me.REG[0];
29559 /* parser/parser_prod.nit:5493 */
29560 CALL_parser___parser_prod___AAttrAssignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
29561 /* parser/parser_prod.nit:5494 */
29562 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
29563 if (UNTAG_Bool(REGB0)) {
29564 } else {
29565 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5494);
29566 }
29567 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
29568 /* parser/parser_prod.nit:5495 */
29569 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29570 if (UNTAG_Bool(REGB0)) {
29571 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5495);
29572 }
29573 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
29574 /* parser/parser_prod.nit:5496 */
29575 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29576 if (UNTAG_Bool(REGB0)) {
29577 } else {
29578 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5496);
29579 }
29580 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
29581 /* parser/parser_prod.nit:5497 */
29582 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29583 if (UNTAG_Bool(REGB0)) {
29584 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5497);
29585 }
29586 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
29587 /* parser/parser_prod.nit:5498 */
29588 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
29589 if (UNTAG_Bool(REGB0)) {
29590 } else {
29591 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5498);
29592 }
29593 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[5]) = fra.me.REG[3];
29594 /* parser/parser_prod.nit:5499 */
29595 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29596 if (UNTAG_Bool(REGB0)) {
29597 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5499);
29598 }
29599 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
29600 /* parser/parser_prod.nit:5500 */
29601 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
29602 if (UNTAG_Bool(REGB0)) {
29603 } else {
29604 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5500);
29605 }
29606 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
29607 /* parser/parser_prod.nit:5501 */
29608 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
29609 if (UNTAG_Bool(REGB0)) {
29610 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5501);
29611 }
29612 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
29613 stack_frame_head = fra.me.prev;
29614 init_table[itpos186] = 1;
29615 return;
29616 }
29617 void parser___parser_prod___AAttrAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
29618 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29619 val_t REGB0;
29620 val_t REGB1;
29621 val_t tmp;
29622 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29623 fra.me.file = LOCATE_parser___parser_prod;
29624 fra.me.line = 5504;
29625 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___replace_child;
29626 fra.me.has_broke = 0;
29627 fra.me.REG_size = 4;
29628 fra.me.nitni_local_ref_head = NULL;
29629 fra.me.REG[0] = NIT_NULL;
29630 fra.me.REG[1] = NIT_NULL;
29631 fra.me.REG[2] = NIT_NULL;
29632 fra.me.REG[3] = NIT_NULL;
29633 fra.me.REG[0] = p0;
29634 fra.me.REG[1] = p1;
29635 fra.me.REG[2] = p2;
29636 /* parser/parser_prod.nit:5506 */
29637 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29638 if (UNTAG_Bool(REGB0)) {
29639 } else {
29640 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5506);
29641 }
29642 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
29643 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29644 if (UNTAG_Bool(REGB0)) {
29645 } else {
29646 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29647 REGB0 = REGB1;
29648 }
29649 if (UNTAG_Bool(REGB0)) {
29650 /* parser/parser_prod.nit:5507 */
29651 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29652 if (UNTAG_Bool(REGB0)) {
29653 } else {
29654 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29655 if (UNTAG_Bool(REGB1)) {
29656 REGB1 = TAG_Bool(false);
29657 REGB0 = REGB1;
29658 } else {
29659 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29660 REGB0 = REGB1;
29661 }
29662 }
29663 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29664 if (UNTAG_Bool(REGB0)) {
29665 /* parser/parser_prod.nit:5508 */
29666 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29667 if (UNTAG_Bool(REGB0)) {
29668 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5508);
29669 }
29670 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29671 /* parser/parser_prod.nit:5509 */
29672 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29673 if (UNTAG_Bool(REGB0)) {
29674 } else {
29675 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5509);
29676 }
29677 /* parser/parser_prod.nit:5510 */
29678 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
29679 } else {
29680 /* parser/parser_prod.nit:5512 */
29681 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5512);
29682 }
29683 /* parser/parser_prod.nit:5514 */
29684 goto label1;
29685 }
29686 /* parser/parser_prod.nit:5516 */
29687 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29688 if (UNTAG_Bool(REGB0)) {
29689 } else {
29690 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5516);
29691 }
29692 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
29693 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29694 if (UNTAG_Bool(REGB0)) {
29695 } else {
29696 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29697 REGB0 = REGB1;
29698 }
29699 if (UNTAG_Bool(REGB0)) {
29700 /* parser/parser_prod.nit:5517 */
29701 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29702 if (UNTAG_Bool(REGB0)) {
29703 } else {
29704 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29705 if (UNTAG_Bool(REGB1)) {
29706 REGB1 = TAG_Bool(false);
29707 REGB0 = REGB1;
29708 } else {
29709 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29710 REGB0 = REGB1;
29711 }
29712 }
29713 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29714 if (UNTAG_Bool(REGB0)) {
29715 /* parser/parser_prod.nit:5518 */
29716 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29717 if (UNTAG_Bool(REGB0)) {
29718 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5518);
29719 }
29720 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29721 /* parser/parser_prod.nit:5519 */
29722 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast TAttrid*/;
29723 if (UNTAG_Bool(REGB0)) {
29724 } else {
29725 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5519);
29726 }
29727 /* parser/parser_prod.nit:5520 */
29728 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
29729 } else {
29730 /* parser/parser_prod.nit:5522 */
29731 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5522);
29732 }
29733 /* parser/parser_prod.nit:5524 */
29734 goto label1;
29735 }
29736 /* parser/parser_prod.nit:5526 */
29737 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
29738 if (UNTAG_Bool(REGB0)) {
29739 } else {
29740 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5526);
29741 }
29742 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
29743 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29744 if (UNTAG_Bool(REGB0)) {
29745 } else {
29746 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29747 REGB0 = REGB1;
29748 }
29749 if (UNTAG_Bool(REGB0)) {
29750 /* parser/parser_prod.nit:5527 */
29751 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29752 if (UNTAG_Bool(REGB0)) {
29753 } else {
29754 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29755 if (UNTAG_Bool(REGB1)) {
29756 REGB1 = TAG_Bool(false);
29757 REGB0 = REGB1;
29758 } else {
29759 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29760 REGB0 = REGB1;
29761 }
29762 }
29763 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29764 if (UNTAG_Bool(REGB0)) {
29765 /* parser/parser_prod.nit:5528 */
29766 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29767 if (UNTAG_Bool(REGB0)) {
29768 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5528);
29769 }
29770 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29771 /* parser/parser_prod.nit:5529 */
29772 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
29773 if (UNTAG_Bool(REGB0)) {
29774 } else {
29775 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5529);
29776 }
29777 /* parser/parser_prod.nit:5530 */
29778 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
29779 } else {
29780 /* parser/parser_prod.nit:5532 */
29781 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5532);
29782 }
29783 /* parser/parser_prod.nit:5534 */
29784 goto label1;
29785 }
29786 /* parser/parser_prod.nit:5536 */
29787 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
29788 if (UNTAG_Bool(REGB0)) {
29789 } else {
29790 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5536);
29791 }
29792 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
29793 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29794 if (UNTAG_Bool(REGB0)) {
29795 } else {
29796 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29797 REGB0 = REGB1;
29798 }
29799 if (UNTAG_Bool(REGB0)) {
29800 /* parser/parser_prod.nit:5537 */
29801 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29802 if (UNTAG_Bool(REGB0)) {
29803 } else {
29804 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29805 if (UNTAG_Bool(REGB1)) {
29806 REGB1 = TAG_Bool(false);
29807 REGB0 = REGB1;
29808 } else {
29809 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29810 REGB0 = REGB1;
29811 }
29812 }
29813 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29814 if (UNTAG_Bool(REGB0)) {
29815 /* parser/parser_prod.nit:5538 */
29816 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29817 if (UNTAG_Bool(REGB0)) {
29818 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5538);
29819 }
29820 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29821 /* parser/parser_prod.nit:5539 */
29822 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29823 if (UNTAG_Bool(REGB0)) {
29824 } else {
29825 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5539);
29826 }
29827 /* parser/parser_prod.nit:5540 */
29828 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
29829 } else {
29830 /* parser/parser_prod.nit:5542 */
29831 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5542);
29832 }
29833 /* parser/parser_prod.nit:5544 */
29834 goto label1;
29835 }
29836 label1: while(0);
29837 stack_frame_head = fra.me.prev;
29838 return;
29839 }
29840 void parser___parser_prod___AAttrAssignExpr___visit_all(val_t p0, val_t p1){
29841 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
29842 val_t REGB0;
29843 val_t tmp;
29844 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29845 fra.me.file = LOCATE_parser___parser_prod;
29846 fra.me.line = 5548;
29847 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___visit_all;
29848 fra.me.has_broke = 0;
29849 fra.me.REG_size = 3;
29850 fra.me.nitni_local_ref_head = NULL;
29851 fra.me.REG[0] = NIT_NULL;
29852 fra.me.REG[1] = NIT_NULL;
29853 fra.me.REG[2] = NIT_NULL;
29854 fra.me.REG[0] = p0;
29855 fra.me.REG[1] = p1;
29856 /* parser/parser_prod.nit:5550 */
29857 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29858 if (UNTAG_Bool(REGB0)) {
29859 } else {
29860 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5550);
29861 }
29862 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
29863 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29864 /* parser/parser_prod.nit:5551 */
29865 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29866 if (UNTAG_Bool(REGB0)) {
29867 } else {
29868 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5551);
29869 }
29870 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
29871 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29872 /* parser/parser_prod.nit:5552 */
29873 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
29874 if (UNTAG_Bool(REGB0)) {
29875 } else {
29876 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5552);
29877 }
29878 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
29879 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29880 /* parser/parser_prod.nit:5553 */
29881 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
29882 if (UNTAG_Bool(REGB0)) {
29883 } else {
29884 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5553);
29885 }
29886 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
29887 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29888 stack_frame_head = fra.me.prev;
29889 return;
29890 }
29891 void parser___parser_prod___AAttrReassignExpr___empty_init(val_t p0, int* init_table){
29892 int itpos187 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrReassignExpr].i;
29893 struct {struct stack_frame_t me;} fra;
29894 val_t tmp;
29895 if (init_table[itpos187]) return;
29896 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29897 fra.me.file = LOCATE_parser___parser_prod;
29898 fra.me.line = 5557;
29899 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___empty_init;
29900 fra.me.has_broke = 0;
29901 fra.me.REG_size = 1;
29902 fra.me.nitni_local_ref_head = NULL;
29903 fra.me.REG[0] = NIT_NULL;
29904 fra.me.REG[0] = p0;
29905 stack_frame_head = fra.me.prev;
29906 init_table[itpos187] = 1;
29907 return;
29908 }
29909 void parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
29910 int itpos188 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrReassignExpr].i;
29911 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
29912 val_t REGB0;
29913 val_t tmp;
29914 if (init_table[itpos188]) return;
29915 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29916 fra.me.file = LOCATE_parser___parser_prod;
29917 fra.me.line = 5559;
29918 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr;
29919 fra.me.has_broke = 0;
29920 fra.me.REG_size = 6;
29921 fra.me.nitni_local_ref_head = NULL;
29922 fra.me.REG[0] = NIT_NULL;
29923 fra.me.REG[1] = NIT_NULL;
29924 fra.me.REG[2] = NIT_NULL;
29925 fra.me.REG[3] = NIT_NULL;
29926 fra.me.REG[4] = NIT_NULL;
29927 fra.me.REG[5] = NIT_NULL;
29928 fra.me.REG[0] = p0;
29929 fra.me.REG[1] = p1;
29930 fra.me.REG[2] = p2;
29931 fra.me.REG[3] = p3;
29932 fra.me.REG[4] = p4;
29933 /* parser/parser_prod.nit:5559 */
29934 fra.me.REG[5] = fra.me.REG[0];
29935 /* parser/parser_prod.nit:5566 */
29936 CALL_parser___parser_prod___AAttrReassignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
29937 /* parser/parser_prod.nit:5567 */
29938 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
29939 if (UNTAG_Bool(REGB0)) {
29940 } else {
29941 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5567);
29942 }
29943 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
29944 /* parser/parser_prod.nit:5568 */
29945 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29946 if (UNTAG_Bool(REGB0)) {
29947 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5568);
29948 }
29949 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
29950 /* parser/parser_prod.nit:5569 */
29951 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29952 if (UNTAG_Bool(REGB0)) {
29953 } else {
29954 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5569);
29955 }
29956 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
29957 /* parser/parser_prod.nit:5570 */
29958 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29959 if (UNTAG_Bool(REGB0)) {
29960 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5570);
29961 }
29962 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
29963 /* parser/parser_prod.nit:5571 */
29964 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
29965 if (UNTAG_Bool(REGB0)) {
29966 } else {
29967 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5571);
29968 }
29969 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[5]) = fra.me.REG[3];
29970 /* parser/parser_prod.nit:5572 */
29971 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29972 if (UNTAG_Bool(REGB0)) {
29973 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5572);
29974 }
29975 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
29976 /* parser/parser_prod.nit:5573 */
29977 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
29978 if (UNTAG_Bool(REGB0)) {
29979 } else {
29980 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5573);
29981 }
29982 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
29983 /* parser/parser_prod.nit:5574 */
29984 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
29985 if (UNTAG_Bool(REGB0)) {
29986 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5574);
29987 }
29988 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
29989 stack_frame_head = fra.me.prev;
29990 init_table[itpos188] = 1;
29991 return;
29992 }
29993 void parser___parser_prod___AAttrReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
29994 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29995 val_t REGB0;
29996 val_t REGB1;
29997 val_t tmp;
29998 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29999 fra.me.file = LOCATE_parser___parser_prod;
30000 fra.me.line = 5577;
30001 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___replace_child;
30002 fra.me.has_broke = 0;
30003 fra.me.REG_size = 4;
30004 fra.me.nitni_local_ref_head = NULL;
30005 fra.me.REG[0] = NIT_NULL;
30006 fra.me.REG[1] = NIT_NULL;
30007 fra.me.REG[2] = NIT_NULL;
30008 fra.me.REG[3] = NIT_NULL;
30009 fra.me.REG[0] = p0;
30010 fra.me.REG[1] = p1;
30011 fra.me.REG[2] = p2;
30012 /* parser/parser_prod.nit:5579 */
30013 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30014 if (UNTAG_Bool(REGB0)) {
30015 } else {
30016 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5579);
30017 }
30018 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
30019 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30020 if (UNTAG_Bool(REGB0)) {
30021 } else {
30022 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30023 REGB0 = REGB1;
30024 }
30025 if (UNTAG_Bool(REGB0)) {
30026 /* parser/parser_prod.nit:5580 */
30027 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30028 if (UNTAG_Bool(REGB0)) {
30029 } else {
30030 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30031 if (UNTAG_Bool(REGB1)) {
30032 REGB1 = TAG_Bool(false);
30033 REGB0 = REGB1;
30034 } else {
30035 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30036 REGB0 = REGB1;
30037 }
30038 }
30039 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30040 if (UNTAG_Bool(REGB0)) {
30041 /* parser/parser_prod.nit:5581 */
30042 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30043 if (UNTAG_Bool(REGB0)) {
30044 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5581);
30045 }
30046 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30047 /* parser/parser_prod.nit:5582 */
30048 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30049 if (UNTAG_Bool(REGB0)) {
30050 } else {
30051 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5582);
30052 }
30053 /* parser/parser_prod.nit:5583 */
30054 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
30055 } else {
30056 /* parser/parser_prod.nit:5585 */
30057 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5585);
30058 }
30059 /* parser/parser_prod.nit:5587 */
30060 goto label1;
30061 }
30062 /* parser/parser_prod.nit:5589 */
30063 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
30064 if (UNTAG_Bool(REGB0)) {
30065 } else {
30066 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5589);
30067 }
30068 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
30069 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30070 if (UNTAG_Bool(REGB0)) {
30071 } else {
30072 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30073 REGB0 = REGB1;
30074 }
30075 if (UNTAG_Bool(REGB0)) {
30076 /* parser/parser_prod.nit:5590 */
30077 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30078 if (UNTAG_Bool(REGB0)) {
30079 } else {
30080 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30081 if (UNTAG_Bool(REGB1)) {
30082 REGB1 = TAG_Bool(false);
30083 REGB0 = REGB1;
30084 } else {
30085 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30086 REGB0 = REGB1;
30087 }
30088 }
30089 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30090 if (UNTAG_Bool(REGB0)) {
30091 /* parser/parser_prod.nit:5591 */
30092 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30093 if (UNTAG_Bool(REGB0)) {
30094 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5591);
30095 }
30096 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30097 /* parser/parser_prod.nit:5592 */
30098 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast TAttrid*/;
30099 if (UNTAG_Bool(REGB0)) {
30100 } else {
30101 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5592);
30102 }
30103 /* parser/parser_prod.nit:5593 */
30104 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
30105 } else {
30106 /* parser/parser_prod.nit:5595 */
30107 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5595);
30108 }
30109 /* parser/parser_prod.nit:5597 */
30110 goto label1;
30111 }
30112 /* parser/parser_prod.nit:5599 */
30113 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
30114 if (UNTAG_Bool(REGB0)) {
30115 } else {
30116 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5599);
30117 }
30118 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
30119 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30120 if (UNTAG_Bool(REGB0)) {
30121 } else {
30122 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30123 REGB0 = REGB1;
30124 }
30125 if (UNTAG_Bool(REGB0)) {
30126 /* parser/parser_prod.nit:5600 */
30127 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30128 if (UNTAG_Bool(REGB0)) {
30129 } else {
30130 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30131 if (UNTAG_Bool(REGB1)) {
30132 REGB1 = TAG_Bool(false);
30133 REGB0 = REGB1;
30134 } else {
30135 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30136 REGB0 = REGB1;
30137 }
30138 }
30139 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30140 if (UNTAG_Bool(REGB0)) {
30141 /* parser/parser_prod.nit:5601 */
30142 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30143 if (UNTAG_Bool(REGB0)) {
30144 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5601);
30145 }
30146 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30147 /* parser/parser_prod.nit:5602 */
30148 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAssignOp, ID_parser___parser_nodes___AAssignOp)) /*cast AAssignOp*/;
30149 if (UNTAG_Bool(REGB0)) {
30150 } else {
30151 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5602);
30152 }
30153 /* parser/parser_prod.nit:5603 */
30154 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
30155 } else {
30156 /* parser/parser_prod.nit:5605 */
30157 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5605);
30158 }
30159 /* parser/parser_prod.nit:5607 */
30160 goto label1;
30161 }
30162 /* parser/parser_prod.nit:5609 */
30163 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
30164 if (UNTAG_Bool(REGB0)) {
30165 } else {
30166 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5609);
30167 }
30168 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
30169 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30170 if (UNTAG_Bool(REGB0)) {
30171 } else {
30172 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30173 REGB0 = REGB1;
30174 }
30175 if (UNTAG_Bool(REGB0)) {
30176 /* parser/parser_prod.nit:5610 */
30177 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30178 if (UNTAG_Bool(REGB0)) {
30179 } else {
30180 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30181 if (UNTAG_Bool(REGB1)) {
30182 REGB1 = TAG_Bool(false);
30183 REGB0 = REGB1;
30184 } else {
30185 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30186 REGB0 = REGB1;
30187 }
30188 }
30189 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30190 if (UNTAG_Bool(REGB0)) {
30191 /* parser/parser_prod.nit:5611 */
30192 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30193 if (UNTAG_Bool(REGB0)) {
30194 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5611);
30195 }
30196 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30197 /* parser/parser_prod.nit:5612 */
30198 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30199 if (UNTAG_Bool(REGB0)) {
30200 } else {
30201 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5612);
30202 }
30203 /* parser/parser_prod.nit:5613 */
30204 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
30205 } else {
30206 /* parser/parser_prod.nit:5615 */
30207 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5615);
30208 }
30209 /* parser/parser_prod.nit:5617 */
30210 goto label1;
30211 }
30212 label1: while(0);
30213 stack_frame_head = fra.me.prev;
30214 return;
30215 }
30216 void parser___parser_prod___AAttrReassignExpr___visit_all(val_t p0, val_t p1){
30217 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
30218 val_t REGB0;
30219 val_t tmp;
30220 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30221 fra.me.file = LOCATE_parser___parser_prod;
30222 fra.me.line = 5621;
30223 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___visit_all;
30224 fra.me.has_broke = 0;
30225 fra.me.REG_size = 3;
30226 fra.me.nitni_local_ref_head = NULL;
30227 fra.me.REG[0] = NIT_NULL;
30228 fra.me.REG[1] = NIT_NULL;
30229 fra.me.REG[2] = NIT_NULL;
30230 fra.me.REG[0] = p0;
30231 fra.me.REG[1] = p1;
30232 /* parser/parser_prod.nit:5623 */
30233 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30234 if (UNTAG_Bool(REGB0)) {
30235 } else {
30236 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5623);
30237 }
30238 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
30239 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30240 /* parser/parser_prod.nit:5624 */
30241 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
30242 if (UNTAG_Bool(REGB0)) {
30243 } else {
30244 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5624);
30245 }
30246 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
30247 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30248 /* parser/parser_prod.nit:5625 */
30249 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
30250 if (UNTAG_Bool(REGB0)) {
30251 } else {
30252 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5625);
30253 }
30254 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
30255 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30256 /* parser/parser_prod.nit:5626 */
30257 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
30258 if (UNTAG_Bool(REGB0)) {
30259 } else {
30260 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5626);
30261 }
30262 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
30263 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30264 stack_frame_head = fra.me.prev;
30265 return;
30266 }
30267 void parser___parser_prod___ACallExpr___empty_init(val_t p0, int* init_table){
30268 int itpos189 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallExpr].i;
30269 struct {struct stack_frame_t me;} fra;
30270 val_t tmp;
30271 if (init_table[itpos189]) return;
30272 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30273 fra.me.file = LOCATE_parser___parser_prod;
30274 fra.me.line = 5630;
30275 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___empty_init;
30276 fra.me.has_broke = 0;
30277 fra.me.REG_size = 1;
30278 fra.me.nitni_local_ref_head = NULL;
30279 fra.me.REG[0] = NIT_NULL;
30280 fra.me.REG[0] = p0;
30281 stack_frame_head = fra.me.prev;
30282 init_table[itpos189] = 1;
30283 return;
30284 }
30285 void parser___parser_prod___ACallExpr___init_acallexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
30286 int itpos190 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallExpr].i;
30287 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
30288 val_t REGB0;
30289 val_t tmp;
30290 if (init_table[itpos190]) return;
30291 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30292 fra.me.file = LOCATE_parser___parser_prod;
30293 fra.me.line = 5632;
30294 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___init_acallexpr;
30295 fra.me.has_broke = 0;
30296 fra.me.REG_size = 6;
30297 fra.me.nitni_local_ref_head = NULL;
30298 fra.me.REG[0] = NIT_NULL;
30299 fra.me.REG[1] = NIT_NULL;
30300 fra.me.REG[2] = NIT_NULL;
30301 fra.me.REG[3] = NIT_NULL;
30302 fra.me.REG[4] = NIT_NULL;
30303 fra.me.REG[5] = NIT_NULL;
30304 fra.me.REG[0] = p0;
30305 fra.me.REG[1] = p1;
30306 fra.me.REG[2] = p2;
30307 fra.me.REG[3] = p3;
30308 fra.me.REG[4] = p4;
30309 /* parser/parser_prod.nit:5632 */
30310 fra.me.REG[5] = fra.me.REG[0];
30311 /* parser/parser_prod.nit:5639 */
30312 CALL_parser___parser_prod___ACallExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
30313 /* parser/parser_prod.nit:5640 */
30314 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
30315 if (UNTAG_Bool(REGB0)) {
30316 } else {
30317 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5640);
30318 }
30319 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
30320 /* parser/parser_prod.nit:5641 */
30321 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30322 if (UNTAG_Bool(REGB0)) {
30323 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5641);
30324 }
30325 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
30326 /* parser/parser_prod.nit:5642 */
30327 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
30328 if (UNTAG_Bool(REGB0)) {
30329 } else {
30330 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5642);
30331 }
30332 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
30333 /* parser/parser_prod.nit:5643 */
30334 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30335 if (UNTAG_Bool(REGB0)) {
30336 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5643);
30337 }
30338 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
30339 /* parser/parser_prod.nit:5644 */
30340 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
30341 if (UNTAG_Bool(REGB0)) {
30342 } else {
30343 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5644);
30344 }
30345 ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[5]) = fra.me.REG[3];
30346 /* parser/parser_prod.nit:5645 */
30347 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30348 if (UNTAG_Bool(REGB0)) {
30349 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5645);
30350 }
30351 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
30352 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallExpr___init_acallexpr_1));
30353 stack_frame_head = fra.me.prev;
30354 init_table[itpos190] = 1;
30355 return;
30356 }
30357 void OC_parser___parser_prod___ACallExpr___init_acallexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
30358 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30359 val_t REGB0;
30360 fun_t CREG[1];
30361 val_t tmp;
30362 /* parser/parser_prod.nit:5646 */
30363 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30364 fra.me.file = LOCATE_parser___parser_prod;
30365 fra.me.line = 0;
30366 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___init_acallexpr;
30367 fra.me.has_broke = 0;
30368 fra.me.REG_size = 2;
30369 fra.me.nitni_local_ref_head = NULL;
30370 fra.me.REG[0] = NIT_NULL;
30371 fra.me.REG[1] = NIT_NULL;
30372 fra.me.closure_ctx = closctx_param;
30373 fra.me.closure_funs = CREG;
30374 fra.me.REG[0] = p0;
30375 CREG[0] = clos_fun0;
30376 /* parser/parser_prod.nit:5647 */
30377 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
30378 if (UNTAG_Bool(REGB0)) {
30379 } else {
30380 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5647);
30381 }
30382 /* parser/parser_prod.nit:5648 */
30383 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[5])!=NIT_NULL);
30384 if (UNTAG_Bool(REGB0)) {
30385 } else {
30386 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5648);
30387 }
30388 fra.me.REG[1] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[5]);
30389 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30390 /* parser/parser_prod.nit:5649 */
30391 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
30392 stack_frame_head = fra.me.prev;
30393 return;
30394 }
30395 void parser___parser_prod___ACallExpr___replace_child(val_t p0, val_t p1, val_t p2){
30396 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30397 val_t REGB0;
30398 val_t REGB1;
30399 val_t REGB2;
30400 val_t REGB3;
30401 val_t REGB4;
30402 val_t tmp;
30403 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30404 fra.me.file = LOCATE_parser___parser_prod;
30405 fra.me.line = 5653;
30406 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___replace_child;
30407 fra.me.has_broke = 0;
30408 fra.me.REG_size = 4;
30409 fra.me.nitni_local_ref_head = NULL;
30410 fra.me.REG[0] = NIT_NULL;
30411 fra.me.REG[1] = NIT_NULL;
30412 fra.me.REG[2] = NIT_NULL;
30413 fra.me.REG[3] = NIT_NULL;
30414 fra.me.REG[0] = p0;
30415 fra.me.REG[1] = p1;
30416 fra.me.REG[2] = p2;
30417 /* parser/parser_prod.nit:5655 */
30418 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30419 if (UNTAG_Bool(REGB0)) {
30420 } else {
30421 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5655);
30422 }
30423 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30424 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30425 if (UNTAG_Bool(REGB0)) {
30426 } else {
30427 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30428 REGB0 = REGB1;
30429 }
30430 if (UNTAG_Bool(REGB0)) {
30431 /* parser/parser_prod.nit:5656 */
30432 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30433 if (UNTAG_Bool(REGB0)) {
30434 } else {
30435 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30436 if (UNTAG_Bool(REGB1)) {
30437 REGB1 = TAG_Bool(false);
30438 REGB0 = REGB1;
30439 } else {
30440 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30441 REGB0 = REGB1;
30442 }
30443 }
30444 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30445 if (UNTAG_Bool(REGB0)) {
30446 /* parser/parser_prod.nit:5657 */
30447 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30448 if (UNTAG_Bool(REGB0)) {
30449 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5657);
30450 }
30451 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30452 /* parser/parser_prod.nit:5658 */
30453 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30454 if (UNTAG_Bool(REGB0)) {
30455 } else {
30456 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5658);
30457 }
30458 /* parser/parser_prod.nit:5659 */
30459 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
30460 } else {
30461 /* parser/parser_prod.nit:5661 */
30462 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5661);
30463 }
30464 /* parser/parser_prod.nit:5663 */
30465 goto label1;
30466 }
30467 /* parser/parser_prod.nit:5665 */
30468 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
30469 if (UNTAG_Bool(REGB0)) {
30470 } else {
30471 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5665);
30472 }
30473 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
30474 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30475 if (UNTAG_Bool(REGB0)) {
30476 } else {
30477 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30478 REGB0 = REGB1;
30479 }
30480 if (UNTAG_Bool(REGB0)) {
30481 /* parser/parser_prod.nit:5666 */
30482 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30483 if (UNTAG_Bool(REGB0)) {
30484 } else {
30485 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30486 if (UNTAG_Bool(REGB1)) {
30487 REGB1 = TAG_Bool(false);
30488 REGB0 = REGB1;
30489 } else {
30490 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30491 REGB0 = REGB1;
30492 }
30493 }
30494 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30495 if (UNTAG_Bool(REGB0)) {
30496 /* parser/parser_prod.nit:5667 */
30497 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30498 if (UNTAG_Bool(REGB0)) {
30499 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5667);
30500 }
30501 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30502 /* parser/parser_prod.nit:5668 */
30503 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
30504 if (UNTAG_Bool(REGB0)) {
30505 } else {
30506 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5668);
30507 }
30508 /* parser/parser_prod.nit:5669 */
30509 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
30510 } else {
30511 /* parser/parser_prod.nit:5671 */
30512 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5671);
30513 }
30514 /* parser/parser_prod.nit:5673 */
30515 goto label1;
30516 }
30517 /* parser/parser_prod.nit:5675 */
30518 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30519 if (UNTAG_Bool(REGB0)) {
30520 } else {
30521 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5675);
30522 }
30523 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30524 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30525 if (UNTAG_Bool(REGB0)) {
30526 } else {
30527 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30528 REGB0 = REGB1;
30529 }
30530 if (UNTAG_Bool(REGB0)) {
30531 /* parser/parser_prod.nit:5676 */
30532 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30533 if (UNTAG_Bool(REGB0)) {
30534 } else {
30535 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30536 if (UNTAG_Bool(REGB1)) {
30537 REGB1 = TAG_Bool(false);
30538 REGB0 = REGB1;
30539 } else {
30540 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30541 REGB0 = REGB1;
30542 }
30543 }
30544 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30545 if (UNTAG_Bool(REGB0)) {
30546 /* parser/parser_prod.nit:5677 */
30547 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30548 if (UNTAG_Bool(REGB0)) {
30549 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5677);
30550 }
30551 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30552 /* parser/parser_prod.nit:5678 */
30553 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
30554 if (UNTAG_Bool(REGB0)) {
30555 } else {
30556 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5678);
30557 }
30558 /* parser/parser_prod.nit:5679 */
30559 ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
30560 } else {
30561 /* parser/parser_prod.nit:5681 */
30562 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5681);
30563 }
30564 /* parser/parser_prod.nit:5683 */
30565 goto label1;
30566 }
30567 /* parser/parser_prod.nit:5685 */
30568 REGB0 = TAG_Int(0);
30569 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30570 if (UNTAG_Bool(REGB1)) {
30571 } else {
30572 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5685);
30573 }
30574 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30575 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
30576 /* ../lib/standard/kernel.nit:352 */
30577 while(1) {
30578 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
30579 if (UNTAG_Bool(REGB2)) {
30580 } else {
30581 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
30582 }
30583 /* ../lib/standard/kernel.nit:232 */
30584 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
30585 /* ../lib/standard/kernel.nit:352 */
30586 if (UNTAG_Bool(REGB2)) {
30587 /* parser/parser_prod.nit:5685 */
30588 REGB2 = REGB0;
30589 /* parser/parser_prod.nit:5686 */
30590 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30591 if (UNTAG_Bool(REGB3)) {
30592 } else {
30593 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5686);
30594 }
30595 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30596 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
30597 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
30598 if (UNTAG_Bool(REGB3)) {
30599 } else {
30600 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30601 if (UNTAG_Bool(REGB4)) {
30602 REGB4 = TAG_Bool(false);
30603 REGB3 = REGB4;
30604 } else {
30605 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30606 REGB3 = REGB4;
30607 }
30608 }
30609 if (UNTAG_Bool(REGB3)) {
30610 /* parser/parser_prod.nit:5687 */
30611 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30612 if (UNTAG_Bool(REGB3)) {
30613 } else {
30614 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30615 if (UNTAG_Bool(REGB4)) {
30616 REGB4 = TAG_Bool(false);
30617 REGB3 = REGB4;
30618 } else {
30619 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30620 REGB3 = REGB4;
30621 }
30622 }
30623 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
30624 if (UNTAG_Bool(REGB3)) {
30625 /* parser/parser_prod.nit:5688 */
30626 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
30627 if (UNTAG_Bool(REGB3)) {
30628 } else {
30629 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5688);
30630 }
30631 /* parser/parser_prod.nit:5689 */
30632 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30633 if (UNTAG_Bool(REGB3)) {
30634 } else {
30635 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5689);
30636 }
30637 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30638 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
30639 /* parser/parser_prod.nit:5690 */
30640 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30641 if (UNTAG_Bool(REGB3)) {
30642 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5690);
30643 }
30644 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30645 } else {
30646 /* parser/parser_prod.nit:5692 */
30647 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30648 if (UNTAG_Bool(REGB3)) {
30649 } else {
30650 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5692);
30651 }
30652 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30653 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
30654 }
30655 /* parser/parser_prod.nit:5694 */
30656 goto label1;
30657 }
30658 /* ../lib/standard/kernel.nit:354 */
30659 REGB2 = TAG_Int(1);
30660 /* ../lib/standard/kernel.nit:235 */
30661 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
30662 /* ../lib/standard/kernel.nit:354 */
30663 REGB0 = REGB2;
30664 } else {
30665 /* ../lib/standard/kernel.nit:352 */
30666 goto label2;
30667 }
30668 }
30669 label2: while(0);
30670 label1: while(0);
30671 stack_frame_head = fra.me.prev;
30672 return;
30673 }
30674 void parser___parser_prod___ACallExpr___visit_all(val_t p0, val_t p1){
30675 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
30676 val_t REGB0;
30677 val_t tmp;
30678 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30679 fra.me.file = LOCATE_parser___parser_prod;
30680 fra.me.line = 5699;
30681 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___visit_all;
30682 fra.me.has_broke = 0;
30683 fra.me.REG_size = 3;
30684 fra.me.nitni_local_ref_head = NULL;
30685 fra.me.REG[0] = NIT_NULL;
30686 fra.me.REG[1] = NIT_NULL;
30687 fra.me.REG[2] = NIT_NULL;
30688 fra.me.REG[0] = p0;
30689 fra.me.REG[1] = p1;
30690 /* parser/parser_prod.nit:5701 */
30691 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30692 if (UNTAG_Bool(REGB0)) {
30693 } else {
30694 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5701);
30695 }
30696 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30697 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30698 /* parser/parser_prod.nit:5702 */
30699 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
30700 if (UNTAG_Bool(REGB0)) {
30701 } else {
30702 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5702);
30703 }
30704 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
30705 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30706 /* parser/parser_prod.nit:5703 */
30707 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30708 if (UNTAG_Bool(REGB0)) {
30709 } else {
30710 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5703);
30711 }
30712 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30713 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30714 /* parser/parser_prod.nit:5704 */
30715 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30716 if (UNTAG_Bool(REGB0)) {
30717 } else {
30718 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5704);
30719 }
30720 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30721 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallExpr___visit_all_1));
30722 stack_frame_head = fra.me.prev;
30723 return;
30724 }
30725 void OC_parser___parser_prod___ACallExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
30726 struct {struct stack_frame_t me;} fra;
30727 fun_t CREG[1];
30728 val_t tmp;
30729 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30730 fra.me.file = LOCATE_parser___parser_prod;
30731 fra.me.line = 0;
30732 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___visit_all;
30733 fra.me.has_broke = 0;
30734 fra.me.REG_size = 1;
30735 fra.me.nitni_local_ref_head = NULL;
30736 fra.me.REG[0] = NIT_NULL;
30737 fra.me.closure_ctx = closctx_param;
30738 fra.me.closure_funs = CREG;
30739 fra.me.REG[0] = p0;
30740 CREG[0] = clos_fun0;
30741 /* parser/parser_prod.nit:5705 */
30742 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
30743 stack_frame_head = fra.me.prev;
30744 return;
30745 }
30746 void parser___parser_prod___ACallAssignExpr___empty_init(val_t p0, int* init_table){
30747 int itpos191 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallAssignExpr].i;
30748 struct {struct stack_frame_t me;} fra;
30749 val_t tmp;
30750 if (init_table[itpos191]) return;
30751 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30752 fra.me.file = LOCATE_parser___parser_prod;
30753 fra.me.line = 5710;
30754 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___empty_init;
30755 fra.me.has_broke = 0;
30756 fra.me.REG_size = 1;
30757 fra.me.nitni_local_ref_head = NULL;
30758 fra.me.REG[0] = NIT_NULL;
30759 fra.me.REG[0] = p0;
30760 stack_frame_head = fra.me.prev;
30761 init_table[itpos191] = 1;
30762 return;
30763 }
30764 void parser___parser_prod___ACallAssignExpr___init_acallassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
30765 int itpos192 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallAssignExpr].i;
30766 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
30767 val_t REGB0;
30768 val_t tmp;
30769 if (init_table[itpos192]) return;
30770 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30771 fra.me.file = LOCATE_parser___parser_prod;
30772 fra.me.line = 5712;
30773 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___init_acallassignexpr;
30774 fra.me.has_broke = 0;
30775 fra.me.REG_size = 7;
30776 fra.me.nitni_local_ref_head = NULL;
30777 fra.me.REG[0] = NIT_NULL;
30778 fra.me.REG[1] = NIT_NULL;
30779 fra.me.REG[2] = NIT_NULL;
30780 fra.me.REG[3] = NIT_NULL;
30781 fra.me.REG[4] = NIT_NULL;
30782 fra.me.REG[5] = NIT_NULL;
30783 fra.me.REG[6] = NIT_NULL;
30784 fra.me.REG[0] = p0;
30785 fra.me.REG[1] = p1;
30786 fra.me.REG[2] = p2;
30787 fra.me.REG[3] = p3;
30788 fra.me.REG[4] = p4;
30789 fra.me.REG[5] = p5;
30790 /* parser/parser_prod.nit:5712 */
30791 fra.me.REG[6] = fra.me.REG[0];
30792 /* parser/parser_prod.nit:5720 */
30793 CALL_parser___parser_prod___ACallAssignExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
30794 /* parser/parser_prod.nit:5721 */
30795 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
30796 if (UNTAG_Bool(REGB0)) {
30797 } else {
30798 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5721);
30799 }
30800 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[6]) = fra.me.REG[1];
30801 /* parser/parser_prod.nit:5722 */
30802 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30803 if (UNTAG_Bool(REGB0)) {
30804 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5722);
30805 }
30806 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
30807 /* parser/parser_prod.nit:5723 */
30808 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
30809 if (UNTAG_Bool(REGB0)) {
30810 } else {
30811 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5723);
30812 }
30813 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[6]) = fra.me.REG[2];
30814 /* parser/parser_prod.nit:5724 */
30815 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30816 if (UNTAG_Bool(REGB0)) {
30817 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5724);
30818 }
30819 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
30820 /* parser/parser_prod.nit:5725 */
30821 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
30822 if (UNTAG_Bool(REGB0)) {
30823 } else {
30824 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5725);
30825 }
30826 ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[6]) = fra.me.REG[3];
30827 /* parser/parser_prod.nit:5726 */
30828 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30829 if (UNTAG_Bool(REGB0)) {
30830 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5726);
30831 }
30832 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
30833 /* parser/parser_prod.nit:5727 */
30834 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
30835 if (UNTAG_Bool(REGB0)) {
30836 } else {
30837 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5727);
30838 }
30839 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[6]) = fra.me.REG[4];
30840 /* parser/parser_prod.nit:5728 */
30841 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
30842 if (UNTAG_Bool(REGB0)) {
30843 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5728);
30844 }
30845 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
30846 /* parser/parser_prod.nit:5729 */
30847 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
30848 if (UNTAG_Bool(REGB0)) {
30849 } else {
30850 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5729);
30851 }
30852 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[6]) = fra.me.REG[5];
30853 /* parser/parser_prod.nit:5730 */
30854 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
30855 if (UNTAG_Bool(REGB0)) {
30856 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5730);
30857 }
30858 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
30859 stack_frame_head = fra.me.prev;
30860 init_table[itpos192] = 1;
30861 return;
30862 }
30863 void parser___parser_prod___ACallAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
30864 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30865 val_t REGB0;
30866 val_t REGB1;
30867 val_t tmp;
30868 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30869 fra.me.file = LOCATE_parser___parser_prod;
30870 fra.me.line = 5733;
30871 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___replace_child;
30872 fra.me.has_broke = 0;
30873 fra.me.REG_size = 4;
30874 fra.me.nitni_local_ref_head = NULL;
30875 fra.me.REG[0] = NIT_NULL;
30876 fra.me.REG[1] = NIT_NULL;
30877 fra.me.REG[2] = NIT_NULL;
30878 fra.me.REG[3] = NIT_NULL;
30879 fra.me.REG[0] = p0;
30880 fra.me.REG[1] = p1;
30881 fra.me.REG[2] = p2;
30882 /* parser/parser_prod.nit:5735 */
30883 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30884 if (UNTAG_Bool(REGB0)) {
30885 } else {
30886 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5735);
30887 }
30888 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30889 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30890 if (UNTAG_Bool(REGB0)) {
30891 } else {
30892 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30893 REGB0 = REGB1;
30894 }
30895 if (UNTAG_Bool(REGB0)) {
30896 /* parser/parser_prod.nit:5736 */
30897 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30898 if (UNTAG_Bool(REGB0)) {
30899 } else {
30900 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30901 if (UNTAG_Bool(REGB1)) {
30902 REGB1 = TAG_Bool(false);
30903 REGB0 = REGB1;
30904 } else {
30905 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30906 REGB0 = REGB1;
30907 }
30908 }
30909 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30910 if (UNTAG_Bool(REGB0)) {
30911 /* parser/parser_prod.nit:5737 */
30912 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30913 if (UNTAG_Bool(REGB0)) {
30914 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5737);
30915 }
30916 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30917 /* parser/parser_prod.nit:5738 */
30918 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30919 if (UNTAG_Bool(REGB0)) {
30920 } else {
30921 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5738);
30922 }
30923 /* parser/parser_prod.nit:5739 */
30924 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
30925 } else {
30926 /* parser/parser_prod.nit:5741 */
30927 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5741);
30928 }
30929 /* parser/parser_prod.nit:5743 */
30930 goto label1;
30931 }
30932 /* parser/parser_prod.nit:5745 */
30933 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
30934 if (UNTAG_Bool(REGB0)) {
30935 } else {
30936 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5745);
30937 }
30938 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
30939 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30940 if (UNTAG_Bool(REGB0)) {
30941 } else {
30942 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30943 REGB0 = REGB1;
30944 }
30945 if (UNTAG_Bool(REGB0)) {
30946 /* parser/parser_prod.nit:5746 */
30947 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30948 if (UNTAG_Bool(REGB0)) {
30949 } else {
30950 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30951 if (UNTAG_Bool(REGB1)) {
30952 REGB1 = TAG_Bool(false);
30953 REGB0 = REGB1;
30954 } else {
30955 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30956 REGB0 = REGB1;
30957 }
30958 }
30959 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30960 if (UNTAG_Bool(REGB0)) {
30961 /* parser/parser_prod.nit:5747 */
30962 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30963 if (UNTAG_Bool(REGB0)) {
30964 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5747);
30965 }
30966 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30967 /* parser/parser_prod.nit:5748 */
30968 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
30969 if (UNTAG_Bool(REGB0)) {
30970 } else {
30971 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5748);
30972 }
30973 /* parser/parser_prod.nit:5749 */
30974 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
30975 } else {
30976 /* parser/parser_prod.nit:5751 */
30977 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5751);
30978 }
30979 /* parser/parser_prod.nit:5753 */
30980 goto label1;
30981 }
30982 /* parser/parser_prod.nit:5755 */
30983 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30984 if (UNTAG_Bool(REGB0)) {
30985 } else {
30986 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5755);
30987 }
30988 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30989 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30990 if (UNTAG_Bool(REGB0)) {
30991 } else {
30992 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30993 REGB0 = REGB1;
30994 }
30995 if (UNTAG_Bool(REGB0)) {
30996 /* parser/parser_prod.nit:5756 */
30997 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30998 if (UNTAG_Bool(REGB0)) {
30999 } else {
31000 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31001 if (UNTAG_Bool(REGB1)) {
31002 REGB1 = TAG_Bool(false);
31003 REGB0 = REGB1;
31004 } else {
31005 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31006 REGB0 = REGB1;
31007 }
31008 }
31009 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31010 if (UNTAG_Bool(REGB0)) {
31011 /* parser/parser_prod.nit:5757 */
31012 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31013 if (UNTAG_Bool(REGB0)) {
31014 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5757);
31015 }
31016 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31017 /* parser/parser_prod.nit:5758 */
31018 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
31019 if (UNTAG_Bool(REGB0)) {
31020 } else {
31021 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5758);
31022 }
31023 /* parser/parser_prod.nit:5759 */
31024 ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
31025 } else {
31026 /* parser/parser_prod.nit:5761 */
31027 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5761);
31028 }
31029 /* parser/parser_prod.nit:5763 */
31030 goto label1;
31031 }
31032 /* parser/parser_prod.nit:5765 */
31033 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
31034 if (UNTAG_Bool(REGB0)) {
31035 } else {
31036 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5765);
31037 }
31038 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
31039 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31040 if (UNTAG_Bool(REGB0)) {
31041 } else {
31042 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31043 REGB0 = REGB1;
31044 }
31045 if (UNTAG_Bool(REGB0)) {
31046 /* parser/parser_prod.nit:5766 */
31047 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31048 if (UNTAG_Bool(REGB0)) {
31049 } else {
31050 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31051 if (UNTAG_Bool(REGB1)) {
31052 REGB1 = TAG_Bool(false);
31053 REGB0 = REGB1;
31054 } else {
31055 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31056 REGB0 = REGB1;
31057 }
31058 }
31059 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31060 if (UNTAG_Bool(REGB0)) {
31061 /* parser/parser_prod.nit:5767 */
31062 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31063 if (UNTAG_Bool(REGB0)) {
31064 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5767);
31065 }
31066 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31067 /* parser/parser_prod.nit:5768 */
31068 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
31069 if (UNTAG_Bool(REGB0)) {
31070 } else {
31071 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5768);
31072 }
31073 /* parser/parser_prod.nit:5769 */
31074 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
31075 } else {
31076 /* parser/parser_prod.nit:5771 */
31077 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5771);
31078 }
31079 /* parser/parser_prod.nit:5773 */
31080 goto label1;
31081 }
31082 /* parser/parser_prod.nit:5775 */
31083 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31084 if (UNTAG_Bool(REGB0)) {
31085 } else {
31086 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5775);
31087 }
31088 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
31089 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31090 if (UNTAG_Bool(REGB0)) {
31091 } else {
31092 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31093 REGB0 = REGB1;
31094 }
31095 if (UNTAG_Bool(REGB0)) {
31096 /* parser/parser_prod.nit:5776 */
31097 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31098 if (UNTAG_Bool(REGB0)) {
31099 } else {
31100 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31101 if (UNTAG_Bool(REGB1)) {
31102 REGB1 = TAG_Bool(false);
31103 REGB0 = REGB1;
31104 } else {
31105 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31106 REGB0 = REGB1;
31107 }
31108 }
31109 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31110 if (UNTAG_Bool(REGB0)) {
31111 /* parser/parser_prod.nit:5777 */
31112 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31113 if (UNTAG_Bool(REGB0)) {
31114 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5777);
31115 }
31116 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31117 /* parser/parser_prod.nit:5778 */
31118 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31119 if (UNTAG_Bool(REGB0)) {
31120 } else {
31121 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5778);
31122 }
31123 /* parser/parser_prod.nit:5779 */
31124 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
31125 } else {
31126 /* parser/parser_prod.nit:5781 */
31127 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5781);
31128 }
31129 /* parser/parser_prod.nit:5783 */
31130 goto label1;
31131 }
31132 label1: while(0);
31133 stack_frame_head = fra.me.prev;
31134 return;
31135 }
31136 void parser___parser_prod___ACallAssignExpr___visit_all(val_t p0, val_t p1){
31137 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
31138 val_t REGB0;
31139 val_t tmp;
31140 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31141 fra.me.file = LOCATE_parser___parser_prod;
31142 fra.me.line = 5787;
31143 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___visit_all;
31144 fra.me.has_broke = 0;
31145 fra.me.REG_size = 3;
31146 fra.me.nitni_local_ref_head = NULL;
31147 fra.me.REG[0] = NIT_NULL;
31148 fra.me.REG[1] = NIT_NULL;
31149 fra.me.REG[2] = NIT_NULL;
31150 fra.me.REG[0] = p0;
31151 fra.me.REG[1] = p1;
31152 /* parser/parser_prod.nit:5789 */
31153 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31154 if (UNTAG_Bool(REGB0)) {
31155 } else {
31156 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5789);
31157 }
31158 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31159 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31160 /* parser/parser_prod.nit:5790 */
31161 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
31162 if (UNTAG_Bool(REGB0)) {
31163 } else {
31164 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5790);
31165 }
31166 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
31167 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31168 /* parser/parser_prod.nit:5791 */
31169 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31170 if (UNTAG_Bool(REGB0)) {
31171 } else {
31172 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5791);
31173 }
31174 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
31175 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31176 /* parser/parser_prod.nit:5792 */
31177 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
31178 if (UNTAG_Bool(REGB0)) {
31179 } else {
31180 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5792);
31181 }
31182 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
31183 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31184 /* parser/parser_prod.nit:5793 */
31185 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31186 if (UNTAG_Bool(REGB0)) {
31187 } else {
31188 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5793);
31189 }
31190 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
31191 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31192 stack_frame_head = fra.me.prev;
31193 return;
31194 }
31195 void parser___parser_prod___ACallReassignExpr___empty_init(val_t p0, int* init_table){
31196 int itpos193 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallReassignExpr].i;
31197 struct {struct stack_frame_t me;} fra;
31198 val_t tmp;
31199 if (init_table[itpos193]) return;
31200 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31201 fra.me.file = LOCATE_parser___parser_prod;
31202 fra.me.line = 5797;
31203 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___empty_init;
31204 fra.me.has_broke = 0;
31205 fra.me.REG_size = 1;
31206 fra.me.nitni_local_ref_head = NULL;
31207 fra.me.REG[0] = NIT_NULL;
31208 fra.me.REG[0] = p0;
31209 stack_frame_head = fra.me.prev;
31210 init_table[itpos193] = 1;
31211 return;
31212 }
31213 void parser___parser_prod___ACallReassignExpr___init_acallreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
31214 int itpos194 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallReassignExpr].i;
31215 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
31216 val_t REGB0;
31217 val_t tmp;
31218 if (init_table[itpos194]) return;
31219 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31220 fra.me.file = LOCATE_parser___parser_prod;
31221 fra.me.line = 5799;
31222 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr;
31223 fra.me.has_broke = 0;
31224 fra.me.REG_size = 7;
31225 fra.me.nitni_local_ref_head = NULL;
31226 fra.me.REG[0] = NIT_NULL;
31227 fra.me.REG[1] = NIT_NULL;
31228 fra.me.REG[2] = NIT_NULL;
31229 fra.me.REG[3] = NIT_NULL;
31230 fra.me.REG[4] = NIT_NULL;
31231 fra.me.REG[5] = NIT_NULL;
31232 fra.me.REG[6] = NIT_NULL;
31233 fra.me.REG[0] = p0;
31234 fra.me.REG[1] = p1;
31235 fra.me.REG[2] = p2;
31236 fra.me.REG[3] = p3;
31237 fra.me.REG[4] = p4;
31238 fra.me.REG[5] = p5;
31239 /* parser/parser_prod.nit:5799 */
31240 fra.me.REG[6] = fra.me.REG[0];
31241 /* parser/parser_prod.nit:5807 */
31242 CALL_parser___parser_prod___ACallReassignExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
31243 /* parser/parser_prod.nit:5808 */
31244 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
31245 if (UNTAG_Bool(REGB0)) {
31246 } else {
31247 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5808);
31248 }
31249 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[6]) = fra.me.REG[1];
31250 /* parser/parser_prod.nit:5809 */
31251 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31252 if (UNTAG_Bool(REGB0)) {
31253 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5809);
31254 }
31255 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
31256 /* parser/parser_prod.nit:5810 */
31257 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
31258 if (UNTAG_Bool(REGB0)) {
31259 } else {
31260 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5810);
31261 }
31262 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[6]) = fra.me.REG[2];
31263 /* parser/parser_prod.nit:5811 */
31264 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31265 if (UNTAG_Bool(REGB0)) {
31266 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5811);
31267 }
31268 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
31269 /* parser/parser_prod.nit:5812 */
31270 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
31271 if (UNTAG_Bool(REGB0)) {
31272 } else {
31273 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5812);
31274 }
31275 ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[6]) = fra.me.REG[3];
31276 /* parser/parser_prod.nit:5813 */
31277 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31278 if (UNTAG_Bool(REGB0)) {
31279 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5813);
31280 }
31281 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
31282 /* parser/parser_prod.nit:5814 */
31283 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
31284 if (UNTAG_Bool(REGB0)) {
31285 } else {
31286 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5814);
31287 }
31288 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[6]) = fra.me.REG[4];
31289 /* parser/parser_prod.nit:5815 */
31290 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
31291 if (UNTAG_Bool(REGB0)) {
31292 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5815);
31293 }
31294 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
31295 /* parser/parser_prod.nit:5816 */
31296 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
31297 if (UNTAG_Bool(REGB0)) {
31298 } else {
31299 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5816);
31300 }
31301 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[6]) = fra.me.REG[5];
31302 /* parser/parser_prod.nit:5817 */
31303 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
31304 if (UNTAG_Bool(REGB0)) {
31305 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5817);
31306 }
31307 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
31308 stack_frame_head = fra.me.prev;
31309 init_table[itpos194] = 1;
31310 return;
31311 }
31312 void parser___parser_prod___ACallReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
31313 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31314 val_t REGB0;
31315 val_t REGB1;
31316 val_t tmp;
31317 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31318 fra.me.file = LOCATE_parser___parser_prod;
31319 fra.me.line = 5820;
31320 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___replace_child;
31321 fra.me.has_broke = 0;
31322 fra.me.REG_size = 4;
31323 fra.me.nitni_local_ref_head = NULL;
31324 fra.me.REG[0] = NIT_NULL;
31325 fra.me.REG[1] = NIT_NULL;
31326 fra.me.REG[2] = NIT_NULL;
31327 fra.me.REG[3] = NIT_NULL;
31328 fra.me.REG[0] = p0;
31329 fra.me.REG[1] = p1;
31330 fra.me.REG[2] = p2;
31331 /* parser/parser_prod.nit:5822 */
31332 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31333 if (UNTAG_Bool(REGB0)) {
31334 } else {
31335 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5822);
31336 }
31337 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31338 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31339 if (UNTAG_Bool(REGB0)) {
31340 } else {
31341 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31342 REGB0 = REGB1;
31343 }
31344 if (UNTAG_Bool(REGB0)) {
31345 /* parser/parser_prod.nit:5823 */
31346 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31347 if (UNTAG_Bool(REGB0)) {
31348 } else {
31349 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31350 if (UNTAG_Bool(REGB1)) {
31351 REGB1 = TAG_Bool(false);
31352 REGB0 = REGB1;
31353 } else {
31354 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31355 REGB0 = REGB1;
31356 }
31357 }
31358 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31359 if (UNTAG_Bool(REGB0)) {
31360 /* parser/parser_prod.nit:5824 */
31361 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31362 if (UNTAG_Bool(REGB0)) {
31363 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5824);
31364 }
31365 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31366 /* parser/parser_prod.nit:5825 */
31367 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31368 if (UNTAG_Bool(REGB0)) {
31369 } else {
31370 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5825);
31371 }
31372 /* parser/parser_prod.nit:5826 */
31373 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
31374 } else {
31375 /* parser/parser_prod.nit:5828 */
31376 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5828);
31377 }
31378 /* parser/parser_prod.nit:5830 */
31379 goto label1;
31380 }
31381 /* parser/parser_prod.nit:5832 */
31382 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
31383 if (UNTAG_Bool(REGB0)) {
31384 } else {
31385 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5832);
31386 }
31387 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
31388 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31389 if (UNTAG_Bool(REGB0)) {
31390 } else {
31391 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31392 REGB0 = REGB1;
31393 }
31394 if (UNTAG_Bool(REGB0)) {
31395 /* parser/parser_prod.nit:5833 */
31396 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31397 if (UNTAG_Bool(REGB0)) {
31398 } else {
31399 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31400 if (UNTAG_Bool(REGB1)) {
31401 REGB1 = TAG_Bool(false);
31402 REGB0 = REGB1;
31403 } else {
31404 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31405 REGB0 = REGB1;
31406 }
31407 }
31408 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31409 if (UNTAG_Bool(REGB0)) {
31410 /* parser/parser_prod.nit:5834 */
31411 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31412 if (UNTAG_Bool(REGB0)) {
31413 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5834);
31414 }
31415 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31416 /* parser/parser_prod.nit:5835 */
31417 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
31418 if (UNTAG_Bool(REGB0)) {
31419 } else {
31420 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5835);
31421 }
31422 /* parser/parser_prod.nit:5836 */
31423 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
31424 } else {
31425 /* parser/parser_prod.nit:5838 */
31426 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5838);
31427 }
31428 /* parser/parser_prod.nit:5840 */
31429 goto label1;
31430 }
31431 /* parser/parser_prod.nit:5842 */
31432 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31433 if (UNTAG_Bool(REGB0)) {
31434 } else {
31435 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5842);
31436 }
31437 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
31438 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31439 if (UNTAG_Bool(REGB0)) {
31440 } else {
31441 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31442 REGB0 = REGB1;
31443 }
31444 if (UNTAG_Bool(REGB0)) {
31445 /* parser/parser_prod.nit:5843 */
31446 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31447 if (UNTAG_Bool(REGB0)) {
31448 } else {
31449 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31450 if (UNTAG_Bool(REGB1)) {
31451 REGB1 = TAG_Bool(false);
31452 REGB0 = REGB1;
31453 } else {
31454 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31455 REGB0 = REGB1;
31456 }
31457 }
31458 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31459 if (UNTAG_Bool(REGB0)) {
31460 /* parser/parser_prod.nit:5844 */
31461 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31462 if (UNTAG_Bool(REGB0)) {
31463 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5844);
31464 }
31465 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31466 /* parser/parser_prod.nit:5845 */
31467 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
31468 if (UNTAG_Bool(REGB0)) {
31469 } else {
31470 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5845);
31471 }
31472 /* parser/parser_prod.nit:5846 */
31473 ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
31474 } else {
31475 /* parser/parser_prod.nit:5848 */
31476 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5848);
31477 }
31478 /* parser/parser_prod.nit:5850 */
31479 goto label1;
31480 }
31481 /* parser/parser_prod.nit:5852 */
31482 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
31483 if (UNTAG_Bool(REGB0)) {
31484 } else {
31485 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5852);
31486 }
31487 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
31488 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31489 if (UNTAG_Bool(REGB0)) {
31490 } else {
31491 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31492 REGB0 = REGB1;
31493 }
31494 if (UNTAG_Bool(REGB0)) {
31495 /* parser/parser_prod.nit:5853 */
31496 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31497 if (UNTAG_Bool(REGB0)) {
31498 } else {
31499 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31500 if (UNTAG_Bool(REGB1)) {
31501 REGB1 = TAG_Bool(false);
31502 REGB0 = REGB1;
31503 } else {
31504 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31505 REGB0 = REGB1;
31506 }
31507 }
31508 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31509 if (UNTAG_Bool(REGB0)) {
31510 /* parser/parser_prod.nit:5854 */
31511 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31512 if (UNTAG_Bool(REGB0)) {
31513 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5854);
31514 }
31515 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31516 /* parser/parser_prod.nit:5855 */
31517 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAssignOp, ID_parser___parser_nodes___AAssignOp)) /*cast AAssignOp*/;
31518 if (UNTAG_Bool(REGB0)) {
31519 } else {
31520 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5855);
31521 }
31522 /* parser/parser_prod.nit:5856 */
31523 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
31524 } else {
31525 /* parser/parser_prod.nit:5858 */
31526 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5858);
31527 }
31528 /* parser/parser_prod.nit:5860 */
31529 goto label1;
31530 }
31531 /* parser/parser_prod.nit:5862 */
31532 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31533 if (UNTAG_Bool(REGB0)) {
31534 } else {
31535 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5862);
31536 }
31537 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
31538 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31539 if (UNTAG_Bool(REGB0)) {
31540 } else {
31541 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31542 REGB0 = REGB1;
31543 }
31544 if (UNTAG_Bool(REGB0)) {
31545 /* parser/parser_prod.nit:5863 */
31546 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31547 if (UNTAG_Bool(REGB0)) {
31548 } else {
31549 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31550 if (UNTAG_Bool(REGB1)) {
31551 REGB1 = TAG_Bool(false);
31552 REGB0 = REGB1;
31553 } else {
31554 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31555 REGB0 = REGB1;
31556 }
31557 }
31558 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31559 if (UNTAG_Bool(REGB0)) {
31560 /* parser/parser_prod.nit:5864 */
31561 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31562 if (UNTAG_Bool(REGB0)) {
31563 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5864);
31564 }
31565 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31566 /* parser/parser_prod.nit:5865 */
31567 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31568 if (UNTAG_Bool(REGB0)) {
31569 } else {
31570 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5865);
31571 }
31572 /* parser/parser_prod.nit:5866 */
31573 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
31574 } else {
31575 /* parser/parser_prod.nit:5868 */
31576 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5868);
31577 }
31578 /* parser/parser_prod.nit:5870 */
31579 goto label1;
31580 }
31581 label1: while(0);
31582 stack_frame_head = fra.me.prev;
31583 return;
31584 }
31585 void parser___parser_prod___ACallReassignExpr___visit_all(val_t p0, val_t p1){
31586 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
31587 val_t REGB0;
31588 val_t tmp;
31589 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31590 fra.me.file = LOCATE_parser___parser_prod;
31591 fra.me.line = 5874;
31592 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___visit_all;
31593 fra.me.has_broke = 0;
31594 fra.me.REG_size = 3;
31595 fra.me.nitni_local_ref_head = NULL;
31596 fra.me.REG[0] = NIT_NULL;
31597 fra.me.REG[1] = NIT_NULL;
31598 fra.me.REG[2] = NIT_NULL;
31599 fra.me.REG[0] = p0;
31600 fra.me.REG[1] = p1;
31601 /* parser/parser_prod.nit:5876 */
31602 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31603 if (UNTAG_Bool(REGB0)) {
31604 } else {
31605 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5876);
31606 }
31607 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31608 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31609 /* parser/parser_prod.nit:5877 */
31610 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
31611 if (UNTAG_Bool(REGB0)) {
31612 } else {
31613 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5877);
31614 }
31615 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
31616 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31617 /* parser/parser_prod.nit:5878 */
31618 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31619 if (UNTAG_Bool(REGB0)) {
31620 } else {
31621 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5878);
31622 }
31623 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
31624 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31625 /* parser/parser_prod.nit:5879 */
31626 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
31627 if (UNTAG_Bool(REGB0)) {
31628 } else {
31629 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5879);
31630 }
31631 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
31632 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31633 /* parser/parser_prod.nit:5880 */
31634 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31635 if (UNTAG_Bool(REGB0)) {
31636 } else {
31637 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5880);
31638 }
31639 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
31640 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31641 stack_frame_head = fra.me.prev;
31642 return;
31643 }
31644 void parser___parser_prod___ASuperExpr___empty_init(val_t p0, int* init_table){
31645 int itpos195 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExpr].i;
31646 struct {struct stack_frame_t me;} fra;
31647 val_t tmp;
31648 if (init_table[itpos195]) return;
31649 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31650 fra.me.file = LOCATE_parser___parser_prod;
31651 fra.me.line = 5884;
31652 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___empty_init;
31653 fra.me.has_broke = 0;
31654 fra.me.REG_size = 1;
31655 fra.me.nitni_local_ref_head = NULL;
31656 fra.me.REG[0] = NIT_NULL;
31657 fra.me.REG[0] = p0;
31658 stack_frame_head = fra.me.prev;
31659 init_table[itpos195] = 1;
31660 return;
31661 }
31662 void parser___parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
31663 int itpos196 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExpr].i;
31664 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
31665 val_t REGB0;
31666 val_t REGB1;
31667 val_t tmp;
31668 if (init_table[itpos196]) return;
31669 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31670 fra.me.file = LOCATE_parser___parser_prod;
31671 fra.me.line = 5886;
31672 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___init_asuperexpr;
31673 fra.me.has_broke = 0;
31674 fra.me.REG_size = 5;
31675 fra.me.nitni_local_ref_head = NULL;
31676 fra.me.REG[0] = NIT_NULL;
31677 fra.me.REG[1] = NIT_NULL;
31678 fra.me.REG[2] = NIT_NULL;
31679 fra.me.REG[3] = NIT_NULL;
31680 fra.me.REG[4] = NIT_NULL;
31681 fra.me.REG[0] = p0;
31682 fra.me.REG[1] = p1;
31683 fra.me.REG[2] = p2;
31684 fra.me.REG[3] = p3;
31685 /* parser/parser_prod.nit:5886 */
31686 fra.me.REG[4] = fra.me.REG[0];
31687 /* parser/parser_prod.nit:5892 */
31688 CALL_parser___parser_prod___ASuperExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
31689 /* parser/parser_prod.nit:5893 */
31690 ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[4]) = fra.me.REG[1];
31691 /* parser/parser_prod.nit:5894 */
31692 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31693 if (UNTAG_Bool(REGB0)) {
31694 } else {
31695 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31696 if (UNTAG_Bool(REGB1)) {
31697 REGB1 = TAG_Bool(false);
31698 REGB0 = REGB1;
31699 } else {
31700 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
31701 REGB0 = REGB1;
31702 }
31703 }
31704 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31705 if (UNTAG_Bool(REGB0)) {
31706 /* parser/parser_prod.nit:5895 */
31707 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31708 if (UNTAG_Bool(REGB0)) {
31709 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5895);
31710 }
31711 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
31712 }
31713 /* parser/parser_prod.nit:5897 */
31714 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
31715 if (UNTAG_Bool(REGB0)) {
31716 } else {
31717 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5897);
31718 }
31719 ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[4]) = fra.me.REG[2];
31720 /* parser/parser_prod.nit:5898 */
31721 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31722 if (UNTAG_Bool(REGB0)) {
31723 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5898);
31724 }
31725 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
31726 /* parser/parser_prod.nit:5899 */
31727 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
31728 if (UNTAG_Bool(REGB0)) {
31729 } else {
31730 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5899);
31731 }
31732 ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[4]) = fra.me.REG[3];
31733 /* parser/parser_prod.nit:5900 */
31734 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31735 if (UNTAG_Bool(REGB0)) {
31736 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5900);
31737 }
31738 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
31739 stack_frame_head = fra.me.prev;
31740 init_table[itpos196] = 1;
31741 return;
31742 }
31743 void parser___parser_prod___ASuperExpr___replace_child(val_t p0, val_t p1, val_t p2){
31744 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31745 val_t REGB0;
31746 val_t REGB1;
31747 val_t tmp;
31748 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31749 fra.me.file = LOCATE_parser___parser_prod;
31750 fra.me.line = 5903;
31751 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___replace_child;
31752 fra.me.has_broke = 0;
31753 fra.me.REG_size = 4;
31754 fra.me.nitni_local_ref_head = NULL;
31755 fra.me.REG[0] = NIT_NULL;
31756 fra.me.REG[1] = NIT_NULL;
31757 fra.me.REG[2] = NIT_NULL;
31758 fra.me.REG[3] = NIT_NULL;
31759 fra.me.REG[0] = p0;
31760 fra.me.REG[1] = p1;
31761 fra.me.REG[2] = p2;
31762 /* parser/parser_prod.nit:5905 */
31763 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]);
31764 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
31765 if (UNTAG_Bool(REGB0)) {
31766 } else {
31767 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31768 if (UNTAG_Bool(REGB1)) {
31769 REGB1 = TAG_Bool(false);
31770 REGB0 = REGB1;
31771 } else {
31772 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31773 REGB0 = REGB1;
31774 }
31775 }
31776 if (UNTAG_Bool(REGB0)) {
31777 /* parser/parser_prod.nit:5906 */
31778 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31779 if (UNTAG_Bool(REGB0)) {
31780 } else {
31781 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31782 if (UNTAG_Bool(REGB1)) {
31783 REGB1 = TAG_Bool(false);
31784 REGB0 = REGB1;
31785 } else {
31786 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31787 REGB0 = REGB1;
31788 }
31789 }
31790 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31791 if (UNTAG_Bool(REGB0)) {
31792 /* parser/parser_prod.nit:5907 */
31793 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31794 if (UNTAG_Bool(REGB0)) {
31795 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5907);
31796 }
31797 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31798 /* parser/parser_prod.nit:5908 */
31799 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AQualified, ID_parser___parser_nodes___AQualified)) /*cast AQualified*/;
31800 if (UNTAG_Bool(REGB0)) {
31801 } else {
31802 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5908);
31803 }
31804 /* parser/parser_prod.nit:5909 */
31805 ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = fra.me.REG[2];
31806 } else {
31807 /* parser/parser_prod.nit:5911 */
31808 ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = NIT_NULL;
31809 }
31810 /* parser/parser_prod.nit:5913 */
31811 goto label1;
31812 }
31813 /* parser/parser_prod.nit:5915 */
31814 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
31815 if (UNTAG_Bool(REGB0)) {
31816 } else {
31817 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 5915);
31818 }
31819 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]);
31820 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31821 if (UNTAG_Bool(REGB0)) {
31822 } else {
31823 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31824 REGB0 = REGB1;
31825 }
31826 if (UNTAG_Bool(REGB0)) {
31827 /* parser/parser_prod.nit:5916 */
31828 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31829 if (UNTAG_Bool(REGB0)) {
31830 } else {
31831 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31832 if (UNTAG_Bool(REGB1)) {
31833 REGB1 = TAG_Bool(false);
31834 REGB0 = REGB1;
31835 } else {
31836 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31837 REGB0 = REGB1;
31838 }
31839 }
31840 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31841 if (UNTAG_Bool(REGB0)) {
31842 /* parser/parser_prod.nit:5917 */
31843 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31844 if (UNTAG_Bool(REGB0)) {
31845 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5917);
31846 }
31847 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31848 /* parser/parser_prod.nit:5918 */
31849 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwsuper, ID_parser___parser_nodes___TKwsuper)) /*cast TKwsuper*/;
31850 if (UNTAG_Bool(REGB0)) {
31851 } else {
31852 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5918);
31853 }
31854 /* parser/parser_prod.nit:5919 */
31855 ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
31856 } else {
31857 /* parser/parser_prod.nit:5921 */
31858 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5921);
31859 }
31860 /* parser/parser_prod.nit:5923 */
31861 goto label1;
31862 }
31863 /* parser/parser_prod.nit:5925 */
31864 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31865 if (UNTAG_Bool(REGB0)) {
31866 } else {
31867 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5925);
31868 }
31869 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
31870 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31871 if (UNTAG_Bool(REGB0)) {
31872 } else {
31873 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31874 REGB0 = REGB1;
31875 }
31876 if (UNTAG_Bool(REGB0)) {
31877 /* parser/parser_prod.nit:5926 */
31878 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31879 if (UNTAG_Bool(REGB0)) {
31880 } else {
31881 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31882 if (UNTAG_Bool(REGB1)) {
31883 REGB1 = TAG_Bool(false);
31884 REGB0 = REGB1;
31885 } else {
31886 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31887 REGB0 = REGB1;
31888 }
31889 }
31890 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31891 if (UNTAG_Bool(REGB0)) {
31892 /* parser/parser_prod.nit:5927 */
31893 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31894 if (UNTAG_Bool(REGB0)) {
31895 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5927);
31896 }
31897 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31898 /* parser/parser_prod.nit:5928 */
31899 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
31900 if (UNTAG_Bool(REGB0)) {
31901 } else {
31902 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5928);
31903 }
31904 /* parser/parser_prod.nit:5929 */
31905 ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
31906 } else {
31907 /* parser/parser_prod.nit:5931 */
31908 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5931);
31909 }
31910 /* parser/parser_prod.nit:5933 */
31911 goto label1;
31912 }
31913 label1: while(0);
31914 stack_frame_head = fra.me.prev;
31915 return;
31916 }
31917 void parser___parser_prod___ASuperExpr___visit_all(val_t p0, val_t p1){
31918 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31919 val_t REGB0;
31920 val_t REGB1;
31921 val_t tmp;
31922 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31923 fra.me.file = LOCATE_parser___parser_prod;
31924 fra.me.line = 5937;
31925 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___visit_all;
31926 fra.me.has_broke = 0;
31927 fra.me.REG_size = 4;
31928 fra.me.nitni_local_ref_head = NULL;
31929 fra.me.REG[0] = NIT_NULL;
31930 fra.me.REG[1] = NIT_NULL;
31931 fra.me.REG[2] = NIT_NULL;
31932 fra.me.REG[3] = NIT_NULL;
31933 fra.me.REG[0] = p0;
31934 fra.me.REG[1] = p1;
31935 /* parser/parser_prod.nit:5937 */
31936 fra.me.REG[2] = fra.me.REG[0];
31937 /* parser/parser_prod.nit:5939 */
31938 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[2]);
31939 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31940 if (UNTAG_Bool(REGB0)) {
31941 } else {
31942 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31943 if (UNTAG_Bool(REGB1)) {
31944 REGB1 = TAG_Bool(false);
31945 REGB0 = REGB1;
31946 } else {
31947 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
31948 REGB0 = REGB1;
31949 }
31950 }
31951 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31952 if (UNTAG_Bool(REGB0)) {
31953 /* parser/parser_prod.nit:5940 */
31954 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[2]);
31955 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AQualified, ID_parser___parser_nodes___AQualified)) /*cast AQualified*/;
31956 if (UNTAG_Bool(REGB0)) {
31957 } else {
31958 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5940);
31959 }
31960 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
31961 }
31962 /* parser/parser_prod.nit:5942 */
31963 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[2])!=NIT_NULL);
31964 if (UNTAG_Bool(REGB0)) {
31965 } else {
31966 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 5942);
31967 }
31968 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[2]);
31969 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
31970 /* parser/parser_prod.nit:5943 */
31971 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[2])!=NIT_NULL);
31972 if (UNTAG_Bool(REGB0)) {
31973 } else {
31974 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5943);
31975 }
31976 fra.me.REG[2] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[2]);
31977 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31978 stack_frame_head = fra.me.prev;
31979 return;
31980 }
31981 void parser___parser_prod___AInitExpr___empty_init(val_t p0, int* init_table){
31982 int itpos197 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitExpr].i;
31983 struct {struct stack_frame_t me;} fra;
31984 val_t tmp;
31985 if (init_table[itpos197]) return;
31986 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31987 fra.me.file = LOCATE_parser___parser_prod;
31988 fra.me.line = 5947;
31989 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___empty_init;
31990 fra.me.has_broke = 0;
31991 fra.me.REG_size = 1;
31992 fra.me.nitni_local_ref_head = NULL;
31993 fra.me.REG[0] = NIT_NULL;
31994 fra.me.REG[0] = p0;
31995 stack_frame_head = fra.me.prev;
31996 init_table[itpos197] = 1;
31997 return;
31998 }
31999 void parser___parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
32000 int itpos198 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitExpr].i;
32001 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32002 val_t REGB0;
32003 val_t tmp;
32004 if (init_table[itpos198]) return;
32005 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32006 fra.me.file = LOCATE_parser___parser_prod;
32007 fra.me.line = 5949;
32008 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___init_ainitexpr;
32009 fra.me.has_broke = 0;
32010 fra.me.REG_size = 5;
32011 fra.me.nitni_local_ref_head = NULL;
32012 fra.me.REG[0] = NIT_NULL;
32013 fra.me.REG[1] = NIT_NULL;
32014 fra.me.REG[2] = NIT_NULL;
32015 fra.me.REG[3] = NIT_NULL;
32016 fra.me.REG[4] = NIT_NULL;
32017 fra.me.REG[0] = p0;
32018 fra.me.REG[1] = p1;
32019 fra.me.REG[2] = p2;
32020 fra.me.REG[3] = p3;
32021 /* parser/parser_prod.nit:5949 */
32022 fra.me.REG[4] = fra.me.REG[0];
32023 /* parser/parser_prod.nit:5955 */
32024 CALL_parser___parser_prod___AInitExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
32025 /* parser/parser_prod.nit:5956 */
32026 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32027 if (UNTAG_Bool(REGB0)) {
32028 } else {
32029 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5956);
32030 }
32031 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[4]) = fra.me.REG[1];
32032 /* parser/parser_prod.nit:5957 */
32033 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32034 if (UNTAG_Bool(REGB0)) {
32035 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5957);
32036 }
32037 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
32038 /* parser/parser_prod.nit:5958 */
32039 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
32040 if (UNTAG_Bool(REGB0)) {
32041 } else {
32042 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5958);
32043 }
32044 ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[4]) = fra.me.REG[2];
32045 /* parser/parser_prod.nit:5959 */
32046 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32047 if (UNTAG_Bool(REGB0)) {
32048 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5959);
32049 }
32050 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
32051 /* parser/parser_prod.nit:5960 */
32052 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
32053 if (UNTAG_Bool(REGB0)) {
32054 } else {
32055 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5960);
32056 }
32057 ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[4]) = fra.me.REG[3];
32058 /* parser/parser_prod.nit:5961 */
32059 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32060 if (UNTAG_Bool(REGB0)) {
32061 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5961);
32062 }
32063 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
32064 stack_frame_head = fra.me.prev;
32065 init_table[itpos198] = 1;
32066 return;
32067 }
32068 void parser___parser_prod___AInitExpr___replace_child(val_t p0, val_t p1, val_t p2){
32069 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32070 val_t REGB0;
32071 val_t REGB1;
32072 val_t tmp;
32073 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32074 fra.me.file = LOCATE_parser___parser_prod;
32075 fra.me.line = 5964;
32076 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___replace_child;
32077 fra.me.has_broke = 0;
32078 fra.me.REG_size = 4;
32079 fra.me.nitni_local_ref_head = NULL;
32080 fra.me.REG[0] = NIT_NULL;
32081 fra.me.REG[1] = NIT_NULL;
32082 fra.me.REG[2] = NIT_NULL;
32083 fra.me.REG[3] = NIT_NULL;
32084 fra.me.REG[0] = p0;
32085 fra.me.REG[1] = p1;
32086 fra.me.REG[2] = p2;
32087 /* parser/parser_prod.nit:5966 */
32088 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32089 if (UNTAG_Bool(REGB0)) {
32090 } else {
32091 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5966);
32092 }
32093 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32094 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32095 if (UNTAG_Bool(REGB0)) {
32096 } else {
32097 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32098 REGB0 = REGB1;
32099 }
32100 if (UNTAG_Bool(REGB0)) {
32101 /* parser/parser_prod.nit:5967 */
32102 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32103 if (UNTAG_Bool(REGB0)) {
32104 } else {
32105 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32106 if (UNTAG_Bool(REGB1)) {
32107 REGB1 = TAG_Bool(false);
32108 REGB0 = REGB1;
32109 } else {
32110 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32111 REGB0 = REGB1;
32112 }
32113 }
32114 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32115 if (UNTAG_Bool(REGB0)) {
32116 /* parser/parser_prod.nit:5968 */
32117 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32118 if (UNTAG_Bool(REGB0)) {
32119 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5968);
32120 }
32121 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32122 /* parser/parser_prod.nit:5969 */
32123 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
32124 if (UNTAG_Bool(REGB0)) {
32125 } else {
32126 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5969);
32127 }
32128 /* parser/parser_prod.nit:5970 */
32129 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
32130 } else {
32131 /* parser/parser_prod.nit:5972 */
32132 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5972);
32133 }
32134 /* parser/parser_prod.nit:5974 */
32135 goto label1;
32136 }
32137 /* parser/parser_prod.nit:5976 */
32138 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
32139 if (UNTAG_Bool(REGB0)) {
32140 } else {
32141 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 5976);
32142 }
32143 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]);
32144 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32145 if (UNTAG_Bool(REGB0)) {
32146 } else {
32147 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32148 REGB0 = REGB1;
32149 }
32150 if (UNTAG_Bool(REGB0)) {
32151 /* parser/parser_prod.nit:5977 */
32152 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32153 if (UNTAG_Bool(REGB0)) {
32154 } else {
32155 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32156 if (UNTAG_Bool(REGB1)) {
32157 REGB1 = TAG_Bool(false);
32158 REGB0 = REGB1;
32159 } else {
32160 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32161 REGB0 = REGB1;
32162 }
32163 }
32164 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32165 if (UNTAG_Bool(REGB0)) {
32166 /* parser/parser_prod.nit:5978 */
32167 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32168 if (UNTAG_Bool(REGB0)) {
32169 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5978);
32170 }
32171 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32172 /* parser/parser_prod.nit:5979 */
32173 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwinit, ID_parser___parser_nodes___TKwinit)) /*cast TKwinit*/;
32174 if (UNTAG_Bool(REGB0)) {
32175 } else {
32176 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5979);
32177 }
32178 /* parser/parser_prod.nit:5980 */
32179 ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]) = fra.me.REG[2];
32180 } else {
32181 /* parser/parser_prod.nit:5982 */
32182 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5982);
32183 }
32184 /* parser/parser_prod.nit:5984 */
32185 goto label1;
32186 }
32187 /* parser/parser_prod.nit:5986 */
32188 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32189 if (UNTAG_Bool(REGB0)) {
32190 } else {
32191 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5986);
32192 }
32193 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
32194 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32195 if (UNTAG_Bool(REGB0)) {
32196 } else {
32197 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32198 REGB0 = REGB1;
32199 }
32200 if (UNTAG_Bool(REGB0)) {
32201 /* parser/parser_prod.nit:5987 */
32202 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32203 if (UNTAG_Bool(REGB0)) {
32204 } else {
32205 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32206 if (UNTAG_Bool(REGB1)) {
32207 REGB1 = TAG_Bool(false);
32208 REGB0 = REGB1;
32209 } else {
32210 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32211 REGB0 = REGB1;
32212 }
32213 }
32214 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32215 if (UNTAG_Bool(REGB0)) {
32216 /* parser/parser_prod.nit:5988 */
32217 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32218 if (UNTAG_Bool(REGB0)) {
32219 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5988);
32220 }
32221 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32222 /* parser/parser_prod.nit:5989 */
32223 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
32224 if (UNTAG_Bool(REGB0)) {
32225 } else {
32226 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5989);
32227 }
32228 /* parser/parser_prod.nit:5990 */
32229 ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
32230 } else {
32231 /* parser/parser_prod.nit:5992 */
32232 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5992);
32233 }
32234 /* parser/parser_prod.nit:5994 */
32235 goto label1;
32236 }
32237 label1: while(0);
32238 stack_frame_head = fra.me.prev;
32239 return;
32240 }
32241 void parser___parser_prod___AInitExpr___visit_all(val_t p0, val_t p1){
32242 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
32243 val_t REGB0;
32244 val_t tmp;
32245 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32246 fra.me.file = LOCATE_parser___parser_prod;
32247 fra.me.line = 5998;
32248 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___visit_all;
32249 fra.me.has_broke = 0;
32250 fra.me.REG_size = 3;
32251 fra.me.nitni_local_ref_head = NULL;
32252 fra.me.REG[0] = NIT_NULL;
32253 fra.me.REG[1] = NIT_NULL;
32254 fra.me.REG[2] = NIT_NULL;
32255 fra.me.REG[0] = p0;
32256 fra.me.REG[1] = p1;
32257 /* parser/parser_prod.nit:6000 */
32258 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32259 if (UNTAG_Bool(REGB0)) {
32260 } else {
32261 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6000);
32262 }
32263 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32264 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32265 /* parser/parser_prod.nit:6001 */
32266 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
32267 if (UNTAG_Bool(REGB0)) {
32268 } else {
32269 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 6001);
32270 }
32271 fra.me.REG[2] = ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]);
32272 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32273 /* parser/parser_prod.nit:6002 */
32274 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32275 if (UNTAG_Bool(REGB0)) {
32276 } else {
32277 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6002);
32278 }
32279 fra.me.REG[0] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
32280 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32281 stack_frame_head = fra.me.prev;
32282 return;
32283 }
32284 void parser___parser_prod___ABraExpr___empty_init(val_t p0, int* init_table){
32285 int itpos199 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExpr].i;
32286 struct {struct stack_frame_t me;} fra;
32287 val_t tmp;
32288 if (init_table[itpos199]) return;
32289 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32290 fra.me.file = LOCATE_parser___parser_prod;
32291 fra.me.line = 6006;
32292 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___empty_init;
32293 fra.me.has_broke = 0;
32294 fra.me.REG_size = 1;
32295 fra.me.nitni_local_ref_head = NULL;
32296 fra.me.REG[0] = NIT_NULL;
32297 fra.me.REG[0] = p0;
32298 stack_frame_head = fra.me.prev;
32299 init_table[itpos199] = 1;
32300 return;
32301 }
32302 void parser___parser_prod___ABraExpr___init_abraexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
32303 int itpos200 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExpr].i;
32304 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32305 val_t REGB0;
32306 val_t tmp;
32307 if (init_table[itpos200]) return;
32308 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32309 fra.me.file = LOCATE_parser___parser_prod;
32310 fra.me.line = 6008;
32311 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___init_abraexpr;
32312 fra.me.has_broke = 0;
32313 fra.me.REG_size = 5;
32314 fra.me.nitni_local_ref_head = NULL;
32315 fra.me.REG[0] = NIT_NULL;
32316 fra.me.REG[1] = NIT_NULL;
32317 fra.me.REG[2] = NIT_NULL;
32318 fra.me.REG[3] = NIT_NULL;
32319 fra.me.REG[4] = NIT_NULL;
32320 fra.me.REG[0] = p0;
32321 fra.me.REG[1] = p1;
32322 fra.me.REG[2] = p2;
32323 fra.me.REG[3] = p3;
32324 /* parser/parser_prod.nit:6008 */
32325 fra.me.REG[4] = fra.me.REG[0];
32326 /* parser/parser_prod.nit:6014 */
32327 CALL_parser___parser_prod___ABraExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
32328 /* parser/parser_prod.nit:6015 */
32329 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32330 if (UNTAG_Bool(REGB0)) {
32331 } else {
32332 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6015);
32333 }
32334 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[4]) = fra.me.REG[1];
32335 /* parser/parser_prod.nit:6016 */
32336 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32337 if (UNTAG_Bool(REGB0)) {
32338 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6016);
32339 }
32340 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
32341 /* parser/parser_prod.nit:6017 */
32342 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
32343 if (UNTAG_Bool(REGB0)) {
32344 } else {
32345 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6017);
32346 }
32347 ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[4]) = fra.me.REG[2];
32348 /* parser/parser_prod.nit:6018 */
32349 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32350 if (UNTAG_Bool(REGB0)) {
32351 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6018);
32352 }
32353 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
32354 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExpr___init_abraexpr_1));
32355 stack_frame_head = fra.me.prev;
32356 init_table[itpos200] = 1;
32357 return;
32358 }
32359 void OC_parser___parser_prod___ABraExpr___init_abraexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
32360 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32361 val_t REGB0;
32362 fun_t CREG[1];
32363 val_t tmp;
32364 /* parser/parser_prod.nit:6019 */
32365 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32366 fra.me.file = LOCATE_parser___parser_prod;
32367 fra.me.line = 0;
32368 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___init_abraexpr;
32369 fra.me.has_broke = 0;
32370 fra.me.REG_size = 2;
32371 fra.me.nitni_local_ref_head = NULL;
32372 fra.me.REG[0] = NIT_NULL;
32373 fra.me.REG[1] = NIT_NULL;
32374 fra.me.closure_ctx = closctx_param;
32375 fra.me.closure_funs = CREG;
32376 fra.me.REG[0] = p0;
32377 CREG[0] = clos_fun0;
32378 /* parser/parser_prod.nit:6020 */
32379 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
32380 if (UNTAG_Bool(REGB0)) {
32381 } else {
32382 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6020);
32383 }
32384 /* parser/parser_prod.nit:6021 */
32385 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[4])!=NIT_NULL);
32386 if (UNTAG_Bool(REGB0)) {
32387 } else {
32388 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6021);
32389 }
32390 fra.me.REG[1] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[4]);
32391 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32392 /* parser/parser_prod.nit:6022 */
32393 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
32394 stack_frame_head = fra.me.prev;
32395 return;
32396 }
32397 void parser___parser_prod___ABraExpr___replace_child(val_t p0, val_t p1, val_t p2){
32398 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32399 val_t REGB0;
32400 val_t REGB1;
32401 val_t REGB2;
32402 val_t REGB3;
32403 val_t REGB4;
32404 val_t tmp;
32405 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32406 fra.me.file = LOCATE_parser___parser_prod;
32407 fra.me.line = 6026;
32408 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___replace_child;
32409 fra.me.has_broke = 0;
32410 fra.me.REG_size = 4;
32411 fra.me.nitni_local_ref_head = NULL;
32412 fra.me.REG[0] = NIT_NULL;
32413 fra.me.REG[1] = NIT_NULL;
32414 fra.me.REG[2] = NIT_NULL;
32415 fra.me.REG[3] = NIT_NULL;
32416 fra.me.REG[0] = p0;
32417 fra.me.REG[1] = p1;
32418 fra.me.REG[2] = p2;
32419 /* parser/parser_prod.nit:6028 */
32420 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32421 if (UNTAG_Bool(REGB0)) {
32422 } else {
32423 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6028);
32424 }
32425 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32426 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32427 if (UNTAG_Bool(REGB0)) {
32428 } else {
32429 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32430 REGB0 = REGB1;
32431 }
32432 if (UNTAG_Bool(REGB0)) {
32433 /* parser/parser_prod.nit:6029 */
32434 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32435 if (UNTAG_Bool(REGB0)) {
32436 } else {
32437 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32438 if (UNTAG_Bool(REGB1)) {
32439 REGB1 = TAG_Bool(false);
32440 REGB0 = REGB1;
32441 } else {
32442 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32443 REGB0 = REGB1;
32444 }
32445 }
32446 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32447 if (UNTAG_Bool(REGB0)) {
32448 /* parser/parser_prod.nit:6030 */
32449 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32450 if (UNTAG_Bool(REGB0)) {
32451 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6030);
32452 }
32453 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32454 /* parser/parser_prod.nit:6031 */
32455 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
32456 if (UNTAG_Bool(REGB0)) {
32457 } else {
32458 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6031);
32459 }
32460 /* parser/parser_prod.nit:6032 */
32461 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
32462 } else {
32463 /* parser/parser_prod.nit:6034 */
32464 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6034);
32465 }
32466 /* parser/parser_prod.nit:6036 */
32467 goto label1;
32468 }
32469 /* parser/parser_prod.nit:6038 */
32470 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32471 if (UNTAG_Bool(REGB0)) {
32472 } else {
32473 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6038);
32474 }
32475 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32476 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32477 if (UNTAG_Bool(REGB0)) {
32478 } else {
32479 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32480 REGB0 = REGB1;
32481 }
32482 if (UNTAG_Bool(REGB0)) {
32483 /* parser/parser_prod.nit:6039 */
32484 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32485 if (UNTAG_Bool(REGB0)) {
32486 } else {
32487 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32488 if (UNTAG_Bool(REGB1)) {
32489 REGB1 = TAG_Bool(false);
32490 REGB0 = REGB1;
32491 } else {
32492 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32493 REGB0 = REGB1;
32494 }
32495 }
32496 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32497 if (UNTAG_Bool(REGB0)) {
32498 /* parser/parser_prod.nit:6040 */
32499 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32500 if (UNTAG_Bool(REGB0)) {
32501 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6040);
32502 }
32503 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32504 /* parser/parser_prod.nit:6041 */
32505 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
32506 if (UNTAG_Bool(REGB0)) {
32507 } else {
32508 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6041);
32509 }
32510 /* parser/parser_prod.nit:6042 */
32511 ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
32512 } else {
32513 /* parser/parser_prod.nit:6044 */
32514 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6044);
32515 }
32516 /* parser/parser_prod.nit:6046 */
32517 goto label1;
32518 }
32519 /* parser/parser_prod.nit:6048 */
32520 REGB0 = TAG_Int(0);
32521 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32522 if (UNTAG_Bool(REGB1)) {
32523 } else {
32524 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6048);
32525 }
32526 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
32527 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
32528 /* ../lib/standard/kernel.nit:352 */
32529 while(1) {
32530 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
32531 if (UNTAG_Bool(REGB2)) {
32532 } else {
32533 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
32534 }
32535 /* ../lib/standard/kernel.nit:232 */
32536 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
32537 /* ../lib/standard/kernel.nit:352 */
32538 if (UNTAG_Bool(REGB2)) {
32539 /* parser/parser_prod.nit:6048 */
32540 REGB2 = REGB0;
32541 /* parser/parser_prod.nit:6049 */
32542 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32543 if (UNTAG_Bool(REGB3)) {
32544 } else {
32545 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6049);
32546 }
32547 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
32548 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
32549 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
32550 if (UNTAG_Bool(REGB3)) {
32551 } else {
32552 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32553 if (UNTAG_Bool(REGB4)) {
32554 REGB4 = TAG_Bool(false);
32555 REGB3 = REGB4;
32556 } else {
32557 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32558 REGB3 = REGB4;
32559 }
32560 }
32561 if (UNTAG_Bool(REGB3)) {
32562 /* parser/parser_prod.nit:6050 */
32563 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32564 if (UNTAG_Bool(REGB3)) {
32565 } else {
32566 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32567 if (UNTAG_Bool(REGB4)) {
32568 REGB4 = TAG_Bool(false);
32569 REGB3 = REGB4;
32570 } else {
32571 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32572 REGB3 = REGB4;
32573 }
32574 }
32575 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
32576 if (UNTAG_Bool(REGB3)) {
32577 /* parser/parser_prod.nit:6051 */
32578 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
32579 if (UNTAG_Bool(REGB3)) {
32580 } else {
32581 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6051);
32582 }
32583 /* parser/parser_prod.nit:6052 */
32584 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32585 if (UNTAG_Bool(REGB3)) {
32586 } else {
32587 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6052);
32588 }
32589 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
32590 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
32591 /* parser/parser_prod.nit:6053 */
32592 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32593 if (UNTAG_Bool(REGB3)) {
32594 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6053);
32595 }
32596 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32597 } else {
32598 /* parser/parser_prod.nit:6055 */
32599 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32600 if (UNTAG_Bool(REGB3)) {
32601 } else {
32602 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6055);
32603 }
32604 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
32605 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
32606 }
32607 /* parser/parser_prod.nit:6057 */
32608 goto label1;
32609 }
32610 /* ../lib/standard/kernel.nit:354 */
32611 REGB2 = TAG_Int(1);
32612 /* ../lib/standard/kernel.nit:235 */
32613 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
32614 /* ../lib/standard/kernel.nit:354 */
32615 REGB0 = REGB2;
32616 } else {
32617 /* ../lib/standard/kernel.nit:352 */
32618 goto label2;
32619 }
32620 }
32621 label2: while(0);
32622 label1: while(0);
32623 stack_frame_head = fra.me.prev;
32624 return;
32625 }
32626 void parser___parser_prod___ABraExpr___visit_all(val_t p0, val_t p1){
32627 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
32628 val_t REGB0;
32629 val_t tmp;
32630 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32631 fra.me.file = LOCATE_parser___parser_prod;
32632 fra.me.line = 6062;
32633 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___visit_all;
32634 fra.me.has_broke = 0;
32635 fra.me.REG_size = 3;
32636 fra.me.nitni_local_ref_head = NULL;
32637 fra.me.REG[0] = NIT_NULL;
32638 fra.me.REG[1] = NIT_NULL;
32639 fra.me.REG[2] = NIT_NULL;
32640 fra.me.REG[0] = p0;
32641 fra.me.REG[1] = p1;
32642 /* parser/parser_prod.nit:6064 */
32643 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32644 if (UNTAG_Bool(REGB0)) {
32645 } else {
32646 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6064);
32647 }
32648 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32649 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32650 /* parser/parser_prod.nit:6065 */
32651 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32652 if (UNTAG_Bool(REGB0)) {
32653 } else {
32654 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6065);
32655 }
32656 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32657 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32658 /* parser/parser_prod.nit:6066 */
32659 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32660 if (UNTAG_Bool(REGB0)) {
32661 } else {
32662 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6066);
32663 }
32664 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
32665 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExpr___visit_all_1));
32666 stack_frame_head = fra.me.prev;
32667 return;
32668 }
32669 void OC_parser___parser_prod___ABraExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
32670 struct {struct stack_frame_t me;} fra;
32671 fun_t CREG[1];
32672 val_t tmp;
32673 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32674 fra.me.file = LOCATE_parser___parser_prod;
32675 fra.me.line = 0;
32676 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___visit_all;
32677 fra.me.has_broke = 0;
32678 fra.me.REG_size = 1;
32679 fra.me.nitni_local_ref_head = NULL;
32680 fra.me.REG[0] = NIT_NULL;
32681 fra.me.closure_ctx = closctx_param;
32682 fra.me.closure_funs = CREG;
32683 fra.me.REG[0] = p0;
32684 CREG[0] = clos_fun0;
32685 /* parser/parser_prod.nit:6067 */
32686 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
32687 stack_frame_head = fra.me.prev;
32688 return;
32689 }
32690 void parser___parser_prod___ABraAssignExpr___empty_init(val_t p0, int* init_table){
32691 int itpos201 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraAssignExpr].i;
32692 struct {struct stack_frame_t me;} fra;
32693 val_t tmp;
32694 if (init_table[itpos201]) return;
32695 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32696 fra.me.file = LOCATE_parser___parser_prod;
32697 fra.me.line = 6072;
32698 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___empty_init;
32699 fra.me.has_broke = 0;
32700 fra.me.REG_size = 1;
32701 fra.me.nitni_local_ref_head = NULL;
32702 fra.me.REG[0] = NIT_NULL;
32703 fra.me.REG[0] = p0;
32704 stack_frame_head = fra.me.prev;
32705 init_table[itpos201] = 1;
32706 return;
32707 }
32708 void parser___parser_prod___ABraAssignExpr___init_abraassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
32709 int itpos202 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraAssignExpr].i;
32710 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
32711 val_t REGB0;
32712 val_t tmp;
32713 if (init_table[itpos202]) return;
32714 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32715 fra.me.file = LOCATE_parser___parser_prod;
32716 fra.me.line = 6074;
32717 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___init_abraassignexpr;
32718 fra.me.has_broke = 0;
32719 fra.me.REG_size = 6;
32720 fra.me.nitni_local_ref_head = NULL;
32721 fra.me.REG[0] = NIT_NULL;
32722 fra.me.REG[1] = NIT_NULL;
32723 fra.me.REG[2] = NIT_NULL;
32724 fra.me.REG[3] = NIT_NULL;
32725 fra.me.REG[4] = NIT_NULL;
32726 fra.me.REG[5] = NIT_NULL;
32727 fra.me.REG[0] = p0;
32728 fra.me.REG[1] = p1;
32729 fra.me.REG[2] = p2;
32730 fra.me.REG[3] = p3;
32731 fra.me.REG[4] = p4;
32732 /* parser/parser_prod.nit:6074 */
32733 fra.me.REG[5] = fra.me.REG[0];
32734 /* parser/parser_prod.nit:6081 */
32735 CALL_parser___parser_prod___ABraAssignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
32736 /* parser/parser_prod.nit:6082 */
32737 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32738 if (UNTAG_Bool(REGB0)) {
32739 } else {
32740 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6082);
32741 }
32742 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
32743 /* parser/parser_prod.nit:6083 */
32744 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32745 if (UNTAG_Bool(REGB0)) {
32746 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6083);
32747 }
32748 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
32749 /* parser/parser_prod.nit:6084 */
32750 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
32751 if (UNTAG_Bool(REGB0)) {
32752 } else {
32753 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6084);
32754 }
32755 ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[5]) = fra.me.REG[2];
32756 /* parser/parser_prod.nit:6085 */
32757 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32758 if (UNTAG_Bool(REGB0)) {
32759 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6085);
32760 }
32761 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
32762 /* parser/parser_prod.nit:6086 */
32763 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
32764 if (UNTAG_Bool(REGB0)) {
32765 } else {
32766 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6086);
32767 }
32768 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[5]) = fra.me.REG[3];
32769 /* parser/parser_prod.nit:6087 */
32770 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32771 if (UNTAG_Bool(REGB0)) {
32772 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6087);
32773 }
32774 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
32775 /* parser/parser_prod.nit:6088 */
32776 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
32777 if (UNTAG_Bool(REGB0)) {
32778 } else {
32779 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6088);
32780 }
32781 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
32782 /* parser/parser_prod.nit:6089 */
32783 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
32784 if (UNTAG_Bool(REGB0)) {
32785 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6089);
32786 }
32787 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
32788 stack_frame_head = fra.me.prev;
32789 init_table[itpos202] = 1;
32790 return;
32791 }
32792 void parser___parser_prod___ABraAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
32793 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32794 val_t REGB0;
32795 val_t REGB1;
32796 val_t tmp;
32797 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32798 fra.me.file = LOCATE_parser___parser_prod;
32799 fra.me.line = 6092;
32800 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___replace_child;
32801 fra.me.has_broke = 0;
32802 fra.me.REG_size = 4;
32803 fra.me.nitni_local_ref_head = NULL;
32804 fra.me.REG[0] = NIT_NULL;
32805 fra.me.REG[1] = NIT_NULL;
32806 fra.me.REG[2] = NIT_NULL;
32807 fra.me.REG[3] = NIT_NULL;
32808 fra.me.REG[0] = p0;
32809 fra.me.REG[1] = p1;
32810 fra.me.REG[2] = p2;
32811 /* parser/parser_prod.nit:6094 */
32812 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32813 if (UNTAG_Bool(REGB0)) {
32814 } else {
32815 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6094);
32816 }
32817 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32818 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32819 if (UNTAG_Bool(REGB0)) {
32820 } else {
32821 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32822 REGB0 = REGB1;
32823 }
32824 if (UNTAG_Bool(REGB0)) {
32825 /* parser/parser_prod.nit:6095 */
32826 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32827 if (UNTAG_Bool(REGB0)) {
32828 } else {
32829 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32830 if (UNTAG_Bool(REGB1)) {
32831 REGB1 = TAG_Bool(false);
32832 REGB0 = REGB1;
32833 } else {
32834 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32835 REGB0 = REGB1;
32836 }
32837 }
32838 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32839 if (UNTAG_Bool(REGB0)) {
32840 /* parser/parser_prod.nit:6096 */
32841 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32842 if (UNTAG_Bool(REGB0)) {
32843 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6096);
32844 }
32845 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32846 /* parser/parser_prod.nit:6097 */
32847 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
32848 if (UNTAG_Bool(REGB0)) {
32849 } else {
32850 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6097);
32851 }
32852 /* parser/parser_prod.nit:6098 */
32853 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
32854 } else {
32855 /* parser/parser_prod.nit:6100 */
32856 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6100);
32857 }
32858 /* parser/parser_prod.nit:6102 */
32859 goto label1;
32860 }
32861 /* parser/parser_prod.nit:6104 */
32862 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32863 if (UNTAG_Bool(REGB0)) {
32864 } else {
32865 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6104);
32866 }
32867 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32868 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32869 if (UNTAG_Bool(REGB0)) {
32870 } else {
32871 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32872 REGB0 = REGB1;
32873 }
32874 if (UNTAG_Bool(REGB0)) {
32875 /* parser/parser_prod.nit:6105 */
32876 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32877 if (UNTAG_Bool(REGB0)) {
32878 } else {
32879 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32880 if (UNTAG_Bool(REGB1)) {
32881 REGB1 = TAG_Bool(false);
32882 REGB0 = REGB1;
32883 } else {
32884 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32885 REGB0 = REGB1;
32886 }
32887 }
32888 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32889 if (UNTAG_Bool(REGB0)) {
32890 /* parser/parser_prod.nit:6106 */
32891 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32892 if (UNTAG_Bool(REGB0)) {
32893 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6106);
32894 }
32895 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32896 /* parser/parser_prod.nit:6107 */
32897 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
32898 if (UNTAG_Bool(REGB0)) {
32899 } else {
32900 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6107);
32901 }
32902 /* parser/parser_prod.nit:6108 */
32903 ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
32904 } else {
32905 /* parser/parser_prod.nit:6110 */
32906 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6110);
32907 }
32908 /* parser/parser_prod.nit:6112 */
32909 goto label1;
32910 }
32911 /* parser/parser_prod.nit:6114 */
32912 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
32913 if (UNTAG_Bool(REGB0)) {
32914 } else {
32915 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6114);
32916 }
32917 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
32918 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32919 if (UNTAG_Bool(REGB0)) {
32920 } else {
32921 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32922 REGB0 = REGB1;
32923 }
32924 if (UNTAG_Bool(REGB0)) {
32925 /* parser/parser_prod.nit:6115 */
32926 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32927 if (UNTAG_Bool(REGB0)) {
32928 } else {
32929 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32930 if (UNTAG_Bool(REGB1)) {
32931 REGB1 = TAG_Bool(false);
32932 REGB0 = REGB1;
32933 } else {
32934 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32935 REGB0 = REGB1;
32936 }
32937 }
32938 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32939 if (UNTAG_Bool(REGB0)) {
32940 /* parser/parser_prod.nit:6116 */
32941 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32942 if (UNTAG_Bool(REGB0)) {
32943 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6116);
32944 }
32945 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32946 /* parser/parser_prod.nit:6117 */
32947 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
32948 if (UNTAG_Bool(REGB0)) {
32949 } else {
32950 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6117);
32951 }
32952 /* parser/parser_prod.nit:6118 */
32953 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
32954 } else {
32955 /* parser/parser_prod.nit:6120 */
32956 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6120);
32957 }
32958 /* parser/parser_prod.nit:6122 */
32959 goto label1;
32960 }
32961 /* parser/parser_prod.nit:6124 */
32962 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
32963 if (UNTAG_Bool(REGB0)) {
32964 } else {
32965 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6124);
32966 }
32967 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
32968 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32969 if (UNTAG_Bool(REGB0)) {
32970 } else {
32971 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32972 REGB0 = REGB1;
32973 }
32974 if (UNTAG_Bool(REGB0)) {
32975 /* parser/parser_prod.nit:6125 */
32976 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32977 if (UNTAG_Bool(REGB0)) {
32978 } else {
32979 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32980 if (UNTAG_Bool(REGB1)) {
32981 REGB1 = TAG_Bool(false);
32982 REGB0 = REGB1;
32983 } else {
32984 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32985 REGB0 = REGB1;
32986 }
32987 }
32988 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32989 if (UNTAG_Bool(REGB0)) {
32990 /* parser/parser_prod.nit:6126 */
32991 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32992 if (UNTAG_Bool(REGB0)) {
32993 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6126);
32994 }
32995 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32996 /* parser/parser_prod.nit:6127 */
32997 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
32998 if (UNTAG_Bool(REGB0)) {
32999 } else {
33000 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6127);
33001 }
33002 /* parser/parser_prod.nit:6128 */
33003 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
33004 } else {
33005 /* parser/parser_prod.nit:6130 */
33006 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6130);
33007 }
33008 /* parser/parser_prod.nit:6132 */
33009 goto label1;
33010 }
33011 label1: while(0);
33012 stack_frame_head = fra.me.prev;
33013 return;
33014 }
33015 void parser___parser_prod___ABraAssignExpr___visit_all(val_t p0, val_t p1){
33016 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33017 val_t REGB0;
33018 val_t tmp;
33019 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33020 fra.me.file = LOCATE_parser___parser_prod;
33021 fra.me.line = 6136;
33022 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___visit_all;
33023 fra.me.has_broke = 0;
33024 fra.me.REG_size = 3;
33025 fra.me.nitni_local_ref_head = NULL;
33026 fra.me.REG[0] = NIT_NULL;
33027 fra.me.REG[1] = NIT_NULL;
33028 fra.me.REG[2] = NIT_NULL;
33029 fra.me.REG[0] = p0;
33030 fra.me.REG[1] = p1;
33031 /* parser/parser_prod.nit:6138 */
33032 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33033 if (UNTAG_Bool(REGB0)) {
33034 } else {
33035 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6138);
33036 }
33037 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
33038 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33039 /* parser/parser_prod.nit:6139 */
33040 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33041 if (UNTAG_Bool(REGB0)) {
33042 } else {
33043 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6139);
33044 }
33045 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33046 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33047 /* parser/parser_prod.nit:6140 */
33048 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
33049 if (UNTAG_Bool(REGB0)) {
33050 } else {
33051 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6140);
33052 }
33053 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
33054 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33055 /* parser/parser_prod.nit:6141 */
33056 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33057 if (UNTAG_Bool(REGB0)) {
33058 } else {
33059 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6141);
33060 }
33061 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
33062 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33063 stack_frame_head = fra.me.prev;
33064 return;
33065 }
33066 void parser___parser_prod___ABraReassignExpr___empty_init(val_t p0, int* init_table){
33067 int itpos203 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraReassignExpr].i;
33068 struct {struct stack_frame_t me;} fra;
33069 val_t tmp;
33070 if (init_table[itpos203]) return;
33071 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33072 fra.me.file = LOCATE_parser___parser_prod;
33073 fra.me.line = 6145;
33074 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___empty_init;
33075 fra.me.has_broke = 0;
33076 fra.me.REG_size = 1;
33077 fra.me.nitni_local_ref_head = NULL;
33078 fra.me.REG[0] = NIT_NULL;
33079 fra.me.REG[0] = p0;
33080 stack_frame_head = fra.me.prev;
33081 init_table[itpos203] = 1;
33082 return;
33083 }
33084 void parser___parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
33085 int itpos204 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraReassignExpr].i;
33086 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
33087 val_t REGB0;
33088 val_t tmp;
33089 if (init_table[itpos204]) return;
33090 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33091 fra.me.file = LOCATE_parser___parser_prod;
33092 fra.me.line = 6147;
33093 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr;
33094 fra.me.has_broke = 0;
33095 fra.me.REG_size = 6;
33096 fra.me.nitni_local_ref_head = NULL;
33097 fra.me.REG[0] = NIT_NULL;
33098 fra.me.REG[1] = NIT_NULL;
33099 fra.me.REG[2] = NIT_NULL;
33100 fra.me.REG[3] = NIT_NULL;
33101 fra.me.REG[4] = NIT_NULL;
33102 fra.me.REG[5] = NIT_NULL;
33103 fra.me.REG[0] = p0;
33104 fra.me.REG[1] = p1;
33105 fra.me.REG[2] = p2;
33106 fra.me.REG[3] = p3;
33107 fra.me.REG[4] = p4;
33108 /* parser/parser_prod.nit:6147 */
33109 fra.me.REG[5] = fra.me.REG[0];
33110 /* parser/parser_prod.nit:6154 */
33111 CALL_parser___parser_prod___ABraReassignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
33112 /* parser/parser_prod.nit:6155 */
33113 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
33114 if (UNTAG_Bool(REGB0)) {
33115 } else {
33116 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6155);
33117 }
33118 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
33119 /* parser/parser_prod.nit:6156 */
33120 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33121 if (UNTAG_Bool(REGB0)) {
33122 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6156);
33123 }
33124 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
33125 /* parser/parser_prod.nit:6157 */
33126 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
33127 if (UNTAG_Bool(REGB0)) {
33128 } else {
33129 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6157);
33130 }
33131 ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[5]) = fra.me.REG[2];
33132 /* parser/parser_prod.nit:6158 */
33133 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33134 if (UNTAG_Bool(REGB0)) {
33135 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6158);
33136 }
33137 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
33138 /* parser/parser_prod.nit:6159 */
33139 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
33140 if (UNTAG_Bool(REGB0)) {
33141 } else {
33142 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6159);
33143 }
33144 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[5]) = fra.me.REG[3];
33145 /* parser/parser_prod.nit:6160 */
33146 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
33147 if (UNTAG_Bool(REGB0)) {
33148 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6160);
33149 }
33150 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
33151 /* parser/parser_prod.nit:6161 */
33152 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
33153 if (UNTAG_Bool(REGB0)) {
33154 } else {
33155 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6161);
33156 }
33157 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
33158 /* parser/parser_prod.nit:6162 */
33159 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
33160 if (UNTAG_Bool(REGB0)) {
33161 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6162);
33162 }
33163 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
33164 stack_frame_head = fra.me.prev;
33165 init_table[itpos204] = 1;
33166 return;
33167 }
33168 void parser___parser_prod___ABraReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
33169 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33170 val_t REGB0;
33171 val_t REGB1;
33172 val_t tmp;
33173 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33174 fra.me.file = LOCATE_parser___parser_prod;
33175 fra.me.line = 6165;
33176 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___replace_child;
33177 fra.me.has_broke = 0;
33178 fra.me.REG_size = 4;
33179 fra.me.nitni_local_ref_head = NULL;
33180 fra.me.REG[0] = NIT_NULL;
33181 fra.me.REG[1] = NIT_NULL;
33182 fra.me.REG[2] = NIT_NULL;
33183 fra.me.REG[3] = NIT_NULL;
33184 fra.me.REG[0] = p0;
33185 fra.me.REG[1] = p1;
33186 fra.me.REG[2] = p2;
33187 /* parser/parser_prod.nit:6167 */
33188 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33189 if (UNTAG_Bool(REGB0)) {
33190 } else {
33191 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6167);
33192 }
33193 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
33194 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33195 if (UNTAG_Bool(REGB0)) {
33196 } else {
33197 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33198 REGB0 = REGB1;
33199 }
33200 if (UNTAG_Bool(REGB0)) {
33201 /* parser/parser_prod.nit:6168 */
33202 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33203 if (UNTAG_Bool(REGB0)) {
33204 } else {
33205 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33206 if (UNTAG_Bool(REGB1)) {
33207 REGB1 = TAG_Bool(false);
33208 REGB0 = REGB1;
33209 } else {
33210 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33211 REGB0 = REGB1;
33212 }
33213 }
33214 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33215 if (UNTAG_Bool(REGB0)) {
33216 /* parser/parser_prod.nit:6169 */
33217 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33218 if (UNTAG_Bool(REGB0)) {
33219 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6169);
33220 }
33221 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33222 /* parser/parser_prod.nit:6170 */
33223 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
33224 if (UNTAG_Bool(REGB0)) {
33225 } else {
33226 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6170);
33227 }
33228 /* parser/parser_prod.nit:6171 */
33229 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
33230 } else {
33231 /* parser/parser_prod.nit:6173 */
33232 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6173);
33233 }
33234 /* parser/parser_prod.nit:6175 */
33235 goto label1;
33236 }
33237 /* parser/parser_prod.nit:6177 */
33238 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33239 if (UNTAG_Bool(REGB0)) {
33240 } else {
33241 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6177);
33242 }
33243 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33244 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33245 if (UNTAG_Bool(REGB0)) {
33246 } else {
33247 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33248 REGB0 = REGB1;
33249 }
33250 if (UNTAG_Bool(REGB0)) {
33251 /* parser/parser_prod.nit:6178 */
33252 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33253 if (UNTAG_Bool(REGB0)) {
33254 } else {
33255 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33256 if (UNTAG_Bool(REGB1)) {
33257 REGB1 = TAG_Bool(false);
33258 REGB0 = REGB1;
33259 } else {
33260 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33261 REGB0 = REGB1;
33262 }
33263 }
33264 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33265 if (UNTAG_Bool(REGB0)) {
33266 /* parser/parser_prod.nit:6179 */
33267 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33268 if (UNTAG_Bool(REGB0)) {
33269 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6179);
33270 }
33271 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33272 /* parser/parser_prod.nit:6180 */
33273 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
33274 if (UNTAG_Bool(REGB0)) {
33275 } else {
33276 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6180);
33277 }
33278 /* parser/parser_prod.nit:6181 */
33279 ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
33280 } else {
33281 /* parser/parser_prod.nit:6183 */
33282 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6183);
33283 }
33284 /* parser/parser_prod.nit:6185 */
33285 goto label1;
33286 }
33287 /* parser/parser_prod.nit:6187 */
33288 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
33289 if (UNTAG_Bool(REGB0)) {
33290 } else {
33291 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6187);
33292 }
33293 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
33294 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33295 if (UNTAG_Bool(REGB0)) {
33296 } else {
33297 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33298 REGB0 = REGB1;
33299 }
33300 if (UNTAG_Bool(REGB0)) {
33301 /* parser/parser_prod.nit:6188 */
33302 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33303 if (UNTAG_Bool(REGB0)) {
33304 } else {
33305 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33306 if (UNTAG_Bool(REGB1)) {
33307 REGB1 = TAG_Bool(false);
33308 REGB0 = REGB1;
33309 } else {
33310 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33311 REGB0 = REGB1;
33312 }
33313 }
33314 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33315 if (UNTAG_Bool(REGB0)) {
33316 /* parser/parser_prod.nit:6189 */
33317 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33318 if (UNTAG_Bool(REGB0)) {
33319 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6189);
33320 }
33321 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33322 /* parser/parser_prod.nit:6190 */
33323 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAssignOp, ID_parser___parser_nodes___AAssignOp)) /*cast AAssignOp*/;
33324 if (UNTAG_Bool(REGB0)) {
33325 } else {
33326 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6190);
33327 }
33328 /* parser/parser_prod.nit:6191 */
33329 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
33330 } else {
33331 /* parser/parser_prod.nit:6193 */
33332 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6193);
33333 }
33334 /* parser/parser_prod.nit:6195 */
33335 goto label1;
33336 }
33337 /* parser/parser_prod.nit:6197 */
33338 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33339 if (UNTAG_Bool(REGB0)) {
33340 } else {
33341 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6197);
33342 }
33343 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
33344 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33345 if (UNTAG_Bool(REGB0)) {
33346 } else {
33347 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33348 REGB0 = REGB1;
33349 }
33350 if (UNTAG_Bool(REGB0)) {
33351 /* parser/parser_prod.nit:6198 */
33352 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33353 if (UNTAG_Bool(REGB0)) {
33354 } else {
33355 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33356 if (UNTAG_Bool(REGB1)) {
33357 REGB1 = TAG_Bool(false);
33358 REGB0 = REGB1;
33359 } else {
33360 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33361 REGB0 = REGB1;
33362 }
33363 }
33364 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33365 if (UNTAG_Bool(REGB0)) {
33366 /* parser/parser_prod.nit:6199 */
33367 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33368 if (UNTAG_Bool(REGB0)) {
33369 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6199);
33370 }
33371 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33372 /* parser/parser_prod.nit:6200 */
33373 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
33374 if (UNTAG_Bool(REGB0)) {
33375 } else {
33376 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6200);
33377 }
33378 /* parser/parser_prod.nit:6201 */
33379 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
33380 } else {
33381 /* parser/parser_prod.nit:6203 */
33382 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6203);
33383 }
33384 /* parser/parser_prod.nit:6205 */
33385 goto label1;
33386 }
33387 label1: while(0);
33388 stack_frame_head = fra.me.prev;
33389 return;
33390 }
33391 void parser___parser_prod___ABraReassignExpr___visit_all(val_t p0, val_t p1){
33392 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33393 val_t REGB0;
33394 val_t tmp;
33395 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33396 fra.me.file = LOCATE_parser___parser_prod;
33397 fra.me.line = 6209;
33398 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___visit_all;
33399 fra.me.has_broke = 0;
33400 fra.me.REG_size = 3;
33401 fra.me.nitni_local_ref_head = NULL;
33402 fra.me.REG[0] = NIT_NULL;
33403 fra.me.REG[1] = NIT_NULL;
33404 fra.me.REG[2] = NIT_NULL;
33405 fra.me.REG[0] = p0;
33406 fra.me.REG[1] = p1;
33407 /* parser/parser_prod.nit:6211 */
33408 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33409 if (UNTAG_Bool(REGB0)) {
33410 } else {
33411 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6211);
33412 }
33413 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
33414 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33415 /* parser/parser_prod.nit:6212 */
33416 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33417 if (UNTAG_Bool(REGB0)) {
33418 } else {
33419 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6212);
33420 }
33421 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33422 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33423 /* parser/parser_prod.nit:6213 */
33424 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
33425 if (UNTAG_Bool(REGB0)) {
33426 } else {
33427 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6213);
33428 }
33429 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
33430 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33431 /* parser/parser_prod.nit:6214 */
33432 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33433 if (UNTAG_Bool(REGB0)) {
33434 } else {
33435 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6214);
33436 }
33437 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
33438 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33439 stack_frame_head = fra.me.prev;
33440 return;
33441 }
33442 void parser___parser_prod___AClosureCallExpr___empty_init(val_t p0, int* init_table){
33443 int itpos205 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureCallExpr].i;
33444 struct {struct stack_frame_t me;} fra;
33445 val_t tmp;
33446 if (init_table[itpos205]) return;
33447 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33448 fra.me.file = LOCATE_parser___parser_prod;
33449 fra.me.line = 6218;
33450 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___empty_init;
33451 fra.me.has_broke = 0;
33452 fra.me.REG_size = 1;
33453 fra.me.nitni_local_ref_head = NULL;
33454 fra.me.REG[0] = NIT_NULL;
33455 fra.me.REG[0] = p0;
33456 stack_frame_head = fra.me.prev;
33457 init_table[itpos205] = 1;
33458 return;
33459 }
33460 void parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
33461 int itpos206 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureCallExpr].i;
33462 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33463 val_t REGB0;
33464 val_t tmp;
33465 if (init_table[itpos206]) return;
33466 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33467 fra.me.file = LOCATE_parser___parser_prod;
33468 fra.me.line = 6220;
33469 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr;
33470 fra.me.has_broke = 0;
33471 fra.me.REG_size = 5;
33472 fra.me.nitni_local_ref_head = NULL;
33473 fra.me.REG[0] = NIT_NULL;
33474 fra.me.REG[1] = NIT_NULL;
33475 fra.me.REG[2] = NIT_NULL;
33476 fra.me.REG[3] = NIT_NULL;
33477 fra.me.REG[4] = NIT_NULL;
33478 fra.me.REG[0] = p0;
33479 fra.me.REG[1] = p1;
33480 fra.me.REG[2] = p2;
33481 fra.me.REG[3] = p3;
33482 /* parser/parser_prod.nit:6220 */
33483 fra.me.REG[4] = fra.me.REG[0];
33484 /* parser/parser_prod.nit:6226 */
33485 CALL_parser___parser_prod___AClosureCallExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
33486 /* parser/parser_prod.nit:6227 */
33487 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
33488 if (UNTAG_Bool(REGB0)) {
33489 } else {
33490 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6227);
33491 }
33492 ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
33493 /* parser/parser_prod.nit:6228 */
33494 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33495 if (UNTAG_Bool(REGB0)) {
33496 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6228);
33497 }
33498 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
33499 /* parser/parser_prod.nit:6229 */
33500 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
33501 if (UNTAG_Bool(REGB0)) {
33502 } else {
33503 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6229);
33504 }
33505 ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[4]) = fra.me.REG[2];
33506 /* parser/parser_prod.nit:6230 */
33507 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33508 if (UNTAG_Bool(REGB0)) {
33509 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6230);
33510 }
33511 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
33512 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr_1));
33513 stack_frame_head = fra.me.prev;
33514 init_table[itpos206] = 1;
33515 return;
33516 }
33517 void OC_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
33518 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33519 val_t REGB0;
33520 fun_t CREG[1];
33521 val_t tmp;
33522 /* parser/parser_prod.nit:6231 */
33523 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33524 fra.me.file = LOCATE_parser___parser_prod;
33525 fra.me.line = 0;
33526 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr;
33527 fra.me.has_broke = 0;
33528 fra.me.REG_size = 2;
33529 fra.me.nitni_local_ref_head = NULL;
33530 fra.me.REG[0] = NIT_NULL;
33531 fra.me.REG[1] = NIT_NULL;
33532 fra.me.closure_ctx = closctx_param;
33533 fra.me.closure_funs = CREG;
33534 fra.me.REG[0] = p0;
33535 CREG[0] = clos_fun0;
33536 /* parser/parser_prod.nit:6232 */
33537 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
33538 if (UNTAG_Bool(REGB0)) {
33539 } else {
33540 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6232);
33541 }
33542 /* parser/parser_prod.nit:6233 */
33543 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(closctx->REG[4])!=NIT_NULL);
33544 if (UNTAG_Bool(REGB0)) {
33545 } else {
33546 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6233);
33547 }
33548 fra.me.REG[1] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(closctx->REG[4]);
33549 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33550 /* parser/parser_prod.nit:6234 */
33551 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
33552 stack_frame_head = fra.me.prev;
33553 return;
33554 }
33555 void parser___parser_prod___AClosureCallExpr___replace_child(val_t p0, val_t p1, val_t p2){
33556 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33557 val_t REGB0;
33558 val_t REGB1;
33559 val_t REGB2;
33560 val_t REGB3;
33561 val_t REGB4;
33562 val_t tmp;
33563 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33564 fra.me.file = LOCATE_parser___parser_prod;
33565 fra.me.line = 6238;
33566 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___replace_child;
33567 fra.me.has_broke = 0;
33568 fra.me.REG_size = 4;
33569 fra.me.nitni_local_ref_head = NULL;
33570 fra.me.REG[0] = NIT_NULL;
33571 fra.me.REG[1] = NIT_NULL;
33572 fra.me.REG[2] = NIT_NULL;
33573 fra.me.REG[3] = NIT_NULL;
33574 fra.me.REG[0] = p0;
33575 fra.me.REG[1] = p1;
33576 fra.me.REG[2] = p2;
33577 /* parser/parser_prod.nit:6240 */
33578 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0])!=NIT_NULL);
33579 if (UNTAG_Bool(REGB0)) {
33580 } else {
33581 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6240);
33582 }
33583 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]);
33584 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33585 if (UNTAG_Bool(REGB0)) {
33586 } else {
33587 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33588 REGB0 = REGB1;
33589 }
33590 if (UNTAG_Bool(REGB0)) {
33591 /* parser/parser_prod.nit:6241 */
33592 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33593 if (UNTAG_Bool(REGB0)) {
33594 } else {
33595 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33596 if (UNTAG_Bool(REGB1)) {
33597 REGB1 = TAG_Bool(false);
33598 REGB0 = REGB1;
33599 } else {
33600 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33601 REGB0 = REGB1;
33602 }
33603 }
33604 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33605 if (UNTAG_Bool(REGB0)) {
33606 /* parser/parser_prod.nit:6242 */
33607 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33608 if (UNTAG_Bool(REGB0)) {
33609 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6242);
33610 }
33611 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33612 /* parser/parser_prod.nit:6243 */
33613 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
33614 if (UNTAG_Bool(REGB0)) {
33615 } else {
33616 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6243);
33617 }
33618 /* parser/parser_prod.nit:6244 */
33619 ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
33620 } else {
33621 /* parser/parser_prod.nit:6246 */
33622 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6246);
33623 }
33624 /* parser/parser_prod.nit:6248 */
33625 goto label1;
33626 }
33627 /* parser/parser_prod.nit:6250 */
33628 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33629 if (UNTAG_Bool(REGB0)) {
33630 } else {
33631 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6250);
33632 }
33633 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
33634 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33635 if (UNTAG_Bool(REGB0)) {
33636 } else {
33637 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33638 REGB0 = REGB1;
33639 }
33640 if (UNTAG_Bool(REGB0)) {
33641 /* parser/parser_prod.nit:6251 */
33642 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33643 if (UNTAG_Bool(REGB0)) {
33644 } else {
33645 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33646 if (UNTAG_Bool(REGB1)) {
33647 REGB1 = TAG_Bool(false);
33648 REGB0 = REGB1;
33649 } else {
33650 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33651 REGB0 = REGB1;
33652 }
33653 }
33654 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33655 if (UNTAG_Bool(REGB0)) {
33656 /* parser/parser_prod.nit:6252 */
33657 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33658 if (UNTAG_Bool(REGB0)) {
33659 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6252);
33660 }
33661 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33662 /* parser/parser_prod.nit:6253 */
33663 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
33664 if (UNTAG_Bool(REGB0)) {
33665 } else {
33666 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6253);
33667 }
33668 /* parser/parser_prod.nit:6254 */
33669 ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
33670 } else {
33671 /* parser/parser_prod.nit:6256 */
33672 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6256);
33673 }
33674 /* parser/parser_prod.nit:6258 */
33675 goto label1;
33676 }
33677 /* parser/parser_prod.nit:6260 */
33678 REGB0 = TAG_Int(0);
33679 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
33680 if (UNTAG_Bool(REGB1)) {
33681 } else {
33682 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6260);
33683 }
33684 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
33685 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
33686 /* ../lib/standard/kernel.nit:352 */
33687 while(1) {
33688 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
33689 if (UNTAG_Bool(REGB2)) {
33690 } else {
33691 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
33692 }
33693 /* ../lib/standard/kernel.nit:232 */
33694 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
33695 /* ../lib/standard/kernel.nit:352 */
33696 if (UNTAG_Bool(REGB2)) {
33697 /* parser/parser_prod.nit:6260 */
33698 REGB2 = REGB0;
33699 /* parser/parser_prod.nit:6261 */
33700 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
33701 if (UNTAG_Bool(REGB3)) {
33702 } else {
33703 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6261);
33704 }
33705 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
33706 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
33707 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
33708 if (UNTAG_Bool(REGB3)) {
33709 } else {
33710 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
33711 if (UNTAG_Bool(REGB4)) {
33712 REGB4 = TAG_Bool(false);
33713 REGB3 = REGB4;
33714 } else {
33715 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33716 REGB3 = REGB4;
33717 }
33718 }
33719 if (UNTAG_Bool(REGB3)) {
33720 /* parser/parser_prod.nit:6262 */
33721 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33722 if (UNTAG_Bool(REGB3)) {
33723 } else {
33724 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33725 if (UNTAG_Bool(REGB4)) {
33726 REGB4 = TAG_Bool(false);
33727 REGB3 = REGB4;
33728 } else {
33729 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33730 REGB3 = REGB4;
33731 }
33732 }
33733 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
33734 if (UNTAG_Bool(REGB3)) {
33735 /* parser/parser_prod.nit:6263 */
33736 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
33737 if (UNTAG_Bool(REGB3)) {
33738 } else {
33739 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6263);
33740 }
33741 /* parser/parser_prod.nit:6264 */
33742 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
33743 if (UNTAG_Bool(REGB3)) {
33744 } else {
33745 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6264);
33746 }
33747 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
33748 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
33749 /* parser/parser_prod.nit:6265 */
33750 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33751 if (UNTAG_Bool(REGB3)) {
33752 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6265);
33753 }
33754 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33755 } else {
33756 /* parser/parser_prod.nit:6267 */
33757 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
33758 if (UNTAG_Bool(REGB3)) {
33759 } else {
33760 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6267);
33761 }
33762 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
33763 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
33764 }
33765 /* parser/parser_prod.nit:6269 */
33766 goto label1;
33767 }
33768 /* ../lib/standard/kernel.nit:354 */
33769 REGB2 = TAG_Int(1);
33770 /* ../lib/standard/kernel.nit:235 */
33771 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
33772 /* ../lib/standard/kernel.nit:354 */
33773 REGB0 = REGB2;
33774 } else {
33775 /* ../lib/standard/kernel.nit:352 */
33776 goto label2;
33777 }
33778 }
33779 label2: while(0);
33780 label1: while(0);
33781 stack_frame_head = fra.me.prev;
33782 return;
33783 }
33784 void parser___parser_prod___AClosureCallExpr___visit_all(val_t p0, val_t p1){
33785 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33786 val_t REGB0;
33787 val_t tmp;
33788 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33789 fra.me.file = LOCATE_parser___parser_prod;
33790 fra.me.line = 6274;
33791 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___visit_all;
33792 fra.me.has_broke = 0;
33793 fra.me.REG_size = 3;
33794 fra.me.nitni_local_ref_head = NULL;
33795 fra.me.REG[0] = NIT_NULL;
33796 fra.me.REG[1] = NIT_NULL;
33797 fra.me.REG[2] = NIT_NULL;
33798 fra.me.REG[0] = p0;
33799 fra.me.REG[1] = p1;
33800 /* parser/parser_prod.nit:6276 */
33801 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0])!=NIT_NULL);
33802 if (UNTAG_Bool(REGB0)) {
33803 } else {
33804 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6276);
33805 }
33806 fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]);
33807 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33808 /* parser/parser_prod.nit:6277 */
33809 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33810 if (UNTAG_Bool(REGB0)) {
33811 } else {
33812 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6277);
33813 }
33814 fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
33815 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33816 /* parser/parser_prod.nit:6278 */
33817 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
33818 if (UNTAG_Bool(REGB0)) {
33819 } else {
33820 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6278);
33821 }
33822 fra.me.REG[0] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
33823 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AClosureCallExpr___visit_all_1));
33824 stack_frame_head = fra.me.prev;
33825 return;
33826 }
33827 void OC_parser___parser_prod___AClosureCallExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
33828 struct {struct stack_frame_t me;} fra;
33829 fun_t CREG[1];
33830 val_t tmp;
33831 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33832 fra.me.file = LOCATE_parser___parser_prod;
33833 fra.me.line = 0;
33834 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___visit_all;
33835 fra.me.has_broke = 0;
33836 fra.me.REG_size = 1;
33837 fra.me.nitni_local_ref_head = NULL;
33838 fra.me.REG[0] = NIT_NULL;
33839 fra.me.closure_ctx = closctx_param;
33840 fra.me.closure_funs = CREG;
33841 fra.me.REG[0] = p0;
33842 CREG[0] = clos_fun0;
33843 /* parser/parser_prod.nit:6279 */
33844 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
33845 stack_frame_head = fra.me.prev;
33846 return;
33847 }
33848 void parser___parser_prod___AVarExpr___empty_init(val_t p0, int* init_table){
33849 int itpos207 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarExpr].i;
33850 struct {struct stack_frame_t me;} fra;
33851 val_t tmp;
33852 if (init_table[itpos207]) return;
33853 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33854 fra.me.file = LOCATE_parser___parser_prod;
33855 fra.me.line = 6284;
33856 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___empty_init;
33857 fra.me.has_broke = 0;
33858 fra.me.REG_size = 1;
33859 fra.me.nitni_local_ref_head = NULL;
33860 fra.me.REG[0] = NIT_NULL;
33861 fra.me.REG[0] = p0;
33862 stack_frame_head = fra.me.prev;
33863 init_table[itpos207] = 1;
33864 return;
33865 }
33866 void parser___parser_prod___AVarExpr___init_avarexpr(val_t p0, val_t p1, int* init_table){
33867 int itpos208 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarExpr].i;
33868 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33869 val_t REGB0;
33870 val_t tmp;
33871 if (init_table[itpos208]) return;
33872 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33873 fra.me.file = LOCATE_parser___parser_prod;
33874 fra.me.line = 6286;
33875 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___init_avarexpr;
33876 fra.me.has_broke = 0;
33877 fra.me.REG_size = 3;
33878 fra.me.nitni_local_ref_head = NULL;
33879 fra.me.REG[0] = NIT_NULL;
33880 fra.me.REG[1] = NIT_NULL;
33881 fra.me.REG[2] = NIT_NULL;
33882 fra.me.REG[0] = p0;
33883 fra.me.REG[1] = p1;
33884 /* parser/parser_prod.nit:6286 */
33885 fra.me.REG[2] = fra.me.REG[0];
33886 /* parser/parser_prod.nit:6290 */
33887 CALL_parser___parser_prod___AVarExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
33888 /* parser/parser_prod.nit:6291 */
33889 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
33890 if (UNTAG_Bool(REGB0)) {
33891 } else {
33892 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6291);
33893 }
33894 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[2]) = fra.me.REG[1];
33895 /* parser/parser_prod.nit:6292 */
33896 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33897 if (UNTAG_Bool(REGB0)) {
33898 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6292);
33899 }
33900 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33901 stack_frame_head = fra.me.prev;
33902 init_table[itpos208] = 1;
33903 return;
33904 }
33905 void parser___parser_prod___AVarExpr___replace_child(val_t p0, val_t p1, val_t p2){
33906 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33907 val_t REGB0;
33908 val_t REGB1;
33909 val_t tmp;
33910 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33911 fra.me.file = LOCATE_parser___parser_prod;
33912 fra.me.line = 6295;
33913 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___replace_child;
33914 fra.me.has_broke = 0;
33915 fra.me.REG_size = 4;
33916 fra.me.nitni_local_ref_head = NULL;
33917 fra.me.REG[0] = NIT_NULL;
33918 fra.me.REG[1] = NIT_NULL;
33919 fra.me.REG[2] = NIT_NULL;
33920 fra.me.REG[3] = NIT_NULL;
33921 fra.me.REG[0] = p0;
33922 fra.me.REG[1] = p1;
33923 fra.me.REG[2] = p2;
33924 /* parser/parser_prod.nit:6297 */
33925 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
33926 if (UNTAG_Bool(REGB0)) {
33927 } else {
33928 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6297);
33929 }
33930 fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
33931 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33932 if (UNTAG_Bool(REGB0)) {
33933 } else {
33934 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33935 REGB0 = REGB1;
33936 }
33937 if (UNTAG_Bool(REGB0)) {
33938 /* parser/parser_prod.nit:6298 */
33939 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33940 if (UNTAG_Bool(REGB0)) {
33941 } else {
33942 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33943 if (UNTAG_Bool(REGB1)) {
33944 REGB1 = TAG_Bool(false);
33945 REGB0 = REGB1;
33946 } else {
33947 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33948 REGB0 = REGB1;
33949 }
33950 }
33951 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33952 if (UNTAG_Bool(REGB0)) {
33953 /* parser/parser_prod.nit:6299 */
33954 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33955 if (UNTAG_Bool(REGB0)) {
33956 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6299);
33957 }
33958 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33959 /* parser/parser_prod.nit:6300 */
33960 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
33961 if (UNTAG_Bool(REGB0)) {
33962 } else {
33963 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6300);
33964 }
33965 /* parser/parser_prod.nit:6301 */
33966 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
33967 } else {
33968 /* parser/parser_prod.nit:6303 */
33969 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6303);
33970 }
33971 /* parser/parser_prod.nit:6305 */
33972 goto label1;
33973 }
33974 label1: while(0);
33975 stack_frame_head = fra.me.prev;
33976 return;
33977 }
33978 void parser___parser_prod___AVarExpr___visit_all(val_t p0, val_t p1){
33979 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33980 val_t REGB0;
33981 val_t tmp;
33982 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33983 fra.me.file = LOCATE_parser___parser_prod;
33984 fra.me.line = 6309;
33985 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___visit_all;
33986 fra.me.has_broke = 0;
33987 fra.me.REG_size = 2;
33988 fra.me.nitni_local_ref_head = NULL;
33989 fra.me.REG[0] = NIT_NULL;
33990 fra.me.REG[1] = NIT_NULL;
33991 fra.me.REG[0] = p0;
33992 fra.me.REG[1] = p1;
33993 /* parser/parser_prod.nit:6311 */
33994 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
33995 if (UNTAG_Bool(REGB0)) {
33996 } else {
33997 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6311);
33998 }
33999 fra.me.REG[0] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
34000 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34001 stack_frame_head = fra.me.prev;
34002 return;
34003 }
34004 void parser___parser_prod___AVarAssignExpr___empty_init(val_t p0, int* init_table){
34005 int itpos209 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarAssignExpr].i;
34006 struct {struct stack_frame_t me;} fra;
34007 val_t tmp;
34008 if (init_table[itpos209]) return;
34009 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34010 fra.me.file = LOCATE_parser___parser_prod;
34011 fra.me.line = 6315;
34012 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___empty_init;
34013 fra.me.has_broke = 0;
34014 fra.me.REG_size = 1;
34015 fra.me.nitni_local_ref_head = NULL;
34016 fra.me.REG[0] = NIT_NULL;
34017 fra.me.REG[0] = p0;
34018 stack_frame_head = fra.me.prev;
34019 init_table[itpos209] = 1;
34020 return;
34021 }
34022 void parser___parser_prod___AVarAssignExpr___init_avarassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
34023 int itpos210 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarAssignExpr].i;
34024 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
34025 val_t REGB0;
34026 val_t tmp;
34027 if (init_table[itpos210]) return;
34028 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34029 fra.me.file = LOCATE_parser___parser_prod;
34030 fra.me.line = 6317;
34031 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___init_avarassignexpr;
34032 fra.me.has_broke = 0;
34033 fra.me.REG_size = 5;
34034 fra.me.nitni_local_ref_head = NULL;
34035 fra.me.REG[0] = NIT_NULL;
34036 fra.me.REG[1] = NIT_NULL;
34037 fra.me.REG[2] = NIT_NULL;
34038 fra.me.REG[3] = NIT_NULL;
34039 fra.me.REG[4] = NIT_NULL;
34040 fra.me.REG[0] = p0;
34041 fra.me.REG[1] = p1;
34042 fra.me.REG[2] = p2;
34043 fra.me.REG[3] = p3;
34044 /* parser/parser_prod.nit:6317 */
34045 fra.me.REG[4] = fra.me.REG[0];
34046 /* parser/parser_prod.nit:6323 */
34047 CALL_parser___parser_prod___AVarAssignExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
34048 /* parser/parser_prod.nit:6324 */
34049 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34050 if (UNTAG_Bool(REGB0)) {
34051 } else {
34052 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6324);
34053 }
34054 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
34055 /* parser/parser_prod.nit:6325 */
34056 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34057 if (UNTAG_Bool(REGB0)) {
34058 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6325);
34059 }
34060 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
34061 /* parser/parser_prod.nit:6326 */
34062 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
34063 if (UNTAG_Bool(REGB0)) {
34064 } else {
34065 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6326);
34066 }
34067 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[4]) = fra.me.REG[2];
34068 /* parser/parser_prod.nit:6327 */
34069 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34070 if (UNTAG_Bool(REGB0)) {
34071 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6327);
34072 }
34073 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
34074 /* parser/parser_prod.nit:6328 */
34075 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
34076 if (UNTAG_Bool(REGB0)) {
34077 } else {
34078 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6328);
34079 }
34080 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[4]) = fra.me.REG[3];
34081 /* parser/parser_prod.nit:6329 */
34082 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34083 if (UNTAG_Bool(REGB0)) {
34084 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6329);
34085 }
34086 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
34087 stack_frame_head = fra.me.prev;
34088 init_table[itpos210] = 1;
34089 return;
34090 }
34091 void parser___parser_prod___AVarAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
34092 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34093 val_t REGB0;
34094 val_t REGB1;
34095 val_t tmp;
34096 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34097 fra.me.file = LOCATE_parser___parser_prod;
34098 fra.me.line = 6332;
34099 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___replace_child;
34100 fra.me.has_broke = 0;
34101 fra.me.REG_size = 4;
34102 fra.me.nitni_local_ref_head = NULL;
34103 fra.me.REG[0] = NIT_NULL;
34104 fra.me.REG[1] = NIT_NULL;
34105 fra.me.REG[2] = NIT_NULL;
34106 fra.me.REG[3] = NIT_NULL;
34107 fra.me.REG[0] = p0;
34108 fra.me.REG[1] = p1;
34109 fra.me.REG[2] = p2;
34110 /* parser/parser_prod.nit:6334 */
34111 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
34112 if (UNTAG_Bool(REGB0)) {
34113 } else {
34114 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6334);
34115 }
34116 fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
34117 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34118 if (UNTAG_Bool(REGB0)) {
34119 } else {
34120 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34121 REGB0 = REGB1;
34122 }
34123 if (UNTAG_Bool(REGB0)) {
34124 /* parser/parser_prod.nit:6335 */
34125 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34126 if (UNTAG_Bool(REGB0)) {
34127 } else {
34128 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34129 if (UNTAG_Bool(REGB1)) {
34130 REGB1 = TAG_Bool(false);
34131 REGB0 = REGB1;
34132 } else {
34133 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34134 REGB0 = REGB1;
34135 }
34136 }
34137 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34138 if (UNTAG_Bool(REGB0)) {
34139 /* parser/parser_prod.nit:6336 */
34140 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34141 if (UNTAG_Bool(REGB0)) {
34142 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6336);
34143 }
34144 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34145 /* parser/parser_prod.nit:6337 */
34146 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
34147 if (UNTAG_Bool(REGB0)) {
34148 } else {
34149 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6337);
34150 }
34151 /* parser/parser_prod.nit:6338 */
34152 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
34153 } else {
34154 /* parser/parser_prod.nit:6340 */
34155 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6340);
34156 }
34157 /* parser/parser_prod.nit:6342 */
34158 goto label1;
34159 }
34160 /* parser/parser_prod.nit:6344 */
34161 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
34162 if (UNTAG_Bool(REGB0)) {
34163 } else {
34164 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6344);
34165 }
34166 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
34167 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34168 if (UNTAG_Bool(REGB0)) {
34169 } else {
34170 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34171 REGB0 = REGB1;
34172 }
34173 if (UNTAG_Bool(REGB0)) {
34174 /* parser/parser_prod.nit:6345 */
34175 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34176 if (UNTAG_Bool(REGB0)) {
34177 } else {
34178 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34179 if (UNTAG_Bool(REGB1)) {
34180 REGB1 = TAG_Bool(false);
34181 REGB0 = REGB1;
34182 } else {
34183 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34184 REGB0 = REGB1;
34185 }
34186 }
34187 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34188 if (UNTAG_Bool(REGB0)) {
34189 /* parser/parser_prod.nit:6346 */
34190 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34191 if (UNTAG_Bool(REGB0)) {
34192 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6346);
34193 }
34194 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34195 /* parser/parser_prod.nit:6347 */
34196 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
34197 if (UNTAG_Bool(REGB0)) {
34198 } else {
34199 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6347);
34200 }
34201 /* parser/parser_prod.nit:6348 */
34202 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
34203 } else {
34204 /* parser/parser_prod.nit:6350 */
34205 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6350);
34206 }
34207 /* parser/parser_prod.nit:6352 */
34208 goto label1;
34209 }
34210 /* parser/parser_prod.nit:6354 */
34211 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
34212 if (UNTAG_Bool(REGB0)) {
34213 } else {
34214 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6354);
34215 }
34216 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
34217 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34218 if (UNTAG_Bool(REGB0)) {
34219 } else {
34220 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34221 REGB0 = REGB1;
34222 }
34223 if (UNTAG_Bool(REGB0)) {
34224 /* parser/parser_prod.nit:6355 */
34225 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34226 if (UNTAG_Bool(REGB0)) {
34227 } else {
34228 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34229 if (UNTAG_Bool(REGB1)) {
34230 REGB1 = TAG_Bool(false);
34231 REGB0 = REGB1;
34232 } else {
34233 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34234 REGB0 = REGB1;
34235 }
34236 }
34237 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34238 if (UNTAG_Bool(REGB0)) {
34239 /* parser/parser_prod.nit:6356 */
34240 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34241 if (UNTAG_Bool(REGB0)) {
34242 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6356);
34243 }
34244 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34245 /* parser/parser_prod.nit:6357 */
34246 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
34247 if (UNTAG_Bool(REGB0)) {
34248 } else {
34249 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6357);
34250 }
34251 /* parser/parser_prod.nit:6358 */
34252 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
34253 } else {
34254 /* parser/parser_prod.nit:6360 */
34255 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6360);
34256 }
34257 /* parser/parser_prod.nit:6362 */
34258 goto label1;
34259 }
34260 label1: while(0);
34261 stack_frame_head = fra.me.prev;
34262 return;
34263 }
34264 void parser___parser_prod___AVarAssignExpr___visit_all(val_t p0, val_t p1){
34265 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34266 val_t REGB0;
34267 val_t tmp;
34268 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34269 fra.me.file = LOCATE_parser___parser_prod;
34270 fra.me.line = 6366;
34271 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___visit_all;
34272 fra.me.has_broke = 0;
34273 fra.me.REG_size = 3;
34274 fra.me.nitni_local_ref_head = NULL;
34275 fra.me.REG[0] = NIT_NULL;
34276 fra.me.REG[1] = NIT_NULL;
34277 fra.me.REG[2] = NIT_NULL;
34278 fra.me.REG[0] = p0;
34279 fra.me.REG[1] = p1;
34280 /* parser/parser_prod.nit:6368 */
34281 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
34282 if (UNTAG_Bool(REGB0)) {
34283 } else {
34284 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6368);
34285 }
34286 fra.me.REG[2] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
34287 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34288 /* parser/parser_prod.nit:6369 */
34289 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
34290 if (UNTAG_Bool(REGB0)) {
34291 } else {
34292 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6369);
34293 }
34294 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
34295 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34296 /* parser/parser_prod.nit:6370 */
34297 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
34298 if (UNTAG_Bool(REGB0)) {
34299 } else {
34300 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6370);
34301 }
34302 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
34303 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34304 stack_frame_head = fra.me.prev;
34305 return;
34306 }
34307 void parser___parser_prod___AVarReassignExpr___empty_init(val_t p0, int* init_table){
34308 int itpos211 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarReassignExpr].i;
34309 struct {struct stack_frame_t me;} fra;
34310 val_t tmp;
34311 if (init_table[itpos211]) return;
34312 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34313 fra.me.file = LOCATE_parser___parser_prod;
34314 fra.me.line = 6374;
34315 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___empty_init;
34316 fra.me.has_broke = 0;
34317 fra.me.REG_size = 1;
34318 fra.me.nitni_local_ref_head = NULL;
34319 fra.me.REG[0] = NIT_NULL;
34320 fra.me.REG[0] = p0;
34321 stack_frame_head = fra.me.prev;
34322 init_table[itpos211] = 1;
34323 return;
34324 }
34325 void parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
34326 int itpos212 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarReassignExpr].i;
34327 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
34328 val_t REGB0;
34329 val_t tmp;
34330 if (init_table[itpos212]) return;
34331 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34332 fra.me.file = LOCATE_parser___parser_prod;
34333 fra.me.line = 6376;
34334 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr;
34335 fra.me.has_broke = 0;
34336 fra.me.REG_size = 5;
34337 fra.me.nitni_local_ref_head = NULL;
34338 fra.me.REG[0] = NIT_NULL;
34339 fra.me.REG[1] = NIT_NULL;
34340 fra.me.REG[2] = NIT_NULL;
34341 fra.me.REG[3] = NIT_NULL;
34342 fra.me.REG[4] = NIT_NULL;
34343 fra.me.REG[0] = p0;
34344 fra.me.REG[1] = p1;
34345 fra.me.REG[2] = p2;
34346 fra.me.REG[3] = p3;
34347 /* parser/parser_prod.nit:6376 */
34348 fra.me.REG[4] = fra.me.REG[0];
34349 /* parser/parser_prod.nit:6382 */
34350 CALL_parser___parser_prod___AVarReassignExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
34351 /* parser/parser_prod.nit:6383 */
34352 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34353 if (UNTAG_Bool(REGB0)) {
34354 } else {
34355 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6383);
34356 }
34357 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
34358 /* parser/parser_prod.nit:6384 */
34359 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34360 if (UNTAG_Bool(REGB0)) {
34361 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6384);
34362 }
34363 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
34364 /* parser/parser_prod.nit:6385 */
34365 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
34366 if (UNTAG_Bool(REGB0)) {
34367 } else {
34368 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6385);
34369 }
34370 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[4]) = fra.me.REG[2];
34371 /* parser/parser_prod.nit:6386 */
34372 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34373 if (UNTAG_Bool(REGB0)) {
34374 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6386);
34375 }
34376 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
34377 /* parser/parser_prod.nit:6387 */
34378 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
34379 if (UNTAG_Bool(REGB0)) {
34380 } else {
34381 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6387);
34382 }
34383 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[4]) = fra.me.REG[3];
34384 /* parser/parser_prod.nit:6388 */
34385 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34386 if (UNTAG_Bool(REGB0)) {
34387 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6388);
34388 }
34389 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
34390 stack_frame_head = fra.me.prev;
34391 init_table[itpos212] = 1;
34392 return;
34393 }
34394 void parser___parser_prod___AVarReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
34395 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34396 val_t REGB0;
34397 val_t REGB1;
34398 val_t tmp;
34399 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34400 fra.me.file = LOCATE_parser___parser_prod;
34401 fra.me.line = 6391;
34402 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___replace_child;
34403 fra.me.has_broke = 0;
34404 fra.me.REG_size = 4;
34405 fra.me.nitni_local_ref_head = NULL;
34406 fra.me.REG[0] = NIT_NULL;
34407 fra.me.REG[1] = NIT_NULL;
34408 fra.me.REG[2] = NIT_NULL;
34409 fra.me.REG[3] = NIT_NULL;
34410 fra.me.REG[0] = p0;
34411 fra.me.REG[1] = p1;
34412 fra.me.REG[2] = p2;
34413 /* parser/parser_prod.nit:6393 */
34414 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
34415 if (UNTAG_Bool(REGB0)) {
34416 } else {
34417 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6393);
34418 }
34419 fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
34420 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34421 if (UNTAG_Bool(REGB0)) {
34422 } else {
34423 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34424 REGB0 = REGB1;
34425 }
34426 if (UNTAG_Bool(REGB0)) {
34427 /* parser/parser_prod.nit:6394 */
34428 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34429 if (UNTAG_Bool(REGB0)) {
34430 } else {
34431 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34432 if (UNTAG_Bool(REGB1)) {
34433 REGB1 = TAG_Bool(false);
34434 REGB0 = REGB1;
34435 } else {
34436 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34437 REGB0 = REGB1;
34438 }
34439 }
34440 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34441 if (UNTAG_Bool(REGB0)) {
34442 /* parser/parser_prod.nit:6395 */
34443 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34444 if (UNTAG_Bool(REGB0)) {
34445 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6395);
34446 }
34447 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34448 /* parser/parser_prod.nit:6396 */
34449 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
34450 if (UNTAG_Bool(REGB0)) {
34451 } else {
34452 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6396);
34453 }
34454 /* parser/parser_prod.nit:6397 */
34455 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
34456 } else {
34457 /* parser/parser_prod.nit:6399 */
34458 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6399);
34459 }
34460 /* parser/parser_prod.nit:6401 */
34461 goto label1;
34462 }
34463 /* parser/parser_prod.nit:6403 */
34464 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
34465 if (UNTAG_Bool(REGB0)) {
34466 } else {
34467 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6403);
34468 }
34469 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
34470 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34471 if (UNTAG_Bool(REGB0)) {
34472 } else {
34473 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34474 REGB0 = REGB1;
34475 }
34476 if (UNTAG_Bool(REGB0)) {
34477 /* parser/parser_prod.nit:6404 */
34478 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34479 if (UNTAG_Bool(REGB0)) {
34480 } else {
34481 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34482 if (UNTAG_Bool(REGB1)) {
34483 REGB1 = TAG_Bool(false);
34484 REGB0 = REGB1;
34485 } else {
34486 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34487 REGB0 = REGB1;
34488 }
34489 }
34490 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34491 if (UNTAG_Bool(REGB0)) {
34492 /* parser/parser_prod.nit:6405 */
34493 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34494 if (UNTAG_Bool(REGB0)) {
34495 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6405);
34496 }
34497 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34498 /* parser/parser_prod.nit:6406 */
34499 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAssignOp, ID_parser___parser_nodes___AAssignOp)) /*cast AAssignOp*/;
34500 if (UNTAG_Bool(REGB0)) {
34501 } else {
34502 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6406);
34503 }
34504 /* parser/parser_prod.nit:6407 */
34505 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
34506 } else {
34507 /* parser/parser_prod.nit:6409 */
34508 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6409);
34509 }
34510 /* parser/parser_prod.nit:6411 */
34511 goto label1;
34512 }
34513 /* parser/parser_prod.nit:6413 */
34514 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
34515 if (UNTAG_Bool(REGB0)) {
34516 } else {
34517 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6413);
34518 }
34519 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
34520 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34521 if (UNTAG_Bool(REGB0)) {
34522 } else {
34523 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34524 REGB0 = REGB1;
34525 }
34526 if (UNTAG_Bool(REGB0)) {
34527 /* parser/parser_prod.nit:6414 */
34528 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34529 if (UNTAG_Bool(REGB0)) {
34530 } else {
34531 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34532 if (UNTAG_Bool(REGB1)) {
34533 REGB1 = TAG_Bool(false);
34534 REGB0 = REGB1;
34535 } else {
34536 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34537 REGB0 = REGB1;
34538 }
34539 }
34540 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34541 if (UNTAG_Bool(REGB0)) {
34542 /* parser/parser_prod.nit:6415 */
34543 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34544 if (UNTAG_Bool(REGB0)) {
34545 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6415);
34546 }
34547 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34548 /* parser/parser_prod.nit:6416 */
34549 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
34550 if (UNTAG_Bool(REGB0)) {
34551 } else {
34552 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6416);
34553 }
34554 /* parser/parser_prod.nit:6417 */
34555 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
34556 } else {
34557 /* parser/parser_prod.nit:6419 */
34558 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6419);
34559 }
34560 /* parser/parser_prod.nit:6421 */
34561 goto label1;
34562 }
34563 label1: while(0);
34564 stack_frame_head = fra.me.prev;
34565 return;
34566 }
34567 void parser___parser_prod___AVarReassignExpr___visit_all(val_t p0, val_t p1){
34568 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34569 val_t REGB0;
34570 val_t tmp;
34571 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34572 fra.me.file = LOCATE_parser___parser_prod;
34573 fra.me.line = 6425;
34574 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___visit_all;
34575 fra.me.has_broke = 0;
34576 fra.me.REG_size = 3;
34577 fra.me.nitni_local_ref_head = NULL;
34578 fra.me.REG[0] = NIT_NULL;
34579 fra.me.REG[1] = NIT_NULL;
34580 fra.me.REG[2] = NIT_NULL;
34581 fra.me.REG[0] = p0;
34582 fra.me.REG[1] = p1;
34583 /* parser/parser_prod.nit:6427 */
34584 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
34585 if (UNTAG_Bool(REGB0)) {
34586 } else {
34587 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6427);
34588 }
34589 fra.me.REG[2] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
34590 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34591 /* parser/parser_prod.nit:6428 */
34592 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
34593 if (UNTAG_Bool(REGB0)) {
34594 } else {
34595 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6428);
34596 }
34597 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
34598 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34599 /* parser/parser_prod.nit:6429 */
34600 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
34601 if (UNTAG_Bool(REGB0)) {
34602 } else {
34603 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6429);
34604 }
34605 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
34606 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34607 stack_frame_head = fra.me.prev;
34608 return;
34609 }
34610 void parser___parser_prod___ARangeExpr___empty_init(val_t p0, int* init_table){
34611 int itpos213 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ARangeExpr].i;
34612 struct {struct stack_frame_t me;} fra;
34613 val_t tmp;
34614 if (init_table[itpos213]) return;
34615 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34616 fra.me.file = LOCATE_parser___parser_prod;
34617 fra.me.line = 6433;
34618 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___empty_init;
34619 fra.me.has_broke = 0;
34620 fra.me.REG_size = 1;
34621 fra.me.nitni_local_ref_head = NULL;
34622 fra.me.REG[0] = NIT_NULL;
34623 fra.me.REG[0] = p0;
34624 stack_frame_head = fra.me.prev;
34625 init_table[itpos213] = 1;
34626 return;
34627 }
34628 void parser___parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
34629 int itpos214 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ARangeExpr].i;
34630 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34631 val_t REGB0;
34632 val_t tmp;
34633 if (init_table[itpos214]) return;
34634 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34635 fra.me.file = LOCATE_parser___parser_prod;
34636 fra.me.line = 6435;
34637 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___init_arangeexpr;
34638 fra.me.has_broke = 0;
34639 fra.me.REG_size = 4;
34640 fra.me.nitni_local_ref_head = NULL;
34641 fra.me.REG[0] = NIT_NULL;
34642 fra.me.REG[1] = NIT_NULL;
34643 fra.me.REG[2] = NIT_NULL;
34644 fra.me.REG[3] = NIT_NULL;
34645 fra.me.REG[0] = p0;
34646 fra.me.REG[1] = p1;
34647 fra.me.REG[2] = p2;
34648 /* parser/parser_prod.nit:6435 */
34649 fra.me.REG[3] = fra.me.REG[0];
34650 /* parser/parser_prod.nit:6440 */
34651 CALL_parser___parser_prod___ARangeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
34652 /* parser/parser_prod.nit:6441 */
34653 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34654 if (UNTAG_Bool(REGB0)) {
34655 } else {
34656 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6441);
34657 }
34658 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
34659 /* parser/parser_prod.nit:6442 */
34660 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34661 if (UNTAG_Bool(REGB0)) {
34662 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6442);
34663 }
34664 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
34665 /* parser/parser_prod.nit:6443 */
34666 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
34667 if (UNTAG_Bool(REGB0)) {
34668 } else {
34669 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6443);
34670 }
34671 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
34672 /* parser/parser_prod.nit:6444 */
34673 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34674 if (UNTAG_Bool(REGB0)) {
34675 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6444);
34676 }
34677 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
34678 stack_frame_head = fra.me.prev;
34679 init_table[itpos214] = 1;
34680 return;
34681 }
34682 void parser___parser_prod___ARangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
34683 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34684 val_t REGB0;
34685 val_t REGB1;
34686 val_t tmp;
34687 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34688 fra.me.file = LOCATE_parser___parser_prod;
34689 fra.me.line = 6447;
34690 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___replace_child;
34691 fra.me.has_broke = 0;
34692 fra.me.REG_size = 4;
34693 fra.me.nitni_local_ref_head = NULL;
34694 fra.me.REG[0] = NIT_NULL;
34695 fra.me.REG[1] = NIT_NULL;
34696 fra.me.REG[2] = NIT_NULL;
34697 fra.me.REG[3] = NIT_NULL;
34698 fra.me.REG[0] = p0;
34699 fra.me.REG[1] = p1;
34700 fra.me.REG[2] = p2;
34701 /* parser/parser_prod.nit:6449 */
34702 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
34703 if (UNTAG_Bool(REGB0)) {
34704 } else {
34705 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6449);
34706 }
34707 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
34708 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34709 if (UNTAG_Bool(REGB0)) {
34710 } else {
34711 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34712 REGB0 = REGB1;
34713 }
34714 if (UNTAG_Bool(REGB0)) {
34715 /* parser/parser_prod.nit:6450 */
34716 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34717 if (UNTAG_Bool(REGB0)) {
34718 } else {
34719 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34720 if (UNTAG_Bool(REGB1)) {
34721 REGB1 = TAG_Bool(false);
34722 REGB0 = REGB1;
34723 } else {
34724 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34725 REGB0 = REGB1;
34726 }
34727 }
34728 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34729 if (UNTAG_Bool(REGB0)) {
34730 /* parser/parser_prod.nit:6451 */
34731 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34732 if (UNTAG_Bool(REGB0)) {
34733 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6451);
34734 }
34735 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34736 /* parser/parser_prod.nit:6452 */
34737 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
34738 if (UNTAG_Bool(REGB0)) {
34739 } else {
34740 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6452);
34741 }
34742 /* parser/parser_prod.nit:6453 */
34743 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
34744 } else {
34745 /* parser/parser_prod.nit:6455 */
34746 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6455);
34747 }
34748 /* parser/parser_prod.nit:6457 */
34749 goto label1;
34750 }
34751 /* parser/parser_prod.nit:6459 */
34752 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
34753 if (UNTAG_Bool(REGB0)) {
34754 } else {
34755 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6459);
34756 }
34757 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
34758 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34759 if (UNTAG_Bool(REGB0)) {
34760 } else {
34761 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34762 REGB0 = REGB1;
34763 }
34764 if (UNTAG_Bool(REGB0)) {
34765 /* parser/parser_prod.nit:6460 */
34766 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34767 if (UNTAG_Bool(REGB0)) {
34768 } else {
34769 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34770 if (UNTAG_Bool(REGB1)) {
34771 REGB1 = TAG_Bool(false);
34772 REGB0 = REGB1;
34773 } else {
34774 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34775 REGB0 = REGB1;
34776 }
34777 }
34778 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34779 if (UNTAG_Bool(REGB0)) {
34780 /* parser/parser_prod.nit:6461 */
34781 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34782 if (UNTAG_Bool(REGB0)) {
34783 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6461);
34784 }
34785 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34786 /* parser/parser_prod.nit:6462 */
34787 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
34788 if (UNTAG_Bool(REGB0)) {
34789 } else {
34790 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6462);
34791 }
34792 /* parser/parser_prod.nit:6463 */
34793 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
34794 } else {
34795 /* parser/parser_prod.nit:6465 */
34796 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6465);
34797 }
34798 /* parser/parser_prod.nit:6467 */
34799 goto label1;
34800 }
34801 label1: while(0);
34802 stack_frame_head = fra.me.prev;
34803 return;
34804 }
34805 void parser___parser_prod___ARangeExpr___visit_all(val_t p0, val_t p1){
34806 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34807 val_t REGB0;
34808 val_t tmp;
34809 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34810 fra.me.file = LOCATE_parser___parser_prod;
34811 fra.me.line = 6471;
34812 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___visit_all;
34813 fra.me.has_broke = 0;
34814 fra.me.REG_size = 3;
34815 fra.me.nitni_local_ref_head = NULL;
34816 fra.me.REG[0] = NIT_NULL;
34817 fra.me.REG[1] = NIT_NULL;
34818 fra.me.REG[2] = NIT_NULL;
34819 fra.me.REG[0] = p0;
34820 fra.me.REG[1] = p1;
34821 /* parser/parser_prod.nit:6473 */
34822 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
34823 if (UNTAG_Bool(REGB0)) {
34824 } else {
34825 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6473);
34826 }
34827 fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
34828 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34829 /* parser/parser_prod.nit:6474 */
34830 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
34831 if (UNTAG_Bool(REGB0)) {
34832 } else {
34833 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6474);
34834 }
34835 fra.me.REG[0] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
34836 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34837 stack_frame_head = fra.me.prev;
34838 return;
34839 }
34840 void parser___parser_prod___ACrangeExpr___empty_init(val_t p0, int* init_table){
34841 int itpos215 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACrangeExpr].i;
34842 struct {struct stack_frame_t me;} fra;
34843 val_t tmp;
34844 if (init_table[itpos215]) return;
34845 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34846 fra.me.file = LOCATE_parser___parser_prod;
34847 fra.me.line = 6478;
34848 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___empty_init;
34849 fra.me.has_broke = 0;
34850 fra.me.REG_size = 1;
34851 fra.me.nitni_local_ref_head = NULL;
34852 fra.me.REG[0] = NIT_NULL;
34853 fra.me.REG[0] = p0;
34854 stack_frame_head = fra.me.prev;
34855 init_table[itpos215] = 1;
34856 return;
34857 }
34858 void parser___parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
34859 int itpos216 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACrangeExpr].i;
34860 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
34861 val_t REGB0;
34862 val_t tmp;
34863 if (init_table[itpos216]) return;
34864 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34865 fra.me.file = LOCATE_parser___parser_prod;
34866 fra.me.line = 6480;
34867 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___init_acrangeexpr;
34868 fra.me.has_broke = 0;
34869 fra.me.REG_size = 6;
34870 fra.me.nitni_local_ref_head = NULL;
34871 fra.me.REG[0] = NIT_NULL;
34872 fra.me.REG[1] = NIT_NULL;
34873 fra.me.REG[2] = NIT_NULL;
34874 fra.me.REG[3] = NIT_NULL;
34875 fra.me.REG[4] = NIT_NULL;
34876 fra.me.REG[5] = NIT_NULL;
34877 fra.me.REG[0] = p0;
34878 fra.me.REG[1] = p1;
34879 fra.me.REG[2] = p2;
34880 fra.me.REG[3] = p3;
34881 fra.me.REG[4] = p4;
34882 /* parser/parser_prod.nit:6480 */
34883 fra.me.REG[5] = fra.me.REG[0];
34884 /* parser/parser_prod.nit:6487 */
34885 CALL_parser___parser_prod___ACrangeExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
34886 /* parser/parser_prod.nit:6488 */
34887 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34888 if (UNTAG_Bool(REGB0)) {
34889 } else {
34890 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6488);
34891 }
34892 ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[5]) = fra.me.REG[1];
34893 /* parser/parser_prod.nit:6489 */
34894 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34895 if (UNTAG_Bool(REGB0)) {
34896 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6489);
34897 }
34898 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
34899 /* parser/parser_prod.nit:6490 */
34900 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
34901 if (UNTAG_Bool(REGB0)) {
34902 } else {
34903 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6490);
34904 }
34905 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[5]) = fra.me.REG[2];
34906 /* parser/parser_prod.nit:6491 */
34907 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34908 if (UNTAG_Bool(REGB0)) {
34909 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6491);
34910 }
34911 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
34912 /* parser/parser_prod.nit:6492 */
34913 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
34914 if (UNTAG_Bool(REGB0)) {
34915 } else {
34916 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6492);
34917 }
34918 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[5]) = fra.me.REG[3];
34919 /* parser/parser_prod.nit:6493 */
34920 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34921 if (UNTAG_Bool(REGB0)) {
34922 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6493);
34923 }
34924 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
34925 /* parser/parser_prod.nit:6494 */
34926 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
34927 if (UNTAG_Bool(REGB0)) {
34928 } else {
34929 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6494);
34930 }
34931 ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[5]) = fra.me.REG[4];
34932 /* parser/parser_prod.nit:6495 */
34933 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
34934 if (UNTAG_Bool(REGB0)) {
34935 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6495);
34936 }
34937 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
34938 stack_frame_head = fra.me.prev;
34939 init_table[itpos216] = 1;
34940 return;
34941 }
34942 void parser___parser_prod___ACrangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
34943 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34944 val_t REGB0;
34945 val_t REGB1;
34946 val_t tmp;
34947 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34948 fra.me.file = LOCATE_parser___parser_prod;
34949 fra.me.line = 6498;
34950 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___replace_child;
34951 fra.me.has_broke = 0;
34952 fra.me.REG_size = 4;
34953 fra.me.nitni_local_ref_head = NULL;
34954 fra.me.REG[0] = NIT_NULL;
34955 fra.me.REG[1] = NIT_NULL;
34956 fra.me.REG[2] = NIT_NULL;
34957 fra.me.REG[3] = NIT_NULL;
34958 fra.me.REG[0] = p0;
34959 fra.me.REG[1] = p1;
34960 fra.me.REG[2] = p2;
34961 /* parser/parser_prod.nit:6500 */
34962 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0])!=NIT_NULL);
34963 if (UNTAG_Bool(REGB0)) {
34964 } else {
34965 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 6500);
34966 }
34967 fra.me.REG[3] = ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0]);
34968 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34969 if (UNTAG_Bool(REGB0)) {
34970 } else {
34971 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34972 REGB0 = REGB1;
34973 }
34974 if (UNTAG_Bool(REGB0)) {
34975 /* parser/parser_prod.nit:6501 */
34976 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34977 if (UNTAG_Bool(REGB0)) {
34978 } else {
34979 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34980 if (UNTAG_Bool(REGB1)) {
34981 REGB1 = TAG_Bool(false);
34982 REGB0 = REGB1;
34983 } else {
34984 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34985 REGB0 = REGB1;
34986 }
34987 }
34988 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34989 if (UNTAG_Bool(REGB0)) {
34990 /* parser/parser_prod.nit:6502 */
34991 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34992 if (UNTAG_Bool(REGB0)) {
34993 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6502);
34994 }
34995 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34996 /* parser/parser_prod.nit:6503 */
34997 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast TObra*/;
34998 if (UNTAG_Bool(REGB0)) {
34999 } else {
35000 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6503);
35001 }
35002 /* parser/parser_prod.nit:6504 */
35003 ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0]) = fra.me.REG[2];
35004 } else {
35005 /* parser/parser_prod.nit:6506 */
35006 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6506);
35007 }
35008 /* parser/parser_prod.nit:6508 */
35009 goto label1;
35010 }
35011 /* parser/parser_prod.nit:6510 */
35012 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35013 if (UNTAG_Bool(REGB0)) {
35014 } else {
35015 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6510);
35016 }
35017 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
35018 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35019 if (UNTAG_Bool(REGB0)) {
35020 } else {
35021 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35022 REGB0 = REGB1;
35023 }
35024 if (UNTAG_Bool(REGB0)) {
35025 /* parser/parser_prod.nit:6511 */
35026 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35027 if (UNTAG_Bool(REGB0)) {
35028 } else {
35029 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35030 if (UNTAG_Bool(REGB1)) {
35031 REGB1 = TAG_Bool(false);
35032 REGB0 = REGB1;
35033 } else {
35034 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35035 REGB0 = REGB1;
35036 }
35037 }
35038 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35039 if (UNTAG_Bool(REGB0)) {
35040 /* parser/parser_prod.nit:6512 */
35041 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35042 if (UNTAG_Bool(REGB0)) {
35043 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6512);
35044 }
35045 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35046 /* parser/parser_prod.nit:6513 */
35047 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
35048 if (UNTAG_Bool(REGB0)) {
35049 } else {
35050 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6513);
35051 }
35052 /* parser/parser_prod.nit:6514 */
35053 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
35054 } else {
35055 /* parser/parser_prod.nit:6516 */
35056 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6516);
35057 }
35058 /* parser/parser_prod.nit:6518 */
35059 goto label1;
35060 }
35061 /* parser/parser_prod.nit:6520 */
35062 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
35063 if (UNTAG_Bool(REGB0)) {
35064 } else {
35065 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6520);
35066 }
35067 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
35068 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35069 if (UNTAG_Bool(REGB0)) {
35070 } else {
35071 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35072 REGB0 = REGB1;
35073 }
35074 if (UNTAG_Bool(REGB0)) {
35075 /* parser/parser_prod.nit:6521 */
35076 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35077 if (UNTAG_Bool(REGB0)) {
35078 } else {
35079 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35080 if (UNTAG_Bool(REGB1)) {
35081 REGB1 = TAG_Bool(false);
35082 REGB0 = REGB1;
35083 } else {
35084 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35085 REGB0 = REGB1;
35086 }
35087 }
35088 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35089 if (UNTAG_Bool(REGB0)) {
35090 /* parser/parser_prod.nit:6522 */
35091 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35092 if (UNTAG_Bool(REGB0)) {
35093 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6522);
35094 }
35095 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35096 /* parser/parser_prod.nit:6523 */
35097 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
35098 if (UNTAG_Bool(REGB0)) {
35099 } else {
35100 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6523);
35101 }
35102 /* parser/parser_prod.nit:6524 */
35103 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
35104 } else {
35105 /* parser/parser_prod.nit:6526 */
35106 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6526);
35107 }
35108 /* parser/parser_prod.nit:6528 */
35109 goto label1;
35110 }
35111 /* parser/parser_prod.nit:6530 */
35112 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0])!=NIT_NULL);
35113 if (UNTAG_Bool(REGB0)) {
35114 } else {
35115 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 6530);
35116 }
35117 fra.me.REG[3] = ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0]);
35118 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35119 if (UNTAG_Bool(REGB0)) {
35120 } else {
35121 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35122 REGB0 = REGB1;
35123 }
35124 if (UNTAG_Bool(REGB0)) {
35125 /* parser/parser_prod.nit:6531 */
35126 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35127 if (UNTAG_Bool(REGB0)) {
35128 } else {
35129 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35130 if (UNTAG_Bool(REGB1)) {
35131 REGB1 = TAG_Bool(false);
35132 REGB0 = REGB1;
35133 } else {
35134 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35135 REGB0 = REGB1;
35136 }
35137 }
35138 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35139 if (UNTAG_Bool(REGB0)) {
35140 /* parser/parser_prod.nit:6532 */
35141 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35142 if (UNTAG_Bool(REGB0)) {
35143 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6532);
35144 }
35145 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35146 /* parser/parser_prod.nit:6533 */
35147 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCbra, ID_parser___parser_nodes___TCbra)) /*cast TCbra*/;
35148 if (UNTAG_Bool(REGB0)) {
35149 } else {
35150 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6533);
35151 }
35152 /* parser/parser_prod.nit:6534 */
35153 ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
35154 } else {
35155 /* parser/parser_prod.nit:6536 */
35156 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6536);
35157 }
35158 /* parser/parser_prod.nit:6538 */
35159 goto label1;
35160 }
35161 label1: while(0);
35162 stack_frame_head = fra.me.prev;
35163 return;
35164 }
35165 void parser___parser_prod___ACrangeExpr___visit_all(val_t p0, val_t p1){
35166 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35167 val_t REGB0;
35168 val_t tmp;
35169 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35170 fra.me.file = LOCATE_parser___parser_prod;
35171 fra.me.line = 6542;
35172 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___visit_all;
35173 fra.me.has_broke = 0;
35174 fra.me.REG_size = 3;
35175 fra.me.nitni_local_ref_head = NULL;
35176 fra.me.REG[0] = NIT_NULL;
35177 fra.me.REG[1] = NIT_NULL;
35178 fra.me.REG[2] = NIT_NULL;
35179 fra.me.REG[0] = p0;
35180 fra.me.REG[1] = p1;
35181 /* parser/parser_prod.nit:6544 */
35182 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0])!=NIT_NULL);
35183 if (UNTAG_Bool(REGB0)) {
35184 } else {
35185 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 6544);
35186 }
35187 fra.me.REG[2] = ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0]);
35188 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35189 /* parser/parser_prod.nit:6545 */
35190 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35191 if (UNTAG_Bool(REGB0)) {
35192 } else {
35193 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6545);
35194 }
35195 fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
35196 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35197 /* parser/parser_prod.nit:6546 */
35198 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
35199 if (UNTAG_Bool(REGB0)) {
35200 } else {
35201 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6546);
35202 }
35203 fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
35204 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35205 /* parser/parser_prod.nit:6547 */
35206 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0])!=NIT_NULL);
35207 if (UNTAG_Bool(REGB0)) {
35208 } else {
35209 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 6547);
35210 }
35211 fra.me.REG[0] = ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0]);
35212 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35213 stack_frame_head = fra.me.prev;
35214 return;
35215 }
35216 void parser___parser_prod___AOrangeExpr___empty_init(val_t p0, int* init_table){
35217 int itpos217 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrangeExpr].i;
35218 struct {struct stack_frame_t me;} fra;
35219 val_t tmp;
35220 if (init_table[itpos217]) return;
35221 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35222 fra.me.file = LOCATE_parser___parser_prod;
35223 fra.me.line = 6551;
35224 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___empty_init;
35225 fra.me.has_broke = 0;
35226 fra.me.REG_size = 1;
35227 fra.me.nitni_local_ref_head = NULL;
35228 fra.me.REG[0] = NIT_NULL;
35229 fra.me.REG[0] = p0;
35230 stack_frame_head = fra.me.prev;
35231 init_table[itpos217] = 1;
35232 return;
35233 }
35234 void parser___parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
35235 int itpos218 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrangeExpr].i;
35236 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
35237 val_t REGB0;
35238 val_t tmp;
35239 if (init_table[itpos218]) return;
35240 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35241 fra.me.file = LOCATE_parser___parser_prod;
35242 fra.me.line = 6553;
35243 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___init_aorangeexpr;
35244 fra.me.has_broke = 0;
35245 fra.me.REG_size = 6;
35246 fra.me.nitni_local_ref_head = NULL;
35247 fra.me.REG[0] = NIT_NULL;
35248 fra.me.REG[1] = NIT_NULL;
35249 fra.me.REG[2] = NIT_NULL;
35250 fra.me.REG[3] = NIT_NULL;
35251 fra.me.REG[4] = NIT_NULL;
35252 fra.me.REG[5] = NIT_NULL;
35253 fra.me.REG[0] = p0;
35254 fra.me.REG[1] = p1;
35255 fra.me.REG[2] = p2;
35256 fra.me.REG[3] = p3;
35257 fra.me.REG[4] = p4;
35258 /* parser/parser_prod.nit:6553 */
35259 fra.me.REG[5] = fra.me.REG[0];
35260 /* parser/parser_prod.nit:6560 */
35261 CALL_parser___parser_prod___AOrangeExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
35262 /* parser/parser_prod.nit:6561 */
35263 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35264 if (UNTAG_Bool(REGB0)) {
35265 } else {
35266 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6561);
35267 }
35268 ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[5]) = fra.me.REG[1];
35269 /* parser/parser_prod.nit:6562 */
35270 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35271 if (UNTAG_Bool(REGB0)) {
35272 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6562);
35273 }
35274 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
35275 /* parser/parser_prod.nit:6563 */
35276 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
35277 if (UNTAG_Bool(REGB0)) {
35278 } else {
35279 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6563);
35280 }
35281 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[5]) = fra.me.REG[2];
35282 /* parser/parser_prod.nit:6564 */
35283 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35284 if (UNTAG_Bool(REGB0)) {
35285 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6564);
35286 }
35287 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
35288 /* parser/parser_prod.nit:6565 */
35289 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
35290 if (UNTAG_Bool(REGB0)) {
35291 } else {
35292 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6565);
35293 }
35294 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[5]) = fra.me.REG[3];
35295 /* parser/parser_prod.nit:6566 */
35296 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35297 if (UNTAG_Bool(REGB0)) {
35298 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6566);
35299 }
35300 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
35301 /* parser/parser_prod.nit:6567 */
35302 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
35303 if (UNTAG_Bool(REGB0)) {
35304 } else {
35305 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6567);
35306 }
35307 ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[5]) = fra.me.REG[4];
35308 /* parser/parser_prod.nit:6568 */
35309 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
35310 if (UNTAG_Bool(REGB0)) {
35311 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6568);
35312 }
35313 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
35314 stack_frame_head = fra.me.prev;
35315 init_table[itpos218] = 1;
35316 return;
35317 }
35318 void parser___parser_prod___AOrangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
35319 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35320 val_t REGB0;
35321 val_t REGB1;
35322 val_t tmp;
35323 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35324 fra.me.file = LOCATE_parser___parser_prod;
35325 fra.me.line = 6571;
35326 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___replace_child;
35327 fra.me.has_broke = 0;
35328 fra.me.REG_size = 4;
35329 fra.me.nitni_local_ref_head = NULL;
35330 fra.me.REG[0] = NIT_NULL;
35331 fra.me.REG[1] = NIT_NULL;
35332 fra.me.REG[2] = NIT_NULL;
35333 fra.me.REG[3] = NIT_NULL;
35334 fra.me.REG[0] = p0;
35335 fra.me.REG[1] = p1;
35336 fra.me.REG[2] = p2;
35337 /* parser/parser_prod.nit:6573 */
35338 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0])!=NIT_NULL);
35339 if (UNTAG_Bool(REGB0)) {
35340 } else {
35341 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 6573);
35342 }
35343 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0]);
35344 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35345 if (UNTAG_Bool(REGB0)) {
35346 } else {
35347 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35348 REGB0 = REGB1;
35349 }
35350 if (UNTAG_Bool(REGB0)) {
35351 /* parser/parser_prod.nit:6574 */
35352 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35353 if (UNTAG_Bool(REGB0)) {
35354 } else {
35355 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35356 if (UNTAG_Bool(REGB1)) {
35357 REGB1 = TAG_Bool(false);
35358 REGB0 = REGB1;
35359 } else {
35360 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35361 REGB0 = REGB1;
35362 }
35363 }
35364 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35365 if (UNTAG_Bool(REGB0)) {
35366 /* parser/parser_prod.nit:6575 */
35367 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35368 if (UNTAG_Bool(REGB0)) {
35369 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6575);
35370 }
35371 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35372 /* parser/parser_prod.nit:6576 */
35373 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast TObra*/;
35374 if (UNTAG_Bool(REGB0)) {
35375 } else {
35376 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6576);
35377 }
35378 /* parser/parser_prod.nit:6577 */
35379 ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0]) = fra.me.REG[2];
35380 } else {
35381 /* parser/parser_prod.nit:6579 */
35382 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6579);
35383 }
35384 /* parser/parser_prod.nit:6581 */
35385 goto label1;
35386 }
35387 /* parser/parser_prod.nit:6583 */
35388 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35389 if (UNTAG_Bool(REGB0)) {
35390 } else {
35391 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6583);
35392 }
35393 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
35394 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35395 if (UNTAG_Bool(REGB0)) {
35396 } else {
35397 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35398 REGB0 = REGB1;
35399 }
35400 if (UNTAG_Bool(REGB0)) {
35401 /* parser/parser_prod.nit:6584 */
35402 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35403 if (UNTAG_Bool(REGB0)) {
35404 } else {
35405 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35406 if (UNTAG_Bool(REGB1)) {
35407 REGB1 = TAG_Bool(false);
35408 REGB0 = REGB1;
35409 } else {
35410 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35411 REGB0 = REGB1;
35412 }
35413 }
35414 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35415 if (UNTAG_Bool(REGB0)) {
35416 /* parser/parser_prod.nit:6585 */
35417 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35418 if (UNTAG_Bool(REGB0)) {
35419 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6585);
35420 }
35421 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35422 /* parser/parser_prod.nit:6586 */
35423 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
35424 if (UNTAG_Bool(REGB0)) {
35425 } else {
35426 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6586);
35427 }
35428 /* parser/parser_prod.nit:6587 */
35429 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
35430 } else {
35431 /* parser/parser_prod.nit:6589 */
35432 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6589);
35433 }
35434 /* parser/parser_prod.nit:6591 */
35435 goto label1;
35436 }
35437 /* parser/parser_prod.nit:6593 */
35438 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
35439 if (UNTAG_Bool(REGB0)) {
35440 } else {
35441 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6593);
35442 }
35443 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
35444 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35445 if (UNTAG_Bool(REGB0)) {
35446 } else {
35447 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35448 REGB0 = REGB1;
35449 }
35450 if (UNTAG_Bool(REGB0)) {
35451 /* parser/parser_prod.nit:6594 */
35452 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35453 if (UNTAG_Bool(REGB0)) {
35454 } else {
35455 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35456 if (UNTAG_Bool(REGB1)) {
35457 REGB1 = TAG_Bool(false);
35458 REGB0 = REGB1;
35459 } else {
35460 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35461 REGB0 = REGB1;
35462 }
35463 }
35464 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35465 if (UNTAG_Bool(REGB0)) {
35466 /* parser/parser_prod.nit:6595 */
35467 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35468 if (UNTAG_Bool(REGB0)) {
35469 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6595);
35470 }
35471 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35472 /* parser/parser_prod.nit:6596 */
35473 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
35474 if (UNTAG_Bool(REGB0)) {
35475 } else {
35476 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6596);
35477 }
35478 /* parser/parser_prod.nit:6597 */
35479 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
35480 } else {
35481 /* parser/parser_prod.nit:6599 */
35482 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6599);
35483 }
35484 /* parser/parser_prod.nit:6601 */
35485 goto label1;
35486 }
35487 /* parser/parser_prod.nit:6603 */
35488 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0])!=NIT_NULL);
35489 if (UNTAG_Bool(REGB0)) {
35490 } else {
35491 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 6603);
35492 }
35493 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0]);
35494 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35495 if (UNTAG_Bool(REGB0)) {
35496 } else {
35497 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35498 REGB0 = REGB1;
35499 }
35500 if (UNTAG_Bool(REGB0)) {
35501 /* parser/parser_prod.nit:6604 */
35502 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35503 if (UNTAG_Bool(REGB0)) {
35504 } else {
35505 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35506 if (UNTAG_Bool(REGB1)) {
35507 REGB1 = TAG_Bool(false);
35508 REGB0 = REGB1;
35509 } else {
35510 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35511 REGB0 = REGB1;
35512 }
35513 }
35514 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35515 if (UNTAG_Bool(REGB0)) {
35516 /* parser/parser_prod.nit:6605 */
35517 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35518 if (UNTAG_Bool(REGB0)) {
35519 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6605);
35520 }
35521 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35522 /* parser/parser_prod.nit:6606 */
35523 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast TObra*/;
35524 if (UNTAG_Bool(REGB0)) {
35525 } else {
35526 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6606);
35527 }
35528 /* parser/parser_prod.nit:6607 */
35529 ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
35530 } else {
35531 /* parser/parser_prod.nit:6609 */
35532 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6609);
35533 }
35534 /* parser/parser_prod.nit:6611 */
35535 goto label1;
35536 }
35537 label1: while(0);
35538 stack_frame_head = fra.me.prev;
35539 return;
35540 }
35541 void parser___parser_prod___AOrangeExpr___visit_all(val_t p0, val_t p1){
35542 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35543 val_t REGB0;
35544 val_t tmp;
35545 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35546 fra.me.file = LOCATE_parser___parser_prod;
35547 fra.me.line = 6615;
35548 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___visit_all;
35549 fra.me.has_broke = 0;
35550 fra.me.REG_size = 3;
35551 fra.me.nitni_local_ref_head = NULL;
35552 fra.me.REG[0] = NIT_NULL;
35553 fra.me.REG[1] = NIT_NULL;
35554 fra.me.REG[2] = NIT_NULL;
35555 fra.me.REG[0] = p0;
35556 fra.me.REG[1] = p1;
35557 /* parser/parser_prod.nit:6617 */
35558 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0])!=NIT_NULL);
35559 if (UNTAG_Bool(REGB0)) {
35560 } else {
35561 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 6617);
35562 }
35563 fra.me.REG[2] = ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0]);
35564 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35565 /* parser/parser_prod.nit:6618 */
35566 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35567 if (UNTAG_Bool(REGB0)) {
35568 } else {
35569 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6618);
35570 }
35571 fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
35572 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35573 /* parser/parser_prod.nit:6619 */
35574 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
35575 if (UNTAG_Bool(REGB0)) {
35576 } else {
35577 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6619);
35578 }
35579 fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
35580 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35581 /* parser/parser_prod.nit:6620 */
35582 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0])!=NIT_NULL);
35583 if (UNTAG_Bool(REGB0)) {
35584 } else {
35585 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 6620);
35586 }
35587 fra.me.REG[0] = ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0]);
35588 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35589 stack_frame_head = fra.me.prev;
35590 return;
35591 }
35592 void parser___parser_prod___AArrayExpr___empty_init(val_t p0, int* init_table){
35593 int itpos219 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AArrayExpr].i;
35594 struct {struct stack_frame_t me;} fra;
35595 val_t tmp;
35596 if (init_table[itpos219]) return;
35597 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35598 fra.me.file = LOCATE_parser___parser_prod;
35599 fra.me.line = 6624;
35600 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___empty_init;
35601 fra.me.has_broke = 0;
35602 fra.me.REG_size = 1;
35603 fra.me.nitni_local_ref_head = NULL;
35604 fra.me.REG[0] = NIT_NULL;
35605 fra.me.REG[0] = p0;
35606 stack_frame_head = fra.me.prev;
35607 init_table[itpos219] = 1;
35608 return;
35609 }
35610 void parser___parser_prod___AArrayExpr___init_aarrayexpr(val_t p0, val_t p1, int* init_table){
35611 int itpos220 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AArrayExpr].i;
35612 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35613 val_t REGB0;
35614 val_t tmp;
35615 if (init_table[itpos220]) return;
35616 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35617 fra.me.file = LOCATE_parser___parser_prod;
35618 fra.me.line = 6626;
35619 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___init_aarrayexpr;
35620 fra.me.has_broke = 0;
35621 fra.me.REG_size = 3;
35622 fra.me.nitni_local_ref_head = NULL;
35623 fra.me.REG[0] = NIT_NULL;
35624 fra.me.REG[1] = NIT_NULL;
35625 fra.me.REG[2] = NIT_NULL;
35626 fra.me.REG[0] = p0;
35627 fra.me.REG[1] = p1;
35628 /* parser/parser_prod.nit:6626 */
35629 fra.me.REG[2] = fra.me.REG[0];
35630 /* parser/parser_prod.nit:6630 */
35631 CALL_parser___parser_prod___AArrayExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
35632 /* parser/parser_prod.nit:6631 */
35633 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35634 if (UNTAG_Bool(REGB0)) {
35635 } else {
35636 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6631);
35637 }
35638 ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[2]) = fra.me.REG[1];
35639 /* parser/parser_prod.nit:6632 */
35640 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35641 if (UNTAG_Bool(REGB0)) {
35642 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6632);
35643 }
35644 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35645 stack_frame_head = fra.me.prev;
35646 init_table[itpos220] = 1;
35647 return;
35648 }
35649 void parser___parser_prod___AArrayExpr___replace_child(val_t p0, val_t p1, val_t p2){
35650 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35651 val_t REGB0;
35652 val_t REGB1;
35653 val_t tmp;
35654 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35655 fra.me.file = LOCATE_parser___parser_prod;
35656 fra.me.line = 6635;
35657 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___replace_child;
35658 fra.me.has_broke = 0;
35659 fra.me.REG_size = 4;
35660 fra.me.nitni_local_ref_head = NULL;
35661 fra.me.REG[0] = NIT_NULL;
35662 fra.me.REG[1] = NIT_NULL;
35663 fra.me.REG[2] = NIT_NULL;
35664 fra.me.REG[3] = NIT_NULL;
35665 fra.me.REG[0] = p0;
35666 fra.me.REG[1] = p1;
35667 fra.me.REG[2] = p2;
35668 /* parser/parser_prod.nit:6637 */
35669 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
35670 if (UNTAG_Bool(REGB0)) {
35671 } else {
35672 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6637);
35673 }
35674 fra.me.REG[3] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
35675 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35676 if (UNTAG_Bool(REGB0)) {
35677 } else {
35678 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35679 REGB0 = REGB1;
35680 }
35681 if (UNTAG_Bool(REGB0)) {
35682 /* parser/parser_prod.nit:6638 */
35683 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35684 if (UNTAG_Bool(REGB0)) {
35685 } else {
35686 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35687 if (UNTAG_Bool(REGB1)) {
35688 REGB1 = TAG_Bool(false);
35689 REGB0 = REGB1;
35690 } else {
35691 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35692 REGB0 = REGB1;
35693 }
35694 }
35695 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35696 if (UNTAG_Bool(REGB0)) {
35697 /* parser/parser_prod.nit:6639 */
35698 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35699 if (UNTAG_Bool(REGB0)) {
35700 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6639);
35701 }
35702 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35703 /* parser/parser_prod.nit:6640 */
35704 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
35705 if (UNTAG_Bool(REGB0)) {
35706 } else {
35707 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6640);
35708 }
35709 /* parser/parser_prod.nit:6641 */
35710 ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]) = fra.me.REG[2];
35711 } else {
35712 /* parser/parser_prod.nit:6643 */
35713 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6643);
35714 }
35715 /* parser/parser_prod.nit:6645 */
35716 goto label1;
35717 }
35718 label1: while(0);
35719 stack_frame_head = fra.me.prev;
35720 return;
35721 }
35722 void parser___parser_prod___AArrayExpr___visit_all(val_t p0, val_t p1){
35723 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35724 val_t REGB0;
35725 val_t tmp;
35726 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35727 fra.me.file = LOCATE_parser___parser_prod;
35728 fra.me.line = 6649;
35729 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___visit_all;
35730 fra.me.has_broke = 0;
35731 fra.me.REG_size = 2;
35732 fra.me.nitni_local_ref_head = NULL;
35733 fra.me.REG[0] = NIT_NULL;
35734 fra.me.REG[1] = NIT_NULL;
35735 fra.me.REG[0] = p0;
35736 fra.me.REG[1] = p1;
35737 /* parser/parser_prod.nit:6651 */
35738 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
35739 if (UNTAG_Bool(REGB0)) {
35740 } else {
35741 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6651);
35742 }
35743 fra.me.REG[0] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
35744 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35745 stack_frame_head = fra.me.prev;
35746 return;
35747 }
35748 void parser___parser_prod___ASelfExpr___empty_init(val_t p0, int* init_table){
35749 int itpos221 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASelfExpr].i;
35750 struct {struct stack_frame_t me;} fra;
35751 val_t tmp;
35752 if (init_table[itpos221]) return;
35753 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35754 fra.me.file = LOCATE_parser___parser_prod;
35755 fra.me.line = 6655;
35756 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___empty_init;
35757 fra.me.has_broke = 0;
35758 fra.me.REG_size = 1;
35759 fra.me.nitni_local_ref_head = NULL;
35760 fra.me.REG[0] = NIT_NULL;
35761 fra.me.REG[0] = p0;
35762 stack_frame_head = fra.me.prev;
35763 init_table[itpos221] = 1;
35764 return;
35765 }
35766 void parser___parser_prod___ASelfExpr___init_aselfexpr(val_t p0, val_t p1, int* init_table){
35767 int itpos222 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASelfExpr].i;
35768 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35769 val_t REGB0;
35770 val_t tmp;
35771 if (init_table[itpos222]) return;
35772 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35773 fra.me.file = LOCATE_parser___parser_prod;
35774 fra.me.line = 6657;
35775 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___init_aselfexpr;
35776 fra.me.has_broke = 0;
35777 fra.me.REG_size = 3;
35778 fra.me.nitni_local_ref_head = NULL;
35779 fra.me.REG[0] = NIT_NULL;
35780 fra.me.REG[1] = NIT_NULL;
35781 fra.me.REG[2] = NIT_NULL;
35782 fra.me.REG[0] = p0;
35783 fra.me.REG[1] = p1;
35784 /* parser/parser_prod.nit:6657 */
35785 fra.me.REG[2] = fra.me.REG[0];
35786 /* parser/parser_prod.nit:6661 */
35787 CALL_parser___parser_prod___ASelfExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
35788 /* parser/parser_prod.nit:6662 */
35789 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35790 if (UNTAG_Bool(REGB0)) {
35791 } else {
35792 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6662);
35793 }
35794 ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[2]) = fra.me.REG[1];
35795 /* parser/parser_prod.nit:6663 */
35796 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35797 if (UNTAG_Bool(REGB0)) {
35798 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6663);
35799 }
35800 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35801 stack_frame_head = fra.me.prev;
35802 init_table[itpos222] = 1;
35803 return;
35804 }
35805 void parser___parser_prod___ASelfExpr___replace_child(val_t p0, val_t p1, val_t p2){
35806 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35807 val_t REGB0;
35808 val_t REGB1;
35809 val_t tmp;
35810 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35811 fra.me.file = LOCATE_parser___parser_prod;
35812 fra.me.line = 6666;
35813 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___replace_child;
35814 fra.me.has_broke = 0;
35815 fra.me.REG_size = 4;
35816 fra.me.nitni_local_ref_head = NULL;
35817 fra.me.REG[0] = NIT_NULL;
35818 fra.me.REG[1] = NIT_NULL;
35819 fra.me.REG[2] = NIT_NULL;
35820 fra.me.REG[3] = NIT_NULL;
35821 fra.me.REG[0] = p0;
35822 fra.me.REG[1] = p1;
35823 fra.me.REG[2] = p2;
35824 /* parser/parser_prod.nit:6668 */
35825 fra.me.REG[3] = ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]);
35826 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
35827 if (UNTAG_Bool(REGB0)) {
35828 } else {
35829 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35830 if (UNTAG_Bool(REGB1)) {
35831 REGB1 = TAG_Bool(false);
35832 REGB0 = REGB1;
35833 } else {
35834 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35835 REGB0 = REGB1;
35836 }
35837 }
35838 if (UNTAG_Bool(REGB0)) {
35839 /* parser/parser_prod.nit:6669 */
35840 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35841 if (UNTAG_Bool(REGB0)) {
35842 } else {
35843 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35844 if (UNTAG_Bool(REGB1)) {
35845 REGB1 = TAG_Bool(false);
35846 REGB0 = REGB1;
35847 } else {
35848 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35849 REGB0 = REGB1;
35850 }
35851 }
35852 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35853 if (UNTAG_Bool(REGB0)) {
35854 /* parser/parser_prod.nit:6670 */
35855 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35856 if (UNTAG_Bool(REGB0)) {
35857 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6670);
35858 }
35859 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35860 /* parser/parser_prod.nit:6671 */
35861 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwself, ID_parser___parser_nodes___TKwself)) /*cast TKwself*/;
35862 if (UNTAG_Bool(REGB0)) {
35863 } else {
35864 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6671);
35865 }
35866 /* parser/parser_prod.nit:6672 */
35867 ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]) = fra.me.REG[2];
35868 } else {
35869 /* parser/parser_prod.nit:6674 */
35870 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6674);
35871 }
35872 /* parser/parser_prod.nit:6676 */
35873 goto label1;
35874 }
35875 label1: while(0);
35876 stack_frame_head = fra.me.prev;
35877 return;
35878 }
35879 void parser___parser_prod___ASelfExpr___visit_all(val_t p0, val_t p1){
35880 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35881 val_t tmp;
35882 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35883 fra.me.file = LOCATE_parser___parser_prod;
35884 fra.me.line = 6680;
35885 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___visit_all;
35886 fra.me.has_broke = 0;
35887 fra.me.REG_size = 2;
35888 fra.me.nitni_local_ref_head = NULL;
35889 fra.me.REG[0] = NIT_NULL;
35890 fra.me.REG[1] = NIT_NULL;
35891 fra.me.REG[0] = p0;
35892 fra.me.REG[1] = p1;
35893 /* parser/parser_prod.nit:6682 */
35894 fra.me.REG[0] = ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]);
35895 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35896 stack_frame_head = fra.me.prev;
35897 return;
35898 }
35899 void parser___parser_prod___AImplicitSelfExpr___empty_init(val_t p0, int* init_table){
35900 int itpos223 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AImplicitSelfExpr].i;
35901 struct {struct stack_frame_t me;} fra;
35902 val_t tmp;
35903 if (init_table[itpos223]) return;
35904 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35905 fra.me.file = LOCATE_parser___parser_prod;
35906 fra.me.line = 6686;
35907 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___empty_init;
35908 fra.me.has_broke = 0;
35909 fra.me.REG_size = 1;
35910 fra.me.nitni_local_ref_head = NULL;
35911 fra.me.REG[0] = NIT_NULL;
35912 fra.me.REG[0] = p0;
35913 stack_frame_head = fra.me.prev;
35914 init_table[itpos223] = 1;
35915 return;
35916 }
35917 void parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(val_t p0, int* init_table){
35918 int itpos224 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AImplicitSelfExpr].i;
35919 struct {struct stack_frame_t me;} fra;
35920 val_t tmp;
35921 if (init_table[itpos224]) return;
35922 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35923 fra.me.file = LOCATE_parser___parser_prod;
35924 fra.me.line = 6688;
35925 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr;
35926 fra.me.has_broke = 0;
35927 fra.me.REG_size = 1;
35928 fra.me.nitni_local_ref_head = NULL;
35929 fra.me.REG[0] = NIT_NULL;
35930 fra.me.REG[0] = p0;
35931 /* parser/parser_prod.nit:6690 */
35932 CALL_parser___parser_prod___AImplicitSelfExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
35933 stack_frame_head = fra.me.prev;
35934 init_table[itpos224] = 1;
35935 return;
35936 }
35937 void parser___parser_prod___AImplicitSelfExpr___replace_child(val_t p0, val_t p1, val_t p2){
35938 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35939 val_t tmp;
35940 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35941 fra.me.file = LOCATE_parser___parser_prod;
35942 fra.me.line = 6693;
35943 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___replace_child;
35944 fra.me.has_broke = 0;
35945 fra.me.REG_size = 3;
35946 fra.me.nitni_local_ref_head = NULL;
35947 fra.me.REG[0] = NIT_NULL;
35948 fra.me.REG[1] = NIT_NULL;
35949 fra.me.REG[2] = NIT_NULL;
35950 fra.me.REG[0] = p0;
35951 fra.me.REG[1] = p1;
35952 fra.me.REG[2] = p2;
35953 stack_frame_head = fra.me.prev;
35954 return;
35955 }
35956 void parser___parser_prod___AImplicitSelfExpr___visit_all(val_t p0, val_t p1){
35957 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35958 val_t tmp;
35959 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35960 fra.me.file = LOCATE_parser___parser_prod;
35961 fra.me.line = 6697;
35962 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___visit_all;
35963 fra.me.has_broke = 0;
35964 fra.me.REG_size = 2;
35965 fra.me.nitni_local_ref_head = NULL;
35966 fra.me.REG[0] = NIT_NULL;
35967 fra.me.REG[1] = NIT_NULL;
35968 fra.me.REG[0] = p0;
35969 fra.me.REG[1] = p1;
35970 stack_frame_head = fra.me.prev;
35971 return;
35972 }
35973 void parser___parser_prod___ATrueExpr___empty_init(val_t p0, int* init_table){
35974 int itpos225 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATrueExpr].i;
35975 struct {struct stack_frame_t me;} fra;
35976 val_t tmp;
35977 if (init_table[itpos225]) return;
35978 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35979 fra.me.file = LOCATE_parser___parser_prod;
35980 fra.me.line = 6702;
35981 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___empty_init;
35982 fra.me.has_broke = 0;
35983 fra.me.REG_size = 1;
35984 fra.me.nitni_local_ref_head = NULL;
35985 fra.me.REG[0] = NIT_NULL;
35986 fra.me.REG[0] = p0;
35987 stack_frame_head = fra.me.prev;
35988 init_table[itpos225] = 1;
35989 return;
35990 }
35991 void parser___parser_prod___ATrueExpr___init_atrueexpr(val_t p0, val_t p1, int* init_table){
35992 int itpos226 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATrueExpr].i;
35993 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35994 val_t REGB0;
35995 val_t tmp;
35996 if (init_table[itpos226]) return;
35997 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35998 fra.me.file = LOCATE_parser___parser_prod;
35999 fra.me.line = 6704;
36000 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___init_atrueexpr;
36001 fra.me.has_broke = 0;
36002 fra.me.REG_size = 3;
36003 fra.me.nitni_local_ref_head = NULL;
36004 fra.me.REG[0] = NIT_NULL;
36005 fra.me.REG[1] = NIT_NULL;
36006 fra.me.REG[2] = NIT_NULL;
36007 fra.me.REG[0] = p0;
36008 fra.me.REG[1] = p1;
36009 /* parser/parser_prod.nit:6704 */
36010 fra.me.REG[2] = fra.me.REG[0];
36011 /* parser/parser_prod.nit:6708 */
36012 CALL_parser___parser_prod___ATrueExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36013 /* parser/parser_prod.nit:6709 */
36014 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36015 if (UNTAG_Bool(REGB0)) {
36016 } else {
36017 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6709);
36018 }
36019 ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[2]) = fra.me.REG[1];
36020 /* parser/parser_prod.nit:6710 */
36021 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36022 if (UNTAG_Bool(REGB0)) {
36023 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6710);
36024 }
36025 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36026 stack_frame_head = fra.me.prev;
36027 init_table[itpos226] = 1;
36028 return;
36029 }
36030 void parser___parser_prod___ATrueExpr___replace_child(val_t p0, val_t p1, val_t p2){
36031 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36032 val_t REGB0;
36033 val_t REGB1;
36034 val_t tmp;
36035 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36036 fra.me.file = LOCATE_parser___parser_prod;
36037 fra.me.line = 6713;
36038 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___replace_child;
36039 fra.me.has_broke = 0;
36040 fra.me.REG_size = 4;
36041 fra.me.nitni_local_ref_head = NULL;
36042 fra.me.REG[0] = NIT_NULL;
36043 fra.me.REG[1] = NIT_NULL;
36044 fra.me.REG[2] = NIT_NULL;
36045 fra.me.REG[3] = NIT_NULL;
36046 fra.me.REG[0] = p0;
36047 fra.me.REG[1] = p1;
36048 fra.me.REG[2] = p2;
36049 /* parser/parser_prod.nit:6715 */
36050 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0])!=NIT_NULL);
36051 if (UNTAG_Bool(REGB0)) {
36052 } else {
36053 nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser___parser_prod, 6715);
36054 }
36055 fra.me.REG[3] = ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]);
36056 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36057 if (UNTAG_Bool(REGB0)) {
36058 } else {
36059 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36060 REGB0 = REGB1;
36061 }
36062 if (UNTAG_Bool(REGB0)) {
36063 /* parser/parser_prod.nit:6716 */
36064 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36065 if (UNTAG_Bool(REGB0)) {
36066 } else {
36067 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36068 if (UNTAG_Bool(REGB1)) {
36069 REGB1 = TAG_Bool(false);
36070 REGB0 = REGB1;
36071 } else {
36072 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36073 REGB0 = REGB1;
36074 }
36075 }
36076 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36077 if (UNTAG_Bool(REGB0)) {
36078 /* parser/parser_prod.nit:6717 */
36079 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36080 if (UNTAG_Bool(REGB0)) {
36081 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6717);
36082 }
36083 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36084 /* parser/parser_prod.nit:6718 */
36085 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwtrue, ID_parser___parser_nodes___TKwtrue)) /*cast TKwtrue*/;
36086 if (UNTAG_Bool(REGB0)) {
36087 } else {
36088 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6718);
36089 }
36090 /* parser/parser_prod.nit:6719 */
36091 ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]) = fra.me.REG[2];
36092 } else {
36093 /* parser/parser_prod.nit:6721 */
36094 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6721);
36095 }
36096 /* parser/parser_prod.nit:6723 */
36097 goto label1;
36098 }
36099 label1: while(0);
36100 stack_frame_head = fra.me.prev;
36101 return;
36102 }
36103 void parser___parser_prod___ATrueExpr___visit_all(val_t p0, val_t p1){
36104 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36105 val_t REGB0;
36106 val_t tmp;
36107 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36108 fra.me.file = LOCATE_parser___parser_prod;
36109 fra.me.line = 6727;
36110 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___visit_all;
36111 fra.me.has_broke = 0;
36112 fra.me.REG_size = 2;
36113 fra.me.nitni_local_ref_head = NULL;
36114 fra.me.REG[0] = NIT_NULL;
36115 fra.me.REG[1] = NIT_NULL;
36116 fra.me.REG[0] = p0;
36117 fra.me.REG[1] = p1;
36118 /* parser/parser_prod.nit:6729 */
36119 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0])!=NIT_NULL);
36120 if (UNTAG_Bool(REGB0)) {
36121 } else {
36122 nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser___parser_prod, 6729);
36123 }
36124 fra.me.REG[0] = ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]);
36125 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36126 stack_frame_head = fra.me.prev;
36127 return;
36128 }
36129 void parser___parser_prod___AFalseExpr___empty_init(val_t p0, int* init_table){
36130 int itpos227 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFalseExpr].i;
36131 struct {struct stack_frame_t me;} fra;
36132 val_t tmp;
36133 if (init_table[itpos227]) return;
36134 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36135 fra.me.file = LOCATE_parser___parser_prod;
36136 fra.me.line = 6733;
36137 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___empty_init;
36138 fra.me.has_broke = 0;
36139 fra.me.REG_size = 1;
36140 fra.me.nitni_local_ref_head = NULL;
36141 fra.me.REG[0] = NIT_NULL;
36142 fra.me.REG[0] = p0;
36143 stack_frame_head = fra.me.prev;
36144 init_table[itpos227] = 1;
36145 return;
36146 }
36147 void parser___parser_prod___AFalseExpr___init_afalseexpr(val_t p0, val_t p1, int* init_table){
36148 int itpos228 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFalseExpr].i;
36149 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36150 val_t REGB0;
36151 val_t tmp;
36152 if (init_table[itpos228]) return;
36153 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36154 fra.me.file = LOCATE_parser___parser_prod;
36155 fra.me.line = 6735;
36156 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___init_afalseexpr;
36157 fra.me.has_broke = 0;
36158 fra.me.REG_size = 3;
36159 fra.me.nitni_local_ref_head = NULL;
36160 fra.me.REG[0] = NIT_NULL;
36161 fra.me.REG[1] = NIT_NULL;
36162 fra.me.REG[2] = NIT_NULL;
36163 fra.me.REG[0] = p0;
36164 fra.me.REG[1] = p1;
36165 /* parser/parser_prod.nit:6735 */
36166 fra.me.REG[2] = fra.me.REG[0];
36167 /* parser/parser_prod.nit:6739 */
36168 CALL_parser___parser_prod___AFalseExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36169 /* parser/parser_prod.nit:6740 */
36170 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36171 if (UNTAG_Bool(REGB0)) {
36172 } else {
36173 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6740);
36174 }
36175 ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[2]) = fra.me.REG[1];
36176 /* parser/parser_prod.nit:6741 */
36177 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36178 if (UNTAG_Bool(REGB0)) {
36179 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6741);
36180 }
36181 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36182 stack_frame_head = fra.me.prev;
36183 init_table[itpos228] = 1;
36184 return;
36185 }
36186 void parser___parser_prod___AFalseExpr___replace_child(val_t p0, val_t p1, val_t p2){
36187 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36188 val_t REGB0;
36189 val_t REGB1;
36190 val_t tmp;
36191 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36192 fra.me.file = LOCATE_parser___parser_prod;
36193 fra.me.line = 6744;
36194 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___replace_child;
36195 fra.me.has_broke = 0;
36196 fra.me.REG_size = 4;
36197 fra.me.nitni_local_ref_head = NULL;
36198 fra.me.REG[0] = NIT_NULL;
36199 fra.me.REG[1] = NIT_NULL;
36200 fra.me.REG[2] = NIT_NULL;
36201 fra.me.REG[3] = NIT_NULL;
36202 fra.me.REG[0] = p0;
36203 fra.me.REG[1] = p1;
36204 fra.me.REG[2] = p2;
36205 /* parser/parser_prod.nit:6746 */
36206 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0])!=NIT_NULL);
36207 if (UNTAG_Bool(REGB0)) {
36208 } else {
36209 nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser___parser_prod, 6746);
36210 }
36211 fra.me.REG[3] = ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]);
36212 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36213 if (UNTAG_Bool(REGB0)) {
36214 } else {
36215 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36216 REGB0 = REGB1;
36217 }
36218 if (UNTAG_Bool(REGB0)) {
36219 /* parser/parser_prod.nit:6747 */
36220 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36221 if (UNTAG_Bool(REGB0)) {
36222 } else {
36223 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36224 if (UNTAG_Bool(REGB1)) {
36225 REGB1 = TAG_Bool(false);
36226 REGB0 = REGB1;
36227 } else {
36228 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36229 REGB0 = REGB1;
36230 }
36231 }
36232 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36233 if (UNTAG_Bool(REGB0)) {
36234 /* parser/parser_prod.nit:6748 */
36235 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36236 if (UNTAG_Bool(REGB0)) {
36237 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6748);
36238 }
36239 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36240 /* parser/parser_prod.nit:6749 */
36241 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwfalse, ID_parser___parser_nodes___TKwfalse)) /*cast TKwfalse*/;
36242 if (UNTAG_Bool(REGB0)) {
36243 } else {
36244 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6749);
36245 }
36246 /* parser/parser_prod.nit:6750 */
36247 ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]) = fra.me.REG[2];
36248 } else {
36249 /* parser/parser_prod.nit:6752 */
36250 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6752);
36251 }
36252 /* parser/parser_prod.nit:6754 */
36253 goto label1;
36254 }
36255 label1: while(0);
36256 stack_frame_head = fra.me.prev;
36257 return;
36258 }
36259 void parser___parser_prod___AFalseExpr___visit_all(val_t p0, val_t p1){
36260 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36261 val_t REGB0;
36262 val_t tmp;
36263 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36264 fra.me.file = LOCATE_parser___parser_prod;
36265 fra.me.line = 6758;
36266 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___visit_all;
36267 fra.me.has_broke = 0;
36268 fra.me.REG_size = 2;
36269 fra.me.nitni_local_ref_head = NULL;
36270 fra.me.REG[0] = NIT_NULL;
36271 fra.me.REG[1] = NIT_NULL;
36272 fra.me.REG[0] = p0;
36273 fra.me.REG[1] = p1;
36274 /* parser/parser_prod.nit:6760 */
36275 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0])!=NIT_NULL);
36276 if (UNTAG_Bool(REGB0)) {
36277 } else {
36278 nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser___parser_prod, 6760);
36279 }
36280 fra.me.REG[0] = ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]);
36281 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36282 stack_frame_head = fra.me.prev;
36283 return;
36284 }
36285 void parser___parser_prod___ANullExpr___empty_init(val_t p0, int* init_table){
36286 int itpos229 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANullExpr].i;
36287 struct {struct stack_frame_t me;} fra;
36288 val_t tmp;
36289 if (init_table[itpos229]) return;
36290 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36291 fra.me.file = LOCATE_parser___parser_prod;
36292 fra.me.line = 6764;
36293 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___empty_init;
36294 fra.me.has_broke = 0;
36295 fra.me.REG_size = 1;
36296 fra.me.nitni_local_ref_head = NULL;
36297 fra.me.REG[0] = NIT_NULL;
36298 fra.me.REG[0] = p0;
36299 stack_frame_head = fra.me.prev;
36300 init_table[itpos229] = 1;
36301 return;
36302 }
36303 void parser___parser_prod___ANullExpr___init_anullexpr(val_t p0, val_t p1, int* init_table){
36304 int itpos230 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANullExpr].i;
36305 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36306 val_t REGB0;
36307 val_t tmp;
36308 if (init_table[itpos230]) return;
36309 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36310 fra.me.file = LOCATE_parser___parser_prod;
36311 fra.me.line = 6766;
36312 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___init_anullexpr;
36313 fra.me.has_broke = 0;
36314 fra.me.REG_size = 3;
36315 fra.me.nitni_local_ref_head = NULL;
36316 fra.me.REG[0] = NIT_NULL;
36317 fra.me.REG[1] = NIT_NULL;
36318 fra.me.REG[2] = NIT_NULL;
36319 fra.me.REG[0] = p0;
36320 fra.me.REG[1] = p1;
36321 /* parser/parser_prod.nit:6766 */
36322 fra.me.REG[2] = fra.me.REG[0];
36323 /* parser/parser_prod.nit:6770 */
36324 CALL_parser___parser_prod___ANullExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36325 /* parser/parser_prod.nit:6771 */
36326 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36327 if (UNTAG_Bool(REGB0)) {
36328 } else {
36329 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6771);
36330 }
36331 ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[2]) = fra.me.REG[1];
36332 /* parser/parser_prod.nit:6772 */
36333 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36334 if (UNTAG_Bool(REGB0)) {
36335 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6772);
36336 }
36337 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36338 stack_frame_head = fra.me.prev;
36339 init_table[itpos230] = 1;
36340 return;
36341 }
36342 void parser___parser_prod___ANullExpr___replace_child(val_t p0, val_t p1, val_t p2){
36343 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36344 val_t REGB0;
36345 val_t REGB1;
36346 val_t tmp;
36347 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36348 fra.me.file = LOCATE_parser___parser_prod;
36349 fra.me.line = 6775;
36350 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___replace_child;
36351 fra.me.has_broke = 0;
36352 fra.me.REG_size = 4;
36353 fra.me.nitni_local_ref_head = NULL;
36354 fra.me.REG[0] = NIT_NULL;
36355 fra.me.REG[1] = NIT_NULL;
36356 fra.me.REG[2] = NIT_NULL;
36357 fra.me.REG[3] = NIT_NULL;
36358 fra.me.REG[0] = p0;
36359 fra.me.REG[1] = p1;
36360 fra.me.REG[2] = p2;
36361 /* parser/parser_prod.nit:6777 */
36362 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
36363 if (UNTAG_Bool(REGB0)) {
36364 } else {
36365 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 6777);
36366 }
36367 fra.me.REG[3] = ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]);
36368 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36369 if (UNTAG_Bool(REGB0)) {
36370 } else {
36371 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36372 REGB0 = REGB1;
36373 }
36374 if (UNTAG_Bool(REGB0)) {
36375 /* parser/parser_prod.nit:6778 */
36376 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36377 if (UNTAG_Bool(REGB0)) {
36378 } else {
36379 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36380 if (UNTAG_Bool(REGB1)) {
36381 REGB1 = TAG_Bool(false);
36382 REGB0 = REGB1;
36383 } else {
36384 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36385 REGB0 = REGB1;
36386 }
36387 }
36388 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36389 if (UNTAG_Bool(REGB0)) {
36390 /* parser/parser_prod.nit:6779 */
36391 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36392 if (UNTAG_Bool(REGB0)) {
36393 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6779);
36394 }
36395 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36396 /* parser/parser_prod.nit:6780 */
36397 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnull, ID_parser___parser_nodes___TKwnull)) /*cast TKwnull*/;
36398 if (UNTAG_Bool(REGB0)) {
36399 } else {
36400 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6780);
36401 }
36402 /* parser/parser_prod.nit:6781 */
36403 ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[2];
36404 } else {
36405 /* parser/parser_prod.nit:6783 */
36406 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6783);
36407 }
36408 /* parser/parser_prod.nit:6785 */
36409 goto label1;
36410 }
36411 label1: while(0);
36412 stack_frame_head = fra.me.prev;
36413 return;
36414 }
36415 void parser___parser_prod___ANullExpr___visit_all(val_t p0, val_t p1){
36416 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36417 val_t REGB0;
36418 val_t tmp;
36419 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36420 fra.me.file = LOCATE_parser___parser_prod;
36421 fra.me.line = 6789;
36422 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___visit_all;
36423 fra.me.has_broke = 0;
36424 fra.me.REG_size = 2;
36425 fra.me.nitni_local_ref_head = NULL;
36426 fra.me.REG[0] = NIT_NULL;
36427 fra.me.REG[1] = NIT_NULL;
36428 fra.me.REG[0] = p0;
36429 fra.me.REG[1] = p1;
36430 /* parser/parser_prod.nit:6791 */
36431 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
36432 if (UNTAG_Bool(REGB0)) {
36433 } else {
36434 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 6791);
36435 }
36436 fra.me.REG[0] = ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]);
36437 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36438 stack_frame_head = fra.me.prev;
36439 return;
36440 }
36441 void parser___parser_prod___AIntExpr___empty_init(val_t p0, int* init_table){
36442 int itpos231 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIntExpr].i;
36443 struct {struct stack_frame_t me;} fra;
36444 val_t tmp;
36445 if (init_table[itpos231]) return;
36446 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36447 fra.me.file = LOCATE_parser___parser_prod;
36448 fra.me.line = 6795;
36449 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___empty_init;
36450 fra.me.has_broke = 0;
36451 fra.me.REG_size = 1;
36452 fra.me.nitni_local_ref_head = NULL;
36453 fra.me.REG[0] = NIT_NULL;
36454 fra.me.REG[0] = p0;
36455 stack_frame_head = fra.me.prev;
36456 init_table[itpos231] = 1;
36457 return;
36458 }
36459 void parser___parser_prod___AIntExpr___init_aintexpr(val_t p0, val_t p1, int* init_table){
36460 int itpos232 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIntExpr].i;
36461 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36462 val_t REGB0;
36463 val_t tmp;
36464 if (init_table[itpos232]) return;
36465 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36466 fra.me.file = LOCATE_parser___parser_prod;
36467 fra.me.line = 6797;
36468 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___init_aintexpr;
36469 fra.me.has_broke = 0;
36470 fra.me.REG_size = 3;
36471 fra.me.nitni_local_ref_head = NULL;
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:6797 */
36478 fra.me.REG[2] = fra.me.REG[0];
36479 /* parser/parser_prod.nit:6801 */
36480 CALL_parser___parser_prod___AIntExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36481 /* parser/parser_prod.nit:6802 */
36482 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36483 if (UNTAG_Bool(REGB0)) {
36484 } else {
36485 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6802);
36486 }
36487 ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[2]) = fra.me.REG[1];
36488 /* parser/parser_prod.nit:6803 */
36489 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36490 if (UNTAG_Bool(REGB0)) {
36491 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6803);
36492 }
36493 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36494 stack_frame_head = fra.me.prev;
36495 init_table[itpos232] = 1;
36496 return;
36497 }
36498 void parser___parser_prod___AIntExpr___replace_child(val_t p0, val_t p1, val_t p2){
36499 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36500 val_t REGB0;
36501 val_t REGB1;
36502 val_t tmp;
36503 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36504 fra.me.file = LOCATE_parser___parser_prod;
36505 fra.me.line = 6806;
36506 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___replace_child;
36507 fra.me.has_broke = 0;
36508 fra.me.REG_size = 4;
36509 fra.me.nitni_local_ref_head = NULL;
36510 fra.me.REG[0] = NIT_NULL;
36511 fra.me.REG[1] = NIT_NULL;
36512 fra.me.REG[2] = NIT_NULL;
36513 fra.me.REG[3] = NIT_NULL;
36514 fra.me.REG[0] = p0;
36515 fra.me.REG[1] = p1;
36516 fra.me.REG[2] = p2;
36517 /* parser/parser_prod.nit:6808 */
36518 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
36519 if (UNTAG_Bool(REGB0)) {
36520 } else {
36521 nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser___parser_prod, 6808);
36522 }
36523 fra.me.REG[3] = ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]);
36524 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36525 if (UNTAG_Bool(REGB0)) {
36526 } else {
36527 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36528 REGB0 = REGB1;
36529 }
36530 if (UNTAG_Bool(REGB0)) {
36531 /* parser/parser_prod.nit:6809 */
36532 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36533 if (UNTAG_Bool(REGB0)) {
36534 } else {
36535 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36536 if (UNTAG_Bool(REGB1)) {
36537 REGB1 = TAG_Bool(false);
36538 REGB0 = REGB1;
36539 } else {
36540 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36541 REGB0 = REGB1;
36542 }
36543 }
36544 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36545 if (UNTAG_Bool(REGB0)) {
36546 /* parser/parser_prod.nit:6810 */
36547 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36548 if (UNTAG_Bool(REGB0)) {
36549 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6810);
36550 }
36551 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36552 /* parser/parser_prod.nit:6811 */
36553 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TNumber, ID_parser___parser_nodes___TNumber)) /*cast TNumber*/;
36554 if (UNTAG_Bool(REGB0)) {
36555 } else {
36556 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6811);
36557 }
36558 /* parser/parser_prod.nit:6812 */
36559 ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]) = fra.me.REG[2];
36560 } else {
36561 /* parser/parser_prod.nit:6814 */
36562 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6814);
36563 }
36564 /* parser/parser_prod.nit:6816 */
36565 goto label1;
36566 }
36567 label1: while(0);
36568 stack_frame_head = fra.me.prev;
36569 return;
36570 }
36571 void parser___parser_prod___AIntExpr___visit_all(val_t p0, val_t p1){
36572 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36573 val_t REGB0;
36574 val_t tmp;
36575 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36576 fra.me.file = LOCATE_parser___parser_prod;
36577 fra.me.line = 6820;
36578 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___visit_all;
36579 fra.me.has_broke = 0;
36580 fra.me.REG_size = 2;
36581 fra.me.nitni_local_ref_head = NULL;
36582 fra.me.REG[0] = NIT_NULL;
36583 fra.me.REG[1] = NIT_NULL;
36584 fra.me.REG[0] = p0;
36585 fra.me.REG[1] = p1;
36586 /* parser/parser_prod.nit:6822 */
36587 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
36588 if (UNTAG_Bool(REGB0)) {
36589 } else {
36590 nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser___parser_prod, 6822);
36591 }
36592 fra.me.REG[0] = ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]);
36593 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36594 stack_frame_head = fra.me.prev;
36595 return;
36596 }
36597 void parser___parser_prod___AFloatExpr___empty_init(val_t p0, int* init_table){
36598 int itpos233 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFloatExpr].i;
36599 struct {struct stack_frame_t me;} fra;
36600 val_t tmp;
36601 if (init_table[itpos233]) return;
36602 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36603 fra.me.file = LOCATE_parser___parser_prod;
36604 fra.me.line = 6826;
36605 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___empty_init;
36606 fra.me.has_broke = 0;
36607 fra.me.REG_size = 1;
36608 fra.me.nitni_local_ref_head = NULL;
36609 fra.me.REG[0] = NIT_NULL;
36610 fra.me.REG[0] = p0;
36611 stack_frame_head = fra.me.prev;
36612 init_table[itpos233] = 1;
36613 return;
36614 }
36615 void parser___parser_prod___AFloatExpr___init_afloatexpr(val_t p0, val_t p1, int* init_table){
36616 int itpos234 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFloatExpr].i;
36617 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36618 val_t REGB0;
36619 val_t tmp;
36620 if (init_table[itpos234]) return;
36621 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36622 fra.me.file = LOCATE_parser___parser_prod;
36623 fra.me.line = 6828;
36624 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___init_afloatexpr;
36625 fra.me.has_broke = 0;
36626 fra.me.REG_size = 3;
36627 fra.me.nitni_local_ref_head = NULL;
36628 fra.me.REG[0] = NIT_NULL;
36629 fra.me.REG[1] = NIT_NULL;
36630 fra.me.REG[2] = NIT_NULL;
36631 fra.me.REG[0] = p0;
36632 fra.me.REG[1] = p1;
36633 /* parser/parser_prod.nit:6828 */
36634 fra.me.REG[2] = fra.me.REG[0];
36635 /* parser/parser_prod.nit:6832 */
36636 CALL_parser___parser_prod___AFloatExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36637 /* parser/parser_prod.nit:6833 */
36638 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36639 if (UNTAG_Bool(REGB0)) {
36640 } else {
36641 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6833);
36642 }
36643 ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[2]) = fra.me.REG[1];
36644 /* parser/parser_prod.nit:6834 */
36645 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36646 if (UNTAG_Bool(REGB0)) {
36647 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6834);
36648 }
36649 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36650 stack_frame_head = fra.me.prev;
36651 init_table[itpos234] = 1;
36652 return;
36653 }
36654 void parser___parser_prod___AFloatExpr___replace_child(val_t p0, val_t p1, val_t p2){
36655 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36656 val_t REGB0;
36657 val_t REGB1;
36658 val_t tmp;
36659 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36660 fra.me.file = LOCATE_parser___parser_prod;
36661 fra.me.line = 6837;
36662 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___replace_child;
36663 fra.me.has_broke = 0;
36664 fra.me.REG_size = 4;
36665 fra.me.nitni_local_ref_head = NULL;
36666 fra.me.REG[0] = NIT_NULL;
36667 fra.me.REG[1] = NIT_NULL;
36668 fra.me.REG[2] = NIT_NULL;
36669 fra.me.REG[3] = NIT_NULL;
36670 fra.me.REG[0] = p0;
36671 fra.me.REG[1] = p1;
36672 fra.me.REG[2] = p2;
36673 /* parser/parser_prod.nit:6839 */
36674 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
36675 if (UNTAG_Bool(REGB0)) {
36676 } else {
36677 nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser___parser_prod, 6839);
36678 }
36679 fra.me.REG[3] = ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]);
36680 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36681 if (UNTAG_Bool(REGB0)) {
36682 } else {
36683 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36684 REGB0 = REGB1;
36685 }
36686 if (UNTAG_Bool(REGB0)) {
36687 /* parser/parser_prod.nit:6840 */
36688 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36689 if (UNTAG_Bool(REGB0)) {
36690 } else {
36691 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36692 if (UNTAG_Bool(REGB1)) {
36693 REGB1 = TAG_Bool(false);
36694 REGB0 = REGB1;
36695 } else {
36696 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36697 REGB0 = REGB1;
36698 }
36699 }
36700 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36701 if (UNTAG_Bool(REGB0)) {
36702 /* parser/parser_prod.nit:6841 */
36703 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36704 if (UNTAG_Bool(REGB0)) {
36705 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6841);
36706 }
36707 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36708 /* parser/parser_prod.nit:6842 */
36709 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TFloat, ID_parser___parser_nodes___TFloat)) /*cast TFloat*/;
36710 if (UNTAG_Bool(REGB0)) {
36711 } else {
36712 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6842);
36713 }
36714 /* parser/parser_prod.nit:6843 */
36715 ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]) = fra.me.REG[2];
36716 } else {
36717 /* parser/parser_prod.nit:6845 */
36718 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6845);
36719 }
36720 /* parser/parser_prod.nit:6847 */
36721 goto label1;
36722 }
36723 label1: while(0);
36724 stack_frame_head = fra.me.prev;
36725 return;
36726 }
36727 void parser___parser_prod___AFloatExpr___visit_all(val_t p0, val_t p1){
36728 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36729 val_t REGB0;
36730 val_t tmp;
36731 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36732 fra.me.file = LOCATE_parser___parser_prod;
36733 fra.me.line = 6851;
36734 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___visit_all;
36735 fra.me.has_broke = 0;
36736 fra.me.REG_size = 2;
36737 fra.me.nitni_local_ref_head = NULL;
36738 fra.me.REG[0] = NIT_NULL;
36739 fra.me.REG[1] = NIT_NULL;
36740 fra.me.REG[0] = p0;
36741 fra.me.REG[1] = p1;
36742 /* parser/parser_prod.nit:6853 */
36743 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
36744 if (UNTAG_Bool(REGB0)) {
36745 } else {
36746 nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser___parser_prod, 6853);
36747 }
36748 fra.me.REG[0] = ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]);
36749 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36750 stack_frame_head = fra.me.prev;
36751 return;
36752 }
36753 void parser___parser_prod___ACharExpr___empty_init(val_t p0, int* init_table){
36754 int itpos235 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACharExpr].i;
36755 struct {struct stack_frame_t me;} fra;
36756 val_t tmp;
36757 if (init_table[itpos235]) return;
36758 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36759 fra.me.file = LOCATE_parser___parser_prod;
36760 fra.me.line = 6857;
36761 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___empty_init;
36762 fra.me.has_broke = 0;
36763 fra.me.REG_size = 1;
36764 fra.me.nitni_local_ref_head = NULL;
36765 fra.me.REG[0] = NIT_NULL;
36766 fra.me.REG[0] = p0;
36767 stack_frame_head = fra.me.prev;
36768 init_table[itpos235] = 1;
36769 return;
36770 }
36771 void parser___parser_prod___ACharExpr___init_acharexpr(val_t p0, val_t p1, int* init_table){
36772 int itpos236 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACharExpr].i;
36773 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36774 val_t REGB0;
36775 val_t tmp;
36776 if (init_table[itpos236]) return;
36777 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36778 fra.me.file = LOCATE_parser___parser_prod;
36779 fra.me.line = 6859;
36780 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___init_acharexpr;
36781 fra.me.has_broke = 0;
36782 fra.me.REG_size = 3;
36783 fra.me.nitni_local_ref_head = NULL;
36784 fra.me.REG[0] = NIT_NULL;
36785 fra.me.REG[1] = NIT_NULL;
36786 fra.me.REG[2] = NIT_NULL;
36787 fra.me.REG[0] = p0;
36788 fra.me.REG[1] = p1;
36789 /* parser/parser_prod.nit:6859 */
36790 fra.me.REG[2] = fra.me.REG[0];
36791 /* parser/parser_prod.nit:6863 */
36792 CALL_parser___parser_prod___ACharExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36793 /* parser/parser_prod.nit:6864 */
36794 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36795 if (UNTAG_Bool(REGB0)) {
36796 } else {
36797 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6864);
36798 }
36799 ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[2]) = fra.me.REG[1];
36800 /* parser/parser_prod.nit:6865 */
36801 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36802 if (UNTAG_Bool(REGB0)) {
36803 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6865);
36804 }
36805 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36806 stack_frame_head = fra.me.prev;
36807 init_table[itpos236] = 1;
36808 return;
36809 }
36810 void parser___parser_prod___ACharExpr___replace_child(val_t p0, val_t p1, val_t p2){
36811 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36812 val_t REGB0;
36813 val_t REGB1;
36814 val_t tmp;
36815 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36816 fra.me.file = LOCATE_parser___parser_prod;
36817 fra.me.line = 6868;
36818 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___replace_child;
36819 fra.me.has_broke = 0;
36820 fra.me.REG_size = 4;
36821 fra.me.nitni_local_ref_head = NULL;
36822 fra.me.REG[0] = NIT_NULL;
36823 fra.me.REG[1] = NIT_NULL;
36824 fra.me.REG[2] = NIT_NULL;
36825 fra.me.REG[3] = NIT_NULL;
36826 fra.me.REG[0] = p0;
36827 fra.me.REG[1] = p1;
36828 fra.me.REG[2] = p2;
36829 /* parser/parser_prod.nit:6870 */
36830 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
36831 if (UNTAG_Bool(REGB0)) {
36832 } else {
36833 nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser___parser_prod, 6870);
36834 }
36835 fra.me.REG[3] = ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]);
36836 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36837 if (UNTAG_Bool(REGB0)) {
36838 } else {
36839 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36840 REGB0 = REGB1;
36841 }
36842 if (UNTAG_Bool(REGB0)) {
36843 /* parser/parser_prod.nit:6871 */
36844 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36845 if (UNTAG_Bool(REGB0)) {
36846 } else {
36847 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36848 if (UNTAG_Bool(REGB1)) {
36849 REGB1 = TAG_Bool(false);
36850 REGB0 = REGB1;
36851 } else {
36852 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36853 REGB0 = REGB1;
36854 }
36855 }
36856 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36857 if (UNTAG_Bool(REGB0)) {
36858 /* parser/parser_prod.nit:6872 */
36859 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36860 if (UNTAG_Bool(REGB0)) {
36861 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6872);
36862 }
36863 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36864 /* parser/parser_prod.nit:6873 */
36865 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TChar, ID_parser___parser_nodes___TChar)) /*cast TChar*/;
36866 if (UNTAG_Bool(REGB0)) {
36867 } else {
36868 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6873);
36869 }
36870 /* parser/parser_prod.nit:6874 */
36871 ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]) = fra.me.REG[2];
36872 } else {
36873 /* parser/parser_prod.nit:6876 */
36874 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6876);
36875 }
36876 /* parser/parser_prod.nit:6878 */
36877 goto label1;
36878 }
36879 label1: while(0);
36880 stack_frame_head = fra.me.prev;
36881 return;
36882 }
36883 void parser___parser_prod___ACharExpr___visit_all(val_t p0, val_t p1){
36884 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36885 val_t REGB0;
36886 val_t tmp;
36887 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36888 fra.me.file = LOCATE_parser___parser_prod;
36889 fra.me.line = 6882;
36890 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___visit_all;
36891 fra.me.has_broke = 0;
36892 fra.me.REG_size = 2;
36893 fra.me.nitni_local_ref_head = NULL;
36894 fra.me.REG[0] = NIT_NULL;
36895 fra.me.REG[1] = NIT_NULL;
36896 fra.me.REG[0] = p0;
36897 fra.me.REG[1] = p1;
36898 /* parser/parser_prod.nit:6884 */
36899 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
36900 if (UNTAG_Bool(REGB0)) {
36901 } else {
36902 nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser___parser_prod, 6884);
36903 }
36904 fra.me.REG[0] = ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]);
36905 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36906 stack_frame_head = fra.me.prev;
36907 return;
36908 }
36909 void parser___parser_prod___AStringExpr___empty_init(val_t p0, int* init_table){
36910 int itpos237 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStringExpr].i;
36911 struct {struct stack_frame_t me;} fra;
36912 val_t tmp;
36913 if (init_table[itpos237]) return;
36914 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36915 fra.me.file = LOCATE_parser___parser_prod;
36916 fra.me.line = 6888;
36917 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___empty_init;
36918 fra.me.has_broke = 0;
36919 fra.me.REG_size = 1;
36920 fra.me.nitni_local_ref_head = NULL;
36921 fra.me.REG[0] = NIT_NULL;
36922 fra.me.REG[0] = p0;
36923 stack_frame_head = fra.me.prev;
36924 init_table[itpos237] = 1;
36925 return;
36926 }
36927 void parser___parser_prod___AStringExpr___init_astringexpr(val_t p0, val_t p1, int* init_table){
36928 int itpos238 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStringExpr].i;
36929 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36930 val_t REGB0;
36931 val_t tmp;
36932 if (init_table[itpos238]) return;
36933 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36934 fra.me.file = LOCATE_parser___parser_prod;
36935 fra.me.line = 6890;
36936 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___init_astringexpr;
36937 fra.me.has_broke = 0;
36938 fra.me.REG_size = 3;
36939 fra.me.nitni_local_ref_head = NULL;
36940 fra.me.REG[0] = NIT_NULL;
36941 fra.me.REG[1] = NIT_NULL;
36942 fra.me.REG[2] = NIT_NULL;
36943 fra.me.REG[0] = p0;
36944 fra.me.REG[1] = p1;
36945 /* parser/parser_prod.nit:6890 */
36946 fra.me.REG[2] = fra.me.REG[0];
36947 /* parser/parser_prod.nit:6894 */
36948 CALL_parser___parser_prod___AStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36949 /* parser/parser_prod.nit:6895 */
36950 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36951 if (UNTAG_Bool(REGB0)) {
36952 } else {
36953 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6895);
36954 }
36955 ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
36956 /* parser/parser_prod.nit:6896 */
36957 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36958 if (UNTAG_Bool(REGB0)) {
36959 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6896);
36960 }
36961 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36962 stack_frame_head = fra.me.prev;
36963 init_table[itpos238] = 1;
36964 return;
36965 }
36966 void parser___parser_prod___AStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
36967 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36968 val_t REGB0;
36969 val_t REGB1;
36970 val_t tmp;
36971 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36972 fra.me.file = LOCATE_parser___parser_prod;
36973 fra.me.line = 6899;
36974 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___replace_child;
36975 fra.me.has_broke = 0;
36976 fra.me.REG_size = 4;
36977 fra.me.nitni_local_ref_head = NULL;
36978 fra.me.REG[0] = NIT_NULL;
36979 fra.me.REG[1] = NIT_NULL;
36980 fra.me.REG[2] = NIT_NULL;
36981 fra.me.REG[3] = NIT_NULL;
36982 fra.me.REG[0] = p0;
36983 fra.me.REG[1] = p1;
36984 fra.me.REG[2] = p2;
36985 /* parser/parser_prod.nit:6901 */
36986 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
36987 if (UNTAG_Bool(REGB0)) {
36988 } else {
36989 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6901);
36990 }
36991 fra.me.REG[3] = ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0]);
36992 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36993 if (UNTAG_Bool(REGB0)) {
36994 } else {
36995 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36996 REGB0 = REGB1;
36997 }
36998 if (UNTAG_Bool(REGB0)) {
36999 /* parser/parser_prod.nit:6902 */
37000 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37001 if (UNTAG_Bool(REGB0)) {
37002 } else {
37003 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37004 if (UNTAG_Bool(REGB1)) {
37005 REGB1 = TAG_Bool(false);
37006 REGB0 = REGB1;
37007 } else {
37008 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37009 REGB0 = REGB1;
37010 }
37011 }
37012 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37013 if (UNTAG_Bool(REGB0)) {
37014 /* parser/parser_prod.nit:6903 */
37015 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37016 if (UNTAG_Bool(REGB0)) {
37017 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6903);
37018 }
37019 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37020 /* parser/parser_prod.nit:6904 */
37021 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast TString*/;
37022 if (UNTAG_Bool(REGB0)) {
37023 } else {
37024 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6904);
37025 }
37026 /* parser/parser_prod.nit:6905 */
37027 ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
37028 } else {
37029 /* parser/parser_prod.nit:6907 */
37030 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6907);
37031 }
37032 /* parser/parser_prod.nit:6909 */
37033 goto label1;
37034 }
37035 label1: while(0);
37036 stack_frame_head = fra.me.prev;
37037 return;
37038 }
37039 void parser___parser_prod___AStringExpr___visit_all(val_t p0, val_t p1){
37040 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37041 val_t REGB0;
37042 val_t tmp;
37043 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37044 fra.me.file = LOCATE_parser___parser_prod;
37045 fra.me.line = 6913;
37046 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___visit_all;
37047 fra.me.has_broke = 0;
37048 fra.me.REG_size = 2;
37049 fra.me.nitni_local_ref_head = NULL;
37050 fra.me.REG[0] = NIT_NULL;
37051 fra.me.REG[1] = NIT_NULL;
37052 fra.me.REG[0] = p0;
37053 fra.me.REG[1] = p1;
37054 /* parser/parser_prod.nit:6915 */
37055 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37056 if (UNTAG_Bool(REGB0)) {
37057 } else {
37058 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6915);
37059 }
37060 fra.me.REG[0] = ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0]);
37061 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37062 stack_frame_head = fra.me.prev;
37063 return;
37064 }
37065 void parser___parser_prod___AStartStringExpr___empty_init(val_t p0, int* init_table){
37066 int itpos239 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStartStringExpr].i;
37067 struct {struct stack_frame_t me;} fra;
37068 val_t tmp;
37069 if (init_table[itpos239]) return;
37070 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37071 fra.me.file = LOCATE_parser___parser_prod;
37072 fra.me.line = 6919;
37073 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___empty_init;
37074 fra.me.has_broke = 0;
37075 fra.me.REG_size = 1;
37076 fra.me.nitni_local_ref_head = NULL;
37077 fra.me.REG[0] = NIT_NULL;
37078 fra.me.REG[0] = p0;
37079 stack_frame_head = fra.me.prev;
37080 init_table[itpos239] = 1;
37081 return;
37082 }
37083 void parser___parser_prod___AStartStringExpr___init_astartstringexpr(val_t p0, val_t p1, int* init_table){
37084 int itpos240 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStartStringExpr].i;
37085 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37086 val_t REGB0;
37087 val_t tmp;
37088 if (init_table[itpos240]) return;
37089 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37090 fra.me.file = LOCATE_parser___parser_prod;
37091 fra.me.line = 6921;
37092 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___init_astartstringexpr;
37093 fra.me.has_broke = 0;
37094 fra.me.REG_size = 3;
37095 fra.me.nitni_local_ref_head = NULL;
37096 fra.me.REG[0] = NIT_NULL;
37097 fra.me.REG[1] = NIT_NULL;
37098 fra.me.REG[2] = NIT_NULL;
37099 fra.me.REG[0] = p0;
37100 fra.me.REG[1] = p1;
37101 /* parser/parser_prod.nit:6921 */
37102 fra.me.REG[2] = fra.me.REG[0];
37103 /* parser/parser_prod.nit:6925 */
37104 CALL_parser___parser_prod___AStartStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37105 /* parser/parser_prod.nit:6926 */
37106 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37107 if (UNTAG_Bool(REGB0)) {
37108 } else {
37109 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6926);
37110 }
37111 ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
37112 /* parser/parser_prod.nit:6927 */
37113 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37114 if (UNTAG_Bool(REGB0)) {
37115 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6927);
37116 }
37117 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37118 stack_frame_head = fra.me.prev;
37119 init_table[itpos240] = 1;
37120 return;
37121 }
37122 void parser___parser_prod___AStartStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
37123 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37124 val_t REGB0;
37125 val_t REGB1;
37126 val_t tmp;
37127 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37128 fra.me.file = LOCATE_parser___parser_prod;
37129 fra.me.line = 6930;
37130 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___replace_child;
37131 fra.me.has_broke = 0;
37132 fra.me.REG_size = 4;
37133 fra.me.nitni_local_ref_head = NULL;
37134 fra.me.REG[0] = NIT_NULL;
37135 fra.me.REG[1] = NIT_NULL;
37136 fra.me.REG[2] = NIT_NULL;
37137 fra.me.REG[3] = NIT_NULL;
37138 fra.me.REG[0] = p0;
37139 fra.me.REG[1] = p1;
37140 fra.me.REG[2] = p2;
37141 /* parser/parser_prod.nit:6932 */
37142 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37143 if (UNTAG_Bool(REGB0)) {
37144 } else {
37145 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6932);
37146 }
37147 fra.me.REG[3] = ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]);
37148 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37149 if (UNTAG_Bool(REGB0)) {
37150 } else {
37151 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37152 REGB0 = REGB1;
37153 }
37154 if (UNTAG_Bool(REGB0)) {
37155 /* parser/parser_prod.nit:6933 */
37156 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37157 if (UNTAG_Bool(REGB0)) {
37158 } else {
37159 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37160 if (UNTAG_Bool(REGB1)) {
37161 REGB1 = TAG_Bool(false);
37162 REGB0 = REGB1;
37163 } else {
37164 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37165 REGB0 = REGB1;
37166 }
37167 }
37168 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37169 if (UNTAG_Bool(REGB0)) {
37170 /* parser/parser_prod.nit:6934 */
37171 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37172 if (UNTAG_Bool(REGB0)) {
37173 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6934);
37174 }
37175 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37176 /* parser/parser_prod.nit:6935 */
37177 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TStartString, ID_parser___parser_nodes___TStartString)) /*cast TStartString*/;
37178 if (UNTAG_Bool(REGB0)) {
37179 } else {
37180 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6935);
37181 }
37182 /* parser/parser_prod.nit:6936 */
37183 ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
37184 } else {
37185 /* parser/parser_prod.nit:6938 */
37186 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6938);
37187 }
37188 /* parser/parser_prod.nit:6940 */
37189 goto label1;
37190 }
37191 label1: while(0);
37192 stack_frame_head = fra.me.prev;
37193 return;
37194 }
37195 void parser___parser_prod___AStartStringExpr___visit_all(val_t p0, val_t p1){
37196 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37197 val_t REGB0;
37198 val_t tmp;
37199 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37200 fra.me.file = LOCATE_parser___parser_prod;
37201 fra.me.line = 6944;
37202 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___visit_all;
37203 fra.me.has_broke = 0;
37204 fra.me.REG_size = 2;
37205 fra.me.nitni_local_ref_head = NULL;
37206 fra.me.REG[0] = NIT_NULL;
37207 fra.me.REG[1] = NIT_NULL;
37208 fra.me.REG[0] = p0;
37209 fra.me.REG[1] = p1;
37210 /* parser/parser_prod.nit:6946 */
37211 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37212 if (UNTAG_Bool(REGB0)) {
37213 } else {
37214 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6946);
37215 }
37216 fra.me.REG[0] = ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]);
37217 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37218 stack_frame_head = fra.me.prev;
37219 return;
37220 }
37221 void parser___parser_prod___AMidStringExpr___empty_init(val_t p0, int* init_table){
37222 int itpos241 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMidStringExpr].i;
37223 struct {struct stack_frame_t me;} fra;
37224 val_t tmp;
37225 if (init_table[itpos241]) return;
37226 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37227 fra.me.file = LOCATE_parser___parser_prod;
37228 fra.me.line = 6950;
37229 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___empty_init;
37230 fra.me.has_broke = 0;
37231 fra.me.REG_size = 1;
37232 fra.me.nitni_local_ref_head = NULL;
37233 fra.me.REG[0] = NIT_NULL;
37234 fra.me.REG[0] = p0;
37235 stack_frame_head = fra.me.prev;
37236 init_table[itpos241] = 1;
37237 return;
37238 }
37239 void parser___parser_prod___AMidStringExpr___init_amidstringexpr(val_t p0, val_t p1, int* init_table){
37240 int itpos242 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMidStringExpr].i;
37241 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37242 val_t REGB0;
37243 val_t tmp;
37244 if (init_table[itpos242]) return;
37245 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37246 fra.me.file = LOCATE_parser___parser_prod;
37247 fra.me.line = 6952;
37248 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___init_amidstringexpr;
37249 fra.me.has_broke = 0;
37250 fra.me.REG_size = 3;
37251 fra.me.nitni_local_ref_head = NULL;
37252 fra.me.REG[0] = NIT_NULL;
37253 fra.me.REG[1] = NIT_NULL;
37254 fra.me.REG[2] = NIT_NULL;
37255 fra.me.REG[0] = p0;
37256 fra.me.REG[1] = p1;
37257 /* parser/parser_prod.nit:6952 */
37258 fra.me.REG[2] = fra.me.REG[0];
37259 /* parser/parser_prod.nit:6956 */
37260 CALL_parser___parser_prod___AMidStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37261 /* parser/parser_prod.nit:6957 */
37262 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37263 if (UNTAG_Bool(REGB0)) {
37264 } else {
37265 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6957);
37266 }
37267 ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
37268 /* parser/parser_prod.nit:6958 */
37269 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37270 if (UNTAG_Bool(REGB0)) {
37271 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6958);
37272 }
37273 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37274 stack_frame_head = fra.me.prev;
37275 init_table[itpos242] = 1;
37276 return;
37277 }
37278 void parser___parser_prod___AMidStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
37279 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37280 val_t REGB0;
37281 val_t REGB1;
37282 val_t tmp;
37283 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37284 fra.me.file = LOCATE_parser___parser_prod;
37285 fra.me.line = 6961;
37286 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___replace_child;
37287 fra.me.has_broke = 0;
37288 fra.me.REG_size = 4;
37289 fra.me.nitni_local_ref_head = NULL;
37290 fra.me.REG[0] = NIT_NULL;
37291 fra.me.REG[1] = NIT_NULL;
37292 fra.me.REG[2] = NIT_NULL;
37293 fra.me.REG[3] = NIT_NULL;
37294 fra.me.REG[0] = p0;
37295 fra.me.REG[1] = p1;
37296 fra.me.REG[2] = p2;
37297 /* parser/parser_prod.nit:6963 */
37298 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37299 if (UNTAG_Bool(REGB0)) {
37300 } else {
37301 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6963);
37302 }
37303 fra.me.REG[3] = ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]);
37304 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37305 if (UNTAG_Bool(REGB0)) {
37306 } else {
37307 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37308 REGB0 = REGB1;
37309 }
37310 if (UNTAG_Bool(REGB0)) {
37311 /* parser/parser_prod.nit:6964 */
37312 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37313 if (UNTAG_Bool(REGB0)) {
37314 } else {
37315 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37316 if (UNTAG_Bool(REGB1)) {
37317 REGB1 = TAG_Bool(false);
37318 REGB0 = REGB1;
37319 } else {
37320 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37321 REGB0 = REGB1;
37322 }
37323 }
37324 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37325 if (UNTAG_Bool(REGB0)) {
37326 /* parser/parser_prod.nit:6965 */
37327 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37328 if (UNTAG_Bool(REGB0)) {
37329 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6965);
37330 }
37331 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37332 /* parser/parser_prod.nit:6966 */
37333 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TMidString, ID_parser___parser_nodes___TMidString)) /*cast TMidString*/;
37334 if (UNTAG_Bool(REGB0)) {
37335 } else {
37336 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6966);
37337 }
37338 /* parser/parser_prod.nit:6967 */
37339 ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
37340 } else {
37341 /* parser/parser_prod.nit:6969 */
37342 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6969);
37343 }
37344 /* parser/parser_prod.nit:6971 */
37345 goto label1;
37346 }
37347 label1: while(0);
37348 stack_frame_head = fra.me.prev;
37349 return;
37350 }
37351 void parser___parser_prod___AMidStringExpr___visit_all(val_t p0, val_t p1){
37352 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37353 val_t REGB0;
37354 val_t tmp;
37355 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37356 fra.me.file = LOCATE_parser___parser_prod;
37357 fra.me.line = 6975;
37358 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___visit_all;
37359 fra.me.has_broke = 0;
37360 fra.me.REG_size = 2;
37361 fra.me.nitni_local_ref_head = NULL;
37362 fra.me.REG[0] = NIT_NULL;
37363 fra.me.REG[1] = NIT_NULL;
37364 fra.me.REG[0] = p0;
37365 fra.me.REG[1] = p1;
37366 /* parser/parser_prod.nit:6977 */
37367 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37368 if (UNTAG_Bool(REGB0)) {
37369 } else {
37370 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6977);
37371 }
37372 fra.me.REG[0] = ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]);
37373 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37374 stack_frame_head = fra.me.prev;
37375 return;
37376 }
37377 void parser___parser_prod___AEndStringExpr___empty_init(val_t p0, int* init_table){
37378 int itpos243 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEndStringExpr].i;
37379 struct {struct stack_frame_t me;} fra;
37380 val_t tmp;
37381 if (init_table[itpos243]) return;
37382 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37383 fra.me.file = LOCATE_parser___parser_prod;
37384 fra.me.line = 6981;
37385 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___empty_init;
37386 fra.me.has_broke = 0;
37387 fra.me.REG_size = 1;
37388 fra.me.nitni_local_ref_head = NULL;
37389 fra.me.REG[0] = NIT_NULL;
37390 fra.me.REG[0] = p0;
37391 stack_frame_head = fra.me.prev;
37392 init_table[itpos243] = 1;
37393 return;
37394 }
37395 void parser___parser_prod___AEndStringExpr___init_aendstringexpr(val_t p0, val_t p1, int* init_table){
37396 int itpos244 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEndStringExpr].i;
37397 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37398 val_t REGB0;
37399 val_t tmp;
37400 if (init_table[itpos244]) return;
37401 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37402 fra.me.file = LOCATE_parser___parser_prod;
37403 fra.me.line = 6983;
37404 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___init_aendstringexpr;
37405 fra.me.has_broke = 0;
37406 fra.me.REG_size = 3;
37407 fra.me.nitni_local_ref_head = NULL;
37408 fra.me.REG[0] = NIT_NULL;
37409 fra.me.REG[1] = NIT_NULL;
37410 fra.me.REG[2] = NIT_NULL;
37411 fra.me.REG[0] = p0;
37412 fra.me.REG[1] = p1;
37413 /* parser/parser_prod.nit:6983 */
37414 fra.me.REG[2] = fra.me.REG[0];
37415 /* parser/parser_prod.nit:6987 */
37416 CALL_parser___parser_prod___AEndStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37417 /* parser/parser_prod.nit:6988 */
37418 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37419 if (UNTAG_Bool(REGB0)) {
37420 } else {
37421 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6988);
37422 }
37423 ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
37424 /* parser/parser_prod.nit:6989 */
37425 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37426 if (UNTAG_Bool(REGB0)) {
37427 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6989);
37428 }
37429 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37430 stack_frame_head = fra.me.prev;
37431 init_table[itpos244] = 1;
37432 return;
37433 }
37434 void parser___parser_prod___AEndStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
37435 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37436 val_t REGB0;
37437 val_t REGB1;
37438 val_t tmp;
37439 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37440 fra.me.file = LOCATE_parser___parser_prod;
37441 fra.me.line = 6992;
37442 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___replace_child;
37443 fra.me.has_broke = 0;
37444 fra.me.REG_size = 4;
37445 fra.me.nitni_local_ref_head = NULL;
37446 fra.me.REG[0] = NIT_NULL;
37447 fra.me.REG[1] = NIT_NULL;
37448 fra.me.REG[2] = NIT_NULL;
37449 fra.me.REG[3] = NIT_NULL;
37450 fra.me.REG[0] = p0;
37451 fra.me.REG[1] = p1;
37452 fra.me.REG[2] = p2;
37453 /* parser/parser_prod.nit:6994 */
37454 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37455 if (UNTAG_Bool(REGB0)) {
37456 } else {
37457 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6994);
37458 }
37459 fra.me.REG[3] = ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]);
37460 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37461 if (UNTAG_Bool(REGB0)) {
37462 } else {
37463 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37464 REGB0 = REGB1;
37465 }
37466 if (UNTAG_Bool(REGB0)) {
37467 /* parser/parser_prod.nit:6995 */
37468 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37469 if (UNTAG_Bool(REGB0)) {
37470 } else {
37471 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37472 if (UNTAG_Bool(REGB1)) {
37473 REGB1 = TAG_Bool(false);
37474 REGB0 = REGB1;
37475 } else {
37476 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37477 REGB0 = REGB1;
37478 }
37479 }
37480 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37481 if (UNTAG_Bool(REGB0)) {
37482 /* parser/parser_prod.nit:6996 */
37483 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37484 if (UNTAG_Bool(REGB0)) {
37485 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6996);
37486 }
37487 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37488 /* parser/parser_prod.nit:6997 */
37489 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TEndString, ID_parser___parser_nodes___TEndString)) /*cast TEndString*/;
37490 if (UNTAG_Bool(REGB0)) {
37491 } else {
37492 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6997);
37493 }
37494 /* parser/parser_prod.nit:6998 */
37495 ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
37496 } else {
37497 /* parser/parser_prod.nit:7000 */
37498 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7000);
37499 }
37500 /* parser/parser_prod.nit:7002 */
37501 goto label1;
37502 }
37503 label1: while(0);
37504 stack_frame_head = fra.me.prev;
37505 return;
37506 }
37507 void parser___parser_prod___AEndStringExpr___visit_all(val_t p0, val_t p1){
37508 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37509 val_t REGB0;
37510 val_t tmp;
37511 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37512 fra.me.file = LOCATE_parser___parser_prod;
37513 fra.me.line = 7006;
37514 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___visit_all;
37515 fra.me.has_broke = 0;
37516 fra.me.REG_size = 2;
37517 fra.me.nitni_local_ref_head = NULL;
37518 fra.me.REG[0] = NIT_NULL;
37519 fra.me.REG[1] = NIT_NULL;
37520 fra.me.REG[0] = p0;
37521 fra.me.REG[1] = p1;
37522 /* parser/parser_prod.nit:7008 */
37523 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37524 if (UNTAG_Bool(REGB0)) {
37525 } else {
37526 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 7008);
37527 }
37528 fra.me.REG[0] = ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]);
37529 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37530 stack_frame_head = fra.me.prev;
37531 return;
37532 }
37533 void parser___parser_prod___ASuperstringExpr___empty_init(val_t p0, int* init_table){
37534 int itpos245 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperstringExpr].i;
37535 struct {struct stack_frame_t me;} fra;
37536 val_t tmp;
37537 if (init_table[itpos245]) return;
37538 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37539 fra.me.file = LOCATE_parser___parser_prod;
37540 fra.me.line = 7012;
37541 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___empty_init;
37542 fra.me.has_broke = 0;
37543 fra.me.REG_size = 1;
37544 fra.me.nitni_local_ref_head = NULL;
37545 fra.me.REG[0] = NIT_NULL;
37546 fra.me.REG[0] = p0;
37547 stack_frame_head = fra.me.prev;
37548 init_table[itpos245] = 1;
37549 return;
37550 }
37551 void parser___parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0, val_t p1, int* init_table){
37552 int itpos246 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperstringExpr].i;
37553 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37554 val_t tmp;
37555 if (init_table[itpos246]) return;
37556 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37557 fra.me.file = LOCATE_parser___parser_prod;
37558 fra.me.line = 7014;
37559 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr;
37560 fra.me.has_broke = 0;
37561 fra.me.REG_size = 2;
37562 fra.me.nitni_local_ref_head = NULL;
37563 fra.me.REG[0] = NIT_NULL;
37564 fra.me.REG[1] = NIT_NULL;
37565 fra.me.REG[0] = p0;
37566 fra.me.REG[1] = p1;
37567 /* parser/parser_prod.nit:7018 */
37568 CALL_parser___parser_prod___ASuperstringExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
37569 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr_1));
37570 stack_frame_head = fra.me.prev;
37571 init_table[itpos246] = 1;
37572 return;
37573 }
37574 void OC_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
37575 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37576 val_t REGB0;
37577 fun_t CREG[1];
37578 val_t tmp;
37579 /* parser/parser_prod.nit:7019 */
37580 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37581 fra.me.file = LOCATE_parser___parser_prod;
37582 fra.me.line = 0;
37583 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr;
37584 fra.me.has_broke = 0;
37585 fra.me.REG_size = 2;
37586 fra.me.nitni_local_ref_head = NULL;
37587 fra.me.REG[0] = NIT_NULL;
37588 fra.me.REG[1] = NIT_NULL;
37589 fra.me.closure_ctx = closctx_param;
37590 fra.me.closure_funs = CREG;
37591 fra.me.REG[0] = p0;
37592 CREG[0] = clos_fun0;
37593 /* parser/parser_prod.nit:7020 */
37594 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
37595 if (UNTAG_Bool(REGB0)) {
37596 } else {
37597 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7020);
37598 }
37599 /* parser/parser_prod.nit:7021 */
37600 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(closctx->REG[0])!=NIT_NULL);
37601 if (UNTAG_Bool(REGB0)) {
37602 } else {
37603 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7021);
37604 }
37605 fra.me.REG[1] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(closctx->REG[0]);
37606 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37607 /* parser/parser_prod.nit:7022 */
37608 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
37609 stack_frame_head = fra.me.prev;
37610 return;
37611 }
37612 void parser___parser_prod___ASuperstringExpr___replace_child(val_t p0, val_t p1, val_t p2){
37613 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37614 val_t REGB0;
37615 val_t REGB1;
37616 val_t REGB2;
37617 val_t REGB3;
37618 val_t REGB4;
37619 val_t tmp;
37620 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37621 fra.me.file = LOCATE_parser___parser_prod;
37622 fra.me.line = 7026;
37623 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___replace_child;
37624 fra.me.has_broke = 0;
37625 fra.me.REG_size = 4;
37626 fra.me.nitni_local_ref_head = NULL;
37627 fra.me.REG[0] = NIT_NULL;
37628 fra.me.REG[1] = NIT_NULL;
37629 fra.me.REG[2] = NIT_NULL;
37630 fra.me.REG[3] = NIT_NULL;
37631 fra.me.REG[0] = p0;
37632 fra.me.REG[1] = p1;
37633 fra.me.REG[2] = p2;
37634 /* parser/parser_prod.nit:7028 */
37635 REGB0 = TAG_Int(0);
37636 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
37637 if (UNTAG_Bool(REGB1)) {
37638 } else {
37639 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7028);
37640 }
37641 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
37642 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
37643 /* ../lib/standard/kernel.nit:352 */
37644 while(1) {
37645 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
37646 if (UNTAG_Bool(REGB2)) {
37647 } else {
37648 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
37649 }
37650 /* ../lib/standard/kernel.nit:232 */
37651 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
37652 /* ../lib/standard/kernel.nit:352 */
37653 if (UNTAG_Bool(REGB2)) {
37654 /* parser/parser_prod.nit:7028 */
37655 REGB2 = REGB0;
37656 /* parser/parser_prod.nit:7029 */
37657 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
37658 if (UNTAG_Bool(REGB3)) {
37659 } else {
37660 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7029);
37661 }
37662 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
37663 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
37664 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
37665 if (UNTAG_Bool(REGB3)) {
37666 } else {
37667 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37668 if (UNTAG_Bool(REGB4)) {
37669 REGB4 = TAG_Bool(false);
37670 REGB3 = REGB4;
37671 } else {
37672 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37673 REGB3 = REGB4;
37674 }
37675 }
37676 if (UNTAG_Bool(REGB3)) {
37677 /* parser/parser_prod.nit:7030 */
37678 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37679 if (UNTAG_Bool(REGB3)) {
37680 } else {
37681 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37682 if (UNTAG_Bool(REGB4)) {
37683 REGB4 = TAG_Bool(false);
37684 REGB3 = REGB4;
37685 } else {
37686 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37687 REGB3 = REGB4;
37688 }
37689 }
37690 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
37691 if (UNTAG_Bool(REGB3)) {
37692 /* parser/parser_prod.nit:7031 */
37693 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
37694 if (UNTAG_Bool(REGB3)) {
37695 } else {
37696 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7031);
37697 }
37698 /* parser/parser_prod.nit:7032 */
37699 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
37700 if (UNTAG_Bool(REGB3)) {
37701 } else {
37702 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7032);
37703 }
37704 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
37705 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
37706 /* parser/parser_prod.nit:7033 */
37707 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37708 if (UNTAG_Bool(REGB3)) {
37709 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7033);
37710 }
37711 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37712 } else {
37713 /* parser/parser_prod.nit:7035 */
37714 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
37715 if (UNTAG_Bool(REGB3)) {
37716 } else {
37717 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7035);
37718 }
37719 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
37720 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
37721 }
37722 /* parser/parser_prod.nit:7037 */
37723 goto label1;
37724 }
37725 /* ../lib/standard/kernel.nit:354 */
37726 REGB2 = TAG_Int(1);
37727 /* ../lib/standard/kernel.nit:235 */
37728 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
37729 /* ../lib/standard/kernel.nit:354 */
37730 REGB0 = REGB2;
37731 } else {
37732 /* ../lib/standard/kernel.nit:352 */
37733 goto label2;
37734 }
37735 }
37736 label2: while(0);
37737 label1: while(0);
37738 stack_frame_head = fra.me.prev;
37739 return;
37740 }
37741 void parser___parser_prod___ASuperstringExpr___visit_all(val_t p0, val_t p1){
37742 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37743 val_t REGB0;
37744 val_t tmp;
37745 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37746 fra.me.file = LOCATE_parser___parser_prod;
37747 fra.me.line = 7042;
37748 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___visit_all;
37749 fra.me.has_broke = 0;
37750 fra.me.REG_size = 2;
37751 fra.me.nitni_local_ref_head = NULL;
37752 fra.me.REG[0] = NIT_NULL;
37753 fra.me.REG[1] = NIT_NULL;
37754 fra.me.REG[0] = p0;
37755 fra.me.REG[1] = p1;
37756 /* parser/parser_prod.nit:7044 */
37757 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
37758 if (UNTAG_Bool(REGB0)) {
37759 } else {
37760 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7044);
37761 }
37762 fra.me.REG[0] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
37763 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASuperstringExpr___visit_all_1));
37764 stack_frame_head = fra.me.prev;
37765 return;
37766 }
37767 void OC_parser___parser_prod___ASuperstringExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
37768 struct {struct stack_frame_t me;} fra;
37769 fun_t CREG[1];
37770 val_t tmp;
37771 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37772 fra.me.file = LOCATE_parser___parser_prod;
37773 fra.me.line = 0;
37774 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___visit_all;
37775 fra.me.has_broke = 0;
37776 fra.me.REG_size = 1;
37777 fra.me.nitni_local_ref_head = NULL;
37778 fra.me.REG[0] = NIT_NULL;
37779 fra.me.closure_ctx = closctx_param;
37780 fra.me.closure_funs = CREG;
37781 fra.me.REG[0] = p0;
37782 CREG[0] = clos_fun0;
37783 /* parser/parser_prod.nit:7045 */
37784 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
37785 stack_frame_head = fra.me.prev;
37786 return;
37787 }
37788 void parser___parser_prod___AParExpr___empty_init(val_t p0, int* init_table){
37789 int itpos247 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExpr].i;
37790 struct {struct stack_frame_t me;} fra;
37791 val_t tmp;
37792 if (init_table[itpos247]) return;
37793 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37794 fra.me.file = LOCATE_parser___parser_prod;
37795 fra.me.line = 7050;
37796 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___empty_init;
37797 fra.me.has_broke = 0;
37798 fra.me.REG_size = 1;
37799 fra.me.nitni_local_ref_head = NULL;
37800 fra.me.REG[0] = NIT_NULL;
37801 fra.me.REG[0] = p0;
37802 stack_frame_head = fra.me.prev;
37803 init_table[itpos247] = 1;
37804 return;
37805 }
37806 void parser___parser_prod___AParExpr___init_aparexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
37807 int itpos248 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExpr].i;
37808 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
37809 val_t REGB0;
37810 val_t tmp;
37811 if (init_table[itpos248]) return;
37812 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37813 fra.me.file = LOCATE_parser___parser_prod;
37814 fra.me.line = 7052;
37815 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___init_aparexpr;
37816 fra.me.has_broke = 0;
37817 fra.me.REG_size = 5;
37818 fra.me.nitni_local_ref_head = NULL;
37819 fra.me.REG[0] = NIT_NULL;
37820 fra.me.REG[1] = NIT_NULL;
37821 fra.me.REG[2] = NIT_NULL;
37822 fra.me.REG[3] = NIT_NULL;
37823 fra.me.REG[4] = NIT_NULL;
37824 fra.me.REG[0] = p0;
37825 fra.me.REG[1] = p1;
37826 fra.me.REG[2] = p2;
37827 fra.me.REG[3] = p3;
37828 /* parser/parser_prod.nit:7052 */
37829 fra.me.REG[4] = fra.me.REG[0];
37830 /* parser/parser_prod.nit:7058 */
37831 CALL_parser___parser_prod___AParExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
37832 /* parser/parser_prod.nit:7059 */
37833 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37834 if (UNTAG_Bool(REGB0)) {
37835 } else {
37836 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7059);
37837 }
37838 ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[4]) = fra.me.REG[1];
37839 /* parser/parser_prod.nit:7060 */
37840 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37841 if (UNTAG_Bool(REGB0)) {
37842 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7060);
37843 }
37844 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
37845 /* parser/parser_prod.nit:7061 */
37846 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
37847 if (UNTAG_Bool(REGB0)) {
37848 } else {
37849 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7061);
37850 }
37851 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[4]) = fra.me.REG[2];
37852 /* parser/parser_prod.nit:7062 */
37853 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37854 if (UNTAG_Bool(REGB0)) {
37855 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7062);
37856 }
37857 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
37858 /* parser/parser_prod.nit:7063 */
37859 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
37860 if (UNTAG_Bool(REGB0)) {
37861 } else {
37862 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7063);
37863 }
37864 ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[4]) = fra.me.REG[3];
37865 /* parser/parser_prod.nit:7064 */
37866 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37867 if (UNTAG_Bool(REGB0)) {
37868 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7064);
37869 }
37870 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
37871 stack_frame_head = fra.me.prev;
37872 init_table[itpos248] = 1;
37873 return;
37874 }
37875 void parser___parser_prod___AParExpr___replace_child(val_t p0, val_t p1, val_t p2){
37876 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37877 val_t REGB0;
37878 val_t REGB1;
37879 val_t tmp;
37880 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37881 fra.me.file = LOCATE_parser___parser_prod;
37882 fra.me.line = 7067;
37883 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___replace_child;
37884 fra.me.has_broke = 0;
37885 fra.me.REG_size = 4;
37886 fra.me.nitni_local_ref_head = NULL;
37887 fra.me.REG[0] = NIT_NULL;
37888 fra.me.REG[1] = NIT_NULL;
37889 fra.me.REG[2] = NIT_NULL;
37890 fra.me.REG[3] = NIT_NULL;
37891 fra.me.REG[0] = p0;
37892 fra.me.REG[1] = p1;
37893 fra.me.REG[2] = p2;
37894 /* parser/parser_prod.nit:7069 */
37895 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
37896 if (UNTAG_Bool(REGB0)) {
37897 } else {
37898 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7069);
37899 }
37900 fra.me.REG[3] = ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0]);
37901 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37902 if (UNTAG_Bool(REGB0)) {
37903 } else {
37904 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37905 REGB0 = REGB1;
37906 }
37907 if (UNTAG_Bool(REGB0)) {
37908 /* parser/parser_prod.nit:7070 */
37909 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37910 if (UNTAG_Bool(REGB0)) {
37911 } else {
37912 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37913 if (UNTAG_Bool(REGB1)) {
37914 REGB1 = TAG_Bool(false);
37915 REGB0 = REGB1;
37916 } else {
37917 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37918 REGB0 = REGB1;
37919 }
37920 }
37921 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37922 if (UNTAG_Bool(REGB0)) {
37923 /* parser/parser_prod.nit:7071 */
37924 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37925 if (UNTAG_Bool(REGB0)) {
37926 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7071);
37927 }
37928 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37929 /* parser/parser_prod.nit:7072 */
37930 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
37931 if (UNTAG_Bool(REGB0)) {
37932 } else {
37933 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7072);
37934 }
37935 /* parser/parser_prod.nit:7073 */
37936 ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0]) = fra.me.REG[2];
37937 } else {
37938 /* parser/parser_prod.nit:7075 */
37939 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7075);
37940 }
37941 /* parser/parser_prod.nit:7077 */
37942 goto label1;
37943 }
37944 /* parser/parser_prod.nit:7079 */
37945 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
37946 if (UNTAG_Bool(REGB0)) {
37947 } else {
37948 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7079);
37949 }
37950 fra.me.REG[3] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
37951 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37952 if (UNTAG_Bool(REGB0)) {
37953 } else {
37954 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37955 REGB0 = REGB1;
37956 }
37957 if (UNTAG_Bool(REGB0)) {
37958 /* parser/parser_prod.nit:7080 */
37959 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37960 if (UNTAG_Bool(REGB0)) {
37961 } else {
37962 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37963 if (UNTAG_Bool(REGB1)) {
37964 REGB1 = TAG_Bool(false);
37965 REGB0 = REGB1;
37966 } else {
37967 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37968 REGB0 = REGB1;
37969 }
37970 }
37971 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37972 if (UNTAG_Bool(REGB0)) {
37973 /* parser/parser_prod.nit:7081 */
37974 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37975 if (UNTAG_Bool(REGB0)) {
37976 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7081);
37977 }
37978 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37979 /* parser/parser_prod.nit:7082 */
37980 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
37981 if (UNTAG_Bool(REGB0)) {
37982 } else {
37983 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7082);
37984 }
37985 /* parser/parser_prod.nit:7083 */
37986 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
37987 } else {
37988 /* parser/parser_prod.nit:7085 */
37989 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7085);
37990 }
37991 /* parser/parser_prod.nit:7087 */
37992 goto label1;
37993 }
37994 /* parser/parser_prod.nit:7089 */
37995 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
37996 if (UNTAG_Bool(REGB0)) {
37997 } else {
37998 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7089);
37999 }
38000 fra.me.REG[3] = ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0]);
38001 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38002 if (UNTAG_Bool(REGB0)) {
38003 } else {
38004 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38005 REGB0 = REGB1;
38006 }
38007 if (UNTAG_Bool(REGB0)) {
38008 /* parser/parser_prod.nit:7090 */
38009 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38010 if (UNTAG_Bool(REGB0)) {
38011 } else {
38012 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38013 if (UNTAG_Bool(REGB1)) {
38014 REGB1 = TAG_Bool(false);
38015 REGB0 = REGB1;
38016 } else {
38017 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38018 REGB0 = REGB1;
38019 }
38020 }
38021 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38022 if (UNTAG_Bool(REGB0)) {
38023 /* parser/parser_prod.nit:7091 */
38024 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38025 if (UNTAG_Bool(REGB0)) {
38026 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7091);
38027 }
38028 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38029 /* parser/parser_prod.nit:7092 */
38030 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
38031 if (UNTAG_Bool(REGB0)) {
38032 } else {
38033 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7092);
38034 }
38035 /* parser/parser_prod.nit:7093 */
38036 ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
38037 } else {
38038 /* parser/parser_prod.nit:7095 */
38039 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7095);
38040 }
38041 /* parser/parser_prod.nit:7097 */
38042 goto label1;
38043 }
38044 label1: while(0);
38045 stack_frame_head = fra.me.prev;
38046 return;
38047 }
38048 void parser___parser_prod___AParExpr___visit_all(val_t p0, val_t p1){
38049 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38050 val_t REGB0;
38051 val_t tmp;
38052 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38053 fra.me.file = LOCATE_parser___parser_prod;
38054 fra.me.line = 7101;
38055 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___visit_all;
38056 fra.me.has_broke = 0;
38057 fra.me.REG_size = 3;
38058 fra.me.nitni_local_ref_head = NULL;
38059 fra.me.REG[0] = NIT_NULL;
38060 fra.me.REG[1] = NIT_NULL;
38061 fra.me.REG[2] = NIT_NULL;
38062 fra.me.REG[0] = p0;
38063 fra.me.REG[1] = p1;
38064 /* parser/parser_prod.nit:7103 */
38065 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
38066 if (UNTAG_Bool(REGB0)) {
38067 } else {
38068 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7103);
38069 }
38070 fra.me.REG[2] = ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0]);
38071 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38072 /* parser/parser_prod.nit:7104 */
38073 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
38074 if (UNTAG_Bool(REGB0)) {
38075 } else {
38076 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7104);
38077 }
38078 fra.me.REG[2] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
38079 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38080 /* parser/parser_prod.nit:7105 */
38081 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
38082 if (UNTAG_Bool(REGB0)) {
38083 } else {
38084 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7105);
38085 }
38086 fra.me.REG[0] = ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0]);
38087 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38088 stack_frame_head = fra.me.prev;
38089 return;
38090 }
38091 void parser___parser_prod___AAsCastExpr___empty_init(val_t p0, int* init_table){
38092 int itpos249 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsCastExpr].i;
38093 struct {struct stack_frame_t me;} fra;
38094 val_t tmp;
38095 if (init_table[itpos249]) return;
38096 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38097 fra.me.file = LOCATE_parser___parser_prod;
38098 fra.me.line = 7109;
38099 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___empty_init;
38100 fra.me.has_broke = 0;
38101 fra.me.REG_size = 1;
38102 fra.me.nitni_local_ref_head = NULL;
38103 fra.me.REG[0] = NIT_NULL;
38104 fra.me.REG[0] = p0;
38105 stack_frame_head = fra.me.prev;
38106 init_table[itpos249] = 1;
38107 return;
38108 }
38109 void parser___parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
38110 int itpos250 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsCastExpr].i;
38111 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
38112 val_t REGB0;
38113 val_t tmp;
38114 if (init_table[itpos250]) return;
38115 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38116 fra.me.file = LOCATE_parser___parser_prod;
38117 fra.me.line = 7111;
38118 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___init_aascastexpr;
38119 fra.me.has_broke = 0;
38120 fra.me.REG_size = 7;
38121 fra.me.nitni_local_ref_head = NULL;
38122 fra.me.REG[0] = NIT_NULL;
38123 fra.me.REG[1] = NIT_NULL;
38124 fra.me.REG[2] = NIT_NULL;
38125 fra.me.REG[3] = NIT_NULL;
38126 fra.me.REG[4] = NIT_NULL;
38127 fra.me.REG[5] = NIT_NULL;
38128 fra.me.REG[6] = NIT_NULL;
38129 fra.me.REG[0] = p0;
38130 fra.me.REG[1] = p1;
38131 fra.me.REG[2] = p2;
38132 fra.me.REG[3] = p3;
38133 fra.me.REG[4] = p4;
38134 fra.me.REG[5] = p5;
38135 /* parser/parser_prod.nit:7111 */
38136 fra.me.REG[6] = fra.me.REG[0];
38137 /* parser/parser_prod.nit:7119 */
38138 CALL_parser___parser_prod___AAsCastExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
38139 /* parser/parser_prod.nit:7120 */
38140 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38141 if (UNTAG_Bool(REGB0)) {
38142 } else {
38143 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7120);
38144 }
38145 ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[6]) = fra.me.REG[1];
38146 /* parser/parser_prod.nit:7121 */
38147 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38148 if (UNTAG_Bool(REGB0)) {
38149 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7121);
38150 }
38151 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
38152 /* parser/parser_prod.nit:7122 */
38153 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
38154 if (UNTAG_Bool(REGB0)) {
38155 } else {
38156 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7122);
38157 }
38158 ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[6]) = fra.me.REG[2];
38159 /* parser/parser_prod.nit:7123 */
38160 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38161 if (UNTAG_Bool(REGB0)) {
38162 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7123);
38163 }
38164 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
38165 /* parser/parser_prod.nit:7124 */
38166 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
38167 if (UNTAG_Bool(REGB0)) {
38168 } else {
38169 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7124);
38170 }
38171 ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[6]) = fra.me.REG[3];
38172 /* parser/parser_prod.nit:7125 */
38173 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38174 if (UNTAG_Bool(REGB0)) {
38175 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7125);
38176 }
38177 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
38178 /* parser/parser_prod.nit:7126 */
38179 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
38180 if (UNTAG_Bool(REGB0)) {
38181 } else {
38182 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7126);
38183 }
38184 ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[6]) = fra.me.REG[4];
38185 /* parser/parser_prod.nit:7127 */
38186 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
38187 if (UNTAG_Bool(REGB0)) {
38188 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7127);
38189 }
38190 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
38191 /* parser/parser_prod.nit:7128 */
38192 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
38193 if (UNTAG_Bool(REGB0)) {
38194 } else {
38195 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7128);
38196 }
38197 ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[6]) = fra.me.REG[5];
38198 /* parser/parser_prod.nit:7129 */
38199 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
38200 if (UNTAG_Bool(REGB0)) {
38201 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7129);
38202 }
38203 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
38204 stack_frame_head = fra.me.prev;
38205 init_table[itpos250] = 1;
38206 return;
38207 }
38208 void parser___parser_prod___AAsCastExpr___replace_child(val_t p0, val_t p1, val_t p2){
38209 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38210 val_t REGB0;
38211 val_t REGB1;
38212 val_t tmp;
38213 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38214 fra.me.file = LOCATE_parser___parser_prod;
38215 fra.me.line = 7132;
38216 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___replace_child;
38217 fra.me.has_broke = 0;
38218 fra.me.REG_size = 4;
38219 fra.me.nitni_local_ref_head = NULL;
38220 fra.me.REG[0] = NIT_NULL;
38221 fra.me.REG[1] = NIT_NULL;
38222 fra.me.REG[2] = NIT_NULL;
38223 fra.me.REG[3] = NIT_NULL;
38224 fra.me.REG[0] = p0;
38225 fra.me.REG[1] = p1;
38226 fra.me.REG[2] = p2;
38227 /* parser/parser_prod.nit:7134 */
38228 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
38229 if (UNTAG_Bool(REGB0)) {
38230 } else {
38231 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7134);
38232 }
38233 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]);
38234 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38235 if (UNTAG_Bool(REGB0)) {
38236 } else {
38237 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38238 REGB0 = REGB1;
38239 }
38240 if (UNTAG_Bool(REGB0)) {
38241 /* parser/parser_prod.nit:7135 */
38242 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38243 if (UNTAG_Bool(REGB0)) {
38244 } else {
38245 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38246 if (UNTAG_Bool(REGB1)) {
38247 REGB1 = TAG_Bool(false);
38248 REGB0 = REGB1;
38249 } else {
38250 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38251 REGB0 = REGB1;
38252 }
38253 }
38254 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38255 if (UNTAG_Bool(REGB0)) {
38256 /* parser/parser_prod.nit:7136 */
38257 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38258 if (UNTAG_Bool(REGB0)) {
38259 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7136);
38260 }
38261 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38262 /* parser/parser_prod.nit:7137 */
38263 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
38264 if (UNTAG_Bool(REGB0)) {
38265 } else {
38266 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7137);
38267 }
38268 /* parser/parser_prod.nit:7138 */
38269 ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
38270 } else {
38271 /* parser/parser_prod.nit:7140 */
38272 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7140);
38273 }
38274 /* parser/parser_prod.nit:7142 */
38275 goto label1;
38276 }
38277 /* parser/parser_prod.nit:7144 */
38278 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
38279 if (UNTAG_Bool(REGB0)) {
38280 } else {
38281 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7144);
38282 }
38283 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]);
38284 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38285 if (UNTAG_Bool(REGB0)) {
38286 } else {
38287 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38288 REGB0 = REGB1;
38289 }
38290 if (UNTAG_Bool(REGB0)) {
38291 /* parser/parser_prod.nit:7145 */
38292 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38293 if (UNTAG_Bool(REGB0)) {
38294 } else {
38295 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38296 if (UNTAG_Bool(REGB1)) {
38297 REGB1 = TAG_Bool(false);
38298 REGB0 = REGB1;
38299 } else {
38300 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38301 REGB0 = REGB1;
38302 }
38303 }
38304 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38305 if (UNTAG_Bool(REGB0)) {
38306 /* parser/parser_prod.nit:7146 */
38307 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38308 if (UNTAG_Bool(REGB0)) {
38309 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7146);
38310 }
38311 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38312 /* parser/parser_prod.nit:7147 */
38313 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast TKwas*/;
38314 if (UNTAG_Bool(REGB0)) {
38315 } else {
38316 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7147);
38317 }
38318 /* parser/parser_prod.nit:7148 */
38319 ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
38320 } else {
38321 /* parser/parser_prod.nit:7150 */
38322 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7150);
38323 }
38324 /* parser/parser_prod.nit:7152 */
38325 goto label1;
38326 }
38327 /* parser/parser_prod.nit:7154 */
38328 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
38329 if (UNTAG_Bool(REGB0)) {
38330 } else {
38331 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7154);
38332 }
38333 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0]);
38334 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38335 if (UNTAG_Bool(REGB0)) {
38336 } else {
38337 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38338 REGB0 = REGB1;
38339 }
38340 if (UNTAG_Bool(REGB0)) {
38341 /* parser/parser_prod.nit:7155 */
38342 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38343 if (UNTAG_Bool(REGB0)) {
38344 } else {
38345 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38346 if (UNTAG_Bool(REGB1)) {
38347 REGB1 = TAG_Bool(false);
38348 REGB0 = REGB1;
38349 } else {
38350 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38351 REGB0 = REGB1;
38352 }
38353 }
38354 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38355 if (UNTAG_Bool(REGB0)) {
38356 /* parser/parser_prod.nit:7156 */
38357 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38358 if (UNTAG_Bool(REGB0)) {
38359 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7156);
38360 }
38361 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38362 /* parser/parser_prod.nit:7157 */
38363 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
38364 if (UNTAG_Bool(REGB0)) {
38365 } else {
38366 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7157);
38367 }
38368 /* parser/parser_prod.nit:7158 */
38369 ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0]) = fra.me.REG[2];
38370 } else {
38371 /* parser/parser_prod.nit:7160 */
38372 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7160);
38373 }
38374 /* parser/parser_prod.nit:7162 */
38375 goto label1;
38376 }
38377 /* parser/parser_prod.nit:7164 */
38378 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
38379 if (UNTAG_Bool(REGB0)) {
38380 } else {
38381 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7164);
38382 }
38383 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]);
38384 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38385 if (UNTAG_Bool(REGB0)) {
38386 } else {
38387 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38388 REGB0 = REGB1;
38389 }
38390 if (UNTAG_Bool(REGB0)) {
38391 /* parser/parser_prod.nit:7165 */
38392 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38393 if (UNTAG_Bool(REGB0)) {
38394 } else {
38395 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38396 if (UNTAG_Bool(REGB1)) {
38397 REGB1 = TAG_Bool(false);
38398 REGB0 = REGB1;
38399 } else {
38400 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38401 REGB0 = REGB1;
38402 }
38403 }
38404 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38405 if (UNTAG_Bool(REGB0)) {
38406 /* parser/parser_prod.nit:7166 */
38407 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38408 if (UNTAG_Bool(REGB0)) {
38409 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7166);
38410 }
38411 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38412 /* parser/parser_prod.nit:7167 */
38413 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
38414 if (UNTAG_Bool(REGB0)) {
38415 } else {
38416 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7167);
38417 }
38418 /* parser/parser_prod.nit:7168 */
38419 ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
38420 } else {
38421 /* parser/parser_prod.nit:7170 */
38422 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7170);
38423 }
38424 /* parser/parser_prod.nit:7172 */
38425 goto label1;
38426 }
38427 /* parser/parser_prod.nit:7174 */
38428 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
38429 if (UNTAG_Bool(REGB0)) {
38430 } else {
38431 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7174);
38432 }
38433 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0]);
38434 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38435 if (UNTAG_Bool(REGB0)) {
38436 } else {
38437 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38438 REGB0 = REGB1;
38439 }
38440 if (UNTAG_Bool(REGB0)) {
38441 /* parser/parser_prod.nit:7175 */
38442 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38443 if (UNTAG_Bool(REGB0)) {
38444 } else {
38445 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38446 if (UNTAG_Bool(REGB1)) {
38447 REGB1 = TAG_Bool(false);
38448 REGB0 = REGB1;
38449 } else {
38450 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38451 REGB0 = REGB1;
38452 }
38453 }
38454 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38455 if (UNTAG_Bool(REGB0)) {
38456 /* parser/parser_prod.nit:7176 */
38457 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38458 if (UNTAG_Bool(REGB0)) {
38459 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7176);
38460 }
38461 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38462 /* parser/parser_prod.nit:7177 */
38463 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
38464 if (UNTAG_Bool(REGB0)) {
38465 } else {
38466 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7177);
38467 }
38468 /* parser/parser_prod.nit:7178 */
38469 ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
38470 } else {
38471 /* parser/parser_prod.nit:7180 */
38472 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7180);
38473 }
38474 /* parser/parser_prod.nit:7182 */
38475 goto label1;
38476 }
38477 label1: while(0);
38478 stack_frame_head = fra.me.prev;
38479 return;
38480 }
38481 void parser___parser_prod___AAsCastExpr___visit_all(val_t p0, val_t p1){
38482 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38483 val_t REGB0;
38484 val_t tmp;
38485 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38486 fra.me.file = LOCATE_parser___parser_prod;
38487 fra.me.line = 7186;
38488 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___visit_all;
38489 fra.me.has_broke = 0;
38490 fra.me.REG_size = 3;
38491 fra.me.nitni_local_ref_head = NULL;
38492 fra.me.REG[0] = NIT_NULL;
38493 fra.me.REG[1] = NIT_NULL;
38494 fra.me.REG[2] = NIT_NULL;
38495 fra.me.REG[0] = p0;
38496 fra.me.REG[1] = p1;
38497 /* parser/parser_prod.nit:7188 */
38498 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
38499 if (UNTAG_Bool(REGB0)) {
38500 } else {
38501 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7188);
38502 }
38503 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]);
38504 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38505 /* parser/parser_prod.nit:7189 */
38506 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
38507 if (UNTAG_Bool(REGB0)) {
38508 } else {
38509 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7189);
38510 }
38511 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]);
38512 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38513 /* parser/parser_prod.nit:7190 */
38514 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
38515 if (UNTAG_Bool(REGB0)) {
38516 } else {
38517 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7190);
38518 }
38519 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0]);
38520 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38521 /* parser/parser_prod.nit:7191 */
38522 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
38523 if (UNTAG_Bool(REGB0)) {
38524 } else {
38525 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7191);
38526 }
38527 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]);
38528 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38529 /* parser/parser_prod.nit:7192 */
38530 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
38531 if (UNTAG_Bool(REGB0)) {
38532 } else {
38533 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7192);
38534 }
38535 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0]);
38536 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38537 stack_frame_head = fra.me.prev;
38538 return;
38539 }
38540 void parser___parser_prod___AAsNotnullExpr___empty_init(val_t p0, int* init_table){
38541 int itpos251 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotnullExpr].i;
38542 struct {struct stack_frame_t me;} fra;
38543 val_t tmp;
38544 if (init_table[itpos251]) return;
38545 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38546 fra.me.file = LOCATE_parser___parser_prod;
38547 fra.me.line = 7196;
38548 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___empty_init;
38549 fra.me.has_broke = 0;
38550 fra.me.REG_size = 1;
38551 fra.me.nitni_local_ref_head = NULL;
38552 fra.me.REG[0] = NIT_NULL;
38553 fra.me.REG[0] = p0;
38554 stack_frame_head = fra.me.prev;
38555 init_table[itpos251] = 1;
38556 return;
38557 }
38558 void parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, int* init_table){
38559 int itpos252 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotnullExpr].i;
38560 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
38561 val_t REGB0;
38562 val_t tmp;
38563 if (init_table[itpos252]) return;
38564 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38565 fra.me.file = LOCATE_parser___parser_prod;
38566 fra.me.line = 7198;
38567 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr;
38568 fra.me.has_broke = 0;
38569 fra.me.REG_size = 8;
38570 fra.me.nitni_local_ref_head = NULL;
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[4] = NIT_NULL;
38576 fra.me.REG[5] = NIT_NULL;
38577 fra.me.REG[6] = NIT_NULL;
38578 fra.me.REG[7] = NIT_NULL;
38579 fra.me.REG[0] = p0;
38580 fra.me.REG[1] = p1;
38581 fra.me.REG[2] = p2;
38582 fra.me.REG[3] = p3;
38583 fra.me.REG[4] = p4;
38584 fra.me.REG[5] = p5;
38585 fra.me.REG[6] = p6;
38586 /* parser/parser_prod.nit:7198 */
38587 fra.me.REG[7] = fra.me.REG[0];
38588 /* parser/parser_prod.nit:7207 */
38589 CALL_parser___parser_prod___AAsNotnullExpr___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
38590 /* parser/parser_prod.nit:7208 */
38591 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38592 if (UNTAG_Bool(REGB0)) {
38593 } else {
38594 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7208);
38595 }
38596 ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[7]) = fra.me.REG[1];
38597 /* parser/parser_prod.nit:7209 */
38598 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38599 if (UNTAG_Bool(REGB0)) {
38600 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7209);
38601 }
38602 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
38603 /* parser/parser_prod.nit:7210 */
38604 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
38605 if (UNTAG_Bool(REGB0)) {
38606 } else {
38607 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7210);
38608 }
38609 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[7]) = fra.me.REG[2];
38610 /* parser/parser_prod.nit:7211 */
38611 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38612 if (UNTAG_Bool(REGB0)) {
38613 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7211);
38614 }
38615 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
38616 /* parser/parser_prod.nit:7212 */
38617 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
38618 if (UNTAG_Bool(REGB0)) {
38619 } else {
38620 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7212);
38621 }
38622 ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[7]) = fra.me.REG[3];
38623 /* parser/parser_prod.nit:7213 */
38624 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38625 if (UNTAG_Bool(REGB0)) {
38626 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7213);
38627 }
38628 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
38629 /* parser/parser_prod.nit:7214 */
38630 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
38631 if (UNTAG_Bool(REGB0)) {
38632 } else {
38633 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7214);
38634 }
38635 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[7]) = fra.me.REG[4];
38636 /* parser/parser_prod.nit:7215 */
38637 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
38638 if (UNTAG_Bool(REGB0)) {
38639 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7215);
38640 }
38641 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
38642 /* parser/parser_prod.nit:7216 */
38643 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
38644 if (UNTAG_Bool(REGB0)) {
38645 } else {
38646 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7216);
38647 }
38648 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[7]) = fra.me.REG[5];
38649 /* parser/parser_prod.nit:7217 */
38650 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
38651 if (UNTAG_Bool(REGB0)) {
38652 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7217);
38653 }
38654 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
38655 /* parser/parser_prod.nit:7218 */
38656 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
38657 if (UNTAG_Bool(REGB0)) {
38658 } else {
38659 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7218);
38660 }
38661 ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[7]) = fra.me.REG[6];
38662 /* parser/parser_prod.nit:7219 */
38663 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
38664 if (UNTAG_Bool(REGB0)) {
38665 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7219);
38666 }
38667 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
38668 stack_frame_head = fra.me.prev;
38669 init_table[itpos252] = 1;
38670 return;
38671 }
38672 void parser___parser_prod___AAsNotnullExpr___replace_child(val_t p0, val_t p1, val_t p2){
38673 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38674 val_t REGB0;
38675 val_t REGB1;
38676 val_t tmp;
38677 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38678 fra.me.file = LOCATE_parser___parser_prod;
38679 fra.me.line = 7222;
38680 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___replace_child;
38681 fra.me.has_broke = 0;
38682 fra.me.REG_size = 4;
38683 fra.me.nitni_local_ref_head = NULL;
38684 fra.me.REG[0] = NIT_NULL;
38685 fra.me.REG[1] = NIT_NULL;
38686 fra.me.REG[2] = NIT_NULL;
38687 fra.me.REG[3] = NIT_NULL;
38688 fra.me.REG[0] = p0;
38689 fra.me.REG[1] = p1;
38690 fra.me.REG[2] = p2;
38691 /* parser/parser_prod.nit:7224 */
38692 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
38693 if (UNTAG_Bool(REGB0)) {
38694 } else {
38695 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7224);
38696 }
38697 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]);
38698 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38699 if (UNTAG_Bool(REGB0)) {
38700 } else {
38701 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38702 REGB0 = REGB1;
38703 }
38704 if (UNTAG_Bool(REGB0)) {
38705 /* parser/parser_prod.nit:7225 */
38706 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38707 if (UNTAG_Bool(REGB0)) {
38708 } else {
38709 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38710 if (UNTAG_Bool(REGB1)) {
38711 REGB1 = TAG_Bool(false);
38712 REGB0 = REGB1;
38713 } else {
38714 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38715 REGB0 = REGB1;
38716 }
38717 }
38718 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38719 if (UNTAG_Bool(REGB0)) {
38720 /* parser/parser_prod.nit:7226 */
38721 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38722 if (UNTAG_Bool(REGB0)) {
38723 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7226);
38724 }
38725 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38726 /* parser/parser_prod.nit:7227 */
38727 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
38728 if (UNTAG_Bool(REGB0)) {
38729 } else {
38730 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7227);
38731 }
38732 /* parser/parser_prod.nit:7228 */
38733 ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
38734 } else {
38735 /* parser/parser_prod.nit:7230 */
38736 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7230);
38737 }
38738 /* parser/parser_prod.nit:7232 */
38739 goto label1;
38740 }
38741 /* parser/parser_prod.nit:7234 */
38742 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
38743 if (UNTAG_Bool(REGB0)) {
38744 } else {
38745 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7234);
38746 }
38747 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]);
38748 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38749 if (UNTAG_Bool(REGB0)) {
38750 } else {
38751 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38752 REGB0 = REGB1;
38753 }
38754 if (UNTAG_Bool(REGB0)) {
38755 /* parser/parser_prod.nit:7235 */
38756 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38757 if (UNTAG_Bool(REGB0)) {
38758 } else {
38759 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38760 if (UNTAG_Bool(REGB1)) {
38761 REGB1 = TAG_Bool(false);
38762 REGB0 = REGB1;
38763 } else {
38764 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38765 REGB0 = REGB1;
38766 }
38767 }
38768 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38769 if (UNTAG_Bool(REGB0)) {
38770 /* parser/parser_prod.nit:7236 */
38771 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38772 if (UNTAG_Bool(REGB0)) {
38773 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7236);
38774 }
38775 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38776 /* parser/parser_prod.nit:7237 */
38777 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast TKwas*/;
38778 if (UNTAG_Bool(REGB0)) {
38779 } else {
38780 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7237);
38781 }
38782 /* parser/parser_prod.nit:7238 */
38783 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
38784 } else {
38785 /* parser/parser_prod.nit:7240 */
38786 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7240);
38787 }
38788 /* parser/parser_prod.nit:7242 */
38789 goto label1;
38790 }
38791 /* parser/parser_prod.nit:7244 */
38792 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
38793 if (UNTAG_Bool(REGB0)) {
38794 } else {
38795 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7244);
38796 }
38797 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0]);
38798 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38799 if (UNTAG_Bool(REGB0)) {
38800 } else {
38801 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38802 REGB0 = REGB1;
38803 }
38804 if (UNTAG_Bool(REGB0)) {
38805 /* parser/parser_prod.nit:7245 */
38806 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38807 if (UNTAG_Bool(REGB0)) {
38808 } else {
38809 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38810 if (UNTAG_Bool(REGB1)) {
38811 REGB1 = TAG_Bool(false);
38812 REGB0 = REGB1;
38813 } else {
38814 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38815 REGB0 = REGB1;
38816 }
38817 }
38818 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38819 if (UNTAG_Bool(REGB0)) {
38820 /* parser/parser_prod.nit:7246 */
38821 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38822 if (UNTAG_Bool(REGB0)) {
38823 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7246);
38824 }
38825 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38826 /* parser/parser_prod.nit:7247 */
38827 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
38828 if (UNTAG_Bool(REGB0)) {
38829 } else {
38830 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7247);
38831 }
38832 /* parser/parser_prod.nit:7248 */
38833 ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0]) = fra.me.REG[2];
38834 } else {
38835 /* parser/parser_prod.nit:7250 */
38836 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7250);
38837 }
38838 /* parser/parser_prod.nit:7252 */
38839 goto label1;
38840 }
38841 /* parser/parser_prod.nit:7254 */
38842 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
38843 if (UNTAG_Bool(REGB0)) {
38844 } else {
38845 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 7254);
38846 }
38847 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]);
38848 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38849 if (UNTAG_Bool(REGB0)) {
38850 } else {
38851 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38852 REGB0 = REGB1;
38853 }
38854 if (UNTAG_Bool(REGB0)) {
38855 /* parser/parser_prod.nit:7255 */
38856 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38857 if (UNTAG_Bool(REGB0)) {
38858 } else {
38859 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38860 if (UNTAG_Bool(REGB1)) {
38861 REGB1 = TAG_Bool(false);
38862 REGB0 = REGB1;
38863 } else {
38864 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38865 REGB0 = REGB1;
38866 }
38867 }
38868 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38869 if (UNTAG_Bool(REGB0)) {
38870 /* parser/parser_prod.nit:7256 */
38871 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38872 if (UNTAG_Bool(REGB0)) {
38873 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7256);
38874 }
38875 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38876 /* parser/parser_prod.nit:7257 */
38877 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnot, ID_parser___parser_nodes___TKwnot)) /*cast TKwnot*/;
38878 if (UNTAG_Bool(REGB0)) {
38879 } else {
38880 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7257);
38881 }
38882 /* parser/parser_prod.nit:7258 */
38883 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
38884 } else {
38885 /* parser/parser_prod.nit:7260 */
38886 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7260);
38887 }
38888 /* parser/parser_prod.nit:7262 */
38889 goto label1;
38890 }
38891 /* parser/parser_prod.nit:7264 */
38892 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
38893 if (UNTAG_Bool(REGB0)) {
38894 } else {
38895 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 7264);
38896 }
38897 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]);
38898 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38899 if (UNTAG_Bool(REGB0)) {
38900 } else {
38901 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38902 REGB0 = REGB1;
38903 }
38904 if (UNTAG_Bool(REGB0)) {
38905 /* parser/parser_prod.nit:7265 */
38906 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38907 if (UNTAG_Bool(REGB0)) {
38908 } else {
38909 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38910 if (UNTAG_Bool(REGB1)) {
38911 REGB1 = TAG_Bool(false);
38912 REGB0 = REGB1;
38913 } else {
38914 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38915 REGB0 = REGB1;
38916 }
38917 }
38918 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38919 if (UNTAG_Bool(REGB0)) {
38920 /* parser/parser_prod.nit:7266 */
38921 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38922 if (UNTAG_Bool(REGB0)) {
38923 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7266);
38924 }
38925 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38926 /* parser/parser_prod.nit:7267 */
38927 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnull, ID_parser___parser_nodes___TKwnull)) /*cast TKwnull*/;
38928 if (UNTAG_Bool(REGB0)) {
38929 } else {
38930 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7267);
38931 }
38932 /* parser/parser_prod.nit:7268 */
38933 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[2];
38934 } else {
38935 /* parser/parser_prod.nit:7270 */
38936 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7270);
38937 }
38938 /* parser/parser_prod.nit:7272 */
38939 goto label1;
38940 }
38941 /* parser/parser_prod.nit:7274 */
38942 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
38943 if (UNTAG_Bool(REGB0)) {
38944 } else {
38945 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7274);
38946 }
38947 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0]);
38948 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38949 if (UNTAG_Bool(REGB0)) {
38950 } else {
38951 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38952 REGB0 = REGB1;
38953 }
38954 if (UNTAG_Bool(REGB0)) {
38955 /* parser/parser_prod.nit:7275 */
38956 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38957 if (UNTAG_Bool(REGB0)) {
38958 } else {
38959 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38960 if (UNTAG_Bool(REGB1)) {
38961 REGB1 = TAG_Bool(false);
38962 REGB0 = REGB1;
38963 } else {
38964 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38965 REGB0 = REGB1;
38966 }
38967 }
38968 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38969 if (UNTAG_Bool(REGB0)) {
38970 /* parser/parser_prod.nit:7276 */
38971 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38972 if (UNTAG_Bool(REGB0)) {
38973 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7276);
38974 }
38975 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38976 /* parser/parser_prod.nit:7277 */
38977 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
38978 if (UNTAG_Bool(REGB0)) {
38979 } else {
38980 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7277);
38981 }
38982 /* parser/parser_prod.nit:7278 */
38983 ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
38984 } else {
38985 /* parser/parser_prod.nit:7280 */
38986 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7280);
38987 }
38988 /* parser/parser_prod.nit:7282 */
38989 goto label1;
38990 }
38991 label1: while(0);
38992 stack_frame_head = fra.me.prev;
38993 return;
38994 }
38995 void parser___parser_prod___AAsNotnullExpr___visit_all(val_t p0, val_t p1){
38996 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38997 val_t REGB0;
38998 val_t tmp;
38999 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39000 fra.me.file = LOCATE_parser___parser_prod;
39001 fra.me.line = 7286;
39002 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___visit_all;
39003 fra.me.has_broke = 0;
39004 fra.me.REG_size = 3;
39005 fra.me.nitni_local_ref_head = NULL;
39006 fra.me.REG[0] = NIT_NULL;
39007 fra.me.REG[1] = NIT_NULL;
39008 fra.me.REG[2] = NIT_NULL;
39009 fra.me.REG[0] = p0;
39010 fra.me.REG[1] = p1;
39011 /* parser/parser_prod.nit:7288 */
39012 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
39013 if (UNTAG_Bool(REGB0)) {
39014 } else {
39015 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7288);
39016 }
39017 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]);
39018 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39019 /* parser/parser_prod.nit:7289 */
39020 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
39021 if (UNTAG_Bool(REGB0)) {
39022 } else {
39023 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7289);
39024 }
39025 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]);
39026 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39027 /* parser/parser_prod.nit:7290 */
39028 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
39029 if (UNTAG_Bool(REGB0)) {
39030 } else {
39031 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7290);
39032 }
39033 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0]);
39034 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39035 /* parser/parser_prod.nit:7291 */
39036 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
39037 if (UNTAG_Bool(REGB0)) {
39038 } else {
39039 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 7291);
39040 }
39041 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]);
39042 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39043 /* parser/parser_prod.nit:7292 */
39044 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
39045 if (UNTAG_Bool(REGB0)) {
39046 } else {
39047 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 7292);
39048 }
39049 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]);
39050 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39051 /* parser/parser_prod.nit:7293 */
39052 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
39053 if (UNTAG_Bool(REGB0)) {
39054 } else {
39055 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7293);
39056 }
39057 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0]);
39058 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39059 stack_frame_head = fra.me.prev;
39060 return;
39061 }
39062 void parser___parser_prod___AIssetAttrExpr___empty_init(val_t p0, int* init_table){
39063 int itpos253 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIssetAttrExpr].i;
39064 struct {struct stack_frame_t me;} fra;
39065 val_t tmp;
39066 if (init_table[itpos253]) return;
39067 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39068 fra.me.file = LOCATE_parser___parser_prod;
39069 fra.me.line = 7297;
39070 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___empty_init;
39071 fra.me.has_broke = 0;
39072 fra.me.REG_size = 1;
39073 fra.me.nitni_local_ref_head = NULL;
39074 fra.me.REG[0] = NIT_NULL;
39075 fra.me.REG[0] = p0;
39076 stack_frame_head = fra.me.prev;
39077 init_table[itpos253] = 1;
39078 return;
39079 }
39080 void parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
39081 int itpos254 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIssetAttrExpr].i;
39082 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
39083 val_t REGB0;
39084 val_t tmp;
39085 if (init_table[itpos254]) return;
39086 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39087 fra.me.file = LOCATE_parser___parser_prod;
39088 fra.me.line = 7299;
39089 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr;
39090 fra.me.has_broke = 0;
39091 fra.me.REG_size = 5;
39092 fra.me.nitni_local_ref_head = NULL;
39093 fra.me.REG[0] = NIT_NULL;
39094 fra.me.REG[1] = NIT_NULL;
39095 fra.me.REG[2] = NIT_NULL;
39096 fra.me.REG[3] = NIT_NULL;
39097 fra.me.REG[4] = NIT_NULL;
39098 fra.me.REG[0] = p0;
39099 fra.me.REG[1] = p1;
39100 fra.me.REG[2] = p2;
39101 fra.me.REG[3] = p3;
39102 /* parser/parser_prod.nit:7299 */
39103 fra.me.REG[4] = fra.me.REG[0];
39104 /* parser/parser_prod.nit:7305 */
39105 CALL_parser___parser_prod___AIssetAttrExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
39106 /* parser/parser_prod.nit:7306 */
39107 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
39108 if (UNTAG_Bool(REGB0)) {
39109 } else {
39110 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7306);
39111 }
39112 ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[4]) = fra.me.REG[1];
39113 /* parser/parser_prod.nit:7307 */
39114 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39115 if (UNTAG_Bool(REGB0)) {
39116 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7307);
39117 }
39118 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
39119 /* parser/parser_prod.nit:7308 */
39120 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
39121 if (UNTAG_Bool(REGB0)) {
39122 } else {
39123 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7308);
39124 }
39125 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[4]) = fra.me.REG[2];
39126 /* parser/parser_prod.nit:7309 */
39127 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39128 if (UNTAG_Bool(REGB0)) {
39129 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7309);
39130 }
39131 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
39132 /* parser/parser_prod.nit:7310 */
39133 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
39134 if (UNTAG_Bool(REGB0)) {
39135 } else {
39136 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7310);
39137 }
39138 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[3];
39139 /* parser/parser_prod.nit:7311 */
39140 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39141 if (UNTAG_Bool(REGB0)) {
39142 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7311);
39143 }
39144 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
39145 stack_frame_head = fra.me.prev;
39146 init_table[itpos254] = 1;
39147 return;
39148 }
39149 void parser___parser_prod___AIssetAttrExpr___replace_child(val_t p0, val_t p1, val_t p2){
39150 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39151 val_t REGB0;
39152 val_t REGB1;
39153 val_t tmp;
39154 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39155 fra.me.file = LOCATE_parser___parser_prod;
39156 fra.me.line = 7314;
39157 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___replace_child;
39158 fra.me.has_broke = 0;
39159 fra.me.REG_size = 4;
39160 fra.me.nitni_local_ref_head = NULL;
39161 fra.me.REG[0] = NIT_NULL;
39162 fra.me.REG[1] = NIT_NULL;
39163 fra.me.REG[2] = NIT_NULL;
39164 fra.me.REG[3] = NIT_NULL;
39165 fra.me.REG[0] = p0;
39166 fra.me.REG[1] = p1;
39167 fra.me.REG[2] = p2;
39168 /* parser/parser_prod.nit:7316 */
39169 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
39170 if (UNTAG_Bool(REGB0)) {
39171 } else {
39172 nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser___parser_prod, 7316);
39173 }
39174 fra.me.REG[3] = ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]);
39175 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39176 if (UNTAG_Bool(REGB0)) {
39177 } else {
39178 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39179 REGB0 = REGB1;
39180 }
39181 if (UNTAG_Bool(REGB0)) {
39182 /* parser/parser_prod.nit:7317 */
39183 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39184 if (UNTAG_Bool(REGB0)) {
39185 } else {
39186 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39187 if (UNTAG_Bool(REGB1)) {
39188 REGB1 = TAG_Bool(false);
39189 REGB0 = REGB1;
39190 } else {
39191 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39192 REGB0 = REGB1;
39193 }
39194 }
39195 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39196 if (UNTAG_Bool(REGB0)) {
39197 /* parser/parser_prod.nit:7318 */
39198 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39199 if (UNTAG_Bool(REGB0)) {
39200 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7318);
39201 }
39202 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39203 /* parser/parser_prod.nit:7319 */
39204 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwisset, ID_parser___parser_nodes___TKwisset)) /*cast TKwisset*/;
39205 if (UNTAG_Bool(REGB0)) {
39206 } else {
39207 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7319);
39208 }
39209 /* parser/parser_prod.nit:7320 */
39210 ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]) = fra.me.REG[2];
39211 } else {
39212 /* parser/parser_prod.nit:7322 */
39213 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7322);
39214 }
39215 /* parser/parser_prod.nit:7324 */
39216 goto label1;
39217 }
39218 /* parser/parser_prod.nit:7326 */
39219 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
39220 if (UNTAG_Bool(REGB0)) {
39221 } else {
39222 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7326);
39223 }
39224 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
39225 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39226 if (UNTAG_Bool(REGB0)) {
39227 } else {
39228 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39229 REGB0 = REGB1;
39230 }
39231 if (UNTAG_Bool(REGB0)) {
39232 /* parser/parser_prod.nit:7327 */
39233 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39234 if (UNTAG_Bool(REGB0)) {
39235 } else {
39236 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39237 if (UNTAG_Bool(REGB1)) {
39238 REGB1 = TAG_Bool(false);
39239 REGB0 = REGB1;
39240 } else {
39241 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39242 REGB0 = REGB1;
39243 }
39244 }
39245 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39246 if (UNTAG_Bool(REGB0)) {
39247 /* parser/parser_prod.nit:7328 */
39248 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39249 if (UNTAG_Bool(REGB0)) {
39250 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7328);
39251 }
39252 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39253 /* parser/parser_prod.nit:7329 */
39254 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
39255 if (UNTAG_Bool(REGB0)) {
39256 } else {
39257 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7329);
39258 }
39259 /* parser/parser_prod.nit:7330 */
39260 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
39261 } else {
39262 /* parser/parser_prod.nit:7332 */
39263 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7332);
39264 }
39265 /* parser/parser_prod.nit:7334 */
39266 goto label1;
39267 }
39268 /* parser/parser_prod.nit:7336 */
39269 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
39270 if (UNTAG_Bool(REGB0)) {
39271 } else {
39272 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7336);
39273 }
39274 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
39275 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39276 if (UNTAG_Bool(REGB0)) {
39277 } else {
39278 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39279 REGB0 = REGB1;
39280 }
39281 if (UNTAG_Bool(REGB0)) {
39282 /* parser/parser_prod.nit:7337 */
39283 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39284 if (UNTAG_Bool(REGB0)) {
39285 } else {
39286 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39287 if (UNTAG_Bool(REGB1)) {
39288 REGB1 = TAG_Bool(false);
39289 REGB0 = REGB1;
39290 } else {
39291 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39292 REGB0 = REGB1;
39293 }
39294 }
39295 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39296 if (UNTAG_Bool(REGB0)) {
39297 /* parser/parser_prod.nit:7338 */
39298 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39299 if (UNTAG_Bool(REGB0)) {
39300 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7338);
39301 }
39302 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39303 /* parser/parser_prod.nit:7339 */
39304 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast TAttrid*/;
39305 if (UNTAG_Bool(REGB0)) {
39306 } else {
39307 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7339);
39308 }
39309 /* parser/parser_prod.nit:7340 */
39310 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
39311 } else {
39312 /* parser/parser_prod.nit:7342 */
39313 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7342);
39314 }
39315 /* parser/parser_prod.nit:7344 */
39316 goto label1;
39317 }
39318 label1: while(0);
39319 stack_frame_head = fra.me.prev;
39320 return;
39321 }
39322 void parser___parser_prod___AIssetAttrExpr___visit_all(val_t p0, val_t p1){
39323 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
39324 val_t REGB0;
39325 val_t tmp;
39326 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39327 fra.me.file = LOCATE_parser___parser_prod;
39328 fra.me.line = 7348;
39329 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___visit_all;
39330 fra.me.has_broke = 0;
39331 fra.me.REG_size = 3;
39332 fra.me.nitni_local_ref_head = NULL;
39333 fra.me.REG[0] = NIT_NULL;
39334 fra.me.REG[1] = NIT_NULL;
39335 fra.me.REG[2] = NIT_NULL;
39336 fra.me.REG[0] = p0;
39337 fra.me.REG[1] = p1;
39338 /* parser/parser_prod.nit:7350 */
39339 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
39340 if (UNTAG_Bool(REGB0)) {
39341 } else {
39342 nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser___parser_prod, 7350);
39343 }
39344 fra.me.REG[2] = ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]);
39345 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39346 /* parser/parser_prod.nit:7351 */
39347 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
39348 if (UNTAG_Bool(REGB0)) {
39349 } else {
39350 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7351);
39351 }
39352 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
39353 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39354 /* parser/parser_prod.nit:7352 */
39355 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
39356 if (UNTAG_Bool(REGB0)) {
39357 } else {
39358 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7352);
39359 }
39360 fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
39361 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39362 stack_frame_head = fra.me.prev;
39363 return;
39364 }
39365 void parser___parser_prod___ADebugTypeExpr___empty_init(val_t p0, int* init_table){
39366 int itpos255 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADebugTypeExpr].i;
39367 struct {struct stack_frame_t me;} fra;
39368 val_t tmp;
39369 if (init_table[itpos255]) return;
39370 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39371 fra.me.file = LOCATE_parser___parser_prod;
39372 fra.me.line = 7356;
39373 fra.me.meth = LOCATE_parser___parser_prod___ADebugTypeExpr___empty_init;
39374 fra.me.has_broke = 0;
39375 fra.me.REG_size = 1;
39376 fra.me.nitni_local_ref_head = NULL;
39377 fra.me.REG[0] = NIT_NULL;
39378 fra.me.REG[0] = p0;
39379 stack_frame_head = fra.me.prev;
39380 init_table[itpos255] = 1;
39381 return;
39382 }
39383 void parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
39384 int itpos256 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADebugTypeExpr].i;
39385 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
39386 val_t REGB0;
39387 val_t tmp;
39388 if (init_table[itpos256]) return;
39389 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39390 fra.me.file = LOCATE_parser___parser_prod;
39391 fra.me.line = 7358;
39392 fra.me.meth = LOCATE_parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr;
39393 fra.me.has_broke = 0;
39394 fra.me.REG_size = 6;
39395 fra.me.nitni_local_ref_head = NULL;
39396 fra.me.REG[0] = NIT_NULL;
39397 fra.me.REG[1] = NIT_NULL;
39398 fra.me.REG[2] = NIT_NULL;
39399 fra.me.REG[3] = NIT_NULL;
39400 fra.me.REG[4] = NIT_NULL;
39401 fra.me.REG[5] = NIT_NULL;
39402 fra.me.REG[0] = p0;
39403 fra.me.REG[1] = p1;
39404 fra.me.REG[2] = p2;
39405 fra.me.REG[3] = p3;
39406 fra.me.REG[4] = p4;
39407 /* parser/parser_prod.nit:7358 */
39408 fra.me.REG[5] = fra.me.REG[0];
39409 /* parser/parser_prod.nit:7365 */
39410 CALL_parser___parser_prod___ADebugTypeExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
39411 /* parser/parser_prod.nit:7366 */
39412 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
39413 if (UNTAG_Bool(REGB0)) {
39414 } else {
39415 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7366);
39416 }
39417 ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[5]) = fra.me.REG[1];
39418 /* parser/parser_prod.nit:7367 */
39419 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39420 if (UNTAG_Bool(REGB0)) {
39421 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7367);
39422 }
39423 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
39424 /* parser/parser_prod.nit:7368 */
39425 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
39426 if (UNTAG_Bool(REGB0)) {
39427 } else {
39428 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7368);
39429 }
39430 ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[5]) = fra.me.REG[2];
39431 /* parser/parser_prod.nit:7369 */
39432 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39433 if (UNTAG_Bool(REGB0)) {
39434 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7369);
39435 }
39436 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
39437 /* parser/parser_prod.nit:7370 */
39438 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
39439 if (UNTAG_Bool(REGB0)) {
39440 } else {
39441 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7370);
39442 }
39443 ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[5]) = fra.me.REG[3];
39444 /* parser/parser_prod.nit:7371 */
39445 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39446 if (UNTAG_Bool(REGB0)) {
39447 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7371);
39448 }
39449 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
39450 /* parser/parser_prod.nit:7372 */
39451 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
39452 if (UNTAG_Bool(REGB0)) {
39453 } else {
39454 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7372);
39455 }
39456 ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[5]) = fra.me.REG[4];
39457 /* parser/parser_prod.nit:7373 */
39458 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
39459 if (UNTAG_Bool(REGB0)) {
39460 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7373);
39461 }
39462 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
39463 stack_frame_head = fra.me.prev;
39464 init_table[itpos256] = 1;
39465 return;
39466 }
39467 void parser___parser_prod___ADebugTypeExpr___replace_child(val_t p0, val_t p1, val_t p2){
39468 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39469 val_t REGB0;
39470 val_t REGB1;
39471 val_t tmp;
39472 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39473 fra.me.file = LOCATE_parser___parser_prod;
39474 fra.me.line = 7376;
39475 fra.me.meth = LOCATE_parser___parser_prod___ADebugTypeExpr___replace_child;
39476 fra.me.has_broke = 0;
39477 fra.me.REG_size = 4;
39478 fra.me.nitni_local_ref_head = NULL;
39479 fra.me.REG[0] = NIT_NULL;
39480 fra.me.REG[1] = NIT_NULL;
39481 fra.me.REG[2] = NIT_NULL;
39482 fra.me.REG[3] = NIT_NULL;
39483 fra.me.REG[0] = p0;
39484 fra.me.REG[1] = p1;
39485 fra.me.REG[2] = p2;
39486 /* parser/parser_prod.nit:7378 */
39487 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0])!=NIT_NULL);
39488 if (UNTAG_Bool(REGB0)) {
39489 } else {
39490 nit_abort("Uninitialized attribute %s", "_n_kwdebug", LOCATE_parser___parser_prod, 7378);
39491 }
39492 fra.me.REG[3] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0]);
39493 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39494 if (UNTAG_Bool(REGB0)) {
39495 } else {
39496 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39497 REGB0 = REGB1;
39498 }
39499 if (UNTAG_Bool(REGB0)) {
39500 /* parser/parser_prod.nit:7379 */
39501 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39502 if (UNTAG_Bool(REGB0)) {
39503 } else {
39504 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39505 if (UNTAG_Bool(REGB1)) {
39506 REGB1 = TAG_Bool(false);
39507 REGB0 = REGB1;
39508 } else {
39509 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39510 REGB0 = REGB1;
39511 }
39512 }
39513 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39514 if (UNTAG_Bool(REGB0)) {
39515 /* parser/parser_prod.nit:7380 */
39516 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39517 if (UNTAG_Bool(REGB0)) {
39518 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7380);
39519 }
39520 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39521 /* parser/parser_prod.nit:7381 */
39522 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwdebug, ID_parser___parser_nodes___TKwdebug)) /*cast TKwdebug*/;
39523 if (UNTAG_Bool(REGB0)) {
39524 } else {
39525 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7381);
39526 }
39527 /* parser/parser_prod.nit:7382 */
39528 ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0]) = fra.me.REG[2];
39529 } else {
39530 /* parser/parser_prod.nit:7384 */
39531 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7384);
39532 }
39533 /* parser/parser_prod.nit:7386 */
39534 goto label1;
39535 }
39536 /* parser/parser_prod.nit:7388 */
39537 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0])!=NIT_NULL);
39538 if (UNTAG_Bool(REGB0)) {
39539 } else {
39540 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 7388);
39541 }
39542 fra.me.REG[3] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0]);
39543 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39544 if (UNTAG_Bool(REGB0)) {
39545 } else {
39546 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39547 REGB0 = REGB1;
39548 }
39549 if (UNTAG_Bool(REGB0)) {
39550 /* parser/parser_prod.nit:7389 */
39551 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39552 if (UNTAG_Bool(REGB0)) {
39553 } else {
39554 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39555 if (UNTAG_Bool(REGB1)) {
39556 REGB1 = TAG_Bool(false);
39557 REGB0 = REGB1;
39558 } else {
39559 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39560 REGB0 = REGB1;
39561 }
39562 }
39563 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39564 if (UNTAG_Bool(REGB0)) {
39565 /* parser/parser_prod.nit:7390 */
39566 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39567 if (UNTAG_Bool(REGB0)) {
39568 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7390);
39569 }
39570 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39571 /* parser/parser_prod.nit:7391 */
39572 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwtype, ID_parser___parser_nodes___TKwtype)) /*cast TKwtype*/;
39573 if (UNTAG_Bool(REGB0)) {
39574 } else {
39575 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7391);
39576 }
39577 /* parser/parser_prod.nit:7392 */
39578 ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0]) = fra.me.REG[2];
39579 } else {
39580 /* parser/parser_prod.nit:7394 */
39581 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7394);
39582 }
39583 /* parser/parser_prod.nit:7396 */
39584 goto label1;
39585 }
39586 /* parser/parser_prod.nit:7398 */
39587 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
39588 if (UNTAG_Bool(REGB0)) {
39589 } else {
39590 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7398);
39591 }
39592 fra.me.REG[3] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0]);
39593 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39594 if (UNTAG_Bool(REGB0)) {
39595 } else {
39596 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39597 REGB0 = REGB1;
39598 }
39599 if (UNTAG_Bool(REGB0)) {
39600 /* parser/parser_prod.nit:7399 */
39601 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39602 if (UNTAG_Bool(REGB0)) {
39603 } else {
39604 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39605 if (UNTAG_Bool(REGB1)) {
39606 REGB1 = TAG_Bool(false);
39607 REGB0 = REGB1;
39608 } else {
39609 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39610 REGB0 = REGB1;
39611 }
39612 }
39613 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39614 if (UNTAG_Bool(REGB0)) {
39615 /* parser/parser_prod.nit:7400 */
39616 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39617 if (UNTAG_Bool(REGB0)) {
39618 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7400);
39619 }
39620 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39621 /* parser/parser_prod.nit:7401 */
39622 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
39623 if (UNTAG_Bool(REGB0)) {
39624 } else {
39625 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7401);
39626 }
39627 /* parser/parser_prod.nit:7402 */
39628 ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
39629 } else {
39630 /* parser/parser_prod.nit:7404 */
39631 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7404);
39632 }
39633 /* parser/parser_prod.nit:7406 */
39634 goto label1;
39635 }
39636 /* parser/parser_prod.nit:7408 */
39637 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0])!=NIT_NULL);
39638 if (UNTAG_Bool(REGB0)) {
39639 } else {
39640 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7408);
39641 }
39642 fra.me.REG[3] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0]);
39643 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39644 if (UNTAG_Bool(REGB0)) {
39645 } else {
39646 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39647 REGB0 = REGB1;
39648 }
39649 if (UNTAG_Bool(REGB0)) {
39650 /* parser/parser_prod.nit:7409 */
39651 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39652 if (UNTAG_Bool(REGB0)) {
39653 } else {
39654 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39655 if (UNTAG_Bool(REGB1)) {
39656 REGB1 = TAG_Bool(false);
39657 REGB0 = REGB1;
39658 } else {
39659 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39660 REGB0 = REGB1;
39661 }
39662 }
39663 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39664 if (UNTAG_Bool(REGB0)) {
39665 /* parser/parser_prod.nit:7410 */
39666 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39667 if (UNTAG_Bool(REGB0)) {
39668 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7410);
39669 }
39670 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39671 /* parser/parser_prod.nit:7411 */
39672 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
39673 if (UNTAG_Bool(REGB0)) {
39674 } else {
39675 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7411);
39676 }
39677 /* parser/parser_prod.nit:7412 */
39678 ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
39679 } else {
39680 /* parser/parser_prod.nit:7414 */
39681 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7414);
39682 }
39683 /* parser/parser_prod.nit:7416 */
39684 goto label1;
39685 }
39686 label1: while(0);
39687 stack_frame_head = fra.me.prev;
39688 return;
39689 }
39690 void parser___parser_prod___ADebugTypeExpr___visit_all(val_t p0, val_t p1){
39691 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
39692 val_t REGB0;
39693 val_t tmp;
39694 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39695 fra.me.file = LOCATE_parser___parser_prod;
39696 fra.me.line = 7420;
39697 fra.me.meth = LOCATE_parser___parser_prod___ADebugTypeExpr___visit_all;
39698 fra.me.has_broke = 0;
39699 fra.me.REG_size = 3;
39700 fra.me.nitni_local_ref_head = NULL;
39701 fra.me.REG[0] = NIT_NULL;
39702 fra.me.REG[1] = NIT_NULL;
39703 fra.me.REG[2] = NIT_NULL;
39704 fra.me.REG[0] = p0;
39705 fra.me.REG[1] = p1;
39706 /* parser/parser_prod.nit:7422 */
39707 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0])!=NIT_NULL);
39708 if (UNTAG_Bool(REGB0)) {
39709 } else {
39710 nit_abort("Uninitialized attribute %s", "_n_kwdebug", LOCATE_parser___parser_prod, 7422);
39711 }
39712 fra.me.REG[2] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0]);
39713 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39714 /* parser/parser_prod.nit:7423 */
39715 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0])!=NIT_NULL);
39716 if (UNTAG_Bool(REGB0)) {
39717 } else {
39718 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 7423);
39719 }
39720 fra.me.REG[2] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0]);
39721 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39722 /* parser/parser_prod.nit:7424 */
39723 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
39724 if (UNTAG_Bool(REGB0)) {
39725 } else {
39726 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7424);
39727 }
39728 fra.me.REG[2] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0]);
39729 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39730 /* parser/parser_prod.nit:7425 */
39731 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0])!=NIT_NULL);
39732 if (UNTAG_Bool(REGB0)) {
39733 } else {
39734 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7425);
39735 }
39736 fra.me.REG[0] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0]);
39737 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39738 stack_frame_head = fra.me.prev;
39739 return;
39740 }
39741 void parser___parser_prod___AListExprs___empty_init(val_t p0, int* init_table){
39742 int itpos257 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AListExprs].i;
39743 struct {struct stack_frame_t me;} fra;
39744 val_t tmp;
39745 if (init_table[itpos257]) return;
39746 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39747 fra.me.file = LOCATE_parser___parser_prod;
39748 fra.me.line = 7429;
39749 fra.me.meth = LOCATE_parser___parser_prod___AListExprs___empty_init;
39750 fra.me.has_broke = 0;
39751 fra.me.REG_size = 1;
39752 fra.me.nitni_local_ref_head = NULL;
39753 fra.me.REG[0] = NIT_NULL;
39754 fra.me.REG[0] = p0;
39755 stack_frame_head = fra.me.prev;
39756 init_table[itpos257] = 1;
39757 return;
39758 }
39759 void parser___parser_prod___AListExprs___init_alistexprs(val_t p0, val_t p1, int* init_table){
39760 int itpos258 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AListExprs].i;
39761 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39762 val_t tmp;
39763 if (init_table[itpos258]) return;
39764 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39765 fra.me.file = LOCATE_parser___parser_prod;
39766 fra.me.line = 7431;
39767 fra.me.meth = LOCATE_parser___parser_prod___AListExprs___init_alistexprs;
39768 fra.me.has_broke = 0;
39769 fra.me.REG_size = 2;
39770 fra.me.nitni_local_ref_head = NULL;
39771 fra.me.REG[0] = NIT_NULL;
39772 fra.me.REG[1] = NIT_NULL;
39773 fra.me.REG[0] = p0;
39774 fra.me.REG[1] = p1;
39775 /* parser/parser_prod.nit:7435 */
39776 CALL_parser___parser_prod___AListExprs___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
39777 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AListExprs___init_alistexprs_1));
39778 stack_frame_head = fra.me.prev;
39779 init_table[itpos258] = 1;
39780 return;
39781 }
39782 void OC_parser___parser_prod___AListExprs___init_alistexprs_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
39783 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39784 val_t REGB0;
39785 fun_t CREG[1];
39786 val_t tmp;
39787 /* parser/parser_prod.nit:7436 */
39788 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39789 fra.me.file = LOCATE_parser___parser_prod;
39790 fra.me.line = 0;
39791 fra.me.meth = LOCATE_parser___parser_prod___AListExprs___init_alistexprs;
39792 fra.me.has_broke = 0;
39793 fra.me.REG_size = 2;
39794 fra.me.nitni_local_ref_head = NULL;
39795 fra.me.REG[0] = NIT_NULL;
39796 fra.me.REG[1] = NIT_NULL;
39797 fra.me.closure_ctx = closctx_param;
39798 fra.me.closure_funs = CREG;
39799 fra.me.REG[0] = p0;
39800 CREG[0] = clos_fun0;
39801 /* parser/parser_prod.nit:7437 */
39802 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
39803 if (UNTAG_Bool(REGB0)) {
39804 } else {
39805 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7437);
39806 }
39807 /* parser/parser_prod.nit:7438 */
39808 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[0])!=NIT_NULL);
39809 if (UNTAG_Bool(REGB0)) {
39810 } else {
39811 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7438);
39812 }
39813 fra.me.REG[1] = ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[0]);
39814 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39815 /* parser/parser_prod.nit:7439 */
39816 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
39817 stack_frame_head = fra.me.prev;
39818 return;
39819 }
39820 void parser___parser_prod___AListExprs___replace_child(val_t p0, val_t p1, val_t p2){
39821 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39822 val_t REGB0;
39823 val_t REGB1;
39824 val_t REGB2;
39825 val_t REGB3;
39826 val_t REGB4;
39827 val_t tmp;
39828 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39829 fra.me.file = LOCATE_parser___parser_prod;
39830 fra.me.line = 7443;
39831 fra.me.meth = LOCATE_parser___parser_prod___AListExprs___replace_child;
39832 fra.me.has_broke = 0;
39833 fra.me.REG_size = 4;
39834 fra.me.nitni_local_ref_head = NULL;
39835 fra.me.REG[0] = NIT_NULL;
39836 fra.me.REG[1] = NIT_NULL;
39837 fra.me.REG[2] = NIT_NULL;
39838 fra.me.REG[3] = NIT_NULL;
39839 fra.me.REG[0] = p0;
39840 fra.me.REG[1] = p1;
39841 fra.me.REG[2] = p2;
39842 /* parser/parser_prod.nit:7445 */
39843 REGB0 = TAG_Int(0);
39844 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
39845 if (UNTAG_Bool(REGB1)) {
39846 } else {
39847 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7445);
39848 }
39849 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
39850 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
39851 /* ../lib/standard/kernel.nit:352 */
39852 while(1) {
39853 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
39854 if (UNTAG_Bool(REGB2)) {
39855 } else {
39856 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
39857 }
39858 /* ../lib/standard/kernel.nit:232 */
39859 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
39860 /* ../lib/standard/kernel.nit:352 */
39861 if (UNTAG_Bool(REGB2)) {
39862 /* parser/parser_prod.nit:7445 */
39863 REGB2 = REGB0;
39864 /* parser/parser_prod.nit:7446 */
39865 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
39866 if (UNTAG_Bool(REGB3)) {
39867 } else {
39868 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7446);
39869 }
39870 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
39871 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
39872 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
39873 if (UNTAG_Bool(REGB3)) {
39874 } else {
39875 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39876 if (UNTAG_Bool(REGB4)) {
39877 REGB4 = TAG_Bool(false);
39878 REGB3 = REGB4;
39879 } else {
39880 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39881 REGB3 = REGB4;
39882 }
39883 }
39884 if (UNTAG_Bool(REGB3)) {
39885 /* parser/parser_prod.nit:7447 */
39886 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39887 if (UNTAG_Bool(REGB3)) {
39888 } else {
39889 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39890 if (UNTAG_Bool(REGB4)) {
39891 REGB4 = TAG_Bool(false);
39892 REGB3 = REGB4;
39893 } else {
39894 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39895 REGB3 = REGB4;
39896 }
39897 }
39898 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
39899 if (UNTAG_Bool(REGB3)) {
39900 /* parser/parser_prod.nit:7448 */
39901 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
39902 if (UNTAG_Bool(REGB3)) {
39903 } else {
39904 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7448);
39905 }
39906 /* parser/parser_prod.nit:7449 */
39907 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
39908 if (UNTAG_Bool(REGB3)) {
39909 } else {
39910 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7449);
39911 }
39912 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
39913 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
39914 /* parser/parser_prod.nit:7450 */
39915 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39916 if (UNTAG_Bool(REGB3)) {
39917 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7450);
39918 }
39919 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39920 } else {
39921 /* parser/parser_prod.nit:7452 */
39922 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
39923 if (UNTAG_Bool(REGB3)) {
39924 } else {
39925 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7452);
39926 }
39927 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
39928 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
39929 }
39930 /* parser/parser_prod.nit:7454 */
39931 goto label1;
39932 }
39933 /* ../lib/standard/kernel.nit:354 */
39934 REGB2 = TAG_Int(1);
39935 /* ../lib/standard/kernel.nit:235 */
39936 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
39937 /* ../lib/standard/kernel.nit:354 */
39938 REGB0 = REGB2;
39939 } else {
39940 /* ../lib/standard/kernel.nit:352 */
39941 goto label2;
39942 }
39943 }
39944 label2: while(0);
39945 label1: while(0);
39946 stack_frame_head = fra.me.prev;
39947 return;
39948 }
39949 void parser___parser_prod___AListExprs___visit_all(val_t p0, val_t p1){
39950 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39951 val_t REGB0;
39952 val_t tmp;
39953 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39954 fra.me.file = LOCATE_parser___parser_prod;
39955 fra.me.line = 7459;
39956 fra.me.meth = LOCATE_parser___parser_prod___AListExprs___visit_all;
39957 fra.me.has_broke = 0;
39958 fra.me.REG_size = 2;
39959 fra.me.nitni_local_ref_head = NULL;
39960 fra.me.REG[0] = NIT_NULL;
39961 fra.me.REG[1] = NIT_NULL;
39962 fra.me.REG[0] = p0;
39963 fra.me.REG[1] = p1;
39964 /* parser/parser_prod.nit:7461 */
39965 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
39966 if (UNTAG_Bool(REGB0)) {
39967 } else {
39968 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7461);
39969 }
39970 fra.me.REG[0] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
39971 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AListExprs___visit_all_1));
39972 stack_frame_head = fra.me.prev;
39973 return;
39974 }
39975 void OC_parser___parser_prod___AListExprs___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
39976 struct {struct stack_frame_t me;} fra;
39977 fun_t CREG[1];
39978 val_t tmp;
39979 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39980 fra.me.file = LOCATE_parser___parser_prod;
39981 fra.me.line = 0;
39982 fra.me.meth = LOCATE_parser___parser_prod___AListExprs___visit_all;
39983 fra.me.has_broke = 0;
39984 fra.me.REG_size = 1;
39985 fra.me.nitni_local_ref_head = NULL;
39986 fra.me.REG[0] = NIT_NULL;
39987 fra.me.closure_ctx = closctx_param;
39988 fra.me.closure_funs = CREG;
39989 fra.me.REG[0] = p0;
39990 CREG[0] = clos_fun0;
39991 /* parser/parser_prod.nit:7462 */
39992 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
39993 stack_frame_head = fra.me.prev;
39994 return;
39995 }
39996 void parser___parser_prod___AParExprs___empty_init(val_t p0, int* init_table){
39997 int itpos259 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExprs].i;
39998 struct {struct stack_frame_t me;} fra;
39999 val_t tmp;
40000 if (init_table[itpos259]) return;
40001 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40002 fra.me.file = LOCATE_parser___parser_prod;
40003 fra.me.line = 7467;
40004 fra.me.meth = LOCATE_parser___parser_prod___AParExprs___empty_init;
40005 fra.me.has_broke = 0;
40006 fra.me.REG_size = 1;
40007 fra.me.nitni_local_ref_head = NULL;
40008 fra.me.REG[0] = NIT_NULL;
40009 fra.me.REG[0] = p0;
40010 stack_frame_head = fra.me.prev;
40011 init_table[itpos259] = 1;
40012 return;
40013 }
40014 void parser___parser_prod___AParExprs___init_aparexprs(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
40015 int itpos260 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExprs].i;
40016 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
40017 val_t REGB0;
40018 val_t tmp;
40019 if (init_table[itpos260]) return;
40020 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40021 fra.me.file = LOCATE_parser___parser_prod;
40022 fra.me.line = 7469;
40023 fra.me.meth = LOCATE_parser___parser_prod___AParExprs___init_aparexprs;
40024 fra.me.has_broke = 0;
40025 fra.me.REG_size = 5;
40026 fra.me.nitni_local_ref_head = NULL;
40027 fra.me.REG[0] = NIT_NULL;
40028 fra.me.REG[1] = NIT_NULL;
40029 fra.me.REG[2] = NIT_NULL;
40030 fra.me.REG[3] = NIT_NULL;
40031 fra.me.REG[4] = NIT_NULL;
40032 fra.me.REG[0] = p0;
40033 fra.me.REG[1] = p1;
40034 fra.me.REG[2] = p2;
40035 fra.me.REG[3] = p3;
40036 /* parser/parser_prod.nit:7469 */
40037 fra.me.REG[4] = fra.me.REG[0];
40038 /* parser/parser_prod.nit:7475 */
40039 CALL_parser___parser_prod___AParExprs___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
40040 /* parser/parser_prod.nit:7476 */
40041 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
40042 if (UNTAG_Bool(REGB0)) {
40043 } else {
40044 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7476);
40045 }
40046 ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[4]) = fra.me.REG[1];
40047 /* parser/parser_prod.nit:7477 */
40048 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40049 if (UNTAG_Bool(REGB0)) {
40050 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7477);
40051 }
40052 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
40053 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AParExprs___init_aparexprs_1));
40054 /* parser/parser_prod.nit:7483 */
40055 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
40056 if (UNTAG_Bool(REGB0)) {
40057 } else {
40058 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7483);
40059 }
40060 ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[4]) = fra.me.REG[3];
40061 /* parser/parser_prod.nit:7484 */
40062 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40063 if (UNTAG_Bool(REGB0)) {
40064 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7484);
40065 }
40066 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
40067 stack_frame_head = fra.me.prev;
40068 init_table[itpos260] = 1;
40069 return;
40070 }
40071 void OC_parser___parser_prod___AParExprs___init_aparexprs_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
40072 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
40073 val_t REGB0;
40074 fun_t CREG[1];
40075 val_t tmp;
40076 /* parser/parser_prod.nit:7478 */
40077 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40078 fra.me.file = LOCATE_parser___parser_prod;
40079 fra.me.line = 0;
40080 fra.me.meth = LOCATE_parser___parser_prod___AParExprs___init_aparexprs;
40081 fra.me.has_broke = 0;
40082 fra.me.REG_size = 2;
40083 fra.me.nitni_local_ref_head = NULL;
40084 fra.me.REG[0] = NIT_NULL;
40085 fra.me.REG[1] = NIT_NULL;
40086 fra.me.closure_ctx = closctx_param;
40087 fra.me.closure_funs = CREG;
40088 fra.me.REG[0] = p0;
40089 CREG[0] = clos_fun0;
40090 /* parser/parser_prod.nit:7479 */
40091 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
40092 if (UNTAG_Bool(REGB0)) {
40093 } else {
40094 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7479);
40095 }
40096 /* parser/parser_prod.nit:7480 */
40097 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[4])!=NIT_NULL);
40098 if (UNTAG_Bool(REGB0)) {
40099 } else {
40100 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7480);
40101 }
40102 fra.me.REG[1] = ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[4]);
40103 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40104 /* parser/parser_prod.nit:7481 */
40105 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
40106 stack_frame_head = fra.me.prev;
40107 return;
40108 }
40109 void parser___parser_prod___AParExprs___replace_child(val_t p0, val_t p1, val_t p2){
40110 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40111 val_t REGB0;
40112 val_t REGB1;
40113 val_t REGB2;
40114 val_t REGB3;
40115 val_t REGB4;
40116 val_t tmp;
40117 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40118 fra.me.file = LOCATE_parser___parser_prod;
40119 fra.me.line = 7487;
40120 fra.me.meth = LOCATE_parser___parser_prod___AParExprs___replace_child;
40121 fra.me.has_broke = 0;
40122 fra.me.REG_size = 4;
40123 fra.me.nitni_local_ref_head = NULL;
40124 fra.me.REG[0] = NIT_NULL;
40125 fra.me.REG[1] = NIT_NULL;
40126 fra.me.REG[2] = NIT_NULL;
40127 fra.me.REG[3] = NIT_NULL;
40128 fra.me.REG[0] = p0;
40129 fra.me.REG[1] = p1;
40130 fra.me.REG[2] = p2;
40131 /* parser/parser_prod.nit:7489 */
40132 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0])!=NIT_NULL);
40133 if (UNTAG_Bool(REGB0)) {
40134 } else {
40135 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7489);
40136 }
40137 fra.me.REG[3] = ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0]);
40138 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40139 if (UNTAG_Bool(REGB0)) {
40140 } else {
40141 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40142 REGB0 = REGB1;
40143 }
40144 if (UNTAG_Bool(REGB0)) {
40145 /* parser/parser_prod.nit:7490 */
40146 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40147 if (UNTAG_Bool(REGB0)) {
40148 } else {
40149 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40150 if (UNTAG_Bool(REGB1)) {
40151 REGB1 = TAG_Bool(false);
40152 REGB0 = REGB1;
40153 } else {
40154 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40155 REGB0 = REGB1;
40156 }
40157 }
40158 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40159 if (UNTAG_Bool(REGB0)) {
40160 /* parser/parser_prod.nit:7491 */
40161 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40162 if (UNTAG_Bool(REGB0)) {
40163 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7491);
40164 }
40165 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40166 /* parser/parser_prod.nit:7492 */
40167 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
40168 if (UNTAG_Bool(REGB0)) {
40169 } else {
40170 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7492);
40171 }
40172 /* parser/parser_prod.nit:7493 */
40173 ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0]) = fra.me.REG[2];
40174 } else {
40175 /* parser/parser_prod.nit:7495 */
40176 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7495);
40177 }
40178 /* parser/parser_prod.nit:7497 */
40179 goto label1;
40180 }
40181 /* parser/parser_prod.nit:7499 */
40182 REGB0 = TAG_Int(0);
40183 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
40184 if (UNTAG_Bool(REGB1)) {
40185 } else {
40186 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7499);
40187 }
40188 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
40189 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
40190 /* ../lib/standard/kernel.nit:352 */
40191 while(1) {
40192 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
40193 if (UNTAG_Bool(REGB2)) {
40194 } else {
40195 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
40196 }
40197 /* ../lib/standard/kernel.nit:232 */
40198 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
40199 /* ../lib/standard/kernel.nit:352 */
40200 if (UNTAG_Bool(REGB2)) {
40201 /* parser/parser_prod.nit:7499 */
40202 REGB2 = REGB0;
40203 /* parser/parser_prod.nit:7500 */
40204 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
40205 if (UNTAG_Bool(REGB3)) {
40206 } else {
40207 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7500);
40208 }
40209 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
40210 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
40211 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
40212 if (UNTAG_Bool(REGB3)) {
40213 } else {
40214 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40215 if (UNTAG_Bool(REGB4)) {
40216 REGB4 = TAG_Bool(false);
40217 REGB3 = REGB4;
40218 } else {
40219 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40220 REGB3 = REGB4;
40221 }
40222 }
40223 if (UNTAG_Bool(REGB3)) {
40224 /* parser/parser_prod.nit:7501 */
40225 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40226 if (UNTAG_Bool(REGB3)) {
40227 } else {
40228 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40229 if (UNTAG_Bool(REGB4)) {
40230 REGB4 = TAG_Bool(false);
40231 REGB3 = REGB4;
40232 } else {
40233 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40234 REGB3 = REGB4;
40235 }
40236 }
40237 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
40238 if (UNTAG_Bool(REGB3)) {
40239 /* parser/parser_prod.nit:7502 */
40240 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
40241 if (UNTAG_Bool(REGB3)) {
40242 } else {
40243 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7502);
40244 }
40245 /* parser/parser_prod.nit:7503 */
40246 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
40247 if (UNTAG_Bool(REGB3)) {
40248 } else {
40249 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7503);
40250 }
40251 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
40252 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
40253 /* parser/parser_prod.nit:7504 */
40254 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40255 if (UNTAG_Bool(REGB3)) {
40256 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7504);
40257 }
40258 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40259 } else {
40260 /* parser/parser_prod.nit:7506 */
40261 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
40262 if (UNTAG_Bool(REGB3)) {
40263 } else {
40264 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7506);
40265 }
40266 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
40267 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
40268 }
40269 /* parser/parser_prod.nit:7508 */
40270 goto label1;
40271 }
40272 /* ../lib/standard/kernel.nit:354 */
40273 REGB2 = TAG_Int(1);
40274 /* ../lib/standard/kernel.nit:235 */
40275 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
40276 /* ../lib/standard/kernel.nit:354 */
40277 REGB0 = REGB2;
40278 } else {
40279 /* ../lib/standard/kernel.nit:352 */
40280 goto label2;
40281 }
40282 }
40283 label2: while(0);
40284 /* parser/parser_prod.nit:7511 */
40285 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0])!=NIT_NULL);
40286 if (UNTAG_Bool(REGB0)) {
40287 } else {
40288 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7511);
40289 }
40290 fra.me.REG[3] = ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0]);
40291 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40292 if (UNTAG_Bool(REGB0)) {
40293 } else {
40294 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40295 REGB0 = REGB1;
40296 }
40297 if (UNTAG_Bool(REGB0)) {
40298 /* parser/parser_prod.nit:7512 */
40299 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40300 if (UNTAG_Bool(REGB0)) {
40301 } else {
40302 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40303 if (UNTAG_Bool(REGB1)) {
40304 REGB1 = TAG_Bool(false);
40305 REGB0 = REGB1;
40306 } else {
40307 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40308 REGB0 = REGB1;
40309 }
40310 }
40311 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40312 if (UNTAG_Bool(REGB0)) {
40313 /* parser/parser_prod.nit:7513 */
40314 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40315 if (UNTAG_Bool(REGB0)) {
40316 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7513);
40317 }
40318 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40319 /* parser/parser_prod.nit:7514 */
40320 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
40321 if (UNTAG_Bool(REGB0)) {
40322 } else {
40323 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7514);
40324 }
40325 /* parser/parser_prod.nit:7515 */
40326 ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
40327 } else {
40328 /* parser/parser_prod.nit:7517 */
40329 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7517);
40330 }
40331 /* parser/parser_prod.nit:7519 */
40332 goto label1;
40333 }
40334 label1: while(0);
40335 stack_frame_head = fra.me.prev;
40336 return;
40337 }
40338 void parser___parser_prod___AParExprs___visit_all(val_t p0, val_t p1){
40339 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
40340 val_t REGB0;
40341 val_t tmp;
40342 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40343 fra.me.file = LOCATE_parser___parser_prod;
40344 fra.me.line = 7523;
40345 fra.me.meth = LOCATE_parser___parser_prod___AParExprs___visit_all;
40346 fra.me.has_broke = 0;
40347 fra.me.REG_size = 3;
40348 fra.me.nitni_local_ref_head = NULL;
40349 fra.me.REG[0] = NIT_NULL;
40350 fra.me.REG[1] = NIT_NULL;
40351 fra.me.REG[2] = NIT_NULL;
40352 fra.me.REG[0] = p0;
40353 fra.me.REG[1] = p1;
40354 /* parser/parser_prod.nit:7525 */
40355 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0])!=NIT_NULL);
40356 if (UNTAG_Bool(REGB0)) {
40357 } else {
40358 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7525);
40359 }
40360 fra.me.REG[2] = ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0]);
40361 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40362 /* parser/parser_prod.nit:7526 */
40363 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
40364 if (UNTAG_Bool(REGB0)) {
40365 } else {
40366 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7526);
40367 }
40368 fra.me.REG[2] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
40369 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AParExprs___visit_all_1));
40370 /* parser/parser_prod.nit:7529 */
40371 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0])!=NIT_NULL);
40372 if (UNTAG_Bool(REGB0)) {
40373 } else {
40374 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7529);
40375 }
40376 fra.me.REG[0] = ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0]);
40377 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40378 stack_frame_head = fra.me.prev;
40379 return;
40380 }
40381 void OC_parser___parser_prod___AParExprs___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
40382 struct {struct stack_frame_t me;} fra;
40383 fun_t CREG[1];
40384 val_t tmp;
40385 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40386 fra.me.file = LOCATE_parser___parser_prod;
40387 fra.me.line = 0;
40388 fra.me.meth = LOCATE_parser___parser_prod___AParExprs___visit_all;
40389 fra.me.has_broke = 0;
40390 fra.me.REG_size = 1;
40391 fra.me.nitni_local_ref_head = NULL;
40392 fra.me.REG[0] = NIT_NULL;
40393 fra.me.closure_ctx = closctx_param;
40394 fra.me.closure_funs = CREG;
40395 fra.me.REG[0] = p0;
40396 CREG[0] = clos_fun0;
40397 /* parser/parser_prod.nit:7527 */
40398 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
40399 stack_frame_head = fra.me.prev;
40400 return;
40401 }
40402 void parser___parser_prod___ABraExprs___empty_init(val_t p0, int* init_table){
40403 int itpos261 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExprs].i;
40404 struct {struct stack_frame_t me;} fra;
40405 val_t tmp;
40406 if (init_table[itpos261]) return;
40407 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40408 fra.me.file = LOCATE_parser___parser_prod;
40409 fra.me.line = 7533;
40410 fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___empty_init;
40411 fra.me.has_broke = 0;
40412 fra.me.REG_size = 1;
40413 fra.me.nitni_local_ref_head = NULL;
40414 fra.me.REG[0] = NIT_NULL;
40415 fra.me.REG[0] = p0;
40416 stack_frame_head = fra.me.prev;
40417 init_table[itpos261] = 1;
40418 return;
40419 }
40420 void parser___parser_prod___ABraExprs___init_abraexprs(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
40421 int itpos262 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExprs].i;
40422 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
40423 val_t REGB0;
40424 val_t tmp;
40425 if (init_table[itpos262]) return;
40426 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40427 fra.me.file = LOCATE_parser___parser_prod;
40428 fra.me.line = 7535;
40429 fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___init_abraexprs;
40430 fra.me.has_broke = 0;
40431 fra.me.REG_size = 5;
40432 fra.me.nitni_local_ref_head = NULL;
40433 fra.me.REG[0] = NIT_NULL;
40434 fra.me.REG[1] = NIT_NULL;
40435 fra.me.REG[2] = NIT_NULL;
40436 fra.me.REG[3] = NIT_NULL;
40437 fra.me.REG[4] = NIT_NULL;
40438 fra.me.REG[0] = p0;
40439 fra.me.REG[1] = p1;
40440 fra.me.REG[2] = p2;
40441 fra.me.REG[3] = p3;
40442 /* parser/parser_prod.nit:7535 */
40443 fra.me.REG[4] = fra.me.REG[0];
40444 /* parser/parser_prod.nit:7541 */
40445 CALL_parser___parser_prod___ABraExprs___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
40446 /* parser/parser_prod.nit:7542 */
40447 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
40448 if (UNTAG_Bool(REGB0)) {
40449 } else {
40450 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7542);
40451 }
40452 ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[4]) = fra.me.REG[1];
40453 /* parser/parser_prod.nit:7543 */
40454 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40455 if (UNTAG_Bool(REGB0)) {
40456 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7543);
40457 }
40458 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
40459 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExprs___init_abraexprs_1));
40460 /* parser/parser_prod.nit:7549 */
40461 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
40462 if (UNTAG_Bool(REGB0)) {
40463 } else {
40464 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7549);
40465 }
40466 ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[4]) = fra.me.REG[3];
40467 /* parser/parser_prod.nit:7550 */
40468 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40469 if (UNTAG_Bool(REGB0)) {
40470 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7550);
40471 }
40472 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
40473 stack_frame_head = fra.me.prev;
40474 init_table[itpos262] = 1;
40475 return;
40476 }
40477 void OC_parser___parser_prod___ABraExprs___init_abraexprs_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
40478 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
40479 val_t REGB0;
40480 fun_t CREG[1];
40481 val_t tmp;
40482 /* parser/parser_prod.nit:7544 */
40483 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40484 fra.me.file = LOCATE_parser___parser_prod;
40485 fra.me.line = 0;
40486 fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___init_abraexprs;
40487 fra.me.has_broke = 0;
40488 fra.me.REG_size = 2;
40489 fra.me.nitni_local_ref_head = NULL;
40490 fra.me.REG[0] = NIT_NULL;
40491 fra.me.REG[1] = NIT_NULL;
40492 fra.me.closure_ctx = closctx_param;
40493 fra.me.closure_funs = CREG;
40494 fra.me.REG[0] = p0;
40495 CREG[0] = clos_fun0;
40496 /* parser/parser_prod.nit:7545 */
40497 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
40498 if (UNTAG_Bool(REGB0)) {
40499 } else {
40500 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7545);
40501 }
40502 /* parser/parser_prod.nit:7546 */
40503 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[4])!=NIT_NULL);
40504 if (UNTAG_Bool(REGB0)) {
40505 } else {
40506 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7546);
40507 }
40508 fra.me.REG[1] = ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[4]);
40509 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40510 /* parser/parser_prod.nit:7547 */
40511 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
40512 stack_frame_head = fra.me.prev;
40513 return;
40514 }
40515 void parser___parser_prod___ABraExprs___replace_child(val_t p0, val_t p1, val_t p2){
40516 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40517 val_t REGB0;
40518 val_t REGB1;
40519 val_t REGB2;
40520 val_t REGB3;
40521 val_t REGB4;
40522 val_t tmp;
40523 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40524 fra.me.file = LOCATE_parser___parser_prod;
40525 fra.me.line = 7553;
40526 fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___replace_child;
40527 fra.me.has_broke = 0;
40528 fra.me.REG_size = 4;
40529 fra.me.nitni_local_ref_head = NULL;
40530 fra.me.REG[0] = NIT_NULL;
40531 fra.me.REG[1] = NIT_NULL;
40532 fra.me.REG[2] = NIT_NULL;
40533 fra.me.REG[3] = NIT_NULL;
40534 fra.me.REG[0] = p0;
40535 fra.me.REG[1] = p1;
40536 fra.me.REG[2] = p2;
40537 /* parser/parser_prod.nit:7555 */
40538 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0])!=NIT_NULL);
40539 if (UNTAG_Bool(REGB0)) {
40540 } else {
40541 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 7555);
40542 }
40543 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0]);
40544 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40545 if (UNTAG_Bool(REGB0)) {
40546 } else {
40547 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40548 REGB0 = REGB1;
40549 }
40550 if (UNTAG_Bool(REGB0)) {
40551 /* parser/parser_prod.nit:7556 */
40552 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40553 if (UNTAG_Bool(REGB0)) {
40554 } else {
40555 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40556 if (UNTAG_Bool(REGB1)) {
40557 REGB1 = TAG_Bool(false);
40558 REGB0 = REGB1;
40559 } else {
40560 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40561 REGB0 = REGB1;
40562 }
40563 }
40564 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40565 if (UNTAG_Bool(REGB0)) {
40566 /* parser/parser_prod.nit:7557 */
40567 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40568 if (UNTAG_Bool(REGB0)) {
40569 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7557);
40570 }
40571 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40572 /* parser/parser_prod.nit:7558 */
40573 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast TObra*/;
40574 if (UNTAG_Bool(REGB0)) {
40575 } else {
40576 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7558);
40577 }
40578 /* parser/parser_prod.nit:7559 */
40579 ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0]) = fra.me.REG[2];
40580 } else {
40581 /* parser/parser_prod.nit:7561 */
40582 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7561);
40583 }
40584 /* parser/parser_prod.nit:7563 */
40585 goto label1;
40586 }
40587 /* parser/parser_prod.nit:7565 */
40588 REGB0 = TAG_Int(0);
40589 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
40590 if (UNTAG_Bool(REGB1)) {
40591 } else {
40592 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7565);
40593 }
40594 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
40595 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
40596 /* ../lib/standard/kernel.nit:352 */
40597 while(1) {
40598 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
40599 if (UNTAG_Bool(REGB2)) {
40600 } else {
40601 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
40602 }
40603 /* ../lib/standard/kernel.nit:232 */
40604 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
40605 /* ../lib/standard/kernel.nit:352 */
40606 if (UNTAG_Bool(REGB2)) {
40607 /* parser/parser_prod.nit:7565 */
40608 REGB2 = REGB0;
40609 /* parser/parser_prod.nit:7566 */
40610 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
40611 if (UNTAG_Bool(REGB3)) {
40612 } else {
40613 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7566);
40614 }
40615 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
40616 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
40617 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
40618 if (UNTAG_Bool(REGB3)) {
40619 } else {
40620 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40621 if (UNTAG_Bool(REGB4)) {
40622 REGB4 = TAG_Bool(false);
40623 REGB3 = REGB4;
40624 } else {
40625 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40626 REGB3 = REGB4;
40627 }
40628 }
40629 if (UNTAG_Bool(REGB3)) {
40630 /* parser/parser_prod.nit:7567 */
40631 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40632 if (UNTAG_Bool(REGB3)) {
40633 } else {
40634 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40635 if (UNTAG_Bool(REGB4)) {
40636 REGB4 = TAG_Bool(false);
40637 REGB3 = REGB4;
40638 } else {
40639 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40640 REGB3 = REGB4;
40641 }
40642 }
40643 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
40644 if (UNTAG_Bool(REGB3)) {
40645 /* parser/parser_prod.nit:7568 */
40646 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
40647 if (UNTAG_Bool(REGB3)) {
40648 } else {
40649 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7568);
40650 }
40651 /* parser/parser_prod.nit:7569 */
40652 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
40653 if (UNTAG_Bool(REGB3)) {
40654 } else {
40655 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7569);
40656 }
40657 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
40658 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
40659 /* parser/parser_prod.nit:7570 */
40660 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40661 if (UNTAG_Bool(REGB3)) {
40662 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7570);
40663 }
40664 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40665 } else {
40666 /* parser/parser_prod.nit:7572 */
40667 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
40668 if (UNTAG_Bool(REGB3)) {
40669 } else {
40670 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7572);
40671 }
40672 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
40673 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
40674 }
40675 /* parser/parser_prod.nit:7574 */
40676 goto label1;
40677 }
40678 /* ../lib/standard/kernel.nit:354 */
40679 REGB2 = TAG_Int(1);
40680 /* ../lib/standard/kernel.nit:235 */
40681 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
40682 /* ../lib/standard/kernel.nit:354 */
40683 REGB0 = REGB2;
40684 } else {
40685 /* ../lib/standard/kernel.nit:352 */
40686 goto label2;
40687 }
40688 }
40689 label2: while(0);
40690 /* parser/parser_prod.nit:7577 */
40691 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0])!=NIT_NULL);
40692 if (UNTAG_Bool(REGB0)) {
40693 } else {
40694 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 7577);
40695 }
40696 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0]);
40697 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40698 if (UNTAG_Bool(REGB0)) {
40699 } else {
40700 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40701 REGB0 = REGB1;
40702 }
40703 if (UNTAG_Bool(REGB0)) {
40704 /* parser/parser_prod.nit:7578 */
40705 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40706 if (UNTAG_Bool(REGB0)) {
40707 } else {
40708 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40709 if (UNTAG_Bool(REGB1)) {
40710 REGB1 = TAG_Bool(false);
40711 REGB0 = REGB1;
40712 } else {
40713 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40714 REGB0 = REGB1;
40715 }
40716 }
40717 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40718 if (UNTAG_Bool(REGB0)) {
40719 /* parser/parser_prod.nit:7579 */
40720 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40721 if (UNTAG_Bool(REGB0)) {
40722 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7579);
40723 }
40724 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40725 /* parser/parser_prod.nit:7580 */
40726 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCbra, ID_parser___parser_nodes___TCbra)) /*cast TCbra*/;
40727 if (UNTAG_Bool(REGB0)) {
40728 } else {
40729 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7580);
40730 }
40731 /* parser/parser_prod.nit:7581 */
40732 ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
40733 } else {
40734 /* parser/parser_prod.nit:7583 */
40735 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7583);
40736 }
40737 /* parser/parser_prod.nit:7585 */
40738 goto label1;
40739 }
40740 label1: while(0);
40741 stack_frame_head = fra.me.prev;
40742 return;
40743 }
40744 void parser___parser_prod___ABraExprs___visit_all(val_t p0, val_t p1){
40745 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
40746 val_t REGB0;
40747 val_t tmp;
40748 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40749 fra.me.file = LOCATE_parser___parser_prod;
40750 fra.me.line = 7589;
40751 fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___visit_all;
40752 fra.me.has_broke = 0;
40753 fra.me.REG_size = 3;
40754 fra.me.nitni_local_ref_head = NULL;
40755 fra.me.REG[0] = NIT_NULL;
40756 fra.me.REG[1] = NIT_NULL;
40757 fra.me.REG[2] = NIT_NULL;
40758 fra.me.REG[0] = p0;
40759 fra.me.REG[1] = p1;
40760 /* parser/parser_prod.nit:7591 */
40761 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0])!=NIT_NULL);
40762 if (UNTAG_Bool(REGB0)) {
40763 } else {
40764 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 7591);
40765 }
40766 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0]);
40767 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40768 /* parser/parser_prod.nit:7592 */
40769 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
40770 if (UNTAG_Bool(REGB0)) {
40771 } else {
40772 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7592);
40773 }
40774 fra.me.REG[2] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
40775 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExprs___visit_all_1));
40776 /* parser/parser_prod.nit:7595 */
40777 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0])!=NIT_NULL);
40778 if (UNTAG_Bool(REGB0)) {
40779 } else {
40780 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 7595);
40781 }
40782 fra.me.REG[0] = ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0]);
40783 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40784 stack_frame_head = fra.me.prev;
40785 return;
40786 }
40787 void OC_parser___parser_prod___ABraExprs___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
40788 struct {struct stack_frame_t me;} fra;
40789 fun_t CREG[1];
40790 val_t tmp;
40791 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40792 fra.me.file = LOCATE_parser___parser_prod;
40793 fra.me.line = 0;
40794 fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___visit_all;
40795 fra.me.has_broke = 0;
40796 fra.me.REG_size = 1;
40797 fra.me.nitni_local_ref_head = NULL;
40798 fra.me.REG[0] = NIT_NULL;
40799 fra.me.closure_ctx = closctx_param;
40800 fra.me.closure_funs = CREG;
40801 fra.me.REG[0] = p0;
40802 CREG[0] = clos_fun0;
40803 /* parser/parser_prod.nit:7593 */
40804 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
40805 stack_frame_head = fra.me.prev;
40806 return;
40807 }
40808 void parser___parser_prod___APlusAssignOp___empty_init(val_t p0, int* init_table){
40809 int itpos263 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusAssignOp].i;
40810 struct {struct stack_frame_t me;} fra;
40811 val_t tmp;
40812 if (init_table[itpos263]) return;
40813 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40814 fra.me.file = LOCATE_parser___parser_prod;
40815 fra.me.line = 7599;
40816 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___empty_init;
40817 fra.me.has_broke = 0;
40818 fra.me.REG_size = 1;
40819 fra.me.nitni_local_ref_head = NULL;
40820 fra.me.REG[0] = NIT_NULL;
40821 fra.me.REG[0] = p0;
40822 stack_frame_head = fra.me.prev;
40823 init_table[itpos263] = 1;
40824 return;
40825 }
40826 void parser___parser_prod___APlusAssignOp___init_aplusassignop(val_t p0, val_t p1, int* init_table){
40827 int itpos264 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusAssignOp].i;
40828 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
40829 val_t REGB0;
40830 val_t tmp;
40831 if (init_table[itpos264]) return;
40832 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40833 fra.me.file = LOCATE_parser___parser_prod;
40834 fra.me.line = 7601;
40835 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___init_aplusassignop;
40836 fra.me.has_broke = 0;
40837 fra.me.REG_size = 3;
40838 fra.me.nitni_local_ref_head = NULL;
40839 fra.me.REG[0] = NIT_NULL;
40840 fra.me.REG[1] = NIT_NULL;
40841 fra.me.REG[2] = NIT_NULL;
40842 fra.me.REG[0] = p0;
40843 fra.me.REG[1] = p1;
40844 /* parser/parser_prod.nit:7601 */
40845 fra.me.REG[2] = fra.me.REG[0];
40846 /* parser/parser_prod.nit:7605 */
40847 CALL_parser___parser_prod___APlusAssignOp___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
40848 /* parser/parser_prod.nit:7606 */
40849 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
40850 if (UNTAG_Bool(REGB0)) {
40851 } else {
40852 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7606);
40853 }
40854 ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[2]) = fra.me.REG[1];
40855 /* parser/parser_prod.nit:7607 */
40856 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40857 if (UNTAG_Bool(REGB0)) {
40858 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7607);
40859 }
40860 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40861 stack_frame_head = fra.me.prev;
40862 init_table[itpos264] = 1;
40863 return;
40864 }
40865 void parser___parser_prod___APlusAssignOp___replace_child(val_t p0, val_t p1, val_t p2){
40866 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40867 val_t REGB0;
40868 val_t REGB1;
40869 val_t tmp;
40870 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40871 fra.me.file = LOCATE_parser___parser_prod;
40872 fra.me.line = 7610;
40873 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___replace_child;
40874 fra.me.has_broke = 0;
40875 fra.me.REG_size = 4;
40876 fra.me.nitni_local_ref_head = NULL;
40877 fra.me.REG[0] = NIT_NULL;
40878 fra.me.REG[1] = NIT_NULL;
40879 fra.me.REG[2] = NIT_NULL;
40880 fra.me.REG[3] = NIT_NULL;
40881 fra.me.REG[0] = p0;
40882 fra.me.REG[1] = p1;
40883 fra.me.REG[2] = p2;
40884 /* parser/parser_prod.nit:7612 */
40885 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0])!=NIT_NULL);
40886 if (UNTAG_Bool(REGB0)) {
40887 } else {
40888 nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser___parser_prod, 7612);
40889 }
40890 fra.me.REG[3] = ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]);
40891 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40892 if (UNTAG_Bool(REGB0)) {
40893 } else {
40894 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40895 REGB0 = REGB1;
40896 }
40897 if (UNTAG_Bool(REGB0)) {
40898 /* parser/parser_prod.nit:7613 */
40899 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40900 if (UNTAG_Bool(REGB0)) {
40901 } else {
40902 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40903 if (UNTAG_Bool(REGB1)) {
40904 REGB1 = TAG_Bool(false);
40905 REGB0 = REGB1;
40906 } else {
40907 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40908 REGB0 = REGB1;
40909 }
40910 }
40911 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40912 if (UNTAG_Bool(REGB0)) {
40913 /* parser/parser_prod.nit:7614 */
40914 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40915 if (UNTAG_Bool(REGB0)) {
40916 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7614);
40917 }
40918 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40919 /* parser/parser_prod.nit:7615 */
40920 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TPluseq, ID_parser___parser_nodes___TPluseq)) /*cast TPluseq*/;
40921 if (UNTAG_Bool(REGB0)) {
40922 } else {
40923 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7615);
40924 }
40925 /* parser/parser_prod.nit:7616 */
40926 ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]) = fra.me.REG[2];
40927 } else {
40928 /* parser/parser_prod.nit:7618 */
40929 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7618);
40930 }
40931 /* parser/parser_prod.nit:7620 */
40932 goto label1;
40933 }
40934 label1: while(0);
40935 stack_frame_head = fra.me.prev;
40936 return;
40937 }
40938 void parser___parser_prod___APlusAssignOp___visit_all(val_t p0, val_t p1){
40939 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
40940 val_t REGB0;
40941 val_t tmp;
40942 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40943 fra.me.file = LOCATE_parser___parser_prod;
40944 fra.me.line = 7624;
40945 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___visit_all;
40946 fra.me.has_broke = 0;
40947 fra.me.REG_size = 2;
40948 fra.me.nitni_local_ref_head = NULL;
40949 fra.me.REG[0] = NIT_NULL;
40950 fra.me.REG[1] = NIT_NULL;
40951 fra.me.REG[0] = p0;
40952 fra.me.REG[1] = p1;
40953 /* parser/parser_prod.nit:7626 */
40954 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0])!=NIT_NULL);
40955 if (UNTAG_Bool(REGB0)) {
40956 } else {
40957 nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser___parser_prod, 7626);
40958 }
40959 fra.me.REG[0] = ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]);
40960 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40961 stack_frame_head = fra.me.prev;
40962 return;
40963 }
40964 void parser___parser_prod___AMinusAssignOp___empty_init(val_t p0, int* init_table){
40965 int itpos265 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusAssignOp].i;
40966 struct {struct stack_frame_t me;} fra;
40967 val_t tmp;
40968 if (init_table[itpos265]) return;
40969 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40970 fra.me.file = LOCATE_parser___parser_prod;
40971 fra.me.line = 7630;
40972 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___empty_init;
40973 fra.me.has_broke = 0;
40974 fra.me.REG_size = 1;
40975 fra.me.nitni_local_ref_head = NULL;
40976 fra.me.REG[0] = NIT_NULL;
40977 fra.me.REG[0] = p0;
40978 stack_frame_head = fra.me.prev;
40979 init_table[itpos265] = 1;
40980 return;
40981 }
40982 void parser___parser_prod___AMinusAssignOp___init_aminusassignop(val_t p0, val_t p1, int* init_table){
40983 int itpos266 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusAssignOp].i;
40984 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
40985 val_t REGB0;
40986 val_t tmp;
40987 if (init_table[itpos266]) return;
40988 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40989 fra.me.file = LOCATE_parser___parser_prod;
40990 fra.me.line = 7632;
40991 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___init_aminusassignop;
40992 fra.me.has_broke = 0;
40993 fra.me.REG_size = 3;
40994 fra.me.nitni_local_ref_head = NULL;
40995 fra.me.REG[0] = NIT_NULL;
40996 fra.me.REG[1] = NIT_NULL;
40997 fra.me.REG[2] = NIT_NULL;
40998 fra.me.REG[0] = p0;
40999 fra.me.REG[1] = p1;
41000 /* parser/parser_prod.nit:7632 */
41001 fra.me.REG[2] = fra.me.REG[0];
41002 /* parser/parser_prod.nit:7636 */
41003 CALL_parser___parser_prod___AMinusAssignOp___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
41004 /* parser/parser_prod.nit:7637 */
41005 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
41006 if (UNTAG_Bool(REGB0)) {
41007 } else {
41008 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7637);
41009 }
41010 ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[2]) = fra.me.REG[1];
41011 /* parser/parser_prod.nit:7638 */
41012 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
41013 if (UNTAG_Bool(REGB0)) {
41014 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7638);
41015 }
41016 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
41017 stack_frame_head = fra.me.prev;
41018 init_table[itpos266] = 1;
41019 return;
41020 }
41021 void parser___parser_prod___AMinusAssignOp___replace_child(val_t p0, val_t p1, val_t p2){
41022 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41023 val_t REGB0;
41024 val_t REGB1;
41025 val_t tmp;
41026 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41027 fra.me.file = LOCATE_parser___parser_prod;
41028 fra.me.line = 7641;
41029 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___replace_child;
41030 fra.me.has_broke = 0;
41031 fra.me.REG_size = 4;
41032 fra.me.nitni_local_ref_head = NULL;
41033 fra.me.REG[0] = NIT_NULL;
41034 fra.me.REG[1] = NIT_NULL;
41035 fra.me.REG[2] = NIT_NULL;
41036 fra.me.REG[3] = NIT_NULL;
41037 fra.me.REG[0] = p0;
41038 fra.me.REG[1] = p1;
41039 fra.me.REG[2] = p2;
41040 /* parser/parser_prod.nit:7643 */
41041 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0])!=NIT_NULL);
41042 if (UNTAG_Bool(REGB0)) {
41043 } else {
41044 nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser___parser_prod, 7643);
41045 }
41046 fra.me.REG[3] = ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]);
41047 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41048 if (UNTAG_Bool(REGB0)) {
41049 } else {
41050 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41051 REGB0 = REGB1;
41052 }
41053 if (UNTAG_Bool(REGB0)) {
41054 /* parser/parser_prod.nit:7644 */
41055 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41056 if (UNTAG_Bool(REGB0)) {
41057 } else {
41058 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41059 if (UNTAG_Bool(REGB1)) {
41060 REGB1 = TAG_Bool(false);
41061 REGB0 = REGB1;
41062 } else {
41063 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41064 REGB0 = REGB1;
41065 }
41066 }
41067 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41068 if (UNTAG_Bool(REGB0)) {
41069 /* parser/parser_prod.nit:7645 */
41070 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41071 if (UNTAG_Bool(REGB0)) {
41072 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7645);
41073 }
41074 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41075 /* parser/parser_prod.nit:7646 */
41076 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TMinuseq, ID_parser___parser_nodes___TMinuseq)) /*cast TMinuseq*/;
41077 if (UNTAG_Bool(REGB0)) {
41078 } else {
41079 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7646);
41080 }
41081 /* parser/parser_prod.nit:7647 */
41082 ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]) = fra.me.REG[2];
41083 } else {
41084 /* parser/parser_prod.nit:7649 */
41085 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7649);
41086 }
41087 /* parser/parser_prod.nit:7651 */
41088 goto label1;
41089 }
41090 label1: while(0);
41091 stack_frame_head = fra.me.prev;
41092 return;
41093 }
41094 void parser___parser_prod___AMinusAssignOp___visit_all(val_t p0, val_t p1){
41095 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
41096 val_t REGB0;
41097 val_t tmp;
41098 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41099 fra.me.file = LOCATE_parser___parser_prod;
41100 fra.me.line = 7655;
41101 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___visit_all;
41102 fra.me.has_broke = 0;
41103 fra.me.REG_size = 2;
41104 fra.me.nitni_local_ref_head = NULL;
41105 fra.me.REG[0] = NIT_NULL;
41106 fra.me.REG[1] = NIT_NULL;
41107 fra.me.REG[0] = p0;
41108 fra.me.REG[1] = p1;
41109 /* parser/parser_prod.nit:7657 */
41110 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0])!=NIT_NULL);
41111 if (UNTAG_Bool(REGB0)) {
41112 } else {
41113 nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser___parser_prod, 7657);
41114 }
41115 fra.me.REG[0] = ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]);
41116 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
41117 stack_frame_head = fra.me.prev;
41118 return;
41119 }
41120 void parser___parser_prod___AClosureDef___empty_init(val_t p0, int* init_table){
41121 int itpos267 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDef].i;
41122 struct {struct stack_frame_t me;} fra;
41123 val_t tmp;
41124 if (init_table[itpos267]) return;
41125 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41126 fra.me.file = LOCATE_parser___parser_prod;
41127 fra.me.line = 7661;
41128 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___empty_init;
41129 fra.me.has_broke = 0;
41130 fra.me.REG_size = 1;
41131 fra.me.nitni_local_ref_head = NULL;
41132 fra.me.REG[0] = NIT_NULL;
41133 fra.me.REG[0] = p0;
41134 stack_frame_head = fra.me.prev;
41135 init_table[itpos267] = 1;
41136 return;
41137 }
41138 void parser___parser_prod___AClosureDef___init_aclosuredef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, int* init_table){
41139 int itpos268 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDef].i;
41140 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
41141 val_t REGB0;
41142 val_t REGB1;
41143 val_t tmp;
41144 if (init_table[itpos268]) return;
41145 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41146 fra.me.file = LOCATE_parser___parser_prod;
41147 fra.me.line = 7663;
41148 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___init_aclosuredef;
41149 fra.me.has_broke = 0;
41150 fra.me.REG_size = 8;
41151 fra.me.nitni_local_ref_head = NULL;
41152 fra.me.REG[0] = NIT_NULL;
41153 fra.me.REG[1] = NIT_NULL;
41154 fra.me.REG[2] = NIT_NULL;
41155 fra.me.REG[3] = NIT_NULL;
41156 fra.me.REG[4] = NIT_NULL;
41157 fra.me.REG[5] = NIT_NULL;
41158 fra.me.REG[6] = NIT_NULL;
41159 fra.me.REG[7] = NIT_NULL;
41160 fra.me.REG[0] = p0;
41161 fra.me.REG[1] = p1;
41162 fra.me.REG[2] = p2;
41163 fra.me.REG[3] = p3;
41164 fra.me.REG[4] = p4;
41165 fra.me.REG[5] = p5;
41166 fra.me.REG[6] = p6;
41167 /* parser/parser_prod.nit:7663 */
41168 fra.me.REG[7] = fra.me.REG[0];
41169 /* parser/parser_prod.nit:7672 */
41170 CALL_parser___parser_prod___AClosureDef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
41171 /* parser/parser_prod.nit:7673 */
41172 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
41173 if (UNTAG_Bool(REGB0)) {
41174 } else {
41175 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7673);
41176 }
41177 ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[7]) = fra.me.REG[1];
41178 /* parser/parser_prod.nit:7674 */
41179 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
41180 if (UNTAG_Bool(REGB0)) {
41181 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7674);
41182 }
41183 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
41184 /* parser/parser_prod.nit:7675 */
41185 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
41186 if (UNTAG_Bool(REGB0)) {
41187 } else {
41188 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7675);
41189 }
41190 ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[7]) = fra.me.REG[2];
41191 /* parser/parser_prod.nit:7676 */
41192 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41193 if (UNTAG_Bool(REGB0)) {
41194 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7676);
41195 }
41196 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
41197 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AClosureDef___init_aclosuredef_1));
41198 /* parser/parser_prod.nit:7682 */
41199 ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[7]) = fra.me.REG[4];
41200 /* parser/parser_prod.nit:7683 */
41201 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
41202 if (UNTAG_Bool(REGB0)) {
41203 } else {
41204 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
41205 if (UNTAG_Bool(REGB1)) {
41206 REGB1 = TAG_Bool(false);
41207 REGB0 = REGB1;
41208 } else {
41209 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
41210 REGB0 = REGB1;
41211 }
41212 }
41213 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41214 if (UNTAG_Bool(REGB0)) {
41215 /* parser/parser_prod.nit:7684 */
41216 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
41217 if (UNTAG_Bool(REGB0)) {
41218 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7684);
41219 }
41220 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
41221 }
41222 /* parser/parser_prod.nit:7686 */
41223 ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[7]) = fra.me.REG[5];
41224 /* parser/parser_prod.nit:7687 */
41225 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
41226 if (UNTAG_Bool(REGB0)) {
41227 } else {
41228 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
41229 if (UNTAG_Bool(REGB1)) {
41230 REGB1 = TAG_Bool(false);
41231 REGB0 = REGB1;
41232 } else {
41233 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
41234 REGB0 = REGB1;
41235 }
41236 }
41237 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41238 if (UNTAG_Bool(REGB0)) {
41239 /* parser/parser_prod.nit:7688 */
41240 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
41241 if (UNTAG_Bool(REGB0)) {
41242 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7688);
41243 }
41244 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
41245 }
41246 /* parser/parser_prod.nit:7690 */
41247 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[7]) = fra.me.REG[6];
41248 /* parser/parser_prod.nit:7691 */
41249 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
41250 if (UNTAG_Bool(REGB0)) {
41251 } else {
41252 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
41253 if (UNTAG_Bool(REGB1)) {
41254 REGB1 = TAG_Bool(false);
41255 REGB0 = REGB1;
41256 } else {
41257 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
41258 REGB0 = REGB1;
41259 }
41260 }
41261 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41262 if (UNTAG_Bool(REGB0)) {
41263 /* parser/parser_prod.nit:7692 */
41264 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
41265 if (UNTAG_Bool(REGB0)) {
41266 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7692);
41267 }
41268 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
41269 }
41270 stack_frame_head = fra.me.prev;
41271 init_table[itpos268] = 1;
41272 return;
41273 }
41274 void OC_parser___parser_prod___AClosureDef___init_aclosuredef_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
41275 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
41276 val_t REGB0;
41277 fun_t CREG[1];
41278 val_t tmp;
41279 /* parser/parser_prod.nit:7677 */
41280 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41281 fra.me.file = LOCATE_parser___parser_prod;
41282 fra.me.line = 0;
41283 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___init_aclosuredef;
41284 fra.me.has_broke = 0;
41285 fra.me.REG_size = 2;
41286 fra.me.nitni_local_ref_head = NULL;
41287 fra.me.REG[0] = NIT_NULL;
41288 fra.me.REG[1] = NIT_NULL;
41289 fra.me.closure_ctx = closctx_param;
41290 fra.me.closure_funs = CREG;
41291 fra.me.REG[0] = p0;
41292 CREG[0] = clos_fun0;
41293 /* parser/parser_prod.nit:7678 */
41294 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
41295 if (UNTAG_Bool(REGB0)) {
41296 } else {
41297 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7678);
41298 }
41299 /* parser/parser_prod.nit:7679 */
41300 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(closctx->REG[7])!=NIT_NULL);
41301 if (UNTAG_Bool(REGB0)) {
41302 } else {
41303 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7679);
41304 }
41305 fra.me.REG[1] = ATTR_parser___parser_nodes___AClosureDef____n_ids(closctx->REG[7]);
41306 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
41307 /* parser/parser_prod.nit:7680 */
41308 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[7]);
41309 stack_frame_head = fra.me.prev;
41310 return;
41311 }
41312 void parser___parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_t p2){
41313 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41314 val_t REGB0;
41315 val_t REGB1;
41316 val_t REGB2;
41317 val_t REGB3;
41318 val_t REGB4;
41319 val_t tmp;
41320 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41321 fra.me.file = LOCATE_parser___parser_prod;
41322 fra.me.line = 7696;
41323 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___replace_child;
41324 fra.me.has_broke = 0;
41325 fra.me.REG_size = 4;
41326 fra.me.nitni_local_ref_head = NULL;
41327 fra.me.REG[0] = NIT_NULL;
41328 fra.me.REG[1] = NIT_NULL;
41329 fra.me.REG[2] = NIT_NULL;
41330 fra.me.REG[3] = NIT_NULL;
41331 fra.me.REG[0] = p0;
41332 fra.me.REG[1] = p1;
41333 fra.me.REG[2] = p2;
41334 /* parser/parser_prod.nit:7698 */
41335 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0])!=NIT_NULL);
41336 if (UNTAG_Bool(REGB0)) {
41337 } else {
41338 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 7698);
41339 }
41340 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0]);
41341 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41342 if (UNTAG_Bool(REGB0)) {
41343 } else {
41344 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41345 REGB0 = REGB1;
41346 }
41347 if (UNTAG_Bool(REGB0)) {
41348 /* parser/parser_prod.nit:7699 */
41349 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41350 if (UNTAG_Bool(REGB0)) {
41351 } else {
41352 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41353 if (UNTAG_Bool(REGB1)) {
41354 REGB1 = TAG_Bool(false);
41355 REGB0 = REGB1;
41356 } else {
41357 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41358 REGB0 = REGB1;
41359 }
41360 }
41361 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41362 if (UNTAG_Bool(REGB0)) {
41363 /* parser/parser_prod.nit:7700 */
41364 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41365 if (UNTAG_Bool(REGB0)) {
41366 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7700);
41367 }
41368 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41369 /* parser/parser_prod.nit:7701 */
41370 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast TBang*/;
41371 if (UNTAG_Bool(REGB0)) {
41372 } else {
41373 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7701);
41374 }
41375 /* parser/parser_prod.nit:7702 */
41376 ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0]) = fra.me.REG[2];
41377 } else {
41378 /* parser/parser_prod.nit:7704 */
41379 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7704);
41380 }
41381 /* parser/parser_prod.nit:7706 */
41382 goto label1;
41383 }
41384 /* parser/parser_prod.nit:7708 */
41385 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0])!=NIT_NULL);
41386 if (UNTAG_Bool(REGB0)) {
41387 } else {
41388 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7708);
41389 }
41390 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0]);
41391 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41392 if (UNTAG_Bool(REGB0)) {
41393 } else {
41394 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41395 REGB0 = REGB1;
41396 }
41397 if (UNTAG_Bool(REGB0)) {
41398 /* parser/parser_prod.nit:7709 */
41399 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41400 if (UNTAG_Bool(REGB0)) {
41401 } else {
41402 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41403 if (UNTAG_Bool(REGB1)) {
41404 REGB1 = TAG_Bool(false);
41405 REGB0 = REGB1;
41406 } else {
41407 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41408 REGB0 = REGB1;
41409 }
41410 }
41411 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41412 if (UNTAG_Bool(REGB0)) {
41413 /* parser/parser_prod.nit:7710 */
41414 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41415 if (UNTAG_Bool(REGB0)) {
41416 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7710);
41417 }
41418 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41419 /* parser/parser_prod.nit:7711 */
41420 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClosureId, ID_parser___parser_nodes___AClosureId)) /*cast AClosureId*/;
41421 if (UNTAG_Bool(REGB0)) {
41422 } else {
41423 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7711);
41424 }
41425 /* parser/parser_prod.nit:7712 */
41426 ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0]) = fra.me.REG[2];
41427 } else {
41428 /* parser/parser_prod.nit:7714 */
41429 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7714);
41430 }
41431 /* parser/parser_prod.nit:7716 */
41432 goto label1;
41433 }
41434 /* parser/parser_prod.nit:7718 */
41435 REGB0 = TAG_Int(0);
41436 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
41437 if (UNTAG_Bool(REGB1)) {
41438 } else {
41439 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7718);
41440 }
41441 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
41442 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
41443 /* ../lib/standard/kernel.nit:352 */
41444 while(1) {
41445 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
41446 if (UNTAG_Bool(REGB2)) {
41447 } else {
41448 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
41449 }
41450 /* ../lib/standard/kernel.nit:232 */
41451 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
41452 /* ../lib/standard/kernel.nit:352 */
41453 if (UNTAG_Bool(REGB2)) {
41454 /* parser/parser_prod.nit:7718 */
41455 REGB2 = REGB0;
41456 /* parser/parser_prod.nit:7719 */
41457 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
41458 if (UNTAG_Bool(REGB3)) {
41459 } else {
41460 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7719);
41461 }
41462 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
41463 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
41464 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
41465 if (UNTAG_Bool(REGB3)) {
41466 } else {
41467 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41468 if (UNTAG_Bool(REGB4)) {
41469 REGB4 = TAG_Bool(false);
41470 REGB3 = REGB4;
41471 } else {
41472 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41473 REGB3 = REGB4;
41474 }
41475 }
41476 if (UNTAG_Bool(REGB3)) {
41477 /* parser/parser_prod.nit:7720 */
41478 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41479 if (UNTAG_Bool(REGB3)) {
41480 } else {
41481 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41482 if (UNTAG_Bool(REGB4)) {
41483 REGB4 = TAG_Bool(false);
41484 REGB3 = REGB4;
41485 } else {
41486 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41487 REGB3 = REGB4;
41488 }
41489 }
41490 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
41491 if (UNTAG_Bool(REGB3)) {
41492 /* parser/parser_prod.nit:7721 */
41493 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
41494 if (UNTAG_Bool(REGB3)) {
41495 } else {
41496 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7721);
41497 }
41498 /* parser/parser_prod.nit:7722 */
41499 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
41500 if (UNTAG_Bool(REGB3)) {
41501 } else {
41502 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7722);
41503 }
41504 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
41505 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
41506 /* parser/parser_prod.nit:7723 */
41507 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41508 if (UNTAG_Bool(REGB3)) {
41509 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7723);
41510 }
41511 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41512 } else {
41513 /* parser/parser_prod.nit:7725 */
41514 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
41515 if (UNTAG_Bool(REGB3)) {
41516 } else {
41517 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7725);
41518 }
41519 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
41520 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
41521 }
41522 /* parser/parser_prod.nit:7727 */
41523 goto label1;
41524 }
41525 /* ../lib/standard/kernel.nit:354 */
41526 REGB2 = TAG_Int(1);
41527 /* ../lib/standard/kernel.nit:235 */
41528 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
41529 /* ../lib/standard/kernel.nit:354 */
41530 REGB0 = REGB2;
41531 } else {
41532 /* ../lib/standard/kernel.nit:352 */
41533 goto label2;
41534 }
41535 }
41536 label2: while(0);
41537 /* parser/parser_prod.nit:7730 */
41538 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]);
41539 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
41540 if (UNTAG_Bool(REGB0)) {
41541 } else {
41542 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41543 if (UNTAG_Bool(REGB1)) {
41544 REGB1 = TAG_Bool(false);
41545 REGB0 = REGB1;
41546 } else {
41547 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41548 REGB0 = REGB1;
41549 }
41550 }
41551 if (UNTAG_Bool(REGB0)) {
41552 /* parser/parser_prod.nit:7731 */
41553 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41554 if (UNTAG_Bool(REGB0)) {
41555 } else {
41556 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41557 if (UNTAG_Bool(REGB1)) {
41558 REGB1 = TAG_Bool(false);
41559 REGB0 = REGB1;
41560 } else {
41561 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41562 REGB0 = REGB1;
41563 }
41564 }
41565 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41566 if (UNTAG_Bool(REGB0)) {
41567 /* parser/parser_prod.nit:7732 */
41568 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41569 if (UNTAG_Bool(REGB0)) {
41570 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7732);
41571 }
41572 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41573 /* parser/parser_prod.nit:7733 */
41574 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast TKwdo*/;
41575 if (UNTAG_Bool(REGB0)) {
41576 } else {
41577 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7733);
41578 }
41579 /* parser/parser_prod.nit:7734 */
41580 ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
41581 } else {
41582 /* parser/parser_prod.nit:7736 */
41583 ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = NIT_NULL;
41584 }
41585 /* parser/parser_prod.nit:7738 */
41586 goto label1;
41587 }
41588 /* parser/parser_prod.nit:7740 */
41589 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]);
41590 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
41591 if (UNTAG_Bool(REGB0)) {
41592 } else {
41593 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41594 if (UNTAG_Bool(REGB1)) {
41595 REGB1 = TAG_Bool(false);
41596 REGB0 = REGB1;
41597 } else {
41598 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41599 REGB0 = REGB1;
41600 }
41601 }
41602 if (UNTAG_Bool(REGB0)) {
41603 /* parser/parser_prod.nit:7741 */
41604 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41605 if (UNTAG_Bool(REGB0)) {
41606 } else {
41607 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41608 if (UNTAG_Bool(REGB1)) {
41609 REGB1 = TAG_Bool(false);
41610 REGB0 = REGB1;
41611 } else {
41612 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41613 REGB0 = REGB1;
41614 }
41615 }
41616 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41617 if (UNTAG_Bool(REGB0)) {
41618 /* parser/parser_prod.nit:7742 */
41619 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41620 if (UNTAG_Bool(REGB0)) {
41621 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7742);
41622 }
41623 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41624 /* parser/parser_prod.nit:7743 */
41625 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
41626 if (UNTAG_Bool(REGB0)) {
41627 } else {
41628 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7743);
41629 }
41630 /* parser/parser_prod.nit:7744 */
41631 ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = fra.me.REG[2];
41632 } else {
41633 /* parser/parser_prod.nit:7746 */
41634 ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = NIT_NULL;
41635 }
41636 /* parser/parser_prod.nit:7748 */
41637 goto label1;
41638 }
41639 /* parser/parser_prod.nit:7750 */
41640 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
41641 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
41642 if (UNTAG_Bool(REGB0)) {
41643 } else {
41644 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41645 if (UNTAG_Bool(REGB1)) {
41646 REGB1 = TAG_Bool(false);
41647 REGB0 = REGB1;
41648 } else {
41649 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41650 REGB0 = REGB1;
41651 }
41652 }
41653 if (UNTAG_Bool(REGB0)) {
41654 /* parser/parser_prod.nit:7751 */
41655 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41656 if (UNTAG_Bool(REGB0)) {
41657 } else {
41658 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41659 if (UNTAG_Bool(REGB1)) {
41660 REGB1 = TAG_Bool(false);
41661 REGB0 = REGB1;
41662 } else {
41663 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41664 REGB0 = REGB1;
41665 }
41666 }
41667 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41668 if (UNTAG_Bool(REGB0)) {
41669 /* parser/parser_prod.nit:7752 */
41670 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41671 if (UNTAG_Bool(REGB0)) {
41672 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7752);
41673 }
41674 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41675 /* parser/parser_prod.nit:7753 */
41676 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
41677 if (UNTAG_Bool(REGB0)) {
41678 } else {
41679 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7753);
41680 }
41681 /* parser/parser_prod.nit:7754 */
41682 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
41683 } else {
41684 /* parser/parser_prod.nit:7756 */
41685 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
41686 }
41687 /* parser/parser_prod.nit:7758 */
41688 goto label1;
41689 }
41690 label1: while(0);
41691 stack_frame_head = fra.me.prev;
41692 return;
41693 }
41694 void parser___parser_prod___AClosureDef___visit_all(val_t p0, val_t p1){
41695 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41696 val_t REGB0;
41697 val_t REGB1;
41698 val_t tmp;
41699 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41700 fra.me.file = LOCATE_parser___parser_prod;
41701 fra.me.line = 7762;
41702 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___visit_all;
41703 fra.me.has_broke = 0;
41704 fra.me.REG_size = 4;
41705 fra.me.nitni_local_ref_head = NULL;
41706 fra.me.REG[0] = NIT_NULL;
41707 fra.me.REG[1] = NIT_NULL;
41708 fra.me.REG[2] = NIT_NULL;
41709 fra.me.REG[3] = NIT_NULL;
41710 fra.me.REG[0] = p0;
41711 fra.me.REG[1] = p1;
41712 /* parser/parser_prod.nit:7762 */
41713 fra.me.REG[2] = fra.me.REG[0];
41714 /* parser/parser_prod.nit:7764 */
41715 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[2])!=NIT_NULL);
41716 if (UNTAG_Bool(REGB0)) {
41717 } else {
41718 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 7764);
41719 }
41720 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[2]);
41721 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
41722 /* parser/parser_prod.nit:7765 */
41723 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[2])!=NIT_NULL);
41724 if (UNTAG_Bool(REGB0)) {
41725 } else {
41726 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7765);
41727 }
41728 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[2]);
41729 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
41730 /* parser/parser_prod.nit:7766 */
41731 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[2])!=NIT_NULL);
41732 if (UNTAG_Bool(REGB0)) {
41733 } else {
41734 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7766);
41735 }
41736 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[2]);
41737 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AClosureDef___visit_all_1));
41738 /* parser/parser_prod.nit:7769 */
41739 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[2]);
41740 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41741 if (UNTAG_Bool(REGB0)) {
41742 } else {
41743 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41744 if (UNTAG_Bool(REGB1)) {
41745 REGB1 = TAG_Bool(false);
41746 REGB0 = REGB1;
41747 } else {
41748 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
41749 REGB0 = REGB1;
41750 }
41751 }
41752 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41753 if (UNTAG_Bool(REGB0)) {
41754 /* parser/parser_prod.nit:7770 */
41755 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[2]);
41756 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast TKwdo*/;
41757 if (UNTAG_Bool(REGB0)) {
41758 } else {
41759 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7770);
41760 }
41761 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
41762 }
41763 /* parser/parser_prod.nit:7772 */
41764 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[2]);
41765 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41766 if (UNTAG_Bool(REGB0)) {
41767 } else {
41768 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41769 if (UNTAG_Bool(REGB1)) {
41770 REGB1 = TAG_Bool(false);
41771 REGB0 = REGB1;
41772 } else {
41773 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
41774 REGB0 = REGB1;
41775 }
41776 }
41777 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41778 if (UNTAG_Bool(REGB0)) {
41779 /* parser/parser_prod.nit:7773 */
41780 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[2]);
41781 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
41782 if (UNTAG_Bool(REGB0)) {
41783 } else {
41784 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7773);
41785 }
41786 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
41787 }
41788 /* parser/parser_prod.nit:7775 */
41789 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
41790 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41791 if (UNTAG_Bool(REGB0)) {
41792 } else {
41793 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41794 if (UNTAG_Bool(REGB1)) {
41795 REGB1 = TAG_Bool(false);
41796 REGB0 = REGB1;
41797 } else {
41798 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
41799 REGB0 = REGB1;
41800 }
41801 }
41802 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41803 if (UNTAG_Bool(REGB0)) {
41804 /* parser/parser_prod.nit:7776 */
41805 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
41806 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
41807 if (UNTAG_Bool(REGB0)) {
41808 } else {
41809 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7776);
41810 }
41811 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
41812 }
41813 stack_frame_head = fra.me.prev;
41814 return;
41815 }
41816 void OC_parser___parser_prod___AClosureDef___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
41817 struct {struct stack_frame_t me;} fra;
41818 fun_t CREG[1];
41819 val_t tmp;
41820 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41821 fra.me.file = LOCATE_parser___parser_prod;
41822 fra.me.line = 0;
41823 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___visit_all;
41824 fra.me.has_broke = 0;
41825 fra.me.REG_size = 1;
41826 fra.me.nitni_local_ref_head = NULL;
41827 fra.me.REG[0] = NIT_NULL;
41828 fra.me.closure_ctx = closctx_param;
41829 fra.me.closure_funs = CREG;
41830 fra.me.REG[0] = p0;
41831 CREG[0] = clos_fun0;
41832 /* parser/parser_prod.nit:7767 */
41833 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
41834 stack_frame_head = fra.me.prev;
41835 return;
41836 }
41837 void parser___parser_prod___ASimpleClosureId___empty_init(val_t p0, int* init_table){
41838 int itpos269 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASimpleClosureId].i;
41839 struct {struct stack_frame_t me;} fra;
41840 val_t tmp;
41841 if (init_table[itpos269]) return;
41842 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41843 fra.me.file = LOCATE_parser___parser_prod;
41844 fra.me.line = 7781;
41845 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___empty_init;
41846 fra.me.has_broke = 0;
41847 fra.me.REG_size = 1;
41848 fra.me.nitni_local_ref_head = NULL;
41849 fra.me.REG[0] = NIT_NULL;
41850 fra.me.REG[0] = p0;
41851 stack_frame_head = fra.me.prev;
41852 init_table[itpos269] = 1;
41853 return;
41854 }
41855 void parser___parser_prod___ASimpleClosureId___init_asimpleclosureid(val_t p0, val_t p1, int* init_table){
41856 int itpos270 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASimpleClosureId].i;
41857 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
41858 val_t REGB0;
41859 val_t tmp;
41860 if (init_table[itpos270]) return;
41861 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41862 fra.me.file = LOCATE_parser___parser_prod;
41863 fra.me.line = 7783;
41864 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___init_asimpleclosureid;
41865 fra.me.has_broke = 0;
41866 fra.me.REG_size = 3;
41867 fra.me.nitni_local_ref_head = NULL;
41868 fra.me.REG[0] = NIT_NULL;
41869 fra.me.REG[1] = NIT_NULL;
41870 fra.me.REG[2] = NIT_NULL;
41871 fra.me.REG[0] = p0;
41872 fra.me.REG[1] = p1;
41873 /* parser/parser_prod.nit:7783 */
41874 fra.me.REG[2] = fra.me.REG[0];
41875 /* parser/parser_prod.nit:7787 */
41876 CALL_parser___parser_prod___ASimpleClosureId___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
41877 /* parser/parser_prod.nit:7788 */
41878 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
41879 if (UNTAG_Bool(REGB0)) {
41880 } else {
41881 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7788);
41882 }
41883 ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[2]) = fra.me.REG[1];
41884 /* parser/parser_prod.nit:7789 */
41885 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
41886 if (UNTAG_Bool(REGB0)) {
41887 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7789);
41888 }
41889 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
41890 stack_frame_head = fra.me.prev;
41891 init_table[itpos270] = 1;
41892 return;
41893 }
41894 void parser___parser_prod___ASimpleClosureId___replace_child(val_t p0, val_t p1, val_t p2){
41895 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41896 val_t REGB0;
41897 val_t REGB1;
41898 val_t tmp;
41899 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41900 fra.me.file = LOCATE_parser___parser_prod;
41901 fra.me.line = 7792;
41902 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___replace_child;
41903 fra.me.has_broke = 0;
41904 fra.me.REG_size = 4;
41905 fra.me.nitni_local_ref_head = NULL;
41906 fra.me.REG[0] = NIT_NULL;
41907 fra.me.REG[1] = NIT_NULL;
41908 fra.me.REG[2] = NIT_NULL;
41909 fra.me.REG[3] = NIT_NULL;
41910 fra.me.REG[0] = p0;
41911 fra.me.REG[1] = p1;
41912 fra.me.REG[2] = p2;
41913 /* parser/parser_prod.nit:7794 */
41914 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0])!=NIT_NULL);
41915 if (UNTAG_Bool(REGB0)) {
41916 } else {
41917 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7794);
41918 }
41919 fra.me.REG[3] = ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]);
41920 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41921 if (UNTAG_Bool(REGB0)) {
41922 } else {
41923 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41924 REGB0 = REGB1;
41925 }
41926 if (UNTAG_Bool(REGB0)) {
41927 /* parser/parser_prod.nit:7795 */
41928 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41929 if (UNTAG_Bool(REGB0)) {
41930 } else {
41931 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41932 if (UNTAG_Bool(REGB1)) {
41933 REGB1 = TAG_Bool(false);
41934 REGB0 = REGB1;
41935 } else {
41936 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41937 REGB0 = REGB1;
41938 }
41939 }
41940 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41941 if (UNTAG_Bool(REGB0)) {
41942 /* parser/parser_prod.nit:7796 */
41943 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41944 if (UNTAG_Bool(REGB0)) {
41945 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7796);
41946 }
41947 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41948 /* parser/parser_prod.nit:7797 */
41949 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
41950 if (UNTAG_Bool(REGB0)) {
41951 } else {
41952 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7797);
41953 }
41954 /* parser/parser_prod.nit:7798 */
41955 ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]) = fra.me.REG[2];
41956 } else {
41957 /* parser/parser_prod.nit:7800 */
41958 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7800);
41959 }
41960 /* parser/parser_prod.nit:7802 */
41961 goto label1;
41962 }
41963 label1: while(0);
41964 stack_frame_head = fra.me.prev;
41965 return;
41966 }
41967 void parser___parser_prod___ASimpleClosureId___visit_all(val_t p0, val_t p1){
41968 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
41969 val_t REGB0;
41970 val_t tmp;
41971 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41972 fra.me.file = LOCATE_parser___parser_prod;
41973 fra.me.line = 7806;
41974 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___visit_all;
41975 fra.me.has_broke = 0;
41976 fra.me.REG_size = 2;
41977 fra.me.nitni_local_ref_head = NULL;
41978 fra.me.REG[0] = NIT_NULL;
41979 fra.me.REG[1] = NIT_NULL;
41980 fra.me.REG[0] = p0;
41981 fra.me.REG[1] = p1;
41982 /* parser/parser_prod.nit:7808 */
41983 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0])!=NIT_NULL);
41984 if (UNTAG_Bool(REGB0)) {
41985 } else {
41986 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7808);
41987 }
41988 fra.me.REG[0] = ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]);
41989 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
41990 stack_frame_head = fra.me.prev;
41991 return;
41992 }
41993 void parser___parser_prod___ABreakClosureId___empty_init(val_t p0, int* init_table){
41994 int itpos271 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakClosureId].i;
41995 struct {struct stack_frame_t me;} fra;
41996 val_t tmp;
41997 if (init_table[itpos271]) return;
41998 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41999 fra.me.file = LOCATE_parser___parser_prod;
42000 fra.me.line = 7812;
42001 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___empty_init;
42002 fra.me.has_broke = 0;
42003 fra.me.REG_size = 1;
42004 fra.me.nitni_local_ref_head = NULL;
42005 fra.me.REG[0] = NIT_NULL;
42006 fra.me.REG[0] = p0;
42007 stack_frame_head = fra.me.prev;
42008 init_table[itpos271] = 1;
42009 return;
42010 }
42011 void parser___parser_prod___ABreakClosureId___init_abreakclosureid(val_t p0, val_t p1, int* init_table){
42012 int itpos272 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakClosureId].i;
42013 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
42014 val_t REGB0;
42015 val_t tmp;
42016 if (init_table[itpos272]) return;
42017 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42018 fra.me.file = LOCATE_parser___parser_prod;
42019 fra.me.line = 7814;
42020 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___init_abreakclosureid;
42021 fra.me.has_broke = 0;
42022 fra.me.REG_size = 3;
42023 fra.me.nitni_local_ref_head = NULL;
42024 fra.me.REG[0] = NIT_NULL;
42025 fra.me.REG[1] = NIT_NULL;
42026 fra.me.REG[2] = NIT_NULL;
42027 fra.me.REG[0] = p0;
42028 fra.me.REG[1] = p1;
42029 /* parser/parser_prod.nit:7814 */
42030 fra.me.REG[2] = fra.me.REG[0];
42031 /* parser/parser_prod.nit:7818 */
42032 CALL_parser___parser_prod___ABreakClosureId___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
42033 /* parser/parser_prod.nit:7819 */
42034 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
42035 if (UNTAG_Bool(REGB0)) {
42036 } else {
42037 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7819);
42038 }
42039 ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[2]) = fra.me.REG[1];
42040 /* parser/parser_prod.nit:7820 */
42041 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
42042 if (UNTAG_Bool(REGB0)) {
42043 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7820);
42044 }
42045 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42046 stack_frame_head = fra.me.prev;
42047 init_table[itpos272] = 1;
42048 return;
42049 }
42050 void parser___parser_prod___ABreakClosureId___replace_child(val_t p0, val_t p1, val_t p2){
42051 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
42052 val_t REGB0;
42053 val_t REGB1;
42054 val_t tmp;
42055 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42056 fra.me.file = LOCATE_parser___parser_prod;
42057 fra.me.line = 7823;
42058 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___replace_child;
42059 fra.me.has_broke = 0;
42060 fra.me.REG_size = 4;
42061 fra.me.nitni_local_ref_head = NULL;
42062 fra.me.REG[0] = NIT_NULL;
42063 fra.me.REG[1] = NIT_NULL;
42064 fra.me.REG[2] = NIT_NULL;
42065 fra.me.REG[3] = NIT_NULL;
42066 fra.me.REG[0] = p0;
42067 fra.me.REG[1] = p1;
42068 fra.me.REG[2] = p2;
42069 /* parser/parser_prod.nit:7825 */
42070 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
42071 if (UNTAG_Bool(REGB0)) {
42072 } else {
42073 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 7825);
42074 }
42075 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]);
42076 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42077 if (UNTAG_Bool(REGB0)) {
42078 } else {
42079 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42080 REGB0 = REGB1;
42081 }
42082 if (UNTAG_Bool(REGB0)) {
42083 /* parser/parser_prod.nit:7826 */
42084 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42085 if (UNTAG_Bool(REGB0)) {
42086 } else {
42087 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42088 if (UNTAG_Bool(REGB1)) {
42089 REGB1 = TAG_Bool(false);
42090 REGB0 = REGB1;
42091 } else {
42092 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42093 REGB0 = REGB1;
42094 }
42095 }
42096 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42097 if (UNTAG_Bool(REGB0)) {
42098 /* parser/parser_prod.nit:7827 */
42099 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42100 if (UNTAG_Bool(REGB0)) {
42101 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7827);
42102 }
42103 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42104 /* parser/parser_prod.nit:7828 */
42105 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwbreak, ID_parser___parser_nodes___TKwbreak)) /*cast TKwbreak*/;
42106 if (UNTAG_Bool(REGB0)) {
42107 } else {
42108 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7828);
42109 }
42110 /* parser/parser_prod.nit:7829 */
42111 ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
42112 } else {
42113 /* parser/parser_prod.nit:7831 */
42114 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7831);
42115 }
42116 /* parser/parser_prod.nit:7833 */
42117 goto label1;
42118 }
42119 label1: while(0);
42120 stack_frame_head = fra.me.prev;
42121 return;
42122 }
42123 void parser___parser_prod___ABreakClosureId___visit_all(val_t p0, val_t p1){
42124 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
42125 val_t REGB0;
42126 val_t tmp;
42127 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42128 fra.me.file = LOCATE_parser___parser_prod;
42129 fra.me.line = 7837;
42130 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___visit_all;
42131 fra.me.has_broke = 0;
42132 fra.me.REG_size = 2;
42133 fra.me.nitni_local_ref_head = NULL;
42134 fra.me.REG[0] = NIT_NULL;
42135 fra.me.REG[1] = NIT_NULL;
42136 fra.me.REG[0] = p0;
42137 fra.me.REG[1] = p1;
42138 /* parser/parser_prod.nit:7839 */
42139 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
42140 if (UNTAG_Bool(REGB0)) {
42141 } else {
42142 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 7839);
42143 }
42144 fra.me.REG[0] = ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]);
42145 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
42146 stack_frame_head = fra.me.prev;
42147 return;
42148 }
42149 void parser___parser_prod___AModuleName___empty_init(val_t p0, int* init_table){
42150 int itpos273 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuleName].i;
42151 struct {struct stack_frame_t me;} fra;
42152 val_t tmp;
42153 if (init_table[itpos273]) return;
42154 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42155 fra.me.file = LOCATE_parser___parser_prod;
42156 fra.me.line = 7843;
42157 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___empty_init;
42158 fra.me.has_broke = 0;
42159 fra.me.REG_size = 1;
42160 fra.me.nitni_local_ref_head = NULL;
42161 fra.me.REG[0] = NIT_NULL;
42162 fra.me.REG[0] = p0;
42163 stack_frame_head = fra.me.prev;
42164 init_table[itpos273] = 1;
42165 return;
42166 }
42167 void parser___parser_prod___AModuleName___init_amodulename(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
42168 int itpos274 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuleName].i;
42169 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
42170 val_t REGB0;
42171 val_t REGB1;
42172 val_t tmp;
42173 if (init_table[itpos274]) return;
42174 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42175 fra.me.file = LOCATE_parser___parser_prod;
42176 fra.me.line = 7845;
42177 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___init_amodulename;
42178 fra.me.has_broke = 0;
42179 fra.me.REG_size = 5;
42180 fra.me.nitni_local_ref_head = NULL;
42181 fra.me.REG[0] = NIT_NULL;
42182 fra.me.REG[1] = NIT_NULL;
42183 fra.me.REG[2] = NIT_NULL;
42184 fra.me.REG[3] = NIT_NULL;
42185 fra.me.REG[4] = NIT_NULL;
42186 fra.me.REG[0] = p0;
42187 fra.me.REG[1] = p1;
42188 fra.me.REG[2] = p2;
42189 fra.me.REG[3] = p3;
42190 /* parser/parser_prod.nit:7845 */
42191 fra.me.REG[4] = fra.me.REG[0];
42192 /* parser/parser_prod.nit:7851 */
42193 CALL_parser___parser_prod___AModuleName___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
42194 /* parser/parser_prod.nit:7852 */
42195 ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[4]) = fra.me.REG[1];
42196 /* parser/parser_prod.nit:7853 */
42197 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
42198 if (UNTAG_Bool(REGB0)) {
42199 } else {
42200 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
42201 if (UNTAG_Bool(REGB1)) {
42202 REGB1 = TAG_Bool(false);
42203 REGB0 = REGB1;
42204 } else {
42205 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
42206 REGB0 = REGB1;
42207 }
42208 }
42209 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42210 if (UNTAG_Bool(REGB0)) {
42211 /* parser/parser_prod.nit:7854 */
42212 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
42213 if (UNTAG_Bool(REGB0)) {
42214 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7854);
42215 }
42216 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
42217 }
42218 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AModuleName___init_amodulename_1));
42219 /* parser/parser_prod.nit:7861 */
42220 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
42221 if (UNTAG_Bool(REGB0)) {
42222 } else {
42223 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7861);
42224 }
42225 ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[4]) = fra.me.REG[3];
42226 /* parser/parser_prod.nit:7862 */
42227 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42228 if (UNTAG_Bool(REGB0)) {
42229 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7862);
42230 }
42231 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
42232 stack_frame_head = fra.me.prev;
42233 init_table[itpos274] = 1;
42234 return;
42235 }
42236 void OC_parser___parser_prod___AModuleName___init_amodulename_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
42237 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
42238 val_t REGB0;
42239 fun_t CREG[1];
42240 val_t tmp;
42241 /* parser/parser_prod.nit:7856 */
42242 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42243 fra.me.file = LOCATE_parser___parser_prod;
42244 fra.me.line = 0;
42245 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___init_amodulename;
42246 fra.me.has_broke = 0;
42247 fra.me.REG_size = 2;
42248 fra.me.nitni_local_ref_head = NULL;
42249 fra.me.REG[0] = NIT_NULL;
42250 fra.me.REG[1] = NIT_NULL;
42251 fra.me.closure_ctx = closctx_param;
42252 fra.me.closure_funs = CREG;
42253 fra.me.REG[0] = p0;
42254 CREG[0] = clos_fun0;
42255 /* parser/parser_prod.nit:7857 */
42256 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
42257 if (UNTAG_Bool(REGB0)) {
42258 } else {
42259 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7857);
42260 }
42261 /* parser/parser_prod.nit:7858 */
42262 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(closctx->REG[4])!=NIT_NULL);
42263 if (UNTAG_Bool(REGB0)) {
42264 } else {
42265 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7858);
42266 }
42267 fra.me.REG[1] = ATTR_parser___parser_nodes___AModuleName____n_path(closctx->REG[4]);
42268 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
42269 /* parser/parser_prod.nit:7859 */
42270 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
42271 stack_frame_head = fra.me.prev;
42272 return;
42273 }
42274 void parser___parser_prod___AModuleName___replace_child(val_t p0, val_t p1, val_t p2){
42275 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
42276 val_t REGB0;
42277 val_t REGB1;
42278 val_t REGB2;
42279 val_t REGB3;
42280 val_t REGB4;
42281 val_t tmp;
42282 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42283 fra.me.file = LOCATE_parser___parser_prod;
42284 fra.me.line = 7865;
42285 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___replace_child;
42286 fra.me.has_broke = 0;
42287 fra.me.REG_size = 4;
42288 fra.me.nitni_local_ref_head = NULL;
42289 fra.me.REG[0] = NIT_NULL;
42290 fra.me.REG[1] = NIT_NULL;
42291 fra.me.REG[2] = NIT_NULL;
42292 fra.me.REG[3] = NIT_NULL;
42293 fra.me.REG[0] = p0;
42294 fra.me.REG[1] = p1;
42295 fra.me.REG[2] = p2;
42296 /* parser/parser_prod.nit:7867 */
42297 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]);
42298 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
42299 if (UNTAG_Bool(REGB0)) {
42300 } else {
42301 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42302 if (UNTAG_Bool(REGB1)) {
42303 REGB1 = TAG_Bool(false);
42304 REGB0 = REGB1;
42305 } else {
42306 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42307 REGB0 = REGB1;
42308 }
42309 }
42310 if (UNTAG_Bool(REGB0)) {
42311 /* parser/parser_prod.nit:7868 */
42312 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42313 if (UNTAG_Bool(REGB0)) {
42314 } else {
42315 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42316 if (UNTAG_Bool(REGB1)) {
42317 REGB1 = TAG_Bool(false);
42318 REGB0 = REGB1;
42319 } else {
42320 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42321 REGB0 = REGB1;
42322 }
42323 }
42324 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42325 if (UNTAG_Bool(REGB0)) {
42326 /* parser/parser_prod.nit:7869 */
42327 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42328 if (UNTAG_Bool(REGB0)) {
42329 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7869);
42330 }
42331 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42332 /* parser/parser_prod.nit:7870 */
42333 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TQuad, ID_parser___parser_nodes___TQuad)) /*cast TQuad*/;
42334 if (UNTAG_Bool(REGB0)) {
42335 } else {
42336 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7870);
42337 }
42338 /* parser/parser_prod.nit:7871 */
42339 ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]) = fra.me.REG[2];
42340 } else {
42341 /* parser/parser_prod.nit:7873 */
42342 ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]) = NIT_NULL;
42343 }
42344 /* parser/parser_prod.nit:7875 */
42345 goto label1;
42346 }
42347 /* parser/parser_prod.nit:7877 */
42348 REGB0 = TAG_Int(0);
42349 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
42350 if (UNTAG_Bool(REGB1)) {
42351 } else {
42352 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7877);
42353 }
42354 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
42355 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
42356 /* ../lib/standard/kernel.nit:352 */
42357 while(1) {
42358 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
42359 if (UNTAG_Bool(REGB2)) {
42360 } else {
42361 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
42362 }
42363 /* ../lib/standard/kernel.nit:232 */
42364 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
42365 /* ../lib/standard/kernel.nit:352 */
42366 if (UNTAG_Bool(REGB2)) {
42367 /* parser/parser_prod.nit:7877 */
42368 REGB2 = REGB0;
42369 /* parser/parser_prod.nit:7878 */
42370 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
42371 if (UNTAG_Bool(REGB3)) {
42372 } else {
42373 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7878);
42374 }
42375 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
42376 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
42377 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
42378 if (UNTAG_Bool(REGB3)) {
42379 } else {
42380 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42381 if (UNTAG_Bool(REGB4)) {
42382 REGB4 = TAG_Bool(false);
42383 REGB3 = REGB4;
42384 } else {
42385 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42386 REGB3 = REGB4;
42387 }
42388 }
42389 if (UNTAG_Bool(REGB3)) {
42390 /* parser/parser_prod.nit:7879 */
42391 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42392 if (UNTAG_Bool(REGB3)) {
42393 } else {
42394 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42395 if (UNTAG_Bool(REGB4)) {
42396 REGB4 = TAG_Bool(false);
42397 REGB3 = REGB4;
42398 } else {
42399 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42400 REGB3 = REGB4;
42401 }
42402 }
42403 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
42404 if (UNTAG_Bool(REGB3)) {
42405 /* parser/parser_prod.nit:7880 */
42406 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
42407 if (UNTAG_Bool(REGB3)) {
42408 } else {
42409 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7880);
42410 }
42411 /* parser/parser_prod.nit:7881 */
42412 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
42413 if (UNTAG_Bool(REGB3)) {
42414 } else {
42415 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7881);
42416 }
42417 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
42418 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
42419 /* parser/parser_prod.nit:7882 */
42420 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42421 if (UNTAG_Bool(REGB3)) {
42422 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7882);
42423 }
42424 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42425 } else {
42426 /* parser/parser_prod.nit:7884 */
42427 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
42428 if (UNTAG_Bool(REGB3)) {
42429 } else {
42430 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7884);
42431 }
42432 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
42433 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
42434 }
42435 /* parser/parser_prod.nit:7886 */
42436 goto label1;
42437 }
42438 /* ../lib/standard/kernel.nit:354 */
42439 REGB2 = TAG_Int(1);
42440 /* ../lib/standard/kernel.nit:235 */
42441 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
42442 /* ../lib/standard/kernel.nit:354 */
42443 REGB0 = REGB2;
42444 } else {
42445 /* ../lib/standard/kernel.nit:352 */
42446 goto label2;
42447 }
42448 }
42449 label2: while(0);
42450 /* parser/parser_prod.nit:7889 */
42451 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0])!=NIT_NULL);
42452 if (UNTAG_Bool(REGB0)) {
42453 } else {
42454 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7889);
42455 }
42456 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0]);
42457 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42458 if (UNTAG_Bool(REGB0)) {
42459 } else {
42460 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42461 REGB0 = REGB1;
42462 }
42463 if (UNTAG_Bool(REGB0)) {
42464 /* parser/parser_prod.nit:7890 */
42465 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42466 if (UNTAG_Bool(REGB0)) {
42467 } else {
42468 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42469 if (UNTAG_Bool(REGB1)) {
42470 REGB1 = TAG_Bool(false);
42471 REGB0 = REGB1;
42472 } else {
42473 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42474 REGB0 = REGB1;
42475 }
42476 }
42477 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42478 if (UNTAG_Bool(REGB0)) {
42479 /* parser/parser_prod.nit:7891 */
42480 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42481 if (UNTAG_Bool(REGB0)) {
42482 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7891);
42483 }
42484 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42485 /* parser/parser_prod.nit:7892 */
42486 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
42487 if (UNTAG_Bool(REGB0)) {
42488 } else {
42489 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7892);
42490 }
42491 /* parser/parser_prod.nit:7893 */
42492 ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0]) = fra.me.REG[2];
42493 } else {
42494 /* parser/parser_prod.nit:7895 */
42495 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7895);
42496 }
42497 /* parser/parser_prod.nit:7897 */
42498 goto label1;
42499 }
42500 label1: while(0);
42501 stack_frame_head = fra.me.prev;
42502 return;
42503 }
42504 void parser___parser_prod___AModuleName___visit_all(val_t p0, val_t p1){
42505 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
42506 val_t REGB0;
42507 val_t REGB1;
42508 val_t tmp;
42509 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42510 fra.me.file = LOCATE_parser___parser_prod;
42511 fra.me.line = 7901;
42512 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___visit_all;
42513 fra.me.has_broke = 0;
42514 fra.me.REG_size = 4;
42515 fra.me.nitni_local_ref_head = NULL;
42516 fra.me.REG[0] = NIT_NULL;
42517 fra.me.REG[1] = NIT_NULL;
42518 fra.me.REG[2] = NIT_NULL;
42519 fra.me.REG[3] = NIT_NULL;
42520 fra.me.REG[0] = p0;
42521 fra.me.REG[1] = p1;
42522 /* parser/parser_prod.nit:7901 */
42523 fra.me.REG[2] = fra.me.REG[0];
42524 /* parser/parser_prod.nit:7903 */
42525 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[2]);
42526 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42527 if (UNTAG_Bool(REGB0)) {
42528 } else {
42529 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42530 if (UNTAG_Bool(REGB1)) {
42531 REGB1 = TAG_Bool(false);
42532 REGB0 = REGB1;
42533 } else {
42534 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
42535 REGB0 = REGB1;
42536 }
42537 }
42538 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42539 if (UNTAG_Bool(REGB0)) {
42540 /* parser/parser_prod.nit:7904 */
42541 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[2]);
42542 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TQuad, ID_parser___parser_nodes___TQuad)) /*cast TQuad*/;
42543 if (UNTAG_Bool(REGB0)) {
42544 } else {
42545 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7904);
42546 }
42547 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
42548 }
42549 /* parser/parser_prod.nit:7906 */
42550 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[2])!=NIT_NULL);
42551 if (UNTAG_Bool(REGB0)) {
42552 } else {
42553 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7906);
42554 }
42555 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[2]);
42556 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AModuleName___visit_all_1));
42557 /* parser/parser_prod.nit:7909 */
42558 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[2])!=NIT_NULL);
42559 if (UNTAG_Bool(REGB0)) {
42560 } else {
42561 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7909);
42562 }
42563 fra.me.REG[2] = ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[2]);
42564 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42565 stack_frame_head = fra.me.prev;
42566 return;
42567 }
42568 void OC_parser___parser_prod___AModuleName___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
42569 struct {struct stack_frame_t me;} fra;
42570 fun_t CREG[1];
42571 val_t tmp;
42572 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42573 fra.me.file = LOCATE_parser___parser_prod;
42574 fra.me.line = 0;
42575 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___visit_all;
42576 fra.me.has_broke = 0;
42577 fra.me.REG_size = 1;
42578 fra.me.nitni_local_ref_head = NULL;
42579 fra.me.REG[0] = NIT_NULL;
42580 fra.me.closure_ctx = closctx_param;
42581 fra.me.closure_funs = CREG;
42582 fra.me.REG[0] = p0;
42583 CREG[0] = clos_fun0;
42584 /* parser/parser_prod.nit:7907 */
42585 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
42586 stack_frame_head = fra.me.prev;
42587 return;
42588 }
42589 void parser___parser_prod___AExternCalls___empty_init(val_t p0, int* init_table){
42590 int itpos275 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCalls].i;
42591 struct {struct stack_frame_t me;} fra;
42592 val_t tmp;
42593 if (init_table[itpos275]) return;
42594 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42595 fra.me.file = LOCATE_parser___parser_prod;
42596 fra.me.line = 7913;
42597 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___empty_init;
42598 fra.me.has_broke = 0;
42599 fra.me.REG_size = 1;
42600 fra.me.nitni_local_ref_head = NULL;
42601 fra.me.REG[0] = NIT_NULL;
42602 fra.me.REG[0] = p0;
42603 stack_frame_head = fra.me.prev;
42604 init_table[itpos275] = 1;
42605 return;
42606 }
42607 void parser___parser_prod___AExternCalls___init_aexterncalls(val_t p0, val_t p1, val_t p2, int* init_table){
42608 int itpos276 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCalls].i;
42609 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
42610 val_t REGB0;
42611 val_t tmp;
42612 if (init_table[itpos276]) return;
42613 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42614 fra.me.file = LOCATE_parser___parser_prod;
42615 fra.me.line = 7915;
42616 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___init_aexterncalls;
42617 fra.me.has_broke = 0;
42618 fra.me.REG_size = 4;
42619 fra.me.nitni_local_ref_head = NULL;
42620 fra.me.REG[0] = NIT_NULL;
42621 fra.me.REG[1] = NIT_NULL;
42622 fra.me.REG[2] = NIT_NULL;
42623 fra.me.REG[3] = NIT_NULL;
42624 fra.me.REG[0] = p0;
42625 fra.me.REG[1] = p1;
42626 fra.me.REG[2] = p2;
42627 /* parser/parser_prod.nit:7915 */
42628 fra.me.REG[3] = fra.me.REG[0];
42629 /* parser/parser_prod.nit:7920 */
42630 CALL_parser___parser_prod___AExternCalls___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
42631 /* parser/parser_prod.nit:7921 */
42632 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
42633 if (UNTAG_Bool(REGB0)) {
42634 } else {
42635 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7921);
42636 }
42637 ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[3]) = fra.me.REG[1];
42638 /* parser/parser_prod.nit:7922 */
42639 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
42640 if (UNTAG_Bool(REGB0)) {
42641 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7922);
42642 }
42643 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
42644 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AExternCalls___init_aexterncalls_1));
42645 stack_frame_head = fra.me.prev;
42646 init_table[itpos276] = 1;
42647 return;
42648 }
42649 void OC_parser___parser_prod___AExternCalls___init_aexterncalls_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
42650 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
42651 val_t REGB0;
42652 fun_t CREG[1];
42653 val_t tmp;
42654 /* parser/parser_prod.nit:7923 */
42655 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42656 fra.me.file = LOCATE_parser___parser_prod;
42657 fra.me.line = 0;
42658 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___init_aexterncalls;
42659 fra.me.has_broke = 0;
42660 fra.me.REG_size = 2;
42661 fra.me.nitni_local_ref_head = NULL;
42662 fra.me.REG[0] = NIT_NULL;
42663 fra.me.REG[1] = NIT_NULL;
42664 fra.me.closure_ctx = closctx_param;
42665 fra.me.closure_funs = CREG;
42666 fra.me.REG[0] = p0;
42667 CREG[0] = clos_fun0;
42668 /* parser/parser_prod.nit:7924 */
42669 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExternCall, ID_parser___parser_nodes___AExternCall)) /*cast AExternCall*/;
42670 if (UNTAG_Bool(REGB0)) {
42671 } else {
42672 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7924);
42673 }
42674 /* parser/parser_prod.nit:7925 */
42675 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(closctx->REG[3])!=NIT_NULL);
42676 if (UNTAG_Bool(REGB0)) {
42677 } else {
42678 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7925);
42679 }
42680 fra.me.REG[1] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(closctx->REG[3]);
42681 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
42682 /* parser/parser_prod.nit:7926 */
42683 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[3]);
42684 stack_frame_head = fra.me.prev;
42685 return;
42686 }
42687 void parser___parser_prod___AExternCalls___replace_child(val_t p0, val_t p1, val_t p2){
42688 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
42689 val_t REGB0;
42690 val_t REGB1;
42691 val_t REGB2;
42692 val_t REGB3;
42693 val_t REGB4;
42694 val_t tmp;
42695 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42696 fra.me.file = LOCATE_parser___parser_prod;
42697 fra.me.line = 7930;
42698 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___replace_child;
42699 fra.me.has_broke = 0;
42700 fra.me.REG_size = 4;
42701 fra.me.nitni_local_ref_head = NULL;
42702 fra.me.REG[0] = NIT_NULL;
42703 fra.me.REG[1] = NIT_NULL;
42704 fra.me.REG[2] = NIT_NULL;
42705 fra.me.REG[3] = NIT_NULL;
42706 fra.me.REG[0] = p0;
42707 fra.me.REG[1] = p1;
42708 fra.me.REG[2] = p2;
42709 /* parser/parser_prod.nit:7932 */
42710 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0])!=NIT_NULL);
42711 if (UNTAG_Bool(REGB0)) {
42712 } else {
42713 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 7932);
42714 }
42715 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]);
42716 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42717 if (UNTAG_Bool(REGB0)) {
42718 } else {
42719 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42720 REGB0 = REGB1;
42721 }
42722 if (UNTAG_Bool(REGB0)) {
42723 /* parser/parser_prod.nit:7933 */
42724 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42725 if (UNTAG_Bool(REGB0)) {
42726 } else {
42727 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42728 if (UNTAG_Bool(REGB1)) {
42729 REGB1 = TAG_Bool(false);
42730 REGB0 = REGB1;
42731 } else {
42732 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42733 REGB0 = REGB1;
42734 }
42735 }
42736 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42737 if (UNTAG_Bool(REGB0)) {
42738 /* parser/parser_prod.nit:7934 */
42739 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42740 if (UNTAG_Bool(REGB0)) {
42741 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7934);
42742 }
42743 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42744 /* parser/parser_prod.nit:7935 */
42745 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwimport, ID_parser___parser_nodes___TKwimport)) /*cast TKwimport*/;
42746 if (UNTAG_Bool(REGB0)) {
42747 } else {
42748 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7935);
42749 }
42750 /* parser/parser_prod.nit:7936 */
42751 ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
42752 } else {
42753 /* parser/parser_prod.nit:7938 */
42754 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7938);
42755 }
42756 /* parser/parser_prod.nit:7940 */
42757 goto label1;
42758 }
42759 /* parser/parser_prod.nit:7942 */
42760 REGB0 = TAG_Int(0);
42761 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
42762 if (UNTAG_Bool(REGB1)) {
42763 } else {
42764 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7942);
42765 }
42766 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
42767 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
42768 /* ../lib/standard/kernel.nit:352 */
42769 while(1) {
42770 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
42771 if (UNTAG_Bool(REGB2)) {
42772 } else {
42773 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
42774 }
42775 /* ../lib/standard/kernel.nit:232 */
42776 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
42777 /* ../lib/standard/kernel.nit:352 */
42778 if (UNTAG_Bool(REGB2)) {
42779 /* parser/parser_prod.nit:7942 */
42780 REGB2 = REGB0;
42781 /* parser/parser_prod.nit:7943 */
42782 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
42783 if (UNTAG_Bool(REGB3)) {
42784 } else {
42785 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7943);
42786 }
42787 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
42788 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
42789 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
42790 if (UNTAG_Bool(REGB3)) {
42791 } else {
42792 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42793 if (UNTAG_Bool(REGB4)) {
42794 REGB4 = TAG_Bool(false);
42795 REGB3 = REGB4;
42796 } else {
42797 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42798 REGB3 = REGB4;
42799 }
42800 }
42801 if (UNTAG_Bool(REGB3)) {
42802 /* parser/parser_prod.nit:7944 */
42803 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42804 if (UNTAG_Bool(REGB3)) {
42805 } else {
42806 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42807 if (UNTAG_Bool(REGB4)) {
42808 REGB4 = TAG_Bool(false);
42809 REGB3 = REGB4;
42810 } else {
42811 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42812 REGB3 = REGB4;
42813 }
42814 }
42815 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
42816 if (UNTAG_Bool(REGB3)) {
42817 /* parser/parser_prod.nit:7945 */
42818 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCall, ID_parser___parser_nodes___AExternCall)) /*cast AExternCall*/;
42819 if (UNTAG_Bool(REGB3)) {
42820 } else {
42821 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7945);
42822 }
42823 /* parser/parser_prod.nit:7946 */
42824 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
42825 if (UNTAG_Bool(REGB3)) {
42826 } else {
42827 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7946);
42828 }
42829 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
42830 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
42831 /* parser/parser_prod.nit:7947 */
42832 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42833 if (UNTAG_Bool(REGB3)) {
42834 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7947);
42835 }
42836 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42837 } else {
42838 /* parser/parser_prod.nit:7949 */
42839 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
42840 if (UNTAG_Bool(REGB3)) {
42841 } else {
42842 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7949);
42843 }
42844 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
42845 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
42846 }
42847 /* parser/parser_prod.nit:7951 */
42848 goto label1;
42849 }
42850 /* ../lib/standard/kernel.nit:354 */
42851 REGB2 = TAG_Int(1);
42852 /* ../lib/standard/kernel.nit:235 */
42853 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
42854 /* ../lib/standard/kernel.nit:354 */
42855 REGB0 = REGB2;
42856 } else {
42857 /* ../lib/standard/kernel.nit:352 */
42858 goto label2;
42859 }
42860 }
42861 label2: while(0);
42862 label1: while(0);
42863 stack_frame_head = fra.me.prev;
42864 return;
42865 }
42866 void parser___parser_prod___AExternCalls___visit_all(val_t p0, val_t p1){
42867 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
42868 val_t REGB0;
42869 val_t tmp;
42870 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42871 fra.me.file = LOCATE_parser___parser_prod;
42872 fra.me.line = 7956;
42873 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___visit_all;
42874 fra.me.has_broke = 0;
42875 fra.me.REG_size = 3;
42876 fra.me.nitni_local_ref_head = NULL;
42877 fra.me.REG[0] = NIT_NULL;
42878 fra.me.REG[1] = NIT_NULL;
42879 fra.me.REG[2] = NIT_NULL;
42880 fra.me.REG[0] = p0;
42881 fra.me.REG[1] = p1;
42882 /* parser/parser_prod.nit:7958 */
42883 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0])!=NIT_NULL);
42884 if (UNTAG_Bool(REGB0)) {
42885 } else {
42886 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 7958);
42887 }
42888 fra.me.REG[2] = ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]);
42889 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42890 /* parser/parser_prod.nit:7959 */
42891 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
42892 if (UNTAG_Bool(REGB0)) {
42893 } else {
42894 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7959);
42895 }
42896 fra.me.REG[0] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
42897 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AExternCalls___visit_all_1));
42898 stack_frame_head = fra.me.prev;
42899 return;
42900 }
42901 void OC_parser___parser_prod___AExternCalls___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
42902 struct {struct stack_frame_t me;} fra;
42903 fun_t CREG[1];
42904 val_t tmp;
42905 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42906 fra.me.file = LOCATE_parser___parser_prod;
42907 fra.me.line = 0;
42908 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___visit_all;
42909 fra.me.has_broke = 0;
42910 fra.me.REG_size = 1;
42911 fra.me.nitni_local_ref_head = NULL;
42912 fra.me.REG[0] = NIT_NULL;
42913 fra.me.closure_ctx = closctx_param;
42914 fra.me.closure_funs = CREG;
42915 fra.me.REG[0] = p0;
42916 CREG[0] = clos_fun0;
42917 /* parser/parser_prod.nit:7960 */
42918 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
42919 stack_frame_head = fra.me.prev;
42920 return;
42921 }
42922 void parser___parser_prod___AExternCall___empty_init(val_t p0, int* init_table){
42923 int itpos277 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCall].i;
42924 struct {struct stack_frame_t me;} fra;
42925 val_t tmp;
42926 if (init_table[itpos277]) return;
42927 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42928 fra.me.file = LOCATE_parser___parser_prod;
42929 fra.me.line = 7965;
42930 fra.me.meth = LOCATE_parser___parser_prod___AExternCall___empty_init;
42931 fra.me.has_broke = 0;
42932 fra.me.REG_size = 1;
42933 fra.me.nitni_local_ref_head = NULL;
42934 fra.me.REG[0] = NIT_NULL;
42935 fra.me.REG[0] = p0;
42936 stack_frame_head = fra.me.prev;
42937 init_table[itpos277] = 1;
42938 return;
42939 }
42940 void parser___parser_prod___AExternCall___init_aexterncall(val_t p0, int* init_table){
42941 int itpos278 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCall].i;
42942 struct {struct stack_frame_t me;} fra;
42943 val_t tmp;
42944 if (init_table[itpos278]) return;
42945 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42946 fra.me.file = LOCATE_parser___parser_prod;
42947 fra.me.line = 7967;
42948 fra.me.meth = LOCATE_parser___parser_prod___AExternCall___init_aexterncall;
42949 fra.me.has_broke = 0;
42950 fra.me.REG_size = 1;
42951 fra.me.nitni_local_ref_head = NULL;
42952 fra.me.REG[0] = NIT_NULL;
42953 fra.me.REG[0] = p0;
42954 /* parser/parser_prod.nit:7969 */
42955 CALL_parser___parser_prod___AExternCall___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
42956 stack_frame_head = fra.me.prev;
42957 init_table[itpos278] = 1;
42958 return;
42959 }
42960 void parser___parser_prod___AExternCall___replace_child(val_t p0, val_t p1, val_t p2){
42961 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
42962 val_t tmp;
42963 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42964 fra.me.file = LOCATE_parser___parser_prod;
42965 fra.me.line = 7972;
42966 fra.me.meth = LOCATE_parser___parser_prod___AExternCall___replace_child;
42967 fra.me.has_broke = 0;
42968 fra.me.REG_size = 3;
42969 fra.me.nitni_local_ref_head = NULL;
42970 fra.me.REG[0] = NIT_NULL;
42971 fra.me.REG[1] = NIT_NULL;
42972 fra.me.REG[2] = NIT_NULL;
42973 fra.me.REG[0] = p0;
42974 fra.me.REG[1] = p1;
42975 fra.me.REG[2] = p2;
42976 stack_frame_head = fra.me.prev;
42977 return;
42978 }
42979 void parser___parser_prod___AExternCall___visit_all(val_t p0, val_t p1){
42980 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
42981 val_t tmp;
42982 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42983 fra.me.file = LOCATE_parser___parser_prod;
42984 fra.me.line = 7976;
42985 fra.me.meth = LOCATE_parser___parser_prod___AExternCall___visit_all;
42986 fra.me.has_broke = 0;
42987 fra.me.REG_size = 2;
42988 fra.me.nitni_local_ref_head = NULL;
42989 fra.me.REG[0] = NIT_NULL;
42990 fra.me.REG[1] = NIT_NULL;
42991 fra.me.REG[0] = p0;
42992 fra.me.REG[1] = p1;
42993 stack_frame_head = fra.me.prev;
42994 return;
42995 }
42996 void parser___parser_prod___ASuperExternCall___empty_init(val_t p0, int* init_table){
42997 int itpos279 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExternCall].i;
42998 struct {struct stack_frame_t me;} fra;
42999 val_t tmp;
43000 if (init_table[itpos279]) return;
43001 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43002 fra.me.file = LOCATE_parser___parser_prod;
43003 fra.me.line = 7981;
43004 fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___empty_init;
43005 fra.me.has_broke = 0;
43006 fra.me.REG_size = 1;
43007 fra.me.nitni_local_ref_head = NULL;
43008 fra.me.REG[0] = NIT_NULL;
43009 fra.me.REG[0] = p0;
43010 stack_frame_head = fra.me.prev;
43011 init_table[itpos279] = 1;
43012 return;
43013 }
43014 void parser___parser_prod___ASuperExternCall___init_asuperexterncall(val_t p0, val_t p1, int* init_table){
43015 int itpos280 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExternCall].i;
43016 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
43017 val_t REGB0;
43018 val_t tmp;
43019 if (init_table[itpos280]) return;
43020 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43021 fra.me.file = LOCATE_parser___parser_prod;
43022 fra.me.line = 7983;
43023 fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___init_asuperexterncall;
43024 fra.me.has_broke = 0;
43025 fra.me.REG_size = 3;
43026 fra.me.nitni_local_ref_head = NULL;
43027 fra.me.REG[0] = NIT_NULL;
43028 fra.me.REG[1] = NIT_NULL;
43029 fra.me.REG[2] = NIT_NULL;
43030 fra.me.REG[0] = p0;
43031 fra.me.REG[1] = p1;
43032 /* parser/parser_prod.nit:7983 */
43033 fra.me.REG[2] = fra.me.REG[0];
43034 /* parser/parser_prod.nit:7987 */
43035 CALL_parser___parser_prod___ASuperExternCall___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
43036 /* parser/parser_prod.nit:7988 */
43037 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
43038 if (UNTAG_Bool(REGB0)) {
43039 } else {
43040 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7988);
43041 }
43042 ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[2]) = fra.me.REG[1];
43043 /* parser/parser_prod.nit:7989 */
43044 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
43045 if (UNTAG_Bool(REGB0)) {
43046 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7989);
43047 }
43048 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
43049 stack_frame_head = fra.me.prev;
43050 init_table[itpos280] = 1;
43051 return;
43052 }
43053 void parser___parser_prod___ASuperExternCall___replace_child(val_t p0, val_t p1, val_t p2){
43054 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43055 val_t REGB0;
43056 val_t REGB1;
43057 val_t tmp;
43058 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43059 fra.me.file = LOCATE_parser___parser_prod;
43060 fra.me.line = 7992;
43061 fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___replace_child;
43062 fra.me.has_broke = 0;
43063 fra.me.REG_size = 4;
43064 fra.me.nitni_local_ref_head = NULL;
43065 fra.me.REG[0] = NIT_NULL;
43066 fra.me.REG[1] = NIT_NULL;
43067 fra.me.REG[2] = NIT_NULL;
43068 fra.me.REG[3] = NIT_NULL;
43069 fra.me.REG[0] = p0;
43070 fra.me.REG[1] = p1;
43071 fra.me.REG[2] = p2;
43072 /* parser/parser_prod.nit:7994 */
43073 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
43074 if (UNTAG_Bool(REGB0)) {
43075 } else {
43076 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 7994);
43077 }
43078 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]);
43079 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43080 if (UNTAG_Bool(REGB0)) {
43081 } else {
43082 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43083 REGB0 = REGB1;
43084 }
43085 if (UNTAG_Bool(REGB0)) {
43086 /* parser/parser_prod.nit:7995 */
43087 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43088 if (UNTAG_Bool(REGB0)) {
43089 } else {
43090 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43091 if (UNTAG_Bool(REGB1)) {
43092 REGB1 = TAG_Bool(false);
43093 REGB0 = REGB1;
43094 } else {
43095 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43096 REGB0 = REGB1;
43097 }
43098 }
43099 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43100 if (UNTAG_Bool(REGB0)) {
43101 /* parser/parser_prod.nit:7996 */
43102 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43103 if (UNTAG_Bool(REGB0)) {
43104 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7996);
43105 }
43106 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43107 /* parser/parser_prod.nit:7997 */
43108 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwsuper, ID_parser___parser_nodes___TKwsuper)) /*cast TKwsuper*/;
43109 if (UNTAG_Bool(REGB0)) {
43110 } else {
43111 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7997);
43112 }
43113 /* parser/parser_prod.nit:7998 */
43114 ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
43115 } else {
43116 /* parser/parser_prod.nit:8000 */
43117 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8000);
43118 }
43119 /* parser/parser_prod.nit:8002 */
43120 goto label1;
43121 }
43122 label1: while(0);
43123 stack_frame_head = fra.me.prev;
43124 return;
43125 }
43126 void parser___parser_prod___ASuperExternCall___visit_all(val_t p0, val_t p1){
43127 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
43128 val_t REGB0;
43129 val_t tmp;
43130 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43131 fra.me.file = LOCATE_parser___parser_prod;
43132 fra.me.line = 8006;
43133 fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___visit_all;
43134 fra.me.has_broke = 0;
43135 fra.me.REG_size = 2;
43136 fra.me.nitni_local_ref_head = NULL;
43137 fra.me.REG[0] = NIT_NULL;
43138 fra.me.REG[1] = NIT_NULL;
43139 fra.me.REG[0] = p0;
43140 fra.me.REG[1] = p1;
43141 /* parser/parser_prod.nit:8008 */
43142 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
43143 if (UNTAG_Bool(REGB0)) {
43144 } else {
43145 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 8008);
43146 }
43147 fra.me.REG[0] = ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]);
43148 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
43149 stack_frame_head = fra.me.prev;
43150 return;
43151 }
43152 void parser___parser_prod___ALocalPropExternCall___empty_init(val_t p0, int* init_table){
43153 int itpos281 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALocalPropExternCall].i;
43154 struct {struct stack_frame_t me;} fra;
43155 val_t tmp;
43156 if (init_table[itpos281]) return;
43157 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43158 fra.me.file = LOCATE_parser___parser_prod;
43159 fra.me.line = 8012;
43160 fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___empty_init;
43161 fra.me.has_broke = 0;
43162 fra.me.REG_size = 1;
43163 fra.me.nitni_local_ref_head = NULL;
43164 fra.me.REG[0] = NIT_NULL;
43165 fra.me.REG[0] = p0;
43166 stack_frame_head = fra.me.prev;
43167 init_table[itpos281] = 1;
43168 return;
43169 }
43170 void parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall(val_t p0, val_t p1, int* init_table){
43171 int itpos282 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALocalPropExternCall].i;
43172 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
43173 val_t REGB0;
43174 val_t tmp;
43175 if (init_table[itpos282]) return;
43176 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43177 fra.me.file = LOCATE_parser___parser_prod;
43178 fra.me.line = 8014;
43179 fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall;
43180 fra.me.has_broke = 0;
43181 fra.me.REG_size = 3;
43182 fra.me.nitni_local_ref_head = NULL;
43183 fra.me.REG[0] = NIT_NULL;
43184 fra.me.REG[1] = NIT_NULL;
43185 fra.me.REG[2] = NIT_NULL;
43186 fra.me.REG[0] = p0;
43187 fra.me.REG[1] = p1;
43188 /* parser/parser_prod.nit:8014 */
43189 fra.me.REG[2] = fra.me.REG[0];
43190 /* parser/parser_prod.nit:8018 */
43191 CALL_parser___parser_prod___ALocalPropExternCall___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
43192 /* parser/parser_prod.nit:8019 */
43193 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
43194 if (UNTAG_Bool(REGB0)) {
43195 } else {
43196 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8019);
43197 }
43198 ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[2]) = fra.me.REG[1];
43199 /* parser/parser_prod.nit:8020 */
43200 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
43201 if (UNTAG_Bool(REGB0)) {
43202 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8020);
43203 }
43204 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
43205 stack_frame_head = fra.me.prev;
43206 init_table[itpos282] = 1;
43207 return;
43208 }
43209 void parser___parser_prod___ALocalPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
43210 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43211 val_t REGB0;
43212 val_t REGB1;
43213 val_t tmp;
43214 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43215 fra.me.file = LOCATE_parser___parser_prod;
43216 fra.me.line = 8023;
43217 fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___replace_child;
43218 fra.me.has_broke = 0;
43219 fra.me.REG_size = 4;
43220 fra.me.nitni_local_ref_head = NULL;
43221 fra.me.REG[0] = NIT_NULL;
43222 fra.me.REG[1] = NIT_NULL;
43223 fra.me.REG[2] = NIT_NULL;
43224 fra.me.REG[3] = NIT_NULL;
43225 fra.me.REG[0] = p0;
43226 fra.me.REG[1] = p1;
43227 fra.me.REG[2] = p2;
43228 /* parser/parser_prod.nit:8025 */
43229 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
43230 if (UNTAG_Bool(REGB0)) {
43231 } else {
43232 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 8025);
43233 }
43234 fra.me.REG[3] = ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]);
43235 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43236 if (UNTAG_Bool(REGB0)) {
43237 } else {
43238 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43239 REGB0 = REGB1;
43240 }
43241 if (UNTAG_Bool(REGB0)) {
43242 /* parser/parser_prod.nit:8026 */
43243 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43244 if (UNTAG_Bool(REGB0)) {
43245 } else {
43246 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43247 if (UNTAG_Bool(REGB1)) {
43248 REGB1 = TAG_Bool(false);
43249 REGB0 = REGB1;
43250 } else {
43251 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43252 REGB0 = REGB1;
43253 }
43254 }
43255 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43256 if (UNTAG_Bool(REGB0)) {
43257 /* parser/parser_prod.nit:8027 */
43258 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43259 if (UNTAG_Bool(REGB0)) {
43260 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8027);
43261 }
43262 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43263 /* parser/parser_prod.nit:8028 */
43264 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
43265 if (UNTAG_Bool(REGB0)) {
43266 } else {
43267 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8028);
43268 }
43269 /* parser/parser_prod.nit:8029 */
43270 ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]) = fra.me.REG[2];
43271 } else {
43272 /* parser/parser_prod.nit:8031 */
43273 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8031);
43274 }
43275 /* parser/parser_prod.nit:8033 */
43276 goto label1;
43277 }
43278 label1: while(0);
43279 stack_frame_head = fra.me.prev;
43280 return;
43281 }
43282 void parser___parser_prod___ALocalPropExternCall___visit_all(val_t p0, val_t p1){
43283 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
43284 val_t REGB0;
43285 val_t tmp;
43286 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43287 fra.me.file = LOCATE_parser___parser_prod;
43288 fra.me.line = 8037;
43289 fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___visit_all;
43290 fra.me.has_broke = 0;
43291 fra.me.REG_size = 2;
43292 fra.me.nitni_local_ref_head = NULL;
43293 fra.me.REG[0] = NIT_NULL;
43294 fra.me.REG[1] = NIT_NULL;
43295 fra.me.REG[0] = p0;
43296 fra.me.REG[1] = p1;
43297 /* parser/parser_prod.nit:8039 */
43298 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
43299 if (UNTAG_Bool(REGB0)) {
43300 } else {
43301 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 8039);
43302 }
43303 fra.me.REG[0] = ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]);
43304 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
43305 stack_frame_head = fra.me.prev;
43306 return;
43307 }
43308 void parser___parser_prod___AFullPropExternCall___empty_init(val_t p0, int* init_table){
43309 int itpos283 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFullPropExternCall].i;
43310 struct {struct stack_frame_t me;} fra;
43311 val_t tmp;
43312 if (init_table[itpos283]) return;
43313 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43314 fra.me.file = LOCATE_parser___parser_prod;
43315 fra.me.line = 8043;
43316 fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___empty_init;
43317 fra.me.has_broke = 0;
43318 fra.me.REG_size = 1;
43319 fra.me.nitni_local_ref_head = NULL;
43320 fra.me.REG[0] = NIT_NULL;
43321 fra.me.REG[0] = p0;
43322 stack_frame_head = fra.me.prev;
43323 init_table[itpos283] = 1;
43324 return;
43325 }
43326 void parser___parser_prod___AFullPropExternCall___init_afullpropexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
43327 int itpos284 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFullPropExternCall].i;
43328 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
43329 val_t REGB0;
43330 val_t REGB1;
43331 val_t tmp;
43332 if (init_table[itpos284]) return;
43333 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43334 fra.me.file = LOCATE_parser___parser_prod;
43335 fra.me.line = 8045;
43336 fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___init_afullpropexterncall;
43337 fra.me.has_broke = 0;
43338 fra.me.REG_size = 5;
43339 fra.me.nitni_local_ref_head = NULL;
43340 fra.me.REG[0] = NIT_NULL;
43341 fra.me.REG[1] = NIT_NULL;
43342 fra.me.REG[2] = NIT_NULL;
43343 fra.me.REG[3] = NIT_NULL;
43344 fra.me.REG[4] = NIT_NULL;
43345 fra.me.REG[0] = p0;
43346 fra.me.REG[1] = p1;
43347 fra.me.REG[2] = p2;
43348 fra.me.REG[3] = p3;
43349 /* parser/parser_prod.nit:8045 */
43350 fra.me.REG[4] = fra.me.REG[0];
43351 /* parser/parser_prod.nit:8051 */
43352 CALL_parser___parser_prod___AFullPropExternCall___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
43353 /* parser/parser_prod.nit:8052 */
43354 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
43355 if (UNTAG_Bool(REGB0)) {
43356 } else {
43357 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8052);
43358 }
43359 ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[4]) = fra.me.REG[1];
43360 /* parser/parser_prod.nit:8053 */
43361 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
43362 if (UNTAG_Bool(REGB0)) {
43363 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8053);
43364 }
43365 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
43366 /* parser/parser_prod.nit:8054 */
43367 ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[4]) = fra.me.REG[2];
43368 /* parser/parser_prod.nit:8055 */
43369 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43370 if (UNTAG_Bool(REGB0)) {
43371 } else {
43372 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43373 if (UNTAG_Bool(REGB1)) {
43374 REGB1 = TAG_Bool(false);
43375 REGB0 = REGB1;
43376 } else {
43377 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43378 REGB0 = REGB1;
43379 }
43380 }
43381 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43382 if (UNTAG_Bool(REGB0)) {
43383 /* parser/parser_prod.nit:8056 */
43384 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43385 if (UNTAG_Bool(REGB0)) {
43386 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8056);
43387 }
43388 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
43389 }
43390 /* parser/parser_prod.nit:8058 */
43391 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
43392 if (UNTAG_Bool(REGB0)) {
43393 } else {
43394 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8058);
43395 }
43396 ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[4]) = fra.me.REG[3];
43397 /* parser/parser_prod.nit:8059 */
43398 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43399 if (UNTAG_Bool(REGB0)) {
43400 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8059);
43401 }
43402 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
43403 stack_frame_head = fra.me.prev;
43404 init_table[itpos284] = 1;
43405 return;
43406 }
43407 void parser___parser_prod___AFullPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
43408 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43409 val_t REGB0;
43410 val_t REGB1;
43411 val_t tmp;
43412 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43413 fra.me.file = LOCATE_parser___parser_prod;
43414 fra.me.line = 8062;
43415 fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___replace_child;
43416 fra.me.has_broke = 0;
43417 fra.me.REG_size = 4;
43418 fra.me.nitni_local_ref_head = NULL;
43419 fra.me.REG[0] = NIT_NULL;
43420 fra.me.REG[1] = NIT_NULL;
43421 fra.me.REG[2] = NIT_NULL;
43422 fra.me.REG[3] = NIT_NULL;
43423 fra.me.REG[0] = p0;
43424 fra.me.REG[1] = p1;
43425 fra.me.REG[2] = p2;
43426 /* parser/parser_prod.nit:8064 */
43427 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
43428 if (UNTAG_Bool(REGB0)) {
43429 } else {
43430 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 8064);
43431 }
43432 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0]);
43433 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43434 if (UNTAG_Bool(REGB0)) {
43435 } else {
43436 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43437 REGB0 = REGB1;
43438 }
43439 if (UNTAG_Bool(REGB0)) {
43440 /* parser/parser_prod.nit:8065 */
43441 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43442 if (UNTAG_Bool(REGB0)) {
43443 } else {
43444 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43445 if (UNTAG_Bool(REGB1)) {
43446 REGB1 = TAG_Bool(false);
43447 REGB0 = REGB1;
43448 } else {
43449 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43450 REGB0 = REGB1;
43451 }
43452 }
43453 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43454 if (UNTAG_Bool(REGB0)) {
43455 /* parser/parser_prod.nit:8066 */
43456 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43457 if (UNTAG_Bool(REGB0)) {
43458 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8066);
43459 }
43460 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43461 /* parser/parser_prod.nit:8067 */
43462 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
43463 if (UNTAG_Bool(REGB0)) {
43464 } else {
43465 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8067);
43466 }
43467 /* parser/parser_prod.nit:8068 */
43468 ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0]) = fra.me.REG[2];
43469 } else {
43470 /* parser/parser_prod.nit:8070 */
43471 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8070);
43472 }
43473 /* parser/parser_prod.nit:8072 */
43474 goto label1;
43475 }
43476 /* parser/parser_prod.nit:8074 */
43477 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]);
43478 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
43479 if (UNTAG_Bool(REGB0)) {
43480 } else {
43481 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43482 if (UNTAG_Bool(REGB1)) {
43483 REGB1 = TAG_Bool(false);
43484 REGB0 = REGB1;
43485 } else {
43486 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43487 REGB0 = REGB1;
43488 }
43489 }
43490 if (UNTAG_Bool(REGB0)) {
43491 /* parser/parser_prod.nit:8075 */
43492 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43493 if (UNTAG_Bool(REGB0)) {
43494 } else {
43495 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43496 if (UNTAG_Bool(REGB1)) {
43497 REGB1 = TAG_Bool(false);
43498 REGB0 = REGB1;
43499 } else {
43500 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43501 REGB0 = REGB1;
43502 }
43503 }
43504 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43505 if (UNTAG_Bool(REGB0)) {
43506 /* parser/parser_prod.nit:8076 */
43507 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43508 if (UNTAG_Bool(REGB0)) {
43509 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8076);
43510 }
43511 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43512 /* parser/parser_prod.nit:8077 */
43513 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TQuad, ID_parser___parser_nodes___TQuad)) /*cast TQuad*/;
43514 if (UNTAG_Bool(REGB0)) {
43515 } else {
43516 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8077);
43517 }
43518 /* parser/parser_prod.nit:8078 */
43519 ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]) = fra.me.REG[2];
43520 } else {
43521 /* parser/parser_prod.nit:8080 */
43522 ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]) = NIT_NULL;
43523 }
43524 /* parser/parser_prod.nit:8082 */
43525 goto label1;
43526 }
43527 /* parser/parser_prod.nit:8084 */
43528 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
43529 if (UNTAG_Bool(REGB0)) {
43530 } else {
43531 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 8084);
43532 }
43533 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0]);
43534 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43535 if (UNTAG_Bool(REGB0)) {
43536 } else {
43537 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43538 REGB0 = REGB1;
43539 }
43540 if (UNTAG_Bool(REGB0)) {
43541 /* parser/parser_prod.nit:8085 */
43542 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43543 if (UNTAG_Bool(REGB0)) {
43544 } else {
43545 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43546 if (UNTAG_Bool(REGB1)) {
43547 REGB1 = TAG_Bool(false);
43548 REGB0 = REGB1;
43549 } else {
43550 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43551 REGB0 = REGB1;
43552 }
43553 }
43554 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43555 if (UNTAG_Bool(REGB0)) {
43556 /* parser/parser_prod.nit:8086 */
43557 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43558 if (UNTAG_Bool(REGB0)) {
43559 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8086);
43560 }
43561 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43562 /* parser/parser_prod.nit:8087 */
43563 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
43564 if (UNTAG_Bool(REGB0)) {
43565 } else {
43566 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8087);
43567 }
43568 /* parser/parser_prod.nit:8088 */
43569 ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0]) = fra.me.REG[2];
43570 } else {
43571 /* parser/parser_prod.nit:8090 */
43572 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8090);
43573 }
43574 /* parser/parser_prod.nit:8092 */
43575 goto label1;
43576 }
43577 label1: while(0);
43578 stack_frame_head = fra.me.prev;
43579 return;
43580 }
43581 void parser___parser_prod___AFullPropExternCall___visit_all(val_t p0, val_t p1){
43582 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43583 val_t REGB0;
43584 val_t REGB1;
43585 val_t tmp;
43586 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43587 fra.me.file = LOCATE_parser___parser_prod;
43588 fra.me.line = 8096;
43589 fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___visit_all;
43590 fra.me.has_broke = 0;
43591 fra.me.REG_size = 4;
43592 fra.me.nitni_local_ref_head = NULL;
43593 fra.me.REG[0] = NIT_NULL;
43594 fra.me.REG[1] = NIT_NULL;
43595 fra.me.REG[2] = NIT_NULL;
43596 fra.me.REG[3] = NIT_NULL;
43597 fra.me.REG[0] = p0;
43598 fra.me.REG[1] = p1;
43599 /* parser/parser_prod.nit:8096 */
43600 fra.me.REG[2] = fra.me.REG[0];
43601 /* parser/parser_prod.nit:8098 */
43602 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[2])!=NIT_NULL);
43603 if (UNTAG_Bool(REGB0)) {
43604 } else {
43605 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 8098);
43606 }
43607 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[2]);
43608 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
43609 /* parser/parser_prod.nit:8099 */
43610 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[2]);
43611 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43612 if (UNTAG_Bool(REGB0)) {
43613 } else {
43614 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43615 if (UNTAG_Bool(REGB1)) {
43616 REGB1 = TAG_Bool(false);
43617 REGB0 = REGB1;
43618 } else {
43619 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
43620 REGB0 = REGB1;
43621 }
43622 }
43623 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43624 if (UNTAG_Bool(REGB0)) {
43625 /* parser/parser_prod.nit:8100 */
43626 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[2]);
43627 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TQuad, ID_parser___parser_nodes___TQuad)) /*cast TQuad*/;
43628 if (UNTAG_Bool(REGB0)) {
43629 } else {
43630 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8100);
43631 }
43632 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
43633 }
43634 /* parser/parser_prod.nit:8102 */
43635 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[2])!=NIT_NULL);
43636 if (UNTAG_Bool(REGB0)) {
43637 } else {
43638 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 8102);
43639 }
43640 fra.me.REG[2] = ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[2]);
43641 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
43642 stack_frame_head = fra.me.prev;
43643 return;
43644 }
43645 void parser___parser_prod___AInitPropExternCall___empty_init(val_t p0, int* init_table){
43646 int itpos285 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitPropExternCall].i;
43647 struct {struct stack_frame_t me;} fra;
43648 val_t tmp;
43649 if (init_table[itpos285]) return;
43650 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43651 fra.me.file = LOCATE_parser___parser_prod;
43652 fra.me.line = 8106;
43653 fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___empty_init;
43654 fra.me.has_broke = 0;
43655 fra.me.REG_size = 1;
43656 fra.me.nitni_local_ref_head = NULL;
43657 fra.me.REG[0] = NIT_NULL;
43658 fra.me.REG[0] = p0;
43659 stack_frame_head = fra.me.prev;
43660 init_table[itpos285] = 1;
43661 return;
43662 }
43663 void parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall(val_t p0, val_t p1, int* init_table){
43664 int itpos286 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitPropExternCall].i;
43665 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
43666 val_t REGB0;
43667 val_t tmp;
43668 if (init_table[itpos286]) return;
43669 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43670 fra.me.file = LOCATE_parser___parser_prod;
43671 fra.me.line = 8108;
43672 fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall;
43673 fra.me.has_broke = 0;
43674 fra.me.REG_size = 3;
43675 fra.me.nitni_local_ref_head = NULL;
43676 fra.me.REG[0] = NIT_NULL;
43677 fra.me.REG[1] = NIT_NULL;
43678 fra.me.REG[2] = NIT_NULL;
43679 fra.me.REG[0] = p0;
43680 fra.me.REG[1] = p1;
43681 /* parser/parser_prod.nit:8108 */
43682 fra.me.REG[2] = fra.me.REG[0];
43683 /* parser/parser_prod.nit:8112 */
43684 CALL_parser___parser_prod___AInitPropExternCall___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
43685 /* parser/parser_prod.nit:8113 */
43686 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
43687 if (UNTAG_Bool(REGB0)) {
43688 } else {
43689 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8113);
43690 }
43691 ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[2]) = fra.me.REG[1];
43692 /* parser/parser_prod.nit:8114 */
43693 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
43694 if (UNTAG_Bool(REGB0)) {
43695 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8114);
43696 }
43697 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
43698 stack_frame_head = fra.me.prev;
43699 init_table[itpos286] = 1;
43700 return;
43701 }
43702 void parser___parser_prod___AInitPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
43703 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43704 val_t REGB0;
43705 val_t REGB1;
43706 val_t tmp;
43707 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43708 fra.me.file = LOCATE_parser___parser_prod;
43709 fra.me.line = 8117;
43710 fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___replace_child;
43711 fra.me.has_broke = 0;
43712 fra.me.REG_size = 4;
43713 fra.me.nitni_local_ref_head = NULL;
43714 fra.me.REG[0] = NIT_NULL;
43715 fra.me.REG[1] = NIT_NULL;
43716 fra.me.REG[2] = NIT_NULL;
43717 fra.me.REG[3] = NIT_NULL;
43718 fra.me.REG[0] = p0;
43719 fra.me.REG[1] = p1;
43720 fra.me.REG[2] = p2;
43721 /* parser/parser_prod.nit:8119 */
43722 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
43723 if (UNTAG_Bool(REGB0)) {
43724 } else {
43725 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 8119);
43726 }
43727 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]);
43728 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43729 if (UNTAG_Bool(REGB0)) {
43730 } else {
43731 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43732 REGB0 = REGB1;
43733 }
43734 if (UNTAG_Bool(REGB0)) {
43735 /* parser/parser_prod.nit:8120 */
43736 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43737 if (UNTAG_Bool(REGB0)) {
43738 } else {
43739 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43740 if (UNTAG_Bool(REGB1)) {
43741 REGB1 = TAG_Bool(false);
43742 REGB0 = REGB1;
43743 } else {
43744 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43745 REGB0 = REGB1;
43746 }
43747 }
43748 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43749 if (UNTAG_Bool(REGB0)) {
43750 /* parser/parser_prod.nit:8121 */
43751 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43752 if (UNTAG_Bool(REGB0)) {
43753 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8121);
43754 }
43755 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43756 /* parser/parser_prod.nit:8122 */
43757 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
43758 if (UNTAG_Bool(REGB0)) {
43759 } else {
43760 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8122);
43761 }
43762 /* parser/parser_prod.nit:8123 */
43763 ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]) = fra.me.REG[2];
43764 } else {
43765 /* parser/parser_prod.nit:8125 */
43766 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8125);
43767 }
43768 /* parser/parser_prod.nit:8127 */
43769 goto label1;
43770 }
43771 label1: while(0);
43772 stack_frame_head = fra.me.prev;
43773 return;
43774 }
43775 void parser___parser_prod___AInitPropExternCall___visit_all(val_t p0, val_t p1){
43776 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
43777 val_t REGB0;
43778 val_t tmp;
43779 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43780 fra.me.file = LOCATE_parser___parser_prod;
43781 fra.me.line = 8131;
43782 fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___visit_all;
43783 fra.me.has_broke = 0;
43784 fra.me.REG_size = 2;
43785 fra.me.nitni_local_ref_head = NULL;
43786 fra.me.REG[0] = NIT_NULL;
43787 fra.me.REG[1] = NIT_NULL;
43788 fra.me.REG[0] = p0;
43789 fra.me.REG[1] = p1;
43790 /* parser/parser_prod.nit:8133 */
43791 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
43792 if (UNTAG_Bool(REGB0)) {
43793 } else {
43794 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 8133);
43795 }
43796 fra.me.REG[0] = ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]);
43797 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
43798 stack_frame_head = fra.me.prev;
43799 return;
43800 }
43801 void parser___parser_prod___ACastAsExternCall___empty_init(val_t p0, int* init_table){
43802 int itpos287 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACastAsExternCall].i;
43803 struct {struct stack_frame_t me;} fra;
43804 val_t tmp;
43805 if (init_table[itpos287]) return;
43806 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43807 fra.me.file = LOCATE_parser___parser_prod;
43808 fra.me.line = 8137;
43809 fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___empty_init;
43810 fra.me.has_broke = 0;
43811 fra.me.REG_size = 1;
43812 fra.me.nitni_local_ref_head = NULL;
43813 fra.me.REG[0] = NIT_NULL;
43814 fra.me.REG[0] = p0;
43815 stack_frame_head = fra.me.prev;
43816 init_table[itpos287] = 1;
43817 return;
43818 }
43819 void parser___parser_prod___ACastAsExternCall___init_acastasexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
43820 int itpos288 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACastAsExternCall].i;
43821 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
43822 val_t REGB0;
43823 val_t tmp;
43824 if (init_table[itpos288]) return;
43825 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43826 fra.me.file = LOCATE_parser___parser_prod;
43827 fra.me.line = 8139;
43828 fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___init_acastasexterncall;
43829 fra.me.has_broke = 0;
43830 fra.me.REG_size = 5;
43831 fra.me.nitni_local_ref_head = NULL;
43832 fra.me.REG[0] = NIT_NULL;
43833 fra.me.REG[1] = NIT_NULL;
43834 fra.me.REG[2] = NIT_NULL;
43835 fra.me.REG[3] = NIT_NULL;
43836 fra.me.REG[4] = NIT_NULL;
43837 fra.me.REG[0] = p0;
43838 fra.me.REG[1] = p1;
43839 fra.me.REG[2] = p2;
43840 fra.me.REG[3] = p3;
43841 /* parser/parser_prod.nit:8139 */
43842 fra.me.REG[4] = fra.me.REG[0];
43843 /* parser/parser_prod.nit:8145 */
43844 CALL_parser___parser_prod___ACastAsExternCall___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
43845 /* parser/parser_prod.nit:8146 */
43846 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
43847 if (UNTAG_Bool(REGB0)) {
43848 } else {
43849 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8146);
43850 }
43851 ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[4]) = fra.me.REG[1];
43852 /* parser/parser_prod.nit:8147 */
43853 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
43854 if (UNTAG_Bool(REGB0)) {
43855 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8147);
43856 }
43857 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
43858 /* parser/parser_prod.nit:8148 */
43859 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
43860 if (UNTAG_Bool(REGB0)) {
43861 } else {
43862 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8148);
43863 }
43864 ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[4]) = fra.me.REG[2];
43865 /* parser/parser_prod.nit:8149 */
43866 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43867 if (UNTAG_Bool(REGB0)) {
43868 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8149);
43869 }
43870 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
43871 /* parser/parser_prod.nit:8150 */
43872 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
43873 if (UNTAG_Bool(REGB0)) {
43874 } else {
43875 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8150);
43876 }
43877 ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[4]) = fra.me.REG[3];
43878 /* parser/parser_prod.nit:8151 */
43879 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43880 if (UNTAG_Bool(REGB0)) {
43881 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8151);
43882 }
43883 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
43884 stack_frame_head = fra.me.prev;
43885 init_table[itpos288] = 1;
43886 return;
43887 }
43888 void parser___parser_prod___ACastAsExternCall___replace_child(val_t p0, val_t p1, val_t p2){
43889 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43890 val_t REGB0;
43891 val_t REGB1;
43892 val_t tmp;
43893 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43894 fra.me.file = LOCATE_parser___parser_prod;
43895 fra.me.line = 8154;
43896 fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___replace_child;
43897 fra.me.has_broke = 0;
43898 fra.me.REG_size = 4;
43899 fra.me.nitni_local_ref_head = NULL;
43900 fra.me.REG[0] = NIT_NULL;
43901 fra.me.REG[1] = NIT_NULL;
43902 fra.me.REG[2] = NIT_NULL;
43903 fra.me.REG[3] = NIT_NULL;
43904 fra.me.REG[0] = p0;
43905 fra.me.REG[1] = p1;
43906 fra.me.REG[2] = p2;
43907 /* parser/parser_prod.nit:8156 */
43908 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0])!=NIT_NULL);
43909 if (UNTAG_Bool(REGB0)) {
43910 } else {
43911 nit_abort("Uninitialized attribute %s", "_n_from_type", LOCATE_parser___parser_prod, 8156);
43912 }
43913 fra.me.REG[3] = ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]);
43914 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43915 if (UNTAG_Bool(REGB0)) {
43916 } else {
43917 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43918 REGB0 = REGB1;
43919 }
43920 if (UNTAG_Bool(REGB0)) {
43921 /* parser/parser_prod.nit:8157 */
43922 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43923 if (UNTAG_Bool(REGB0)) {
43924 } else {
43925 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43926 if (UNTAG_Bool(REGB1)) {
43927 REGB1 = TAG_Bool(false);
43928 REGB0 = REGB1;
43929 } else {
43930 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43931 REGB0 = REGB1;
43932 }
43933 }
43934 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43935 if (UNTAG_Bool(REGB0)) {
43936 /* parser/parser_prod.nit:8158 */
43937 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43938 if (UNTAG_Bool(REGB0)) {
43939 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8158);
43940 }
43941 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43942 /* parser/parser_prod.nit:8159 */
43943 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
43944 if (UNTAG_Bool(REGB0)) {
43945 } else {
43946 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8159);
43947 }
43948 /* parser/parser_prod.nit:8160 */
43949 ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]) = fra.me.REG[2];
43950 } else {
43951 /* parser/parser_prod.nit:8162 */
43952 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8162);
43953 }
43954 /* parser/parser_prod.nit:8164 */
43955 goto label1;
43956 }
43957 /* parser/parser_prod.nit:8166 */
43958 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
43959 if (UNTAG_Bool(REGB0)) {
43960 } else {
43961 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8166);
43962 }
43963 fra.me.REG[3] = ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]);
43964 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43965 if (UNTAG_Bool(REGB0)) {
43966 } else {
43967 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43968 REGB0 = REGB1;
43969 }
43970 if (UNTAG_Bool(REGB0)) {
43971 /* parser/parser_prod.nit:8167 */
43972 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43973 if (UNTAG_Bool(REGB0)) {
43974 } else {
43975 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43976 if (UNTAG_Bool(REGB1)) {
43977 REGB1 = TAG_Bool(false);
43978 REGB0 = REGB1;
43979 } else {
43980 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43981 REGB0 = REGB1;
43982 }
43983 }
43984 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43985 if (UNTAG_Bool(REGB0)) {
43986 /* parser/parser_prod.nit:8168 */
43987 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43988 if (UNTAG_Bool(REGB0)) {
43989 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8168);
43990 }
43991 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43992 /* parser/parser_prod.nit:8169 */
43993 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast TKwas*/;
43994 if (UNTAG_Bool(REGB0)) {
43995 } else {
43996 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8169);
43997 }
43998 /* parser/parser_prod.nit:8170 */
43999 ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
44000 } else {
44001 /* parser/parser_prod.nit:8172 */
44002 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8172);
44003 }
44004 /* parser/parser_prod.nit:8174 */
44005 goto label1;
44006 }
44007 /* parser/parser_prod.nit:8176 */
44008 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0])!=NIT_NULL);
44009 if (UNTAG_Bool(REGB0)) {
44010 } else {
44011 nit_abort("Uninitialized attribute %s", "_n_to_type", LOCATE_parser___parser_prod, 8176);
44012 }
44013 fra.me.REG[3] = ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]);
44014 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
44015 if (UNTAG_Bool(REGB0)) {
44016 } else {
44017 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44018 REGB0 = REGB1;
44019 }
44020 if (UNTAG_Bool(REGB0)) {
44021 /* parser/parser_prod.nit:8177 */
44022 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44023 if (UNTAG_Bool(REGB0)) {
44024 } else {
44025 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44026 if (UNTAG_Bool(REGB1)) {
44027 REGB1 = TAG_Bool(false);
44028 REGB0 = REGB1;
44029 } else {
44030 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44031 REGB0 = REGB1;
44032 }
44033 }
44034 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44035 if (UNTAG_Bool(REGB0)) {
44036 /* parser/parser_prod.nit:8178 */
44037 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44038 if (UNTAG_Bool(REGB0)) {
44039 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8178);
44040 }
44041 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44042 /* parser/parser_prod.nit:8179 */
44043 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
44044 if (UNTAG_Bool(REGB0)) {
44045 } else {
44046 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8179);
44047 }
44048 /* parser/parser_prod.nit:8180 */
44049 ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]) = fra.me.REG[2];
44050 } else {
44051 /* parser/parser_prod.nit:8182 */
44052 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8182);
44053 }
44054 /* parser/parser_prod.nit:8184 */
44055 goto label1;
44056 }
44057 label1: while(0);
44058 stack_frame_head = fra.me.prev;
44059 return;
44060 }
44061 void parser___parser_prod___ACastAsExternCall___visit_all(val_t p0, val_t p1){
44062 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
44063 val_t REGB0;
44064 val_t tmp;
44065 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44066 fra.me.file = LOCATE_parser___parser_prod;
44067 fra.me.line = 8188;
44068 fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___visit_all;
44069 fra.me.has_broke = 0;
44070 fra.me.REG_size = 3;
44071 fra.me.nitni_local_ref_head = NULL;
44072 fra.me.REG[0] = NIT_NULL;
44073 fra.me.REG[1] = NIT_NULL;
44074 fra.me.REG[2] = NIT_NULL;
44075 fra.me.REG[0] = p0;
44076 fra.me.REG[1] = p1;
44077 /* parser/parser_prod.nit:8190 */
44078 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0])!=NIT_NULL);
44079 if (UNTAG_Bool(REGB0)) {
44080 } else {
44081 nit_abort("Uninitialized attribute %s", "_n_from_type", LOCATE_parser___parser_prod, 8190);
44082 }
44083 fra.me.REG[2] = ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]);
44084 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
44085 /* parser/parser_prod.nit:8191 */
44086 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
44087 if (UNTAG_Bool(REGB0)) {
44088 } else {
44089 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8191);
44090 }
44091 fra.me.REG[2] = ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]);
44092 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
44093 /* parser/parser_prod.nit:8192 */
44094 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0])!=NIT_NULL);
44095 if (UNTAG_Bool(REGB0)) {
44096 } else {
44097 nit_abort("Uninitialized attribute %s", "_n_to_type", LOCATE_parser___parser_prod, 8192);
44098 }
44099 fra.me.REG[0] = ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]);
44100 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
44101 stack_frame_head = fra.me.prev;
44102 return;
44103 }
44104 void parser___parser_prod___AAsNullableExternCall___empty_init(val_t p0, int* init_table){
44105 int itpos289 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNullableExternCall].i;
44106 struct {struct stack_frame_t me;} fra;
44107 val_t tmp;
44108 if (init_table[itpos289]) return;
44109 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44110 fra.me.file = LOCATE_parser___parser_prod;
44111 fra.me.line = 8196;
44112 fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___empty_init;
44113 fra.me.has_broke = 0;
44114 fra.me.REG_size = 1;
44115 fra.me.nitni_local_ref_head = NULL;
44116 fra.me.REG[0] = NIT_NULL;
44117 fra.me.REG[0] = p0;
44118 stack_frame_head = fra.me.prev;
44119 init_table[itpos289] = 1;
44120 return;
44121 }
44122 void parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
44123 int itpos290 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNullableExternCall].i;
44124 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
44125 val_t REGB0;
44126 val_t tmp;
44127 if (init_table[itpos290]) return;
44128 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44129 fra.me.file = LOCATE_parser___parser_prod;
44130 fra.me.line = 8198;
44131 fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall;
44132 fra.me.has_broke = 0;
44133 fra.me.REG_size = 5;
44134 fra.me.nitni_local_ref_head = NULL;
44135 fra.me.REG[0] = NIT_NULL;
44136 fra.me.REG[1] = NIT_NULL;
44137 fra.me.REG[2] = NIT_NULL;
44138 fra.me.REG[3] = NIT_NULL;
44139 fra.me.REG[4] = NIT_NULL;
44140 fra.me.REG[0] = p0;
44141 fra.me.REG[1] = p1;
44142 fra.me.REG[2] = p2;
44143 fra.me.REG[3] = p3;
44144 /* parser/parser_prod.nit:8198 */
44145 fra.me.REG[4] = fra.me.REG[0];
44146 /* parser/parser_prod.nit:8204 */
44147 CALL_parser___parser_prod___AAsNullableExternCall___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
44148 /* parser/parser_prod.nit:8205 */
44149 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
44150 if (UNTAG_Bool(REGB0)) {
44151 } else {
44152 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8205);
44153 }
44154 ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[4]) = fra.me.REG[1];
44155 /* parser/parser_prod.nit:8206 */
44156 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
44157 if (UNTAG_Bool(REGB0)) {
44158 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8206);
44159 }
44160 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
44161 /* parser/parser_prod.nit:8207 */
44162 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
44163 if (UNTAG_Bool(REGB0)) {
44164 } else {
44165 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8207);
44166 }
44167 ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[4]) = fra.me.REG[2];
44168 /* parser/parser_prod.nit:8208 */
44169 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44170 if (UNTAG_Bool(REGB0)) {
44171 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8208);
44172 }
44173 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
44174 /* parser/parser_prod.nit:8209 */
44175 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
44176 if (UNTAG_Bool(REGB0)) {
44177 } else {
44178 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8209);
44179 }
44180 ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[4]) = fra.me.REG[3];
44181 /* parser/parser_prod.nit:8210 */
44182 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
44183 if (UNTAG_Bool(REGB0)) {
44184 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8210);
44185 }
44186 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
44187 stack_frame_head = fra.me.prev;
44188 init_table[itpos290] = 1;
44189 return;
44190 }
44191 void parser___parser_prod___AAsNullableExternCall___replace_child(val_t p0, val_t p1, val_t p2){
44192 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
44193 val_t REGB0;
44194 val_t REGB1;
44195 val_t tmp;
44196 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44197 fra.me.file = LOCATE_parser___parser_prod;
44198 fra.me.line = 8213;
44199 fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___replace_child;
44200 fra.me.has_broke = 0;
44201 fra.me.REG_size = 4;
44202 fra.me.nitni_local_ref_head = NULL;
44203 fra.me.REG[0] = NIT_NULL;
44204 fra.me.REG[1] = NIT_NULL;
44205 fra.me.REG[2] = NIT_NULL;
44206 fra.me.REG[3] = NIT_NULL;
44207 fra.me.REG[0] = p0;
44208 fra.me.REG[1] = p1;
44209 fra.me.REG[2] = p2;
44210 /* parser/parser_prod.nit:8215 */
44211 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
44212 if (UNTAG_Bool(REGB0)) {
44213 } else {
44214 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 8215);
44215 }
44216 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]);
44217 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
44218 if (UNTAG_Bool(REGB0)) {
44219 } else {
44220 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44221 REGB0 = REGB1;
44222 }
44223 if (UNTAG_Bool(REGB0)) {
44224 /* parser/parser_prod.nit:8216 */
44225 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44226 if (UNTAG_Bool(REGB0)) {
44227 } else {
44228 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44229 if (UNTAG_Bool(REGB1)) {
44230 REGB1 = TAG_Bool(false);
44231 REGB0 = REGB1;
44232 } else {
44233 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44234 REGB0 = REGB1;
44235 }
44236 }
44237 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44238 if (UNTAG_Bool(REGB0)) {
44239 /* parser/parser_prod.nit:8217 */
44240 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44241 if (UNTAG_Bool(REGB0)) {
44242 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8217);
44243 }
44244 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44245 /* parser/parser_prod.nit:8218 */
44246 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
44247 if (UNTAG_Bool(REGB0)) {
44248 } else {
44249 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8218);
44250 }
44251 /* parser/parser_prod.nit:8219 */
44252 ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]) = fra.me.REG[2];
44253 } else {
44254 /* parser/parser_prod.nit:8221 */
44255 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8221);
44256 }
44257 /* parser/parser_prod.nit:8223 */
44258 goto label1;
44259 }
44260 /* parser/parser_prod.nit:8225 */
44261 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
44262 if (UNTAG_Bool(REGB0)) {
44263 } else {
44264 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8225);
44265 }
44266 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]);
44267 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
44268 if (UNTAG_Bool(REGB0)) {
44269 } else {
44270 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44271 REGB0 = REGB1;
44272 }
44273 if (UNTAG_Bool(REGB0)) {
44274 /* parser/parser_prod.nit:8226 */
44275 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44276 if (UNTAG_Bool(REGB0)) {
44277 } else {
44278 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44279 if (UNTAG_Bool(REGB1)) {
44280 REGB1 = TAG_Bool(false);
44281 REGB0 = REGB1;
44282 } else {
44283 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44284 REGB0 = REGB1;
44285 }
44286 }
44287 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44288 if (UNTAG_Bool(REGB0)) {
44289 /* parser/parser_prod.nit:8227 */
44290 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44291 if (UNTAG_Bool(REGB0)) {
44292 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8227);
44293 }
44294 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44295 /* parser/parser_prod.nit:8228 */
44296 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast TKwas*/;
44297 if (UNTAG_Bool(REGB0)) {
44298 } else {
44299 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8228);
44300 }
44301 /* parser/parser_prod.nit:8229 */
44302 ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
44303 } else {
44304 /* parser/parser_prod.nit:8231 */
44305 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8231);
44306 }
44307 /* parser/parser_prod.nit:8233 */
44308 goto label1;
44309 }
44310 /* parser/parser_prod.nit:8235 */
44311 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
44312 if (UNTAG_Bool(REGB0)) {
44313 } else {
44314 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 8235);
44315 }
44316 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]);
44317 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
44318 if (UNTAG_Bool(REGB0)) {
44319 } else {
44320 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44321 REGB0 = REGB1;
44322 }
44323 if (UNTAG_Bool(REGB0)) {
44324 /* parser/parser_prod.nit:8236 */
44325 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44326 if (UNTAG_Bool(REGB0)) {
44327 } else {
44328 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44329 if (UNTAG_Bool(REGB1)) {
44330 REGB1 = TAG_Bool(false);
44331 REGB0 = REGB1;
44332 } else {
44333 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44334 REGB0 = REGB1;
44335 }
44336 }
44337 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44338 if (UNTAG_Bool(REGB0)) {
44339 /* parser/parser_prod.nit:8237 */
44340 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44341 if (UNTAG_Bool(REGB0)) {
44342 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8237);
44343 }
44344 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44345 /* parser/parser_prod.nit:8238 */
44346 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnullable, ID_parser___parser_nodes___TKwnullable)) /*cast TKwnullable*/;
44347 if (UNTAG_Bool(REGB0)) {
44348 } else {
44349 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8238);
44350 }
44351 /* parser/parser_prod.nit:8239 */
44352 ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
44353 } else {
44354 /* parser/parser_prod.nit:8241 */
44355 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8241);
44356 }
44357 /* parser/parser_prod.nit:8243 */
44358 goto label1;
44359 }
44360 label1: while(0);
44361 stack_frame_head = fra.me.prev;
44362 return;
44363 }
44364 void parser___parser_prod___AAsNullableExternCall___visit_all(val_t p0, val_t p1){
44365 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
44366 val_t REGB0;
44367 val_t tmp;
44368 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44369 fra.me.file = LOCATE_parser___parser_prod;
44370 fra.me.line = 8247;
44371 fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___visit_all;
44372 fra.me.has_broke = 0;
44373 fra.me.REG_size = 3;
44374 fra.me.nitni_local_ref_head = NULL;
44375 fra.me.REG[0] = NIT_NULL;
44376 fra.me.REG[1] = NIT_NULL;
44377 fra.me.REG[2] = NIT_NULL;
44378 fra.me.REG[0] = p0;
44379 fra.me.REG[1] = p1;
44380 /* parser/parser_prod.nit:8249 */
44381 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
44382 if (UNTAG_Bool(REGB0)) {
44383 } else {
44384 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 8249);
44385 }
44386 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]);
44387 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
44388 /* parser/parser_prod.nit:8250 */
44389 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
44390 if (UNTAG_Bool(REGB0)) {
44391 } else {
44392 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8250);
44393 }
44394 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]);
44395 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
44396 /* parser/parser_prod.nit:8251 */
44397 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
44398 if (UNTAG_Bool(REGB0)) {
44399 } else {
44400 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 8251);
44401 }
44402 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]);
44403 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
44404 stack_frame_head = fra.me.prev;
44405 return;
44406 }
44407 void parser___parser_prod___AAsNotNullableExternCall___empty_init(val_t p0, int* init_table){
44408 int itpos291 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotNullableExternCall].i;
44409 struct {struct stack_frame_t me;} fra;
44410 val_t tmp;
44411 if (init_table[itpos291]) return;
44412 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44413 fra.me.file = LOCATE_parser___parser_prod;
44414 fra.me.line = 8255;
44415 fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___empty_init;
44416 fra.me.has_broke = 0;
44417 fra.me.REG_size = 1;
44418 fra.me.nitni_local_ref_head = NULL;
44419 fra.me.REG[0] = NIT_NULL;
44420 fra.me.REG[0] = p0;
44421 stack_frame_head = fra.me.prev;
44422 init_table[itpos291] = 1;
44423 return;
44424 }
44425 void parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
44426 int itpos292 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotNullableExternCall].i;
44427 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
44428 val_t REGB0;
44429 val_t tmp;
44430 if (init_table[itpos292]) return;
44431 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44432 fra.me.file = LOCATE_parser___parser_prod;
44433 fra.me.line = 8257;
44434 fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall;
44435 fra.me.has_broke = 0;
44436 fra.me.REG_size = 6;
44437 fra.me.nitni_local_ref_head = NULL;
44438 fra.me.REG[0] = NIT_NULL;
44439 fra.me.REG[1] = NIT_NULL;
44440 fra.me.REG[2] = NIT_NULL;
44441 fra.me.REG[3] = NIT_NULL;
44442 fra.me.REG[4] = NIT_NULL;
44443 fra.me.REG[5] = NIT_NULL;
44444 fra.me.REG[0] = p0;
44445 fra.me.REG[1] = p1;
44446 fra.me.REG[2] = p2;
44447 fra.me.REG[3] = p3;
44448 fra.me.REG[4] = p4;
44449 /* parser/parser_prod.nit:8257 */
44450 fra.me.REG[5] = fra.me.REG[0];
44451 /* parser/parser_prod.nit:8264 */
44452 CALL_parser___parser_prod___AAsNotNullableExternCall___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
44453 /* parser/parser_prod.nit:8265 */
44454 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
44455 if (UNTAG_Bool(REGB0)) {
44456 } else {
44457 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8265);
44458 }
44459 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[5]) = fra.me.REG[1];
44460 /* parser/parser_prod.nit:8266 */
44461 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
44462 if (UNTAG_Bool(REGB0)) {
44463 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8266);
44464 }
44465 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
44466 /* parser/parser_prod.nit:8267 */
44467 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
44468 if (UNTAG_Bool(REGB0)) {
44469 } else {
44470 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8267);
44471 }
44472 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[5]) = fra.me.REG[2];
44473 /* parser/parser_prod.nit:8268 */
44474 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44475 if (UNTAG_Bool(REGB0)) {
44476 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8268);
44477 }
44478 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
44479 /* parser/parser_prod.nit:8269 */
44480 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
44481 if (UNTAG_Bool(REGB0)) {
44482 } else {
44483 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8269);
44484 }
44485 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[5]) = fra.me.REG[3];
44486 /* parser/parser_prod.nit:8270 */
44487 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
44488 if (UNTAG_Bool(REGB0)) {
44489 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8270);
44490 }
44491 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
44492 /* parser/parser_prod.nit:8271 */
44493 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
44494 if (UNTAG_Bool(REGB0)) {
44495 } else {
44496 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8271);
44497 }
44498 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[5]) = fra.me.REG[4];
44499 /* parser/parser_prod.nit:8272 */
44500 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
44501 if (UNTAG_Bool(REGB0)) {
44502 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8272);
44503 }
44504 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
44505 stack_frame_head = fra.me.prev;
44506 init_table[itpos292] = 1;
44507 return;
44508 }
44509 void parser___parser_prod___AAsNotNullableExternCall___replace_child(val_t p0, val_t p1, val_t p2){
44510 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
44511 val_t REGB0;
44512 val_t REGB1;
44513 val_t tmp;
44514 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44515 fra.me.file = LOCATE_parser___parser_prod;
44516 fra.me.line = 8275;
44517 fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___replace_child;
44518 fra.me.has_broke = 0;
44519 fra.me.REG_size = 4;
44520 fra.me.nitni_local_ref_head = NULL;
44521 fra.me.REG[0] = NIT_NULL;
44522 fra.me.REG[1] = NIT_NULL;
44523 fra.me.REG[2] = NIT_NULL;
44524 fra.me.REG[3] = NIT_NULL;
44525 fra.me.REG[0] = p0;
44526 fra.me.REG[1] = p1;
44527 fra.me.REG[2] = p2;
44528 /* parser/parser_prod.nit:8277 */
44529 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
44530 if (UNTAG_Bool(REGB0)) {
44531 } else {
44532 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 8277);
44533 }
44534 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]);
44535 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
44536 if (UNTAG_Bool(REGB0)) {
44537 } else {
44538 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44539 REGB0 = REGB1;
44540 }
44541 if (UNTAG_Bool(REGB0)) {
44542 /* parser/parser_prod.nit:8278 */
44543 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44544 if (UNTAG_Bool(REGB0)) {
44545 } else {
44546 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44547 if (UNTAG_Bool(REGB1)) {
44548 REGB1 = TAG_Bool(false);
44549 REGB0 = REGB1;
44550 } else {
44551 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44552 REGB0 = REGB1;
44553 }
44554 }
44555 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44556 if (UNTAG_Bool(REGB0)) {
44557 /* parser/parser_prod.nit:8279 */
44558 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44559 if (UNTAG_Bool(REGB0)) {
44560 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8279);
44561 }
44562 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44563 /* parser/parser_prod.nit:8280 */
44564 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
44565 if (UNTAG_Bool(REGB0)) {
44566 } else {
44567 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8280);
44568 }
44569 /* parser/parser_prod.nit:8281 */
44570 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]) = fra.me.REG[2];
44571 } else {
44572 /* parser/parser_prod.nit:8283 */
44573 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8283);
44574 }
44575 /* parser/parser_prod.nit:8285 */
44576 goto label1;
44577 }
44578 /* parser/parser_prod.nit:8287 */
44579 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
44580 if (UNTAG_Bool(REGB0)) {
44581 } else {
44582 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8287);
44583 }
44584 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]);
44585 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
44586 if (UNTAG_Bool(REGB0)) {
44587 } else {
44588 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44589 REGB0 = REGB1;
44590 }
44591 if (UNTAG_Bool(REGB0)) {
44592 /* parser/parser_prod.nit:8288 */
44593 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44594 if (UNTAG_Bool(REGB0)) {
44595 } else {
44596 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44597 if (UNTAG_Bool(REGB1)) {
44598 REGB1 = TAG_Bool(false);
44599 REGB0 = REGB1;
44600 } else {
44601 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44602 REGB0 = REGB1;
44603 }
44604 }
44605 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44606 if (UNTAG_Bool(REGB0)) {
44607 /* parser/parser_prod.nit:8289 */
44608 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44609 if (UNTAG_Bool(REGB0)) {
44610 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8289);
44611 }
44612 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44613 /* parser/parser_prod.nit:8290 */
44614 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast TKwas*/;
44615 if (UNTAG_Bool(REGB0)) {
44616 } else {
44617 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8290);
44618 }
44619 /* parser/parser_prod.nit:8291 */
44620 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
44621 } else {
44622 /* parser/parser_prod.nit:8293 */
44623 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8293);
44624 }
44625 /* parser/parser_prod.nit:8295 */
44626 goto label1;
44627 }
44628 /* parser/parser_prod.nit:8297 */
44629 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0])!=NIT_NULL);
44630 if (UNTAG_Bool(REGB0)) {
44631 } else {
44632 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 8297);
44633 }
44634 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]);
44635 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
44636 if (UNTAG_Bool(REGB0)) {
44637 } else {
44638 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44639 REGB0 = REGB1;
44640 }
44641 if (UNTAG_Bool(REGB0)) {
44642 /* parser/parser_prod.nit:8298 */
44643 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44644 if (UNTAG_Bool(REGB0)) {
44645 } else {
44646 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44647 if (UNTAG_Bool(REGB1)) {
44648 REGB1 = TAG_Bool(false);
44649 REGB0 = REGB1;
44650 } else {
44651 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44652 REGB0 = REGB1;
44653 }
44654 }
44655 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44656 if (UNTAG_Bool(REGB0)) {
44657 /* parser/parser_prod.nit:8299 */
44658 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44659 if (UNTAG_Bool(REGB0)) {
44660 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8299);
44661 }
44662 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44663 /* parser/parser_prod.nit:8300 */
44664 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnot, ID_parser___parser_nodes___TKwnot)) /*cast TKwnot*/;
44665 if (UNTAG_Bool(REGB0)) {
44666 } else {
44667 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8300);
44668 }
44669 /* parser/parser_prod.nit:8301 */
44670 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
44671 } else {
44672 /* parser/parser_prod.nit:8303 */
44673 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8303);
44674 }
44675 /* parser/parser_prod.nit:8305 */
44676 goto label1;
44677 }
44678 /* parser/parser_prod.nit:8307 */
44679 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
44680 if (UNTAG_Bool(REGB0)) {
44681 } else {
44682 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 8307);
44683 }
44684 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]);
44685 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
44686 if (UNTAG_Bool(REGB0)) {
44687 } else {
44688 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44689 REGB0 = REGB1;
44690 }
44691 if (UNTAG_Bool(REGB0)) {
44692 /* parser/parser_prod.nit:8308 */
44693 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44694 if (UNTAG_Bool(REGB0)) {
44695 } else {
44696 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44697 if (UNTAG_Bool(REGB1)) {
44698 REGB1 = TAG_Bool(false);
44699 REGB0 = REGB1;
44700 } else {
44701 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44702 REGB0 = REGB1;
44703 }
44704 }
44705 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44706 if (UNTAG_Bool(REGB0)) {
44707 /* parser/parser_prod.nit:8309 */
44708 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44709 if (UNTAG_Bool(REGB0)) {
44710 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8309);
44711 }
44712 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44713 /* parser/parser_prod.nit:8310 */
44714 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnullable, ID_parser___parser_nodes___TKwnullable)) /*cast TKwnullable*/;
44715 if (UNTAG_Bool(REGB0)) {
44716 } else {
44717 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8310);
44718 }
44719 /* parser/parser_prod.nit:8311 */
44720 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
44721 } else {
44722 /* parser/parser_prod.nit:8313 */
44723 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8313);
44724 }
44725 /* parser/parser_prod.nit:8315 */
44726 goto label1;
44727 }
44728 label1: while(0);
44729 stack_frame_head = fra.me.prev;
44730 return;
44731 }
44732 void parser___parser_prod___AAsNotNullableExternCall___visit_all(val_t p0, val_t p1){
44733 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
44734 val_t REGB0;
44735 val_t tmp;
44736 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44737 fra.me.file = LOCATE_parser___parser_prod;
44738 fra.me.line = 8319;
44739 fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___visit_all;
44740 fra.me.has_broke = 0;
44741 fra.me.REG_size = 3;
44742 fra.me.nitni_local_ref_head = NULL;
44743 fra.me.REG[0] = NIT_NULL;
44744 fra.me.REG[1] = NIT_NULL;
44745 fra.me.REG[2] = NIT_NULL;
44746 fra.me.REG[0] = p0;
44747 fra.me.REG[1] = p1;
44748 /* parser/parser_prod.nit:8321 */
44749 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
44750 if (UNTAG_Bool(REGB0)) {
44751 } else {
44752 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 8321);
44753 }
44754 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]);
44755 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
44756 /* parser/parser_prod.nit:8322 */
44757 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
44758 if (UNTAG_Bool(REGB0)) {
44759 } else {
44760 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8322);
44761 }
44762 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]);
44763 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
44764 /* parser/parser_prod.nit:8323 */
44765 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0])!=NIT_NULL);
44766 if (UNTAG_Bool(REGB0)) {
44767 } else {
44768 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 8323);
44769 }
44770 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]);
44771 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
44772 /* parser/parser_prod.nit:8324 */
44773 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
44774 if (UNTAG_Bool(REGB0)) {
44775 } else {
44776 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 8324);
44777 }
44778 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]);
44779 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
44780 stack_frame_head = fra.me.prev;
44781 return;
44782 }
44783 void parser___parser_prod___AQualified___empty_init(val_t p0, int* init_table){
44784 int itpos293 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AQualified].i;
44785 struct {struct stack_frame_t me;} fra;
44786 val_t tmp;
44787 if (init_table[itpos293]) return;
44788 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44789 fra.me.file = LOCATE_parser___parser_prod;
44790 fra.me.line = 8328;
44791 fra.me.meth = LOCATE_parser___parser_prod___AQualified___empty_init;
44792 fra.me.has_broke = 0;
44793 fra.me.REG_size = 1;
44794 fra.me.nitni_local_ref_head = NULL;
44795 fra.me.REG[0] = NIT_NULL;
44796 fra.me.REG[0] = p0;
44797 stack_frame_head = fra.me.prev;
44798 init_table[itpos293] = 1;
44799 return;
44800 }
44801 void parser___parser_prod___AQualified___init_aqualified(val_t p0, val_t p1, val_t p2, int* init_table){
44802 int itpos294 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AQualified].i;
44803 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
44804 val_t REGB0;
44805 val_t REGB1;
44806 val_t tmp;
44807 if (init_table[itpos294]) return;
44808 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44809 fra.me.file = LOCATE_parser___parser_prod;
44810 fra.me.line = 8330;
44811 fra.me.meth = LOCATE_parser___parser_prod___AQualified___init_aqualified;
44812 fra.me.has_broke = 0;
44813 fra.me.REG_size = 3;
44814 fra.me.nitni_local_ref_head = NULL;
44815 fra.me.REG[0] = NIT_NULL;
44816 fra.me.REG[1] = NIT_NULL;
44817 fra.me.REG[2] = NIT_NULL;
44818 fra.me.REG[0] = p0;
44819 fra.me.REG[1] = p1;
44820 fra.me.REG[2] = p2;
44821 /* parser/parser_prod.nit:8335 */
44822 CALL_parser___parser_prod___AQualified___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
44823 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AQualified___init_aqualified_1));
44824 /* parser/parser_prod.nit:8341 */
44825 ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = fra.me.REG[2];
44826 /* parser/parser_prod.nit:8342 */
44827 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44828 if (UNTAG_Bool(REGB0)) {
44829 } else {
44830 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44831 if (UNTAG_Bool(REGB1)) {
44832 REGB1 = TAG_Bool(false);
44833 REGB0 = REGB1;
44834 } else {
44835 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44836 REGB0 = REGB1;
44837 }
44838 }
44839 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44840 if (UNTAG_Bool(REGB0)) {
44841 /* parser/parser_prod.nit:8343 */
44842 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44843 if (UNTAG_Bool(REGB0)) {
44844 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8343);
44845 }
44846 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44847 }
44848 stack_frame_head = fra.me.prev;
44849 init_table[itpos294] = 1;
44850 return;
44851 }
44852 void OC_parser___parser_prod___AQualified___init_aqualified_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
44853 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
44854 val_t REGB0;
44855 fun_t CREG[1];
44856 val_t tmp;
44857 /* parser/parser_prod.nit:8336 */
44858 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44859 fra.me.file = LOCATE_parser___parser_prod;
44860 fra.me.line = 0;
44861 fra.me.meth = LOCATE_parser___parser_prod___AQualified___init_aqualified;
44862 fra.me.has_broke = 0;
44863 fra.me.REG_size = 2;
44864 fra.me.nitni_local_ref_head = NULL;
44865 fra.me.REG[0] = NIT_NULL;
44866 fra.me.REG[1] = NIT_NULL;
44867 fra.me.closure_ctx = closctx_param;
44868 fra.me.closure_funs = CREG;
44869 fra.me.REG[0] = p0;
44870 CREG[0] = clos_fun0;
44871 /* parser/parser_prod.nit:8337 */
44872 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
44873 if (UNTAG_Bool(REGB0)) {
44874 } else {
44875 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8337);
44876 }
44877 /* parser/parser_prod.nit:8338 */
44878 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(closctx->REG[0])!=NIT_NULL);
44879 if (UNTAG_Bool(REGB0)) {
44880 } else {
44881 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8338);
44882 }
44883 fra.me.REG[1] = ATTR_parser___parser_nodes___AQualified____n_id(closctx->REG[0]);
44884 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
44885 /* parser/parser_prod.nit:8339 */
44886 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
44887 stack_frame_head = fra.me.prev;
44888 return;
44889 }
44890 void parser___parser_prod___AQualified___replace_child(val_t p0, val_t p1, val_t p2){
44891 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
44892 val_t REGB0;
44893 val_t REGB1;
44894 val_t REGB2;
44895 val_t REGB3;
44896 val_t REGB4;
44897 val_t tmp;
44898 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44899 fra.me.file = LOCATE_parser___parser_prod;
44900 fra.me.line = 8347;
44901 fra.me.meth = LOCATE_parser___parser_prod___AQualified___replace_child;
44902 fra.me.has_broke = 0;
44903 fra.me.REG_size = 4;
44904 fra.me.nitni_local_ref_head = NULL;
44905 fra.me.REG[0] = NIT_NULL;
44906 fra.me.REG[1] = NIT_NULL;
44907 fra.me.REG[2] = NIT_NULL;
44908 fra.me.REG[3] = NIT_NULL;
44909 fra.me.REG[0] = p0;
44910 fra.me.REG[1] = p1;
44911 fra.me.REG[2] = p2;
44912 /* parser/parser_prod.nit:8349 */
44913 REGB0 = TAG_Int(0);
44914 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
44915 if (UNTAG_Bool(REGB1)) {
44916 } else {
44917 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8349);
44918 }
44919 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
44920 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
44921 /* ../lib/standard/kernel.nit:352 */
44922 while(1) {
44923 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
44924 if (UNTAG_Bool(REGB2)) {
44925 } else {
44926 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
44927 }
44928 /* ../lib/standard/kernel.nit:232 */
44929 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
44930 /* ../lib/standard/kernel.nit:352 */
44931 if (UNTAG_Bool(REGB2)) {
44932 /* parser/parser_prod.nit:8349 */
44933 REGB2 = REGB0;
44934 /* parser/parser_prod.nit:8350 */
44935 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
44936 if (UNTAG_Bool(REGB3)) {
44937 } else {
44938 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8350);
44939 }
44940 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
44941 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
44942 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
44943 if (UNTAG_Bool(REGB3)) {
44944 } else {
44945 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
44946 if (UNTAG_Bool(REGB4)) {
44947 REGB4 = TAG_Bool(false);
44948 REGB3 = REGB4;
44949 } else {
44950 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44951 REGB3 = REGB4;
44952 }
44953 }
44954 if (UNTAG_Bool(REGB3)) {
44955 /* parser/parser_prod.nit:8351 */
44956 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44957 if (UNTAG_Bool(REGB3)) {
44958 } else {
44959 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44960 if (UNTAG_Bool(REGB4)) {
44961 REGB4 = TAG_Bool(false);
44962 REGB3 = REGB4;
44963 } else {
44964 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44965 REGB3 = REGB4;
44966 }
44967 }
44968 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
44969 if (UNTAG_Bool(REGB3)) {
44970 /* parser/parser_prod.nit:8352 */
44971 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
44972 if (UNTAG_Bool(REGB3)) {
44973 } else {
44974 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8352);
44975 }
44976 /* parser/parser_prod.nit:8353 */
44977 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
44978 if (UNTAG_Bool(REGB3)) {
44979 } else {
44980 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8353);
44981 }
44982 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
44983 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
44984 /* parser/parser_prod.nit:8354 */
44985 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44986 if (UNTAG_Bool(REGB3)) {
44987 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8354);
44988 }
44989 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44990 } else {
44991 /* parser/parser_prod.nit:8356 */
44992 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
44993 if (UNTAG_Bool(REGB3)) {
44994 } else {
44995 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8356);
44996 }
44997 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
44998 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
44999 }
45000 /* parser/parser_prod.nit:8358 */
45001 goto label1;
45002 }
45003 /* ../lib/standard/kernel.nit:354 */
45004 REGB2 = TAG_Int(1);
45005 /* ../lib/standard/kernel.nit:235 */
45006 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
45007 /* ../lib/standard/kernel.nit:354 */
45008 REGB0 = REGB2;
45009 } else {
45010 /* ../lib/standard/kernel.nit:352 */
45011 goto label2;
45012 }
45013 }
45014 label2: while(0);
45015 /* parser/parser_prod.nit:8361 */
45016 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]);
45017 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
45018 if (UNTAG_Bool(REGB0)) {
45019 } else {
45020 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
45021 if (UNTAG_Bool(REGB1)) {
45022 REGB1 = TAG_Bool(false);
45023 REGB0 = REGB1;
45024 } else {
45025 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45026 REGB0 = REGB1;
45027 }
45028 }
45029 if (UNTAG_Bool(REGB0)) {
45030 /* parser/parser_prod.nit:8362 */
45031 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45032 if (UNTAG_Bool(REGB0)) {
45033 } else {
45034 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45035 if (UNTAG_Bool(REGB1)) {
45036 REGB1 = TAG_Bool(false);
45037 REGB0 = REGB1;
45038 } else {
45039 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45040 REGB0 = REGB1;
45041 }
45042 }
45043 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45044 if (UNTAG_Bool(REGB0)) {
45045 /* parser/parser_prod.nit:8363 */
45046 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45047 if (UNTAG_Bool(REGB0)) {
45048 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8363);
45049 }
45050 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45051 /* parser/parser_prod.nit:8364 */
45052 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
45053 if (UNTAG_Bool(REGB0)) {
45054 } else {
45055 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8364);
45056 }
45057 /* parser/parser_prod.nit:8365 */
45058 ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = fra.me.REG[2];
45059 } else {
45060 /* parser/parser_prod.nit:8367 */
45061 ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = NIT_NULL;
45062 }
45063 /* parser/parser_prod.nit:8369 */
45064 goto label1;
45065 }
45066 label1: while(0);
45067 stack_frame_head = fra.me.prev;
45068 return;
45069 }
45070 void parser___parser_prod___AQualified___visit_all(val_t p0, val_t p1){
45071 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
45072 val_t REGB0;
45073 val_t REGB1;
45074 val_t tmp;
45075 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45076 fra.me.file = LOCATE_parser___parser_prod;
45077 fra.me.line = 8373;
45078 fra.me.meth = LOCATE_parser___parser_prod___AQualified___visit_all;
45079 fra.me.has_broke = 0;
45080 fra.me.REG_size = 4;
45081 fra.me.nitni_local_ref_head = NULL;
45082 fra.me.REG[0] = NIT_NULL;
45083 fra.me.REG[1] = NIT_NULL;
45084 fra.me.REG[2] = NIT_NULL;
45085 fra.me.REG[3] = NIT_NULL;
45086 fra.me.REG[0] = p0;
45087 fra.me.REG[1] = p1;
45088 /* parser/parser_prod.nit:8373 */
45089 fra.me.REG[2] = fra.me.REG[0];
45090 /* parser/parser_prod.nit:8375 */
45091 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[2])!=NIT_NULL);
45092 if (UNTAG_Bool(REGB0)) {
45093 } else {
45094 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8375);
45095 }
45096 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[2]);
45097 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AQualified___visit_all_1));
45098 /* parser/parser_prod.nit:8378 */
45099 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[2]);
45100 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
45101 if (UNTAG_Bool(REGB0)) {
45102 } else {
45103 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
45104 if (UNTAG_Bool(REGB1)) {
45105 REGB1 = TAG_Bool(false);
45106 REGB0 = REGB1;
45107 } else {
45108 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
45109 REGB0 = REGB1;
45110 }
45111 }
45112 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45113 if (UNTAG_Bool(REGB0)) {
45114 /* parser/parser_prod.nit:8379 */
45115 fra.me.REG[2] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[2]);
45116 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
45117 if (UNTAG_Bool(REGB0)) {
45118 } else {
45119 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8379);
45120 }
45121 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
45122 }
45123 stack_frame_head = fra.me.prev;
45124 return;
45125 }
45126 void OC_parser___parser_prod___AQualified___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
45127 struct {struct stack_frame_t me;} fra;
45128 fun_t CREG[1];
45129 val_t tmp;
45130 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45131 fra.me.file = LOCATE_parser___parser_prod;
45132 fra.me.line = 0;
45133 fra.me.meth = LOCATE_parser___parser_prod___AQualified___visit_all;
45134 fra.me.has_broke = 0;
45135 fra.me.REG_size = 1;
45136 fra.me.nitni_local_ref_head = NULL;
45137 fra.me.REG[0] = NIT_NULL;
45138 fra.me.closure_ctx = closctx_param;
45139 fra.me.closure_funs = CREG;
45140 fra.me.REG[0] = p0;
45141 CREG[0] = clos_fun0;
45142 /* parser/parser_prod.nit:8376 */
45143 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
45144 stack_frame_head = fra.me.prev;
45145 return;
45146 }
45147 void parser___parser_prod___ADoc___empty_init(val_t p0, int* init_table){
45148 int itpos295 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoc].i;
45149 struct {struct stack_frame_t me;} fra;
45150 val_t tmp;
45151 if (init_table[itpos295]) return;
45152 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45153 fra.me.file = LOCATE_parser___parser_prod;
45154 fra.me.line = 8384;
45155 fra.me.meth = LOCATE_parser___parser_prod___ADoc___empty_init;
45156 fra.me.has_broke = 0;
45157 fra.me.REG_size = 1;
45158 fra.me.nitni_local_ref_head = NULL;
45159 fra.me.REG[0] = NIT_NULL;
45160 fra.me.REG[0] = p0;
45161 stack_frame_head = fra.me.prev;
45162 init_table[itpos295] = 1;
45163 return;
45164 }
45165 void parser___parser_prod___ADoc___init_adoc(val_t p0, val_t p1, int* init_table){
45166 int itpos296 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoc].i;
45167 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
45168 val_t tmp;
45169 if (init_table[itpos296]) return;
45170 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45171 fra.me.file = LOCATE_parser___parser_prod;
45172 fra.me.line = 8386;
45173 fra.me.meth = LOCATE_parser___parser_prod___ADoc___init_adoc;
45174 fra.me.has_broke = 0;
45175 fra.me.REG_size = 2;
45176 fra.me.nitni_local_ref_head = NULL;
45177 fra.me.REG[0] = NIT_NULL;
45178 fra.me.REG[1] = NIT_NULL;
45179 fra.me.REG[0] = p0;
45180 fra.me.REG[1] = p1;
45181 /* parser/parser_prod.nit:8390 */
45182 CALL_parser___parser_prod___ADoc___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
45183 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ADoc___init_adoc_1));
45184 stack_frame_head = fra.me.prev;
45185 init_table[itpos296] = 1;
45186 return;
45187 }
45188 void OC_parser___parser_prod___ADoc___init_adoc_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
45189 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
45190 val_t REGB0;
45191 fun_t CREG[1];
45192 val_t tmp;
45193 /* parser/parser_prod.nit:8391 */
45194 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45195 fra.me.file = LOCATE_parser___parser_prod;
45196 fra.me.line = 0;
45197 fra.me.meth = LOCATE_parser___parser_prod___ADoc___init_adoc;
45198 fra.me.has_broke = 0;
45199 fra.me.REG_size = 2;
45200 fra.me.nitni_local_ref_head = NULL;
45201 fra.me.REG[0] = NIT_NULL;
45202 fra.me.REG[1] = NIT_NULL;
45203 fra.me.closure_ctx = closctx_param;
45204 fra.me.closure_funs = CREG;
45205 fra.me.REG[0] = p0;
45206 CREG[0] = clos_fun0;
45207 /* parser/parser_prod.nit:8392 */
45208 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TComment, ID_parser___parser_nodes___TComment)) /*cast TComment*/;
45209 if (UNTAG_Bool(REGB0)) {
45210 } else {
45211 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8392);
45212 }
45213 /* parser/parser_prod.nit:8393 */
45214 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(closctx->REG[0])!=NIT_NULL);
45215 if (UNTAG_Bool(REGB0)) {
45216 } else {
45217 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8393);
45218 }
45219 fra.me.REG[1] = ATTR_parser___parser_nodes___ADoc____n_comment(closctx->REG[0]);
45220 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
45221 /* parser/parser_prod.nit:8394 */
45222 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
45223 stack_frame_head = fra.me.prev;
45224 return;
45225 }
45226 void parser___parser_prod___ADoc___replace_child(val_t p0, val_t p1, val_t p2){
45227 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
45228 val_t REGB0;
45229 val_t REGB1;
45230 val_t REGB2;
45231 val_t REGB3;
45232 val_t REGB4;
45233 val_t tmp;
45234 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45235 fra.me.file = LOCATE_parser___parser_prod;
45236 fra.me.line = 8398;
45237 fra.me.meth = LOCATE_parser___parser_prod___ADoc___replace_child;
45238 fra.me.has_broke = 0;
45239 fra.me.REG_size = 4;
45240 fra.me.nitni_local_ref_head = NULL;
45241 fra.me.REG[0] = NIT_NULL;
45242 fra.me.REG[1] = NIT_NULL;
45243 fra.me.REG[2] = NIT_NULL;
45244 fra.me.REG[3] = NIT_NULL;
45245 fra.me.REG[0] = p0;
45246 fra.me.REG[1] = p1;
45247 fra.me.REG[2] = p2;
45248 /* parser/parser_prod.nit:8400 */
45249 REGB0 = TAG_Int(0);
45250 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
45251 if (UNTAG_Bool(REGB1)) {
45252 } else {
45253 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8400);
45254 }
45255 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
45256 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
45257 /* ../lib/standard/kernel.nit:352 */
45258 while(1) {
45259 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
45260 if (UNTAG_Bool(REGB2)) {
45261 } else {
45262 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
45263 }
45264 /* ../lib/standard/kernel.nit:232 */
45265 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
45266 /* ../lib/standard/kernel.nit:352 */
45267 if (UNTAG_Bool(REGB2)) {
45268 /* parser/parser_prod.nit:8400 */
45269 REGB2 = REGB0;
45270 /* parser/parser_prod.nit:8401 */
45271 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
45272 if (UNTAG_Bool(REGB3)) {
45273 } else {
45274 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8401);
45275 }
45276 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
45277 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
45278 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
45279 if (UNTAG_Bool(REGB3)) {
45280 } else {
45281 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
45282 if (UNTAG_Bool(REGB4)) {
45283 REGB4 = TAG_Bool(false);
45284 REGB3 = REGB4;
45285 } else {
45286 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45287 REGB3 = REGB4;
45288 }
45289 }
45290 if (UNTAG_Bool(REGB3)) {
45291 /* parser/parser_prod.nit:8402 */
45292 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45293 if (UNTAG_Bool(REGB3)) {
45294 } else {
45295 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45296 if (UNTAG_Bool(REGB4)) {
45297 REGB4 = TAG_Bool(false);
45298 REGB3 = REGB4;
45299 } else {
45300 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45301 REGB3 = REGB4;
45302 }
45303 }
45304 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
45305 if (UNTAG_Bool(REGB3)) {
45306 /* parser/parser_prod.nit:8403 */
45307 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TComment, ID_parser___parser_nodes___TComment)) /*cast TComment*/;
45308 if (UNTAG_Bool(REGB3)) {
45309 } else {
45310 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8403);
45311 }
45312 /* parser/parser_prod.nit:8404 */
45313 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
45314 if (UNTAG_Bool(REGB3)) {
45315 } else {
45316 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8404);
45317 }
45318 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
45319 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
45320 /* parser/parser_prod.nit:8405 */
45321 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45322 if (UNTAG_Bool(REGB3)) {
45323 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8405);
45324 }
45325 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45326 } else {
45327 /* parser/parser_prod.nit:8407 */
45328 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
45329 if (UNTAG_Bool(REGB3)) {
45330 } else {
45331 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8407);
45332 }
45333 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
45334 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
45335 }
45336 /* parser/parser_prod.nit:8409 */
45337 goto label1;
45338 }
45339 /* ../lib/standard/kernel.nit:354 */
45340 REGB2 = TAG_Int(1);
45341 /* ../lib/standard/kernel.nit:235 */
45342 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
45343 /* ../lib/standard/kernel.nit:354 */
45344 REGB0 = REGB2;
45345 } else {
45346 /* ../lib/standard/kernel.nit:352 */
45347 goto label2;
45348 }
45349 }
45350 label2: while(0);
45351 label1: while(0);
45352 stack_frame_head = fra.me.prev;
45353 return;
45354 }
45355 void parser___parser_prod___ADoc___visit_all(val_t p0, val_t p1){
45356 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
45357 val_t REGB0;
45358 val_t tmp;
45359 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45360 fra.me.file = LOCATE_parser___parser_prod;
45361 fra.me.line = 8414;
45362 fra.me.meth = LOCATE_parser___parser_prod___ADoc___visit_all;
45363 fra.me.has_broke = 0;
45364 fra.me.REG_size = 2;
45365 fra.me.nitni_local_ref_head = NULL;
45366 fra.me.REG[0] = NIT_NULL;
45367 fra.me.REG[1] = NIT_NULL;
45368 fra.me.REG[0] = p0;
45369 fra.me.REG[1] = p1;
45370 /* parser/parser_prod.nit:8416 */
45371 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
45372 if (UNTAG_Bool(REGB0)) {
45373 } else {
45374 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8416);
45375 }
45376 fra.me.REG[0] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
45377 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ADoc___visit_all_1));
45378 stack_frame_head = fra.me.prev;
45379 return;
45380 }
45381 void OC_parser___parser_prod___ADoc___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
45382 struct {struct stack_frame_t me;} fra;
45383 fun_t CREG[1];
45384 val_t tmp;
45385 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45386 fra.me.file = LOCATE_parser___parser_prod;
45387 fra.me.line = 0;
45388 fra.me.meth = LOCATE_parser___parser_prod___ADoc___visit_all;
45389 fra.me.has_broke = 0;
45390 fra.me.REG_size = 1;
45391 fra.me.nitni_local_ref_head = NULL;
45392 fra.me.REG[0] = NIT_NULL;
45393 fra.me.closure_ctx = closctx_param;
45394 fra.me.closure_funs = CREG;
45395 fra.me.REG[0] = p0;
45396 CREG[0] = clos_fun0;
45397 /* parser/parser_prod.nit:8417 */
45398 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
45399 stack_frame_head = fra.me.prev;
45400 return;
45401 }
45402 void parser___parser_prod___Start___replace_child(val_t p0, val_t p1, val_t p2){
45403 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
45404 val_t REGB0;
45405 val_t REGB1;
45406 val_t tmp;
45407 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45408 fra.me.file = LOCATE_parser___parser_prod;
45409 fra.me.line = 8423;
45410 fra.me.meth = LOCATE_parser___parser_prod___Start___replace_child;
45411 fra.me.has_broke = 0;
45412 fra.me.REG_size = 4;
45413 fra.me.nitni_local_ref_head = NULL;
45414 fra.me.REG[0] = NIT_NULL;
45415 fra.me.REG[1] = NIT_NULL;
45416 fra.me.REG[2] = NIT_NULL;
45417 fra.me.REG[3] = NIT_NULL;
45418 fra.me.REG[0] = p0;
45419 fra.me.REG[1] = p1;
45420 fra.me.REG[2] = p2;
45421 /* parser/parser_prod.nit:8425 */
45422 fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]);
45423 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
45424 if (UNTAG_Bool(REGB0)) {
45425 } else {
45426 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
45427 if (UNTAG_Bool(REGB1)) {
45428 REGB1 = TAG_Bool(false);
45429 REGB0 = REGB1;
45430 } else {
45431 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45432 REGB0 = REGB1;
45433 }
45434 }
45435 if (UNTAG_Bool(REGB0)) {
45436 /* parser/parser_prod.nit:8426 */
45437 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45438 if (UNTAG_Bool(REGB0)) {
45439 } else {
45440 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45441 if (UNTAG_Bool(REGB1)) {
45442 REGB1 = TAG_Bool(false);
45443 REGB0 = REGB1;
45444 } else {
45445 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45446 REGB0 = REGB1;
45447 }
45448 }
45449 if (UNTAG_Bool(REGB0)) {
45450 } else {
45451 /* parser/parser_prod.nit:8428 */
45452 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45453 if (UNTAG_Bool(REGB0)) {
45454 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8428);
45455 }
45456 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45457 /* parser/parser_prod.nit:8429 */
45458 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AModule, ID_parser___parser_nodes___AModule)) /*cast AModule*/;
45459 if (UNTAG_Bool(REGB0)) {
45460 } else {
45461 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8429);
45462 }
45463 /* parser/parser_prod.nit:8430 */
45464 ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]) = fra.me.REG[2];
45465 }
45466 /* parser/parser_prod.nit:8432 */
45467 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
45468 /* parser/parser_prod.nit:8433 */
45469 goto label1;
45470 }
45471 label1: while(0);
45472 stack_frame_head = fra.me.prev;
45473 return;
45474 }
45475 void parser___parser_prod___Start___visit_all(val_t p0, val_t p1){
45476 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
45477 val_t REGB0;
45478 val_t REGB1;
45479 val_t tmp;
45480 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45481 fra.me.file = LOCATE_parser___parser_prod;
45482 fra.me.line = 8437;
45483 fra.me.meth = LOCATE_parser___parser_prod___Start___visit_all;
45484 fra.me.has_broke = 0;
45485 fra.me.REG_size = 4;
45486 fra.me.nitni_local_ref_head = NULL;
45487 fra.me.REG[0] = NIT_NULL;
45488 fra.me.REG[1] = NIT_NULL;
45489 fra.me.REG[2] = NIT_NULL;
45490 fra.me.REG[3] = NIT_NULL;
45491 fra.me.REG[0] = p0;
45492 fra.me.REG[1] = p1;
45493 /* parser/parser_prod.nit:8437 */
45494 fra.me.REG[2] = fra.me.REG[0];
45495 /* parser/parser_prod.nit:8439 */
45496 fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[2]);
45497 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
45498 if (UNTAG_Bool(REGB0)) {
45499 } else {
45500 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
45501 if (UNTAG_Bool(REGB1)) {
45502 REGB1 = TAG_Bool(false);
45503 REGB0 = REGB1;
45504 } else {
45505 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
45506 REGB0 = REGB1;
45507 }
45508 }
45509 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45510 if (UNTAG_Bool(REGB0)) {
45511 /* parser/parser_prod.nit:8440 */
45512 fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[2]);
45513 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AModule, ID_parser___parser_nodes___AModule)) /*cast AModule*/;
45514 if (UNTAG_Bool(REGB0)) {
45515 } else {
45516 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8440);
45517 }
45518 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
45519 }
45520 /* parser/parser_prod.nit:8442 */
45521 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[2])!=NIT_NULL);
45522 if (UNTAG_Bool(REGB0)) {
45523 } else {
45524 nit_abort("Uninitialized attribute %s", "_n_eof", LOCATE_parser___parser_prod, 8442);
45525 }
45526 fra.me.REG[2] = ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[2]);
45527 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
45528 stack_frame_head = fra.me.prev;
45529 return;
45530 }