25a9718f83eaeff16c99f19fdbc3135f2d1df99d
[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, 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[9];} 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 = 10;
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[0] = p0;
2341 fra.me.REG[1] = p1;
2342 fra.me.REG[2] = p2;
2343 fra.me.REG[3] = p3;
2344 fra.me.REG[4] = p4;
2345 fra.me.REG[5] = p5;
2346 fra.me.REG[6] = p6;
2347 fra.me.REG[7] = p7;
2348 fra.me.REG[8] = p8;
2349 /* ./parser//parser_prod.nit:440 */
2350 fra.me.REG[9] = fra.me.REG[0];
2351 /* ./parser//parser_prod.nit:451 */
2352 CALL_parser___parser_prod___AStdClassdef___empty_init(fra.me.REG[9])(fra.me.REG[9], init_table);
2353 /* ./parser//parser_prod.nit:452 */
2354 ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[9]) = fra.me.REG[1];
2355 /* ./parser//parser_prod.nit:453 */
2356 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2357 if (UNTAG_Bool(REGB0)) {
2358 } else {
2359 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2360 if (UNTAG_Bool(REGB1)) {
2361 REGB1 = TAG_Bool(false);
2362 REGB0 = REGB1;
2363 } else {
2364 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2365 REGB0 = REGB1;
2366 }
2367 }
2368 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2369 if (UNTAG_Bool(REGB0)) {
2370 /* ./parser//parser_prod.nit:454 */
2371 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2372 if (UNTAG_Bool(REGB0)) {
2373 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 454);
2374 }
2375 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
2376 }
2377 /* ./parser//parser_prod.nit:456 */
2378 ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[9]) = fra.me.REG[2];
2379 /* ./parser//parser_prod.nit:457 */
2380 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2381 if (UNTAG_Bool(REGB0)) {
2382 } else {
2383 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2384 if (UNTAG_Bool(REGB1)) {
2385 REGB1 = TAG_Bool(false);
2386 REGB0 = REGB1;
2387 } else {
2388 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2389 REGB0 = REGB1;
2390 }
2391 }
2392 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2393 if (UNTAG_Bool(REGB0)) {
2394 /* ./parser//parser_prod.nit:458 */
2395 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2396 if (UNTAG_Bool(REGB0)) {
2397 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 458);
2398 }
2399 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[9]);
2400 }
2401 /* ./parser//parser_prod.nit:460 */
2402 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
2403 if (UNTAG_Bool(REGB0)) {
2404 } else {
2405 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 460);
2406 }
2407 ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[9]) = fra.me.REG[3];
2408 /* ./parser//parser_prod.nit:461 */
2409 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2410 if (UNTAG_Bool(REGB0)) {
2411 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 461);
2412 }
2413 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]);
2414 /* ./parser//parser_prod.nit:462 */
2415 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
2416 if (UNTAG_Bool(REGB0)) {
2417 } else {
2418 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 462);
2419 }
2420 ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[9]) = fra.me.REG[4];
2421 /* ./parser//parser_prod.nit:463 */
2422 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2423 if (UNTAG_Bool(REGB0)) {
2424 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 463);
2425 }
2426 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
2427 /* ./parser//parser_prod.nit:464 */
2428 ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[9]) = fra.me.REG[5];
2429 /* ./parser//parser_prod.nit:465 */
2430 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2431 if (UNTAG_Bool(REGB0)) {
2432 } else {
2433 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2434 if (UNTAG_Bool(REGB1)) {
2435 REGB1 = TAG_Bool(false);
2436 REGB0 = REGB1;
2437 } else {
2438 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
2439 REGB0 = REGB1;
2440 }
2441 }
2442 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2443 if (UNTAG_Bool(REGB0)) {
2444 /* ./parser//parser_prod.nit:466 */
2445 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2446 if (UNTAG_Bool(REGB0)) {
2447 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 466);
2448 }
2449 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[9]);
2450 }
2451 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));
2452 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));
2453 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));
2454 stack_frame_head = fra.me.prev;
2455 init_table[itpos18] = 1;
2456 return;
2457 }
2458 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){
2459 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2460 val_t REGB0;
2461 fun_t CREG[1];
2462 val_t tmp;
2463 /* ./parser//parser_prod.nit:468 */
2464 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2465 fra.me.file = LOCATE_parser___parser_prod;
2466 fra.me.line = 0;
2467 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef;
2468 fra.me.has_broke = 0;
2469 fra.me.REG_size = 2;
2470 fra.me.nitni_local_ref_head = NULL;
2471 fra.me.REG[0] = NIT_NULL;
2472 fra.me.REG[1] = NIT_NULL;
2473 fra.me.closure_ctx = closctx_param;
2474 fra.me.closure_funs = CREG;
2475 fra.me.REG[0] = p0;
2476 CREG[0] = clos_fun0;
2477 /* ./parser//parser_prod.nit:469 */
2478 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AFormaldef, ID_parser___parser_nodes___AFormaldef)) /*cast AFormaldef*/;
2479 if (UNTAG_Bool(REGB0)) {
2480 } else {
2481 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 469);
2482 }
2483 /* ./parser//parser_prod.nit:470 */
2484 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(closctx->REG[9])!=NIT_NULL);
2485 if (UNTAG_Bool(REGB0)) {
2486 } else {
2487 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 470);
2488 }
2489 fra.me.REG[1] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(closctx->REG[9]);
2490 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2491 /* ./parser//parser_prod.nit:471 */
2492 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[9]);
2493 stack_frame_head = fra.me.prev;
2494 return;
2495 }
2496 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){
2497 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2498 val_t REGB0;
2499 fun_t CREG[1];
2500 val_t tmp;
2501 /* ./parser//parser_prod.nit:473 */
2502 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2503 fra.me.file = LOCATE_parser___parser_prod;
2504 fra.me.line = 0;
2505 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef;
2506 fra.me.has_broke = 0;
2507 fra.me.REG_size = 2;
2508 fra.me.nitni_local_ref_head = NULL;
2509 fra.me.REG[0] = NIT_NULL;
2510 fra.me.REG[1] = NIT_NULL;
2511 fra.me.closure_ctx = closctx_param;
2512 fra.me.closure_funs = CREG;
2513 fra.me.REG[0] = p0;
2514 CREG[0] = clos_fun0;
2515 /* ./parser//parser_prod.nit:474 */
2516 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___ASuperclass, ID_parser___parser_nodes___ASuperclass)) /*cast ASuperclass*/;
2517 if (UNTAG_Bool(REGB0)) {
2518 } else {
2519 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 474);
2520 }
2521 /* ./parser//parser_prod.nit:475 */
2522 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(closctx->REG[9])!=NIT_NULL);
2523 if (UNTAG_Bool(REGB0)) {
2524 } else {
2525 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 475);
2526 }
2527 fra.me.REG[1] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(closctx->REG[9]);
2528 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2529 /* ./parser//parser_prod.nit:476 */
2530 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[9]);
2531 stack_frame_head = fra.me.prev;
2532 return;
2533 }
2534 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){
2535 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2536 val_t REGB0;
2537 fun_t CREG[1];
2538 val_t tmp;
2539 /* ./parser//parser_prod.nit:478 */
2540 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2541 fra.me.file = LOCATE_parser___parser_prod;
2542 fra.me.line = 0;
2543 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef;
2544 fra.me.has_broke = 0;
2545 fra.me.REG_size = 2;
2546 fra.me.nitni_local_ref_head = NULL;
2547 fra.me.REG[0] = NIT_NULL;
2548 fra.me.REG[1] = NIT_NULL;
2549 fra.me.closure_ctx = closctx_param;
2550 fra.me.closure_funs = CREG;
2551 fra.me.REG[0] = p0;
2552 CREG[0] = clos_fun0;
2553 /* ./parser//parser_prod.nit:479 */
2554 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
2555 if (UNTAG_Bool(REGB0)) {
2556 } else {
2557 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 479);
2558 }
2559 /* ./parser//parser_prod.nit:480 */
2560 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(closctx->REG[9])!=NIT_NULL);
2561 if (UNTAG_Bool(REGB0)) {
2562 } else {
2563 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 480);
2564 }
2565 fra.me.REG[1] = ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(closctx->REG[9]);
2566 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2567 /* ./parser//parser_prod.nit:481 */
2568 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[9]);
2569 stack_frame_head = fra.me.prev;
2570 return;
2571 }
2572 void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val_t p2){
2573 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2574 val_t REGB0;
2575 val_t REGB1;
2576 val_t REGB2;
2577 val_t REGB3;
2578 val_t REGB4;
2579 val_t tmp;
2580 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2581 fra.me.file = LOCATE_parser___parser_prod;
2582 fra.me.line = 485;
2583 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___replace_child;
2584 fra.me.has_broke = 0;
2585 fra.me.REG_size = 4;
2586 fra.me.nitni_local_ref_head = NULL;
2587 fra.me.REG[0] = NIT_NULL;
2588 fra.me.REG[1] = NIT_NULL;
2589 fra.me.REG[2] = NIT_NULL;
2590 fra.me.REG[3] = NIT_NULL;
2591 fra.me.REG[0] = p0;
2592 fra.me.REG[1] = p1;
2593 fra.me.REG[2] = p2;
2594 /* ./parser//parser_prod.nit:487 */
2595 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]);
2596 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2597 if (UNTAG_Bool(REGB0)) {
2598 } else {
2599 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2600 if (UNTAG_Bool(REGB1)) {
2601 REGB1 = TAG_Bool(false);
2602 REGB0 = REGB1;
2603 } else {
2604 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2605 REGB0 = REGB1;
2606 }
2607 }
2608 if (UNTAG_Bool(REGB0)) {
2609 /* ./parser//parser_prod.nit:488 */
2610 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2611 if (UNTAG_Bool(REGB0)) {
2612 } else {
2613 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2614 if (UNTAG_Bool(REGB1)) {
2615 REGB1 = TAG_Bool(false);
2616 REGB0 = REGB1;
2617 } else {
2618 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2619 REGB0 = REGB1;
2620 }
2621 }
2622 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2623 if (UNTAG_Bool(REGB0)) {
2624 /* ./parser//parser_prod.nit:489 */
2625 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2626 if (UNTAG_Bool(REGB0)) {
2627 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 489);
2628 }
2629 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2630 /* ./parser//parser_prod.nit:490 */
2631 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*/;
2632 if (UNTAG_Bool(REGB0)) {
2633 } else {
2634 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 490);
2635 }
2636 /* ./parser//parser_prod.nit:491 */
2637 ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
2638 } else {
2639 /* ./parser//parser_prod.nit:493 */
2640 ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]) = NIT_NULL;
2641 }
2642 /* ./parser//parser_prod.nit:495 */
2643 goto label1;
2644 }
2645 /* ./parser//parser_prod.nit:497 */
2646 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]);
2647 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2648 if (UNTAG_Bool(REGB0)) {
2649 } else {
2650 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2651 if (UNTAG_Bool(REGB1)) {
2652 REGB1 = TAG_Bool(false);
2653 REGB0 = REGB1;
2654 } else {
2655 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2656 REGB0 = REGB1;
2657 }
2658 }
2659 if (UNTAG_Bool(REGB0)) {
2660 /* ./parser//parser_prod.nit:498 */
2661 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2662 if (UNTAG_Bool(REGB0)) {
2663 } else {
2664 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2665 if (UNTAG_Bool(REGB1)) {
2666 REGB1 = TAG_Bool(false);
2667 REGB0 = REGB1;
2668 } else {
2669 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2670 REGB0 = REGB1;
2671 }
2672 }
2673 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2674 if (UNTAG_Bool(REGB0)) {
2675 /* ./parser//parser_prod.nit:499 */
2676 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2677 if (UNTAG_Bool(REGB0)) {
2678 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 499);
2679 }
2680 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2681 /* ./parser//parser_prod.nit:500 */
2682 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*/;
2683 if (UNTAG_Bool(REGB0)) {
2684 } else {
2685 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 500);
2686 }
2687 /* ./parser//parser_prod.nit:501 */
2688 ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
2689 } else {
2690 /* ./parser//parser_prod.nit:503 */
2691 ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
2692 }
2693 /* ./parser//parser_prod.nit:505 */
2694 goto label1;
2695 }
2696 /* ./parser//parser_prod.nit:507 */
2697 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
2698 if (UNTAG_Bool(REGB0)) {
2699 } else {
2700 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 507);
2701 }
2702 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0]);
2703 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2704 if (UNTAG_Bool(REGB0)) {
2705 } else {
2706 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2707 REGB0 = REGB1;
2708 }
2709 if (UNTAG_Bool(REGB0)) {
2710 /* ./parser//parser_prod.nit:508 */
2711 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2712 if (UNTAG_Bool(REGB0)) {
2713 } else {
2714 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2715 if (UNTAG_Bool(REGB1)) {
2716 REGB1 = TAG_Bool(false);
2717 REGB0 = REGB1;
2718 } else {
2719 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2720 REGB0 = REGB1;
2721 }
2722 }
2723 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2724 if (UNTAG_Bool(REGB0)) {
2725 /* ./parser//parser_prod.nit:509 */
2726 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2727 if (UNTAG_Bool(REGB0)) {
2728 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 509);
2729 }
2730 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2731 /* ./parser//parser_prod.nit:510 */
2732 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*/;
2733 if (UNTAG_Bool(REGB0)) {
2734 } else {
2735 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 510);
2736 }
2737 /* ./parser//parser_prod.nit:511 */
2738 ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
2739 } else {
2740 /* ./parser//parser_prod.nit:513 */
2741 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 513);
2742 }
2743 /* ./parser//parser_prod.nit:515 */
2744 goto label1;
2745 }
2746 /* ./parser//parser_prod.nit:517 */
2747 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0])!=NIT_NULL);
2748 if (UNTAG_Bool(REGB0)) {
2749 } else {
2750 nit_abort("Uninitialized attribute %s", "_n_classkind", LOCATE_parser___parser_prod, 517);
2751 }
2752 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0]);
2753 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2754 if (UNTAG_Bool(REGB0)) {
2755 } else {
2756 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2757 REGB0 = REGB1;
2758 }
2759 if (UNTAG_Bool(REGB0)) {
2760 /* ./parser//parser_prod.nit:518 */
2761 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2762 if (UNTAG_Bool(REGB0)) {
2763 } else {
2764 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2765 if (UNTAG_Bool(REGB1)) {
2766 REGB1 = TAG_Bool(false);
2767 REGB0 = REGB1;
2768 } else {
2769 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2770 REGB0 = REGB1;
2771 }
2772 }
2773 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2774 if (UNTAG_Bool(REGB0)) {
2775 /* ./parser//parser_prod.nit:519 */
2776 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2777 if (UNTAG_Bool(REGB0)) {
2778 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 519);
2779 }
2780 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2781 /* ./parser//parser_prod.nit:520 */
2782 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*/;
2783 if (UNTAG_Bool(REGB0)) {
2784 } else {
2785 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 520);
2786 }
2787 /* ./parser//parser_prod.nit:521 */
2788 ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0]) = fra.me.REG[2];
2789 } else {
2790 /* ./parser//parser_prod.nit:523 */
2791 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 523);
2792 }
2793 /* ./parser//parser_prod.nit:525 */
2794 goto label1;
2795 }
2796 /* ./parser//parser_prod.nit:527 */
2797 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[0]);
2798 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2799 if (UNTAG_Bool(REGB0)) {
2800 } else {
2801 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2802 if (UNTAG_Bool(REGB1)) {
2803 REGB1 = TAG_Bool(false);
2804 REGB0 = REGB1;
2805 } else {
2806 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2807 REGB0 = REGB1;
2808 }
2809 }
2810 if (UNTAG_Bool(REGB0)) {
2811 /* ./parser//parser_prod.nit:528 */
2812 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2813 if (UNTAG_Bool(REGB0)) {
2814 } else {
2815 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2816 if (UNTAG_Bool(REGB1)) {
2817 REGB1 = TAG_Bool(false);
2818 REGB0 = REGB1;
2819 } else {
2820 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2821 REGB0 = REGB1;
2822 }
2823 }
2824 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2825 if (UNTAG_Bool(REGB0)) {
2826 /* ./parser//parser_prod.nit:529 */
2827 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2828 if (UNTAG_Bool(REGB0)) {
2829 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 529);
2830 }
2831 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2832 /* ./parser//parser_prod.nit:530 */
2833 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*/;
2834 if (UNTAG_Bool(REGB0)) {
2835 } else {
2836 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 530);
2837 }
2838 /* ./parser//parser_prod.nit:531 */
2839 ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
2840 } else {
2841 /* ./parser//parser_prod.nit:533 */
2842 ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[0]) = NIT_NULL;
2843 }
2844 /* ./parser//parser_prod.nit:535 */
2845 goto label1;
2846 }
2847 /* ./parser//parser_prod.nit:537 */
2848 REGB0 = TAG_Int(0);
2849 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
2850 if (UNTAG_Bool(REGB1)) {
2851 } else {
2852 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 537);
2853 }
2854 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
2855 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
2856 /* ./../lib/standard//kernel.nit:352 */
2857 while(1) {
2858 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2859 if (UNTAG_Bool(REGB2)) {
2860 } else {
2861 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2862 }
2863 /* ./../lib/standard//kernel.nit:232 */
2864 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2865 /* ./../lib/standard//kernel.nit:352 */
2866 if (UNTAG_Bool(REGB2)) {
2867 /* ./parser//parser_prod.nit:537 */
2868 REGB2 = REGB0;
2869 /* ./parser//parser_prod.nit:538 */
2870 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
2871 if (UNTAG_Bool(REGB3)) {
2872 } else {
2873 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 538);
2874 }
2875 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
2876 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
2877 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2878 if (UNTAG_Bool(REGB3)) {
2879 } else {
2880 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2881 if (UNTAG_Bool(REGB4)) {
2882 REGB4 = TAG_Bool(false);
2883 REGB3 = REGB4;
2884 } else {
2885 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2886 REGB3 = REGB4;
2887 }
2888 }
2889 if (UNTAG_Bool(REGB3)) {
2890 /* ./parser//parser_prod.nit:539 */
2891 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2892 if (UNTAG_Bool(REGB3)) {
2893 } else {
2894 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2895 if (UNTAG_Bool(REGB4)) {
2896 REGB4 = TAG_Bool(false);
2897 REGB3 = REGB4;
2898 } else {
2899 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2900 REGB3 = REGB4;
2901 }
2902 }
2903 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
2904 if (UNTAG_Bool(REGB3)) {
2905 /* ./parser//parser_prod.nit:540 */
2906 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*/;
2907 if (UNTAG_Bool(REGB3)) {
2908 } else {
2909 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 540);
2910 }
2911 /* ./parser//parser_prod.nit:541 */
2912 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
2913 if (UNTAG_Bool(REGB3)) {
2914 } else {
2915 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 541);
2916 }
2917 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
2918 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
2919 /* ./parser//parser_prod.nit:542 */
2920 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2921 if (UNTAG_Bool(REGB3)) {
2922 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 542);
2923 }
2924 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2925 } else {
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___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
2934 }
2935 /* ./parser//parser_prod.nit:546 */
2936 goto label1;
2937 }
2938 /* ./../lib/standard//kernel.nit:354 */
2939 REGB2 = TAG_Int(1);
2940 /* ./../lib/standard//kernel.nit:235 */
2941 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2942 /* ./../lib/standard//kernel.nit:354 */
2943 REGB0 = REGB2;
2944 } else {
2945 /* ./../lib/standard//kernel.nit:352 */
2946 goto label2;
2947 }
2948 }
2949 label2: while(0);
2950 /* ./parser//parser_prod.nit:549 */
2951 REGB0 = TAG_Int(0);
2952 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
2953 if (UNTAG_Bool(REGB1)) {
2954 } else {
2955 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 549);
2956 }
2957 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
2958 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
2959 /* ./../lib/standard//kernel.nit:352 */
2960 while(1) {
2961 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2962 if (UNTAG_Bool(REGB2)) {
2963 } else {
2964 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2965 }
2966 /* ./../lib/standard//kernel.nit:232 */
2967 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2968 /* ./../lib/standard//kernel.nit:352 */
2969 if (UNTAG_Bool(REGB2)) {
2970 /* ./parser//parser_prod.nit:549 */
2971 REGB2 = REGB0;
2972 /* ./parser//parser_prod.nit:550 */
2973 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
2974 if (UNTAG_Bool(REGB3)) {
2975 } else {
2976 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 550);
2977 }
2978 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
2979 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
2980 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2981 if (UNTAG_Bool(REGB3)) {
2982 } else {
2983 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2984 if (UNTAG_Bool(REGB4)) {
2985 REGB4 = TAG_Bool(false);
2986 REGB3 = REGB4;
2987 } else {
2988 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2989 REGB3 = REGB4;
2990 }
2991 }
2992 if (UNTAG_Bool(REGB3)) {
2993 /* ./parser//parser_prod.nit:551 */
2994 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2995 if (UNTAG_Bool(REGB3)) {
2996 } else {
2997 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2998 if (UNTAG_Bool(REGB4)) {
2999 REGB4 = TAG_Bool(false);
3000 REGB3 = REGB4;
3001 } else {
3002 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3003 REGB3 = REGB4;
3004 }
3005 }
3006 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3007 if (UNTAG_Bool(REGB3)) {
3008 /* ./parser//parser_prod.nit:552 */
3009 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*/;
3010 if (UNTAG_Bool(REGB3)) {
3011 } else {
3012 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 552);
3013 }
3014 /* ./parser//parser_prod.nit:553 */
3015 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
3016 if (UNTAG_Bool(REGB3)) {
3017 } else {
3018 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 553);
3019 }
3020 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
3021 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3022 /* ./parser//parser_prod.nit:554 */
3023 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3024 if (UNTAG_Bool(REGB3)) {
3025 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 554);
3026 }
3027 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3028 } else {
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___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3037 }
3038 /* ./parser//parser_prod.nit:558 */
3039 goto label1;
3040 }
3041 /* ./../lib/standard//kernel.nit:354 */
3042 REGB2 = TAG_Int(1);
3043 /* ./../lib/standard//kernel.nit:235 */
3044 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3045 /* ./../lib/standard//kernel.nit:354 */
3046 REGB0 = REGB2;
3047 } else {
3048 /* ./../lib/standard//kernel.nit:352 */
3049 goto label3;
3050 }
3051 }
3052 label3: while(0);
3053 /* ./parser//parser_prod.nit:561 */
3054 REGB0 = TAG_Int(0);
3055 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3056 if (UNTAG_Bool(REGB1)) {
3057 } else {
3058 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 561);
3059 }
3060 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0]);
3061 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
3062 /* ./../lib/standard//kernel.nit:352 */
3063 while(1) {
3064 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3065 if (UNTAG_Bool(REGB2)) {
3066 } else {
3067 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3068 }
3069 /* ./../lib/standard//kernel.nit:232 */
3070 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3071 /* ./../lib/standard//kernel.nit:352 */
3072 if (UNTAG_Bool(REGB2)) {
3073 /* ./parser//parser_prod.nit:561 */
3074 REGB2 = REGB0;
3075 /* ./parser//parser_prod.nit:562 */
3076 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3077 if (UNTAG_Bool(REGB3)) {
3078 } else {
3079 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 562);
3080 }
3081 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0]);
3082 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
3083 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3084 if (UNTAG_Bool(REGB3)) {
3085 } else {
3086 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3087 if (UNTAG_Bool(REGB4)) {
3088 REGB4 = TAG_Bool(false);
3089 REGB3 = REGB4;
3090 } else {
3091 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3092 REGB3 = REGB4;
3093 }
3094 }
3095 if (UNTAG_Bool(REGB3)) {
3096 /* ./parser//parser_prod.nit:563 */
3097 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3098 if (UNTAG_Bool(REGB3)) {
3099 } else {
3100 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3101 if (UNTAG_Bool(REGB4)) {
3102 REGB4 = TAG_Bool(false);
3103 REGB3 = REGB4;
3104 } else {
3105 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3106 REGB3 = REGB4;
3107 }
3108 }
3109 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3110 if (UNTAG_Bool(REGB3)) {
3111 /* ./parser//parser_prod.nit:564 */
3112 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*/;
3113 if (UNTAG_Bool(REGB3)) {
3114 } else {
3115 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 564);
3116 }
3117 /* ./parser//parser_prod.nit:565 */
3118 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3119 if (UNTAG_Bool(REGB3)) {
3120 } else {
3121 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 565);
3122 }
3123 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0]);
3124 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3125 /* ./parser//parser_prod.nit:566 */
3126 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3127 if (UNTAG_Bool(REGB3)) {
3128 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 566);
3129 }
3130 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3131 } else {
3132 /* ./parser//parser_prod.nit:568 */
3133 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____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___AStdClassdef____n_propdefs(fra.me.REG[0]);
3139 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3140 }
3141 /* ./parser//parser_prod.nit:570 */
3142 goto label1;
3143 }
3144 /* ./../lib/standard//kernel.nit:354 */
3145 REGB2 = TAG_Int(1);
3146 /* ./../lib/standard//kernel.nit:235 */
3147 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3148 /* ./../lib/standard//kernel.nit:354 */
3149 REGB0 = REGB2;
3150 } else {
3151 /* ./../lib/standard//kernel.nit:352 */
3152 goto label4;
3153 }
3154 }
3155 label4: while(0);
3156 label1: while(0);
3157 stack_frame_head = fra.me.prev;
3158 return;
3159 }
3160 void parser___parser_prod___AStdClassdef___visit_all(val_t p0, val_t p1){
3161 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3162 val_t REGB0;
3163 val_t REGB1;
3164 val_t tmp;
3165 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3166 fra.me.file = LOCATE_parser___parser_prod;
3167 fra.me.line = 575;
3168 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
3169 fra.me.has_broke = 0;
3170 fra.me.REG_size = 4;
3171 fra.me.nitni_local_ref_head = NULL;
3172 fra.me.REG[0] = NIT_NULL;
3173 fra.me.REG[1] = NIT_NULL;
3174 fra.me.REG[2] = NIT_NULL;
3175 fra.me.REG[3] = NIT_NULL;
3176 fra.me.REG[0] = p0;
3177 fra.me.REG[1] = p1;
3178 /* ./parser//parser_prod.nit:575 */
3179 fra.me.REG[2] = fra.me.REG[0];
3180 /* ./parser//parser_prod.nit:577 */
3181 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[2]);
3182 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3183 if (UNTAG_Bool(REGB0)) {
3184 } else {
3185 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3186 if (UNTAG_Bool(REGB1)) {
3187 REGB1 = TAG_Bool(false);
3188 REGB0 = REGB1;
3189 } else {
3190 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3191 REGB0 = REGB1;
3192 }
3193 }
3194 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3195 if (UNTAG_Bool(REGB0)) {
3196 /* ./parser//parser_prod.nit:578 */
3197 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[2]);
3198 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*/;
3199 if (UNTAG_Bool(REGB0)) {
3200 } else {
3201 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 578);
3202 }
3203 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3204 }
3205 /* ./parser//parser_prod.nit:580 */
3206 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[2]);
3207 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3208 if (UNTAG_Bool(REGB0)) {
3209 } else {
3210 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3211 if (UNTAG_Bool(REGB1)) {
3212 REGB1 = TAG_Bool(false);
3213 REGB0 = REGB1;
3214 } else {
3215 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3216 REGB0 = REGB1;
3217 }
3218 }
3219 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3220 if (UNTAG_Bool(REGB0)) {
3221 /* ./parser//parser_prod.nit:581 */
3222 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[2]);
3223 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*/;
3224 if (UNTAG_Bool(REGB0)) {
3225 } else {
3226 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 581);
3227 }
3228 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3229 }
3230 /* ./parser//parser_prod.nit:583 */
3231 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[2])!=NIT_NULL);
3232 if (UNTAG_Bool(REGB0)) {
3233 } else {
3234 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 583);
3235 }
3236 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[2]);
3237 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3238 /* ./parser//parser_prod.nit:584 */
3239 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[2])!=NIT_NULL);
3240 if (UNTAG_Bool(REGB0)) {
3241 } else {
3242 nit_abort("Uninitialized attribute %s", "_n_classkind", LOCATE_parser___parser_prod, 584);
3243 }
3244 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[2]);
3245 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3246 /* ./parser//parser_prod.nit:585 */
3247 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[2]);
3248 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3249 if (UNTAG_Bool(REGB0)) {
3250 } else {
3251 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3252 if (UNTAG_Bool(REGB1)) {
3253 REGB1 = TAG_Bool(false);
3254 REGB0 = REGB1;
3255 } else {
3256 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3257 REGB0 = REGB1;
3258 }
3259 }
3260 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3261 if (UNTAG_Bool(REGB0)) {
3262 /* ./parser//parser_prod.nit:586 */
3263 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[2]);
3264 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*/;
3265 if (UNTAG_Bool(REGB0)) {
3266 } else {
3267 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 586);
3268 }
3269 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3270 }
3271 /* ./parser//parser_prod.nit:588 */
3272 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[2])!=NIT_NULL);
3273 if (UNTAG_Bool(REGB0)) {
3274 } else {
3275 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 588);
3276 }
3277 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[2]);
3278 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));
3279 /* ./parser//parser_prod.nit:591 */
3280 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[2])!=NIT_NULL);
3281 if (UNTAG_Bool(REGB0)) {
3282 } else {
3283 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 591);
3284 }
3285 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[2]);
3286 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));
3287 /* ./parser//parser_prod.nit:594 */
3288 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[2])!=NIT_NULL);
3289 if (UNTAG_Bool(REGB0)) {
3290 } else {
3291 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 594);
3292 }
3293 fra.me.REG[2] = ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[2]);
3294 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___visit_all_3));
3295 stack_frame_head = fra.me.prev;
3296 return;
3297 }
3298 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){
3299 struct {struct stack_frame_t me;} fra;
3300 fun_t CREG[1];
3301 val_t tmp;
3302 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3303 fra.me.file = LOCATE_parser___parser_prod;
3304 fra.me.line = 0;
3305 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
3306 fra.me.has_broke = 0;
3307 fra.me.REG_size = 1;
3308 fra.me.nitni_local_ref_head = NULL;
3309 fra.me.REG[0] = NIT_NULL;
3310 fra.me.closure_ctx = closctx_param;
3311 fra.me.closure_funs = CREG;
3312 fra.me.REG[0] = p0;
3313 CREG[0] = clos_fun0;
3314 /* ./parser//parser_prod.nit:589 */
3315 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3316 stack_frame_head = fra.me.prev;
3317 return;
3318 }
3319 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){
3320 struct {struct stack_frame_t me;} fra;
3321 fun_t CREG[1];
3322 val_t tmp;
3323 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3324 fra.me.file = LOCATE_parser___parser_prod;
3325 fra.me.line = 0;
3326 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
3327 fra.me.has_broke = 0;
3328 fra.me.REG_size = 1;
3329 fra.me.nitni_local_ref_head = NULL;
3330 fra.me.REG[0] = NIT_NULL;
3331 fra.me.closure_ctx = closctx_param;
3332 fra.me.closure_funs = CREG;
3333 fra.me.REG[0] = p0;
3334 CREG[0] = clos_fun0;
3335 /* ./parser//parser_prod.nit:592 */
3336 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3337 stack_frame_head = fra.me.prev;
3338 return;
3339 }
3340 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){
3341 struct {struct stack_frame_t me;} fra;
3342 fun_t CREG[1];
3343 val_t tmp;
3344 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3345 fra.me.file = LOCATE_parser___parser_prod;
3346 fra.me.line = 0;
3347 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
3348 fra.me.has_broke = 0;
3349 fra.me.REG_size = 1;
3350 fra.me.nitni_local_ref_head = NULL;
3351 fra.me.REG[0] = NIT_NULL;
3352 fra.me.closure_ctx = closctx_param;
3353 fra.me.closure_funs = CREG;
3354 fra.me.REG[0] = p0;
3355 CREG[0] = clos_fun0;
3356 /* ./parser//parser_prod.nit:595 */
3357 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3358 stack_frame_head = fra.me.prev;
3359 return;
3360 }
3361 void parser___parser_prod___ATopClassdef___empty_init(val_t p0, int* init_table){
3362 int itpos19 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATopClassdef].i;
3363 struct {struct stack_frame_t me;} fra;
3364 val_t tmp;
3365 if (init_table[itpos19]) return;
3366 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3367 fra.me.file = LOCATE_parser___parser_prod;
3368 fra.me.line = 600;
3369 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___empty_init;
3370 fra.me.has_broke = 0;
3371 fra.me.REG_size = 1;
3372 fra.me.nitni_local_ref_head = NULL;
3373 fra.me.REG[0] = NIT_NULL;
3374 fra.me.REG[0] = p0;
3375 stack_frame_head = fra.me.prev;
3376 init_table[itpos19] = 1;
3377 return;
3378 }
3379 void parser___parser_prod___ATopClassdef___init_atopclassdef(val_t p0, val_t p1, int* init_table){
3380 int itpos20 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATopClassdef].i;
3381 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3382 val_t tmp;
3383 if (init_table[itpos20]) return;
3384 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3385 fra.me.file = LOCATE_parser___parser_prod;
3386 fra.me.line = 602;
3387 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___init_atopclassdef;
3388 fra.me.has_broke = 0;
3389 fra.me.REG_size = 2;
3390 fra.me.nitni_local_ref_head = NULL;
3391 fra.me.REG[0] = NIT_NULL;
3392 fra.me.REG[1] = NIT_NULL;
3393 fra.me.REG[0] = p0;
3394 fra.me.REG[1] = p1;
3395 /* ./parser//parser_prod.nit:606 */
3396 CALL_parser___parser_prod___ATopClassdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
3397 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));
3398 stack_frame_head = fra.me.prev;
3399 init_table[itpos20] = 1;
3400 return;
3401 }
3402 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){
3403 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3404 val_t REGB0;
3405 fun_t CREG[1];
3406 val_t tmp;
3407 /* ./parser//parser_prod.nit:607 */
3408 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3409 fra.me.file = LOCATE_parser___parser_prod;
3410 fra.me.line = 0;
3411 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___init_atopclassdef;
3412 fra.me.has_broke = 0;
3413 fra.me.REG_size = 2;
3414 fra.me.nitni_local_ref_head = NULL;
3415 fra.me.REG[0] = NIT_NULL;
3416 fra.me.REG[1] = NIT_NULL;
3417 fra.me.closure_ctx = closctx_param;
3418 fra.me.closure_funs = CREG;
3419 fra.me.REG[0] = p0;
3420 CREG[0] = clos_fun0;
3421 /* ./parser//parser_prod.nit:608 */
3422 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
3423 if (UNTAG_Bool(REGB0)) {
3424 } else {
3425 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 608);
3426 }
3427 /* ./parser//parser_prod.nit:609 */
3428 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(closctx->REG[0])!=NIT_NULL);
3429 if (UNTAG_Bool(REGB0)) {
3430 } else {
3431 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 609);
3432 }
3433 fra.me.REG[1] = ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(closctx->REG[0]);
3434 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3435 /* ./parser//parser_prod.nit:610 */
3436 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
3437 stack_frame_head = fra.me.prev;
3438 return;
3439 }
3440 void parser___parser_prod___ATopClassdef___replace_child(val_t p0, val_t p1, val_t p2){
3441 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3442 val_t REGB0;
3443 val_t REGB1;
3444 val_t REGB2;
3445 val_t REGB3;
3446 val_t REGB4;
3447 val_t tmp;
3448 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3449 fra.me.file = LOCATE_parser___parser_prod;
3450 fra.me.line = 614;
3451 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___replace_child;
3452 fra.me.has_broke = 0;
3453 fra.me.REG_size = 4;
3454 fra.me.nitni_local_ref_head = NULL;
3455 fra.me.REG[0] = NIT_NULL;
3456 fra.me.REG[1] = NIT_NULL;
3457 fra.me.REG[2] = NIT_NULL;
3458 fra.me.REG[3] = NIT_NULL;
3459 fra.me.REG[0] = p0;
3460 fra.me.REG[1] = p1;
3461 fra.me.REG[2] = p2;
3462 /* ./parser//parser_prod.nit:616 */
3463 REGB0 = TAG_Int(0);
3464 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3465 if (UNTAG_Bool(REGB1)) {
3466 } else {
3467 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 616);
3468 }
3469 fra.me.REG[3] = ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
3470 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
3471 /* ./../lib/standard//kernel.nit:352 */
3472 while(1) {
3473 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3474 if (UNTAG_Bool(REGB2)) {
3475 } else {
3476 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3477 }
3478 /* ./../lib/standard//kernel.nit:232 */
3479 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3480 /* ./../lib/standard//kernel.nit:352 */
3481 if (UNTAG_Bool(REGB2)) {
3482 /* ./parser//parser_prod.nit:616 */
3483 REGB2 = REGB0;
3484 /* ./parser//parser_prod.nit:617 */
3485 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3486 if (UNTAG_Bool(REGB3)) {
3487 } else {
3488 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 617);
3489 }
3490 fra.me.REG[3] = ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
3491 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
3492 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3493 if (UNTAG_Bool(REGB3)) {
3494 } else {
3495 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3496 if (UNTAG_Bool(REGB4)) {
3497 REGB4 = TAG_Bool(false);
3498 REGB3 = REGB4;
3499 } else {
3500 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3501 REGB3 = REGB4;
3502 }
3503 }
3504 if (UNTAG_Bool(REGB3)) {
3505 /* ./parser//parser_prod.nit:618 */
3506 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3507 if (UNTAG_Bool(REGB3)) {
3508 } else {
3509 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3510 if (UNTAG_Bool(REGB4)) {
3511 REGB4 = TAG_Bool(false);
3512 REGB3 = REGB4;
3513 } else {
3514 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3515 REGB3 = REGB4;
3516 }
3517 }
3518 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3519 if (UNTAG_Bool(REGB3)) {
3520 /* ./parser//parser_prod.nit:619 */
3521 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*/;
3522 if (UNTAG_Bool(REGB3)) {
3523 } else {
3524 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 619);
3525 }
3526 /* ./parser//parser_prod.nit:620 */
3527 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3528 if (UNTAG_Bool(REGB3)) {
3529 } else {
3530 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 620);
3531 }
3532 fra.me.REG[3] = ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
3533 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3534 /* ./parser//parser_prod.nit:621 */
3535 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3536 if (UNTAG_Bool(REGB3)) {
3537 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 621);
3538 }
3539 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3540 } else {
3541 /* ./parser//parser_prod.nit:623 */
3542 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3543 if (UNTAG_Bool(REGB3)) {
3544 } else {
3545 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 623);
3546 }
3547 fra.me.REG[3] = ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
3548 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3549 }
3550 /* ./parser//parser_prod.nit:625 */
3551 goto label1;
3552 }
3553 /* ./../lib/standard//kernel.nit:354 */
3554 REGB2 = TAG_Int(1);
3555 /* ./../lib/standard//kernel.nit:235 */
3556 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3557 /* ./../lib/standard//kernel.nit:354 */
3558 REGB0 = REGB2;
3559 } else {
3560 /* ./../lib/standard//kernel.nit:352 */
3561 goto label2;
3562 }
3563 }
3564 label2: while(0);
3565 label1: while(0);
3566 stack_frame_head = fra.me.prev;
3567 return;
3568 }
3569 void parser___parser_prod___ATopClassdef___visit_all(val_t p0, val_t p1){
3570 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3571 val_t REGB0;
3572 val_t tmp;
3573 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3574 fra.me.file = LOCATE_parser___parser_prod;
3575 fra.me.line = 630;
3576 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___visit_all;
3577 fra.me.has_broke = 0;
3578 fra.me.REG_size = 2;
3579 fra.me.nitni_local_ref_head = NULL;
3580 fra.me.REG[0] = NIT_NULL;
3581 fra.me.REG[1] = NIT_NULL;
3582 fra.me.REG[0] = p0;
3583 fra.me.REG[1] = p1;
3584 /* ./parser//parser_prod.nit:632 */
3585 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3586 if (UNTAG_Bool(REGB0)) {
3587 } else {
3588 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 632);
3589 }
3590 fra.me.REG[0] = ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
3591 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));
3592 stack_frame_head = fra.me.prev;
3593 return;
3594 }
3595 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){
3596 struct {struct stack_frame_t me;} fra;
3597 fun_t CREG[1];
3598 val_t tmp;
3599 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3600 fra.me.file = LOCATE_parser___parser_prod;
3601 fra.me.line = 0;
3602 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___visit_all;
3603 fra.me.has_broke = 0;
3604 fra.me.REG_size = 1;
3605 fra.me.nitni_local_ref_head = NULL;
3606 fra.me.REG[0] = NIT_NULL;
3607 fra.me.closure_ctx = closctx_param;
3608 fra.me.closure_funs = CREG;
3609 fra.me.REG[0] = p0;
3610 CREG[0] = clos_fun0;
3611 /* ./parser//parser_prod.nit:633 */
3612 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3613 stack_frame_head = fra.me.prev;
3614 return;
3615 }
3616 void parser___parser_prod___AMainClassdef___empty_init(val_t p0, int* init_table){
3617 int itpos21 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainClassdef].i;
3618 struct {struct stack_frame_t me;} fra;
3619 val_t tmp;
3620 if (init_table[itpos21]) return;
3621 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3622 fra.me.file = LOCATE_parser___parser_prod;
3623 fra.me.line = 638;
3624 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___empty_init;
3625 fra.me.has_broke = 0;
3626 fra.me.REG_size = 1;
3627 fra.me.nitni_local_ref_head = NULL;
3628 fra.me.REG[0] = NIT_NULL;
3629 fra.me.REG[0] = p0;
3630 stack_frame_head = fra.me.prev;
3631 init_table[itpos21] = 1;
3632 return;
3633 }
3634 void parser___parser_prod___AMainClassdef___init_amainclassdef(val_t p0, val_t p1, int* init_table){
3635 int itpos22 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainClassdef].i;
3636 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3637 val_t tmp;
3638 if (init_table[itpos22]) return;
3639 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3640 fra.me.file = LOCATE_parser___parser_prod;
3641 fra.me.line = 640;
3642 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___init_amainclassdef;
3643 fra.me.has_broke = 0;
3644 fra.me.REG_size = 2;
3645 fra.me.nitni_local_ref_head = NULL;
3646 fra.me.REG[0] = NIT_NULL;
3647 fra.me.REG[1] = NIT_NULL;
3648 fra.me.REG[0] = p0;
3649 fra.me.REG[1] = p1;
3650 /* ./parser//parser_prod.nit:644 */
3651 CALL_parser___parser_prod___AMainClassdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
3652 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));
3653 stack_frame_head = fra.me.prev;
3654 init_table[itpos22] = 1;
3655 return;
3656 }
3657 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){
3658 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3659 val_t REGB0;
3660 fun_t CREG[1];
3661 val_t tmp;
3662 /* ./parser//parser_prod.nit:645 */
3663 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3664 fra.me.file = LOCATE_parser___parser_prod;
3665 fra.me.line = 0;
3666 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___init_amainclassdef;
3667 fra.me.has_broke = 0;
3668 fra.me.REG_size = 2;
3669 fra.me.nitni_local_ref_head = NULL;
3670 fra.me.REG[0] = NIT_NULL;
3671 fra.me.REG[1] = NIT_NULL;
3672 fra.me.closure_ctx = closctx_param;
3673 fra.me.closure_funs = CREG;
3674 fra.me.REG[0] = p0;
3675 CREG[0] = clos_fun0;
3676 /* ./parser//parser_prod.nit:646 */
3677 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
3678 if (UNTAG_Bool(REGB0)) {
3679 } else {
3680 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 646);
3681 }
3682 /* ./parser//parser_prod.nit:647 */
3683 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(closctx->REG[0])!=NIT_NULL);
3684 if (UNTAG_Bool(REGB0)) {
3685 } else {
3686 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 647);
3687 }
3688 fra.me.REG[1] = ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(closctx->REG[0]);
3689 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3690 /* ./parser//parser_prod.nit:648 */
3691 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
3692 stack_frame_head = fra.me.prev;
3693 return;
3694 }
3695 void parser___parser_prod___AMainClassdef___replace_child(val_t p0, val_t p1, val_t p2){
3696 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3697 val_t REGB0;
3698 val_t REGB1;
3699 val_t REGB2;
3700 val_t REGB3;
3701 val_t REGB4;
3702 val_t tmp;
3703 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3704 fra.me.file = LOCATE_parser___parser_prod;
3705 fra.me.line = 652;
3706 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___replace_child;
3707 fra.me.has_broke = 0;
3708 fra.me.REG_size = 4;
3709 fra.me.nitni_local_ref_head = NULL;
3710 fra.me.REG[0] = NIT_NULL;
3711 fra.me.REG[1] = NIT_NULL;
3712 fra.me.REG[2] = NIT_NULL;
3713 fra.me.REG[3] = NIT_NULL;
3714 fra.me.REG[0] = p0;
3715 fra.me.REG[1] = p1;
3716 fra.me.REG[2] = p2;
3717 /* ./parser//parser_prod.nit:654 */
3718 REGB0 = TAG_Int(0);
3719 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3720 if (UNTAG_Bool(REGB1)) {
3721 } else {
3722 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 654);
3723 }
3724 fra.me.REG[3] = ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
3725 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
3726 /* ./../lib/standard//kernel.nit:352 */
3727 while(1) {
3728 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3729 if (UNTAG_Bool(REGB2)) {
3730 } else {
3731 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3732 }
3733 /* ./../lib/standard//kernel.nit:232 */
3734 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3735 /* ./../lib/standard//kernel.nit:352 */
3736 if (UNTAG_Bool(REGB2)) {
3737 /* ./parser//parser_prod.nit:654 */
3738 REGB2 = REGB0;
3739 /* ./parser//parser_prod.nit:655 */
3740 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3741 if (UNTAG_Bool(REGB3)) {
3742 } else {
3743 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 655);
3744 }
3745 fra.me.REG[3] = ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
3746 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
3747 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3748 if (UNTAG_Bool(REGB3)) {
3749 } else {
3750 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3751 if (UNTAG_Bool(REGB4)) {
3752 REGB4 = TAG_Bool(false);
3753 REGB3 = REGB4;
3754 } else {
3755 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3756 REGB3 = REGB4;
3757 }
3758 }
3759 if (UNTAG_Bool(REGB3)) {
3760 /* ./parser//parser_prod.nit:656 */
3761 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3762 if (UNTAG_Bool(REGB3)) {
3763 } else {
3764 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3765 if (UNTAG_Bool(REGB4)) {
3766 REGB4 = TAG_Bool(false);
3767 REGB3 = REGB4;
3768 } else {
3769 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3770 REGB3 = REGB4;
3771 }
3772 }
3773 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3774 if (UNTAG_Bool(REGB3)) {
3775 /* ./parser//parser_prod.nit:657 */
3776 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*/;
3777 if (UNTAG_Bool(REGB3)) {
3778 } else {
3779 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 657);
3780 }
3781 /* ./parser//parser_prod.nit:658 */
3782 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3783 if (UNTAG_Bool(REGB3)) {
3784 } else {
3785 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 658);
3786 }
3787 fra.me.REG[3] = ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
3788 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3789 /* ./parser//parser_prod.nit:659 */
3790 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3791 if (UNTAG_Bool(REGB3)) {
3792 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 659);
3793 }
3794 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3795 } else {
3796 /* ./parser//parser_prod.nit:661 */
3797 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3798 if (UNTAG_Bool(REGB3)) {
3799 } else {
3800 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 661);
3801 }
3802 fra.me.REG[3] = ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
3803 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3804 }
3805 /* ./parser//parser_prod.nit:663 */
3806 goto label1;
3807 }
3808 /* ./../lib/standard//kernel.nit:354 */
3809 REGB2 = TAG_Int(1);
3810 /* ./../lib/standard//kernel.nit:235 */
3811 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3812 /* ./../lib/standard//kernel.nit:354 */
3813 REGB0 = REGB2;
3814 } else {
3815 /* ./../lib/standard//kernel.nit:352 */
3816 goto label2;
3817 }
3818 }
3819 label2: while(0);
3820 label1: while(0);
3821 stack_frame_head = fra.me.prev;
3822 return;
3823 }
3824 void parser___parser_prod___AMainClassdef___visit_all(val_t p0, val_t p1){
3825 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3826 val_t REGB0;
3827 val_t tmp;
3828 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3829 fra.me.file = LOCATE_parser___parser_prod;
3830 fra.me.line = 668;
3831 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___visit_all;
3832 fra.me.has_broke = 0;
3833 fra.me.REG_size = 2;
3834 fra.me.nitni_local_ref_head = NULL;
3835 fra.me.REG[0] = NIT_NULL;
3836 fra.me.REG[1] = NIT_NULL;
3837 fra.me.REG[0] = p0;
3838 fra.me.REG[1] = p1;
3839 /* ./parser//parser_prod.nit:670 */
3840 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3841 if (UNTAG_Bool(REGB0)) {
3842 } else {
3843 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 670);
3844 }
3845 fra.me.REG[0] = ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
3846 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));
3847 stack_frame_head = fra.me.prev;
3848 return;
3849 }
3850 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){
3851 struct {struct stack_frame_t me;} fra;
3852 fun_t CREG[1];
3853 val_t tmp;
3854 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3855 fra.me.file = LOCATE_parser___parser_prod;
3856 fra.me.line = 0;
3857 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___visit_all;
3858 fra.me.has_broke = 0;
3859 fra.me.REG_size = 1;
3860 fra.me.nitni_local_ref_head = NULL;
3861 fra.me.REG[0] = NIT_NULL;
3862 fra.me.closure_ctx = closctx_param;
3863 fra.me.closure_funs = CREG;
3864 fra.me.REG[0] = p0;
3865 CREG[0] = clos_fun0;
3866 /* ./parser//parser_prod.nit:671 */
3867 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3868 stack_frame_head = fra.me.prev;
3869 return;
3870 }
3871 void parser___parser_prod___AConcreteClasskind___empty_init(val_t p0, int* init_table){
3872 int itpos23 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteClasskind].i;
3873 struct {struct stack_frame_t me;} fra;
3874 val_t tmp;
3875 if (init_table[itpos23]) return;
3876 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3877 fra.me.file = LOCATE_parser___parser_prod;
3878 fra.me.line = 676;
3879 fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___empty_init;
3880 fra.me.has_broke = 0;
3881 fra.me.REG_size = 1;
3882 fra.me.nitni_local_ref_head = NULL;
3883 fra.me.REG[0] = NIT_NULL;
3884 fra.me.REG[0] = p0;
3885 stack_frame_head = fra.me.prev;
3886 init_table[itpos23] = 1;
3887 return;
3888 }
3889 void parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind(val_t p0, val_t p1, int* init_table){
3890 int itpos24 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteClasskind].i;
3891 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3892 val_t REGB0;
3893 val_t tmp;
3894 if (init_table[itpos24]) return;
3895 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3896 fra.me.file = LOCATE_parser___parser_prod;
3897 fra.me.line = 678;
3898 fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind;
3899 fra.me.has_broke = 0;
3900 fra.me.REG_size = 3;
3901 fra.me.nitni_local_ref_head = NULL;
3902 fra.me.REG[0] = NIT_NULL;
3903 fra.me.REG[1] = NIT_NULL;
3904 fra.me.REG[2] = NIT_NULL;
3905 fra.me.REG[0] = p0;
3906 fra.me.REG[1] = p1;
3907 /* ./parser//parser_prod.nit:678 */
3908 fra.me.REG[2] = fra.me.REG[0];
3909 /* ./parser//parser_prod.nit:682 */
3910 CALL_parser___parser_prod___AConcreteClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
3911 /* ./parser//parser_prod.nit:683 */
3912 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
3913 if (UNTAG_Bool(REGB0)) {
3914 } else {
3915 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 683);
3916 }
3917 ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[2]) = fra.me.REG[1];
3918 /* ./parser//parser_prod.nit:684 */
3919 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3920 if (UNTAG_Bool(REGB0)) {
3921 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 684);
3922 }
3923 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3924 stack_frame_head = fra.me.prev;
3925 init_table[itpos24] = 1;
3926 return;
3927 }
3928 void parser___parser_prod___AConcreteClasskind___replace_child(val_t p0, val_t p1, val_t p2){
3929 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3930 val_t REGB0;
3931 val_t REGB1;
3932 val_t tmp;
3933 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3934 fra.me.file = LOCATE_parser___parser_prod;
3935 fra.me.line = 687;
3936 fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___replace_child;
3937 fra.me.has_broke = 0;
3938 fra.me.REG_size = 4;
3939 fra.me.nitni_local_ref_head = NULL;
3940 fra.me.REG[0] = NIT_NULL;
3941 fra.me.REG[1] = NIT_NULL;
3942 fra.me.REG[2] = NIT_NULL;
3943 fra.me.REG[3] = NIT_NULL;
3944 fra.me.REG[0] = p0;
3945 fra.me.REG[1] = p1;
3946 fra.me.REG[2] = p2;
3947 /* ./parser//parser_prod.nit:689 */
3948 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
3949 if (UNTAG_Bool(REGB0)) {
3950 } else {
3951 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 689);
3952 }
3953 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]);
3954 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
3955 if (UNTAG_Bool(REGB0)) {
3956 } else {
3957 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3958 REGB0 = REGB1;
3959 }
3960 if (UNTAG_Bool(REGB0)) {
3961 /* ./parser//parser_prod.nit:690 */
3962 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3963 if (UNTAG_Bool(REGB0)) {
3964 } else {
3965 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3966 if (UNTAG_Bool(REGB1)) {
3967 REGB1 = TAG_Bool(false);
3968 REGB0 = REGB1;
3969 } else {
3970 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3971 REGB0 = REGB1;
3972 }
3973 }
3974 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3975 if (UNTAG_Bool(REGB0)) {
3976 /* ./parser//parser_prod.nit:691 */
3977 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3978 if (UNTAG_Bool(REGB0)) {
3979 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 691);
3980 }
3981 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3982 /* ./parser//parser_prod.nit:692 */
3983 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*/;
3984 if (UNTAG_Bool(REGB0)) {
3985 } else {
3986 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 692);
3987 }
3988 /* ./parser//parser_prod.nit:693 */
3989 ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]) = fra.me.REG[2];
3990 } else {
3991 /* ./parser//parser_prod.nit:695 */
3992 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 695);
3993 }
3994 /* ./parser//parser_prod.nit:697 */
3995 goto label1;
3996 }
3997 label1: while(0);
3998 stack_frame_head = fra.me.prev;
3999 return;
4000 }
4001 void parser___parser_prod___AConcreteClasskind___visit_all(val_t p0, val_t p1){
4002 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4003 val_t REGB0;
4004 val_t tmp;
4005 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4006 fra.me.file = LOCATE_parser___parser_prod;
4007 fra.me.line = 701;
4008 fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___visit_all;
4009 fra.me.has_broke = 0;
4010 fra.me.REG_size = 2;
4011 fra.me.nitni_local_ref_head = NULL;
4012 fra.me.REG[0] = NIT_NULL;
4013 fra.me.REG[1] = NIT_NULL;
4014 fra.me.REG[0] = p0;
4015 fra.me.REG[1] = p1;
4016 /* ./parser//parser_prod.nit:703 */
4017 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
4018 if (UNTAG_Bool(REGB0)) {
4019 } else {
4020 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 703);
4021 }
4022 fra.me.REG[0] = ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]);
4023 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4024 stack_frame_head = fra.me.prev;
4025 return;
4026 }
4027 void parser___parser_prod___AAbstractClasskind___empty_init(val_t p0, int* init_table){
4028 int itpos25 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbstractClasskind].i;
4029 struct {struct stack_frame_t me;} fra;
4030 val_t tmp;
4031 if (init_table[itpos25]) return;
4032 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4033 fra.me.file = LOCATE_parser___parser_prod;
4034 fra.me.line = 707;
4035 fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___empty_init;
4036 fra.me.has_broke = 0;
4037 fra.me.REG_size = 1;
4038 fra.me.nitni_local_ref_head = NULL;
4039 fra.me.REG[0] = NIT_NULL;
4040 fra.me.REG[0] = p0;
4041 stack_frame_head = fra.me.prev;
4042 init_table[itpos25] = 1;
4043 return;
4044 }
4045 void parser___parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t p0, val_t p1, val_t p2, int* init_table){
4046 int itpos26 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbstractClasskind].i;
4047 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4048 val_t REGB0;
4049 val_t tmp;
4050 if (init_table[itpos26]) return;
4051 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4052 fra.me.file = LOCATE_parser___parser_prod;
4053 fra.me.line = 709;
4054 fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___init_aabstractclasskind;
4055 fra.me.has_broke = 0;
4056 fra.me.REG_size = 4;
4057 fra.me.nitni_local_ref_head = NULL;
4058 fra.me.REG[0] = NIT_NULL;
4059 fra.me.REG[1] = NIT_NULL;
4060 fra.me.REG[2] = NIT_NULL;
4061 fra.me.REG[3] = NIT_NULL;
4062 fra.me.REG[0] = p0;
4063 fra.me.REG[1] = p1;
4064 fra.me.REG[2] = p2;
4065 /* ./parser//parser_prod.nit:709 */
4066 fra.me.REG[3] = fra.me.REG[0];
4067 /* ./parser//parser_prod.nit:714 */
4068 CALL_parser___parser_prod___AAbstractClasskind___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
4069 /* ./parser//parser_prod.nit:715 */
4070 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4071 if (UNTAG_Bool(REGB0)) {
4072 } else {
4073 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 715);
4074 }
4075 ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[3]) = fra.me.REG[1];
4076 /* ./parser//parser_prod.nit:716 */
4077 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4078 if (UNTAG_Bool(REGB0)) {
4079 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 716);
4080 }
4081 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4082 /* ./parser//parser_prod.nit:717 */
4083 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
4084 if (UNTAG_Bool(REGB0)) {
4085 } else {
4086 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 717);
4087 }
4088 ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[3]) = fra.me.REG[2];
4089 /* ./parser//parser_prod.nit:718 */
4090 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4091 if (UNTAG_Bool(REGB0)) {
4092 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 718);
4093 }
4094 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4095 stack_frame_head = fra.me.prev;
4096 init_table[itpos26] = 1;
4097 return;
4098 }
4099 void parser___parser_prod___AAbstractClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4100 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4101 val_t REGB0;
4102 val_t REGB1;
4103 val_t tmp;
4104 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4105 fra.me.file = LOCATE_parser___parser_prod;
4106 fra.me.line = 721;
4107 fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___replace_child;
4108 fra.me.has_broke = 0;
4109 fra.me.REG_size = 4;
4110 fra.me.nitni_local_ref_head = NULL;
4111 fra.me.REG[0] = NIT_NULL;
4112 fra.me.REG[1] = NIT_NULL;
4113 fra.me.REG[2] = NIT_NULL;
4114 fra.me.REG[3] = NIT_NULL;
4115 fra.me.REG[0] = p0;
4116 fra.me.REG[1] = p1;
4117 fra.me.REG[2] = p2;
4118 /* ./parser//parser_prod.nit:723 */
4119 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0])!=NIT_NULL);
4120 if (UNTAG_Bool(REGB0)) {
4121 } else {
4122 nit_abort("Uninitialized attribute %s", "_n_kwabstract", LOCATE_parser___parser_prod, 723);
4123 }
4124 fra.me.REG[3] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]);
4125 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4126 if (UNTAG_Bool(REGB0)) {
4127 } else {
4128 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4129 REGB0 = REGB1;
4130 }
4131 if (UNTAG_Bool(REGB0)) {
4132 /* ./parser//parser_prod.nit:724 */
4133 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4134 if (UNTAG_Bool(REGB0)) {
4135 } else {
4136 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4137 if (UNTAG_Bool(REGB1)) {
4138 REGB1 = TAG_Bool(false);
4139 REGB0 = REGB1;
4140 } else {
4141 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4142 REGB0 = REGB1;
4143 }
4144 }
4145 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4146 if (UNTAG_Bool(REGB0)) {
4147 /* ./parser//parser_prod.nit:725 */
4148 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4149 if (UNTAG_Bool(REGB0)) {
4150 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 725);
4151 }
4152 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4153 /* ./parser//parser_prod.nit:726 */
4154 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*/;
4155 if (UNTAG_Bool(REGB0)) {
4156 } else {
4157 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 726);
4158 }
4159 /* ./parser//parser_prod.nit:727 */
4160 ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]) = fra.me.REG[2];
4161 } else {
4162 /* ./parser//parser_prod.nit:729 */
4163 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 729);
4164 }
4165 /* ./parser//parser_prod.nit:731 */
4166 goto label1;
4167 }
4168 /* ./parser//parser_prod.nit:733 */
4169 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
4170 if (UNTAG_Bool(REGB0)) {
4171 } else {
4172 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 733);
4173 }
4174 fra.me.REG[3] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]);
4175 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4176 if (UNTAG_Bool(REGB0)) {
4177 } else {
4178 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4179 REGB0 = REGB1;
4180 }
4181 if (UNTAG_Bool(REGB0)) {
4182 /* ./parser//parser_prod.nit:734 */
4183 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4184 if (UNTAG_Bool(REGB0)) {
4185 } else {
4186 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4187 if (UNTAG_Bool(REGB1)) {
4188 REGB1 = TAG_Bool(false);
4189 REGB0 = REGB1;
4190 } else {
4191 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4192 REGB0 = REGB1;
4193 }
4194 }
4195 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4196 if (UNTAG_Bool(REGB0)) {
4197 /* ./parser//parser_prod.nit:735 */
4198 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4199 if (UNTAG_Bool(REGB0)) {
4200 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 735);
4201 }
4202 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4203 /* ./parser//parser_prod.nit:736 */
4204 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*/;
4205 if (UNTAG_Bool(REGB0)) {
4206 } else {
4207 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 736);
4208 }
4209 /* ./parser//parser_prod.nit:737 */
4210 ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]) = fra.me.REG[2];
4211 } else {
4212 /* ./parser//parser_prod.nit:739 */
4213 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 739);
4214 }
4215 /* ./parser//parser_prod.nit:741 */
4216 goto label1;
4217 }
4218 label1: while(0);
4219 stack_frame_head = fra.me.prev;
4220 return;
4221 }
4222 void parser___parser_prod___AAbstractClasskind___visit_all(val_t p0, val_t p1){
4223 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4224 val_t REGB0;
4225 val_t tmp;
4226 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4227 fra.me.file = LOCATE_parser___parser_prod;
4228 fra.me.line = 745;
4229 fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___visit_all;
4230 fra.me.has_broke = 0;
4231 fra.me.REG_size = 3;
4232 fra.me.nitni_local_ref_head = NULL;
4233 fra.me.REG[0] = NIT_NULL;
4234 fra.me.REG[1] = NIT_NULL;
4235 fra.me.REG[2] = NIT_NULL;
4236 fra.me.REG[0] = p0;
4237 fra.me.REG[1] = p1;
4238 /* ./parser//parser_prod.nit:747 */
4239 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0])!=NIT_NULL);
4240 if (UNTAG_Bool(REGB0)) {
4241 } else {
4242 nit_abort("Uninitialized attribute %s", "_n_kwabstract", LOCATE_parser___parser_prod, 747);
4243 }
4244 fra.me.REG[2] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]);
4245 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4246 /* ./parser//parser_prod.nit:748 */
4247 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
4248 if (UNTAG_Bool(REGB0)) {
4249 } else {
4250 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 748);
4251 }
4252 fra.me.REG[0] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]);
4253 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4254 stack_frame_head = fra.me.prev;
4255 return;
4256 }
4257 void parser___parser_prod___AInterfaceClasskind___empty_init(val_t p0, int* init_table){
4258 int itpos27 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInterfaceClasskind].i;
4259 struct {struct stack_frame_t me;} fra;
4260 val_t tmp;
4261 if (init_table[itpos27]) return;
4262 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4263 fra.me.file = LOCATE_parser___parser_prod;
4264 fra.me.line = 752;
4265 fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___empty_init;
4266 fra.me.has_broke = 0;
4267 fra.me.REG_size = 1;
4268 fra.me.nitni_local_ref_head = NULL;
4269 fra.me.REG[0] = NIT_NULL;
4270 fra.me.REG[0] = p0;
4271 stack_frame_head = fra.me.prev;
4272 init_table[itpos27] = 1;
4273 return;
4274 }
4275 void parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t p0, val_t p1, int* init_table){
4276 int itpos28 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInterfaceClasskind].i;
4277 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4278 val_t REGB0;
4279 val_t tmp;
4280 if (init_table[itpos28]) return;
4281 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4282 fra.me.file = LOCATE_parser___parser_prod;
4283 fra.me.line = 754;
4284 fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind;
4285 fra.me.has_broke = 0;
4286 fra.me.REG_size = 3;
4287 fra.me.nitni_local_ref_head = NULL;
4288 fra.me.REG[0] = NIT_NULL;
4289 fra.me.REG[1] = NIT_NULL;
4290 fra.me.REG[2] = NIT_NULL;
4291 fra.me.REG[0] = p0;
4292 fra.me.REG[1] = p1;
4293 /* ./parser//parser_prod.nit:754 */
4294 fra.me.REG[2] = fra.me.REG[0];
4295 /* ./parser//parser_prod.nit:758 */
4296 CALL_parser___parser_prod___AInterfaceClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
4297 /* ./parser//parser_prod.nit:759 */
4298 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4299 if (UNTAG_Bool(REGB0)) {
4300 } else {
4301 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 759);
4302 }
4303 ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[2]) = fra.me.REG[1];
4304 /* ./parser//parser_prod.nit:760 */
4305 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4306 if (UNTAG_Bool(REGB0)) {
4307 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 760);
4308 }
4309 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4310 stack_frame_head = fra.me.prev;
4311 init_table[itpos28] = 1;
4312 return;
4313 }
4314 void parser___parser_prod___AInterfaceClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4315 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4316 val_t REGB0;
4317 val_t REGB1;
4318 val_t tmp;
4319 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4320 fra.me.file = LOCATE_parser___parser_prod;
4321 fra.me.line = 763;
4322 fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___replace_child;
4323 fra.me.has_broke = 0;
4324 fra.me.REG_size = 4;
4325 fra.me.nitni_local_ref_head = NULL;
4326 fra.me.REG[0] = NIT_NULL;
4327 fra.me.REG[1] = NIT_NULL;
4328 fra.me.REG[2] = NIT_NULL;
4329 fra.me.REG[3] = NIT_NULL;
4330 fra.me.REG[0] = p0;
4331 fra.me.REG[1] = p1;
4332 fra.me.REG[2] = p2;
4333 /* ./parser//parser_prod.nit:765 */
4334 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0])!=NIT_NULL);
4335 if (UNTAG_Bool(REGB0)) {
4336 } else {
4337 nit_abort("Uninitialized attribute %s", "_n_kwinterface", LOCATE_parser___parser_prod, 765);
4338 }
4339 fra.me.REG[3] = ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]);
4340 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4341 if (UNTAG_Bool(REGB0)) {
4342 } else {
4343 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4344 REGB0 = REGB1;
4345 }
4346 if (UNTAG_Bool(REGB0)) {
4347 /* ./parser//parser_prod.nit:766 */
4348 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4349 if (UNTAG_Bool(REGB0)) {
4350 } else {
4351 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4352 if (UNTAG_Bool(REGB1)) {
4353 REGB1 = TAG_Bool(false);
4354 REGB0 = REGB1;
4355 } else {
4356 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4357 REGB0 = REGB1;
4358 }
4359 }
4360 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4361 if (UNTAG_Bool(REGB0)) {
4362 /* ./parser//parser_prod.nit:767 */
4363 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4364 if (UNTAG_Bool(REGB0)) {
4365 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 767);
4366 }
4367 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4368 /* ./parser//parser_prod.nit:768 */
4369 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*/;
4370 if (UNTAG_Bool(REGB0)) {
4371 } else {
4372 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 768);
4373 }
4374 /* ./parser//parser_prod.nit:769 */
4375 ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]) = fra.me.REG[2];
4376 } else {
4377 /* ./parser//parser_prod.nit:771 */
4378 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 771);
4379 }
4380 /* ./parser//parser_prod.nit:773 */
4381 goto label1;
4382 }
4383 label1: while(0);
4384 stack_frame_head = fra.me.prev;
4385 return;
4386 }
4387 void parser___parser_prod___AInterfaceClasskind___visit_all(val_t p0, val_t p1){
4388 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4389 val_t REGB0;
4390 val_t tmp;
4391 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4392 fra.me.file = LOCATE_parser___parser_prod;
4393 fra.me.line = 777;
4394 fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___visit_all;
4395 fra.me.has_broke = 0;
4396 fra.me.REG_size = 2;
4397 fra.me.nitni_local_ref_head = NULL;
4398 fra.me.REG[0] = NIT_NULL;
4399 fra.me.REG[1] = NIT_NULL;
4400 fra.me.REG[0] = p0;
4401 fra.me.REG[1] = p1;
4402 /* ./parser//parser_prod.nit:779 */
4403 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0])!=NIT_NULL);
4404 if (UNTAG_Bool(REGB0)) {
4405 } else {
4406 nit_abort("Uninitialized attribute %s", "_n_kwinterface", LOCATE_parser___parser_prod, 779);
4407 }
4408 fra.me.REG[0] = ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]);
4409 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4410 stack_frame_head = fra.me.prev;
4411 return;
4412 }
4413 void parser___parser_prod___AEnumClasskind___empty_init(val_t p0, int* init_table){
4414 int itpos29 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEnumClasskind].i;
4415 struct {struct stack_frame_t me;} fra;
4416 val_t tmp;
4417 if (init_table[itpos29]) return;
4418 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4419 fra.me.file = LOCATE_parser___parser_prod;
4420 fra.me.line = 783;
4421 fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___empty_init;
4422 fra.me.has_broke = 0;
4423 fra.me.REG_size = 1;
4424 fra.me.nitni_local_ref_head = NULL;
4425 fra.me.REG[0] = NIT_NULL;
4426 fra.me.REG[0] = p0;
4427 stack_frame_head = fra.me.prev;
4428 init_table[itpos29] = 1;
4429 return;
4430 }
4431 void parser___parser_prod___AEnumClasskind___init_aenumclasskind(val_t p0, val_t p1, int* init_table){
4432 int itpos30 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEnumClasskind].i;
4433 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4434 val_t REGB0;
4435 val_t tmp;
4436 if (init_table[itpos30]) return;
4437 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4438 fra.me.file = LOCATE_parser___parser_prod;
4439 fra.me.line = 785;
4440 fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___init_aenumclasskind;
4441 fra.me.has_broke = 0;
4442 fra.me.REG_size = 3;
4443 fra.me.nitni_local_ref_head = NULL;
4444 fra.me.REG[0] = NIT_NULL;
4445 fra.me.REG[1] = NIT_NULL;
4446 fra.me.REG[2] = NIT_NULL;
4447 fra.me.REG[0] = p0;
4448 fra.me.REG[1] = p1;
4449 /* ./parser//parser_prod.nit:785 */
4450 fra.me.REG[2] = fra.me.REG[0];
4451 /* ./parser//parser_prod.nit:789 */
4452 CALL_parser___parser_prod___AEnumClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
4453 /* ./parser//parser_prod.nit:790 */
4454 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4455 if (UNTAG_Bool(REGB0)) {
4456 } else {
4457 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 790);
4458 }
4459 ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[2]) = fra.me.REG[1];
4460 /* ./parser//parser_prod.nit:791 */
4461 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4462 if (UNTAG_Bool(REGB0)) {
4463 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 791);
4464 }
4465 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4466 stack_frame_head = fra.me.prev;
4467 init_table[itpos30] = 1;
4468 return;
4469 }
4470 void parser___parser_prod___AEnumClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4471 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4472 val_t REGB0;
4473 val_t REGB1;
4474 val_t tmp;
4475 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4476 fra.me.file = LOCATE_parser___parser_prod;
4477 fra.me.line = 794;
4478 fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___replace_child;
4479 fra.me.has_broke = 0;
4480 fra.me.REG_size = 4;
4481 fra.me.nitni_local_ref_head = NULL;
4482 fra.me.REG[0] = NIT_NULL;
4483 fra.me.REG[1] = NIT_NULL;
4484 fra.me.REG[2] = NIT_NULL;
4485 fra.me.REG[3] = NIT_NULL;
4486 fra.me.REG[0] = p0;
4487 fra.me.REG[1] = p1;
4488 fra.me.REG[2] = p2;
4489 /* ./parser//parser_prod.nit:796 */
4490 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0])!=NIT_NULL);
4491 if (UNTAG_Bool(REGB0)) {
4492 } else {
4493 nit_abort("Uninitialized attribute %s", "_n_kwenum", LOCATE_parser___parser_prod, 796);
4494 }
4495 fra.me.REG[3] = ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]);
4496 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4497 if (UNTAG_Bool(REGB0)) {
4498 } else {
4499 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4500 REGB0 = REGB1;
4501 }
4502 if (UNTAG_Bool(REGB0)) {
4503 /* ./parser//parser_prod.nit:797 */
4504 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4505 if (UNTAG_Bool(REGB0)) {
4506 } else {
4507 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4508 if (UNTAG_Bool(REGB1)) {
4509 REGB1 = TAG_Bool(false);
4510 REGB0 = REGB1;
4511 } else {
4512 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4513 REGB0 = REGB1;
4514 }
4515 }
4516 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4517 if (UNTAG_Bool(REGB0)) {
4518 /* ./parser//parser_prod.nit:798 */
4519 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4520 if (UNTAG_Bool(REGB0)) {
4521 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 798);
4522 }
4523 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4524 /* ./parser//parser_prod.nit:799 */
4525 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*/;
4526 if (UNTAG_Bool(REGB0)) {
4527 } else {
4528 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 799);
4529 }
4530 /* ./parser//parser_prod.nit:800 */
4531 ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]) = fra.me.REG[2];
4532 } else {
4533 /* ./parser//parser_prod.nit:802 */
4534 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 802);
4535 }
4536 /* ./parser//parser_prod.nit:804 */
4537 goto label1;
4538 }
4539 label1: while(0);
4540 stack_frame_head = fra.me.prev;
4541 return;
4542 }
4543 void parser___parser_prod___AEnumClasskind___visit_all(val_t p0, val_t p1){
4544 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4545 val_t REGB0;
4546 val_t tmp;
4547 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4548 fra.me.file = LOCATE_parser___parser_prod;
4549 fra.me.line = 808;
4550 fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___visit_all;
4551 fra.me.has_broke = 0;
4552 fra.me.REG_size = 2;
4553 fra.me.nitni_local_ref_head = NULL;
4554 fra.me.REG[0] = NIT_NULL;
4555 fra.me.REG[1] = NIT_NULL;
4556 fra.me.REG[0] = p0;
4557 fra.me.REG[1] = p1;
4558 /* ./parser//parser_prod.nit:810 */
4559 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0])!=NIT_NULL);
4560 if (UNTAG_Bool(REGB0)) {
4561 } else {
4562 nit_abort("Uninitialized attribute %s", "_n_kwenum", LOCATE_parser___parser_prod, 810);
4563 }
4564 fra.me.REG[0] = ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]);
4565 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4566 stack_frame_head = fra.me.prev;
4567 return;
4568 }
4569 void parser___parser_prod___AExternClasskind___empty_init(val_t p0, int* init_table){
4570 int itpos31 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternClasskind].i;
4571 struct {struct stack_frame_t me;} fra;
4572 val_t tmp;
4573 if (init_table[itpos31]) return;
4574 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4575 fra.me.file = LOCATE_parser___parser_prod;
4576 fra.me.line = 814;
4577 fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___empty_init;
4578 fra.me.has_broke = 0;
4579 fra.me.REG_size = 1;
4580 fra.me.nitni_local_ref_head = NULL;
4581 fra.me.REG[0] = NIT_NULL;
4582 fra.me.REG[0] = p0;
4583 stack_frame_head = fra.me.prev;
4584 init_table[itpos31] = 1;
4585 return;
4586 }
4587 void parser___parser_prod___AExternClasskind___init_aexternclasskind(val_t p0, val_t p1, int* init_table){
4588 int itpos32 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternClasskind].i;
4589 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4590 val_t REGB0;
4591 val_t tmp;
4592 if (init_table[itpos32]) return;
4593 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4594 fra.me.file = LOCATE_parser___parser_prod;
4595 fra.me.line = 816;
4596 fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___init_aexternclasskind;
4597 fra.me.has_broke = 0;
4598 fra.me.REG_size = 3;
4599 fra.me.nitni_local_ref_head = NULL;
4600 fra.me.REG[0] = NIT_NULL;
4601 fra.me.REG[1] = NIT_NULL;
4602 fra.me.REG[2] = NIT_NULL;
4603 fra.me.REG[0] = p0;
4604 fra.me.REG[1] = p1;
4605 /* ./parser//parser_prod.nit:816 */
4606 fra.me.REG[2] = fra.me.REG[0];
4607 /* ./parser//parser_prod.nit:820 */
4608 CALL_parser___parser_prod___AExternClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
4609 /* ./parser//parser_prod.nit:821 */
4610 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4611 if (UNTAG_Bool(REGB0)) {
4612 } else {
4613 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 821);
4614 }
4615 ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[2]) = fra.me.REG[1];
4616 /* ./parser//parser_prod.nit:822 */
4617 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4618 if (UNTAG_Bool(REGB0)) {
4619 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 822);
4620 }
4621 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4622 stack_frame_head = fra.me.prev;
4623 init_table[itpos32] = 1;
4624 return;
4625 }
4626 void parser___parser_prod___AExternClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4627 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4628 val_t REGB0;
4629 val_t REGB1;
4630 val_t tmp;
4631 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4632 fra.me.file = LOCATE_parser___parser_prod;
4633 fra.me.line = 825;
4634 fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___replace_child;
4635 fra.me.has_broke = 0;
4636 fra.me.REG_size = 4;
4637 fra.me.nitni_local_ref_head = NULL;
4638 fra.me.REG[0] = NIT_NULL;
4639 fra.me.REG[1] = NIT_NULL;
4640 fra.me.REG[2] = NIT_NULL;
4641 fra.me.REG[3] = NIT_NULL;
4642 fra.me.REG[0] = p0;
4643 fra.me.REG[1] = p1;
4644 fra.me.REG[2] = p2;
4645 /* ./parser//parser_prod.nit:827 */
4646 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0])!=NIT_NULL);
4647 if (UNTAG_Bool(REGB0)) {
4648 } else {
4649 nit_abort("Uninitialized attribute %s", "_n_kwextern", LOCATE_parser___parser_prod, 827);
4650 }
4651 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0]);
4652 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4653 if (UNTAG_Bool(REGB0)) {
4654 } else {
4655 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4656 REGB0 = REGB1;
4657 }
4658 if (UNTAG_Bool(REGB0)) {
4659 /* ./parser//parser_prod.nit:828 */
4660 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4661 if (UNTAG_Bool(REGB0)) {
4662 } else {
4663 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4664 if (UNTAG_Bool(REGB1)) {
4665 REGB1 = TAG_Bool(false);
4666 REGB0 = REGB1;
4667 } else {
4668 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4669 REGB0 = REGB1;
4670 }
4671 }
4672 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4673 if (UNTAG_Bool(REGB0)) {
4674 /* ./parser//parser_prod.nit:829 */
4675 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4676 if (UNTAG_Bool(REGB0)) {
4677 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 829);
4678 }
4679 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4680 /* ./parser//parser_prod.nit:830 */
4681 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*/;
4682 if (UNTAG_Bool(REGB0)) {
4683 } else {
4684 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 830);
4685 }
4686 /* ./parser//parser_prod.nit:831 */
4687 ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0]) = fra.me.REG[2];
4688 } else {
4689 /* ./parser//parser_prod.nit:833 */
4690 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 833);
4691 }
4692 /* ./parser//parser_prod.nit:835 */
4693 goto label1;
4694 }
4695 label1: while(0);
4696 stack_frame_head = fra.me.prev;
4697 return;
4698 }
4699 void parser___parser_prod___AExternClasskind___visit_all(val_t p0, val_t p1){
4700 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4701 val_t REGB0;
4702 val_t tmp;
4703 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4704 fra.me.file = LOCATE_parser___parser_prod;
4705 fra.me.line = 839;
4706 fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___visit_all;
4707 fra.me.has_broke = 0;
4708 fra.me.REG_size = 2;
4709 fra.me.nitni_local_ref_head = NULL;
4710 fra.me.REG[0] = NIT_NULL;
4711 fra.me.REG[1] = NIT_NULL;
4712 fra.me.REG[0] = p0;
4713 fra.me.REG[1] = p1;
4714 /* ./parser//parser_prod.nit:841 */
4715 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0])!=NIT_NULL);
4716 if (UNTAG_Bool(REGB0)) {
4717 } else {
4718 nit_abort("Uninitialized attribute %s", "_n_kwextern", LOCATE_parser___parser_prod, 841);
4719 }
4720 fra.me.REG[0] = ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0]);
4721 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4722 stack_frame_head = fra.me.prev;
4723 return;
4724 }
4725 void parser___parser_prod___AFormaldef___empty_init(val_t p0, int* init_table){
4726 int itpos33 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFormaldef].i;
4727 struct {struct stack_frame_t me;} fra;
4728 val_t tmp;
4729 if (init_table[itpos33]) return;
4730 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4731 fra.me.file = LOCATE_parser___parser_prod;
4732 fra.me.line = 845;
4733 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___empty_init;
4734 fra.me.has_broke = 0;
4735 fra.me.REG_size = 1;
4736 fra.me.nitni_local_ref_head = NULL;
4737 fra.me.REG[0] = NIT_NULL;
4738 fra.me.REG[0] = p0;
4739 stack_frame_head = fra.me.prev;
4740 init_table[itpos33] = 1;
4741 return;
4742 }
4743 void parser___parser_prod___AFormaldef___init_aformaldef(val_t p0, val_t p1, val_t p2, int* init_table){
4744 int itpos34 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFormaldef].i;
4745 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4746 val_t REGB0;
4747 val_t REGB1;
4748 val_t tmp;
4749 if (init_table[itpos34]) return;
4750 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4751 fra.me.file = LOCATE_parser___parser_prod;
4752 fra.me.line = 847;
4753 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___init_aformaldef;
4754 fra.me.has_broke = 0;
4755 fra.me.REG_size = 4;
4756 fra.me.nitni_local_ref_head = NULL;
4757 fra.me.REG[0] = NIT_NULL;
4758 fra.me.REG[1] = NIT_NULL;
4759 fra.me.REG[2] = NIT_NULL;
4760 fra.me.REG[3] = NIT_NULL;
4761 fra.me.REG[0] = p0;
4762 fra.me.REG[1] = p1;
4763 fra.me.REG[2] = p2;
4764 /* ./parser//parser_prod.nit:847 */
4765 fra.me.REG[3] = fra.me.REG[0];
4766 /* ./parser//parser_prod.nit:852 */
4767 CALL_parser___parser_prod___AFormaldef___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
4768 /* ./parser//parser_prod.nit:853 */
4769 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4770 if (UNTAG_Bool(REGB0)) {
4771 } else {
4772 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 853);
4773 }
4774 ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[3]) = fra.me.REG[1];
4775 /* ./parser//parser_prod.nit:854 */
4776 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4777 if (UNTAG_Bool(REGB0)) {
4778 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 854);
4779 }
4780 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4781 /* ./parser//parser_prod.nit:855 */
4782 ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[3]) = fra.me.REG[2];
4783 /* ./parser//parser_prod.nit:856 */
4784 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4785 if (UNTAG_Bool(REGB0)) {
4786 } else {
4787 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4788 if (UNTAG_Bool(REGB1)) {
4789 REGB1 = TAG_Bool(false);
4790 REGB0 = REGB1;
4791 } else {
4792 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4793 REGB0 = REGB1;
4794 }
4795 }
4796 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4797 if (UNTAG_Bool(REGB0)) {
4798 /* ./parser//parser_prod.nit:857 */
4799 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4800 if (UNTAG_Bool(REGB0)) {
4801 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 857);
4802 }
4803 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4804 }
4805 stack_frame_head = fra.me.prev;
4806 init_table[itpos34] = 1;
4807 return;
4808 }
4809 void parser___parser_prod___AFormaldef___replace_child(val_t p0, val_t p1, val_t p2){
4810 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4811 val_t REGB0;
4812 val_t REGB1;
4813 val_t tmp;
4814 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4815 fra.me.file = LOCATE_parser___parser_prod;
4816 fra.me.line = 861;
4817 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___replace_child;
4818 fra.me.has_broke = 0;
4819 fra.me.REG_size = 4;
4820 fra.me.nitni_local_ref_head = NULL;
4821 fra.me.REG[0] = NIT_NULL;
4822 fra.me.REG[1] = NIT_NULL;
4823 fra.me.REG[2] = NIT_NULL;
4824 fra.me.REG[3] = NIT_NULL;
4825 fra.me.REG[0] = p0;
4826 fra.me.REG[1] = p1;
4827 fra.me.REG[2] = p2;
4828 /* ./parser//parser_prod.nit:863 */
4829 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0])!=NIT_NULL);
4830 if (UNTAG_Bool(REGB0)) {
4831 } else {
4832 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 863);
4833 }
4834 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0]);
4835 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4836 if (UNTAG_Bool(REGB0)) {
4837 } else {
4838 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4839 REGB0 = REGB1;
4840 }
4841 if (UNTAG_Bool(REGB0)) {
4842 /* ./parser//parser_prod.nit:864 */
4843 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4844 if (UNTAG_Bool(REGB0)) {
4845 } else {
4846 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4847 if (UNTAG_Bool(REGB1)) {
4848 REGB1 = TAG_Bool(false);
4849 REGB0 = REGB1;
4850 } else {
4851 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4852 REGB0 = REGB1;
4853 }
4854 }
4855 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4856 if (UNTAG_Bool(REGB0)) {
4857 /* ./parser//parser_prod.nit:865 */
4858 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4859 if (UNTAG_Bool(REGB0)) {
4860 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 865);
4861 }
4862 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4863 /* ./parser//parser_prod.nit:866 */
4864 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*/;
4865 if (UNTAG_Bool(REGB0)) {
4866 } else {
4867 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 866);
4868 }
4869 /* ./parser//parser_prod.nit:867 */
4870 ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0]) = fra.me.REG[2];
4871 } else {
4872 /* ./parser//parser_prod.nit:869 */
4873 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 869);
4874 }
4875 /* ./parser//parser_prod.nit:871 */
4876 goto label1;
4877 }
4878 /* ./parser//parser_prod.nit:873 */
4879 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]);
4880 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
4881 if (UNTAG_Bool(REGB0)) {
4882 } else {
4883 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4884 if (UNTAG_Bool(REGB1)) {
4885 REGB1 = TAG_Bool(false);
4886 REGB0 = REGB1;
4887 } else {
4888 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4889 REGB0 = REGB1;
4890 }
4891 }
4892 if (UNTAG_Bool(REGB0)) {
4893 /* ./parser//parser_prod.nit:874 */
4894 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4895 if (UNTAG_Bool(REGB0)) {
4896 } else {
4897 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4898 if (UNTAG_Bool(REGB1)) {
4899 REGB1 = TAG_Bool(false);
4900 REGB0 = REGB1;
4901 } else {
4902 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4903 REGB0 = REGB1;
4904 }
4905 }
4906 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4907 if (UNTAG_Bool(REGB0)) {
4908 /* ./parser//parser_prod.nit:875 */
4909 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4910 if (UNTAG_Bool(REGB0)) {
4911 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 875);
4912 }
4913 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4914 /* ./parser//parser_prod.nit:876 */
4915 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*/;
4916 if (UNTAG_Bool(REGB0)) {
4917 } else {
4918 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 876);
4919 }
4920 /* ./parser//parser_prod.nit:877 */
4921 ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]) = fra.me.REG[2];
4922 } else {
4923 /* ./parser//parser_prod.nit:879 */
4924 ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]) = NIT_NULL;
4925 }
4926 /* ./parser//parser_prod.nit:881 */
4927 goto label1;
4928 }
4929 label1: while(0);
4930 stack_frame_head = fra.me.prev;
4931 return;
4932 }
4933 void parser___parser_prod___AFormaldef___visit_all(val_t p0, val_t p1){
4934 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4935 val_t REGB0;
4936 val_t REGB1;
4937 val_t tmp;
4938 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4939 fra.me.file = LOCATE_parser___parser_prod;
4940 fra.me.line = 885;
4941 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___visit_all;
4942 fra.me.has_broke = 0;
4943 fra.me.REG_size = 4;
4944 fra.me.nitni_local_ref_head = NULL;
4945 fra.me.REG[0] = NIT_NULL;
4946 fra.me.REG[1] = NIT_NULL;
4947 fra.me.REG[2] = NIT_NULL;
4948 fra.me.REG[3] = NIT_NULL;
4949 fra.me.REG[0] = p0;
4950 fra.me.REG[1] = p1;
4951 /* ./parser//parser_prod.nit:885 */
4952 fra.me.REG[2] = fra.me.REG[0];
4953 /* ./parser//parser_prod.nit:887 */
4954 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[2])!=NIT_NULL);
4955 if (UNTAG_Bool(REGB0)) {
4956 } else {
4957 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 887);
4958 }
4959 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[2]);
4960 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4961 /* ./parser//parser_prod.nit:888 */
4962 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[2]);
4963 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4964 if (UNTAG_Bool(REGB0)) {
4965 } else {
4966 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4967 if (UNTAG_Bool(REGB1)) {
4968 REGB1 = TAG_Bool(false);
4969 REGB0 = REGB1;
4970 } else {
4971 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
4972 REGB0 = REGB1;
4973 }
4974 }
4975 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4976 if (UNTAG_Bool(REGB0)) {
4977 /* ./parser//parser_prod.nit:889 */
4978 fra.me.REG[2] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[2]);
4979 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*/;
4980 if (UNTAG_Bool(REGB0)) {
4981 } else {
4982 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 889);
4983 }
4984 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4985 }
4986 stack_frame_head = fra.me.prev;
4987 return;
4988 }
4989 void parser___parser_prod___ASuperclass___empty_init(val_t p0, int* init_table){
4990 int itpos35 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperclass].i;
4991 struct {struct stack_frame_t me;} fra;
4992 val_t tmp;
4993 if (init_table[itpos35]) return;
4994 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4995 fra.me.file = LOCATE_parser___parser_prod;
4996 fra.me.line = 894;
4997 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___empty_init;
4998 fra.me.has_broke = 0;
4999 fra.me.REG_size = 1;
5000 fra.me.nitni_local_ref_head = NULL;
5001 fra.me.REG[0] = NIT_NULL;
5002 fra.me.REG[0] = p0;
5003 stack_frame_head = fra.me.prev;
5004 init_table[itpos35] = 1;
5005 return;
5006 }
5007 void parser___parser_prod___ASuperclass___init_asuperclass(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
5008 int itpos36 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperclass].i;
5009 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
5010 val_t REGB0;
5011 val_t REGB1;
5012 val_t tmp;
5013 if (init_table[itpos36]) return;
5014 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5015 fra.me.file = LOCATE_parser___parser_prod;
5016 fra.me.line = 896;
5017 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___init_asuperclass;
5018 fra.me.has_broke = 0;
5019 fra.me.REG_size = 5;
5020 fra.me.nitni_local_ref_head = NULL;
5021 fra.me.REG[0] = NIT_NULL;
5022 fra.me.REG[1] = NIT_NULL;
5023 fra.me.REG[2] = NIT_NULL;
5024 fra.me.REG[3] = NIT_NULL;
5025 fra.me.REG[4] = NIT_NULL;
5026 fra.me.REG[0] = p0;
5027 fra.me.REG[1] = p1;
5028 fra.me.REG[2] = p2;
5029 fra.me.REG[3] = p3;
5030 /* ./parser//parser_prod.nit:896 */
5031 fra.me.REG[4] = fra.me.REG[0];
5032 /* ./parser//parser_prod.nit:902 */
5033 CALL_parser___parser_prod___ASuperclass___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
5034 /* ./parser//parser_prod.nit:903 */
5035 ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[4]) = fra.me.REG[1];
5036 /* ./parser//parser_prod.nit:904 */
5037 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5038 if (UNTAG_Bool(REGB0)) {
5039 } else {
5040 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5041 if (UNTAG_Bool(REGB1)) {
5042 REGB1 = TAG_Bool(false);
5043 REGB0 = REGB1;
5044 } else {
5045 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
5046 REGB0 = REGB1;
5047 }
5048 }
5049 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5050 if (UNTAG_Bool(REGB0)) {
5051 /* ./parser//parser_prod.nit:905 */
5052 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5053 if (UNTAG_Bool(REGB0)) {
5054 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 905);
5055 }
5056 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
5057 }
5058 /* ./parser//parser_prod.nit:907 */
5059 ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[4]) = fra.me.REG[2];
5060 /* ./parser//parser_prod.nit:908 */
5061 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5062 if (UNTAG_Bool(REGB0)) {
5063 } else {
5064 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5065 if (UNTAG_Bool(REGB1)) {
5066 REGB1 = TAG_Bool(false);
5067 REGB0 = REGB1;
5068 } else {
5069 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5070 REGB0 = REGB1;
5071 }
5072 }
5073 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5074 if (UNTAG_Bool(REGB0)) {
5075 /* ./parser//parser_prod.nit:909 */
5076 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5077 if (UNTAG_Bool(REGB0)) {
5078 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 909);
5079 }
5080 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
5081 }
5082 /* ./parser//parser_prod.nit:911 */
5083 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
5084 if (UNTAG_Bool(REGB0)) {
5085 } else {
5086 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 911);
5087 }
5088 ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[4]) = fra.me.REG[3];
5089 /* ./parser//parser_prod.nit:912 */
5090 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5091 if (UNTAG_Bool(REGB0)) {
5092 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 912);
5093 }
5094 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
5095 stack_frame_head = fra.me.prev;
5096 init_table[itpos36] = 1;
5097 return;
5098 }
5099 void parser___parser_prod___ASuperclass___replace_child(val_t p0, val_t p1, val_t p2){
5100 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5101 val_t REGB0;
5102 val_t REGB1;
5103 val_t tmp;
5104 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5105 fra.me.file = LOCATE_parser___parser_prod;
5106 fra.me.line = 915;
5107 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___replace_child;
5108 fra.me.has_broke = 0;
5109 fra.me.REG_size = 4;
5110 fra.me.nitni_local_ref_head = NULL;
5111 fra.me.REG[0] = NIT_NULL;
5112 fra.me.REG[1] = NIT_NULL;
5113 fra.me.REG[2] = NIT_NULL;
5114 fra.me.REG[3] = NIT_NULL;
5115 fra.me.REG[0] = p0;
5116 fra.me.REG[1] = p1;
5117 fra.me.REG[2] = p2;
5118 /* ./parser//parser_prod.nit:917 */
5119 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]);
5120 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5121 if (UNTAG_Bool(REGB0)) {
5122 } else {
5123 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5124 if (UNTAG_Bool(REGB1)) {
5125 REGB1 = TAG_Bool(false);
5126 REGB0 = REGB1;
5127 } else {
5128 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5129 REGB0 = REGB1;
5130 }
5131 }
5132 if (UNTAG_Bool(REGB0)) {
5133 /* ./parser//parser_prod.nit:918 */
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:919 */
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, 919);
5152 }
5153 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5154 /* ./parser//parser_prod.nit:920 */
5155 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*/;
5156 if (UNTAG_Bool(REGB0)) {
5157 } else {
5158 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 920);
5159 }
5160 /* ./parser//parser_prod.nit:921 */
5161 ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]) = fra.me.REG[2];
5162 } else {
5163 /* ./parser//parser_prod.nit:923 */
5164 ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]) = NIT_NULL;
5165 }
5166 /* ./parser//parser_prod.nit:925 */
5167 goto label1;
5168 }
5169 /* ./parser//parser_prod.nit:927 */
5170 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]);
5171 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5172 if (UNTAG_Bool(REGB0)) {
5173 } else {
5174 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5175 if (UNTAG_Bool(REGB1)) {
5176 REGB1 = TAG_Bool(false);
5177 REGB0 = REGB1;
5178 } else {
5179 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5180 REGB0 = REGB1;
5181 }
5182 }
5183 if (UNTAG_Bool(REGB0)) {
5184 /* ./parser//parser_prod.nit:928 */
5185 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5186 if (UNTAG_Bool(REGB0)) {
5187 } else {
5188 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5189 if (UNTAG_Bool(REGB1)) {
5190 REGB1 = TAG_Bool(false);
5191 REGB0 = REGB1;
5192 } else {
5193 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5194 REGB0 = REGB1;
5195 }
5196 }
5197 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5198 if (UNTAG_Bool(REGB0)) {
5199 /* ./parser//parser_prod.nit:929 */
5200 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5201 if (UNTAG_Bool(REGB0)) {
5202 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 929);
5203 }
5204 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5205 /* ./parser//parser_prod.nit:930 */
5206 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*/;
5207 if (UNTAG_Bool(REGB0)) {
5208 } else {
5209 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 930);
5210 }
5211 /* ./parser//parser_prod.nit:931 */
5212 ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
5213 } else {
5214 /* ./parser//parser_prod.nit:933 */
5215 ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]) = NIT_NULL;
5216 }
5217 /* ./parser//parser_prod.nit:935 */
5218 goto label1;
5219 }
5220 /* ./parser//parser_prod.nit:937 */
5221 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0])!=NIT_NULL);
5222 if (UNTAG_Bool(REGB0)) {
5223 } else {
5224 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 937);
5225 }
5226 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0]);
5227 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
5228 if (UNTAG_Bool(REGB0)) {
5229 } else {
5230 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5231 REGB0 = REGB1;
5232 }
5233 if (UNTAG_Bool(REGB0)) {
5234 /* ./parser//parser_prod.nit:938 */
5235 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5236 if (UNTAG_Bool(REGB0)) {
5237 } else {
5238 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5239 if (UNTAG_Bool(REGB1)) {
5240 REGB1 = TAG_Bool(false);
5241 REGB0 = REGB1;
5242 } else {
5243 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5244 REGB0 = REGB1;
5245 }
5246 }
5247 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5248 if (UNTAG_Bool(REGB0)) {
5249 /* ./parser//parser_prod.nit:939 */
5250 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5251 if (UNTAG_Bool(REGB0)) {
5252 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 939);
5253 }
5254 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5255 /* ./parser//parser_prod.nit:940 */
5256 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*/;
5257 if (UNTAG_Bool(REGB0)) {
5258 } else {
5259 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 940);
5260 }
5261 /* ./parser//parser_prod.nit:941 */
5262 ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0]) = fra.me.REG[2];
5263 } else {
5264 /* ./parser//parser_prod.nit:943 */
5265 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 943);
5266 }
5267 /* ./parser//parser_prod.nit:945 */
5268 goto label1;
5269 }
5270 label1: while(0);
5271 stack_frame_head = fra.me.prev;
5272 return;
5273 }
5274 void parser___parser_prod___ASuperclass___visit_all(val_t p0, val_t p1){
5275 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5276 val_t REGB0;
5277 val_t REGB1;
5278 val_t tmp;
5279 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5280 fra.me.file = LOCATE_parser___parser_prod;
5281 fra.me.line = 949;
5282 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___visit_all;
5283 fra.me.has_broke = 0;
5284 fra.me.REG_size = 4;
5285 fra.me.nitni_local_ref_head = NULL;
5286 fra.me.REG[0] = NIT_NULL;
5287 fra.me.REG[1] = NIT_NULL;
5288 fra.me.REG[2] = NIT_NULL;
5289 fra.me.REG[3] = NIT_NULL;
5290 fra.me.REG[0] = p0;
5291 fra.me.REG[1] = p1;
5292 /* ./parser//parser_prod.nit:949 */
5293 fra.me.REG[2] = fra.me.REG[0];
5294 /* ./parser//parser_prod.nit:951 */
5295 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[2]);
5296 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5297 if (UNTAG_Bool(REGB0)) {
5298 } else {
5299 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5300 if (UNTAG_Bool(REGB1)) {
5301 REGB1 = TAG_Bool(false);
5302 REGB0 = REGB1;
5303 } else {
5304 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5305 REGB0 = REGB1;
5306 }
5307 }
5308 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5309 if (UNTAG_Bool(REGB0)) {
5310 /* ./parser//parser_prod.nit:952 */
5311 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[2]);
5312 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*/;
5313 if (UNTAG_Bool(REGB0)) {
5314 } else {
5315 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 952);
5316 }
5317 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5318 }
5319 /* ./parser//parser_prod.nit:954 */
5320 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[2]);
5321 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5322 if (UNTAG_Bool(REGB0)) {
5323 } else {
5324 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5325 if (UNTAG_Bool(REGB1)) {
5326 REGB1 = TAG_Bool(false);
5327 REGB0 = REGB1;
5328 } else {
5329 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5330 REGB0 = REGB1;
5331 }
5332 }
5333 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5334 if (UNTAG_Bool(REGB0)) {
5335 /* ./parser//parser_prod.nit:955 */
5336 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[2]);
5337 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*/;
5338 if (UNTAG_Bool(REGB0)) {
5339 } else {
5340 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 955);
5341 }
5342 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5343 }
5344 /* ./parser//parser_prod.nit:957 */
5345 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[2])!=NIT_NULL);
5346 if (UNTAG_Bool(REGB0)) {
5347 } else {
5348 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 957);
5349 }
5350 fra.me.REG[2] = ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[2]);
5351 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5352 stack_frame_head = fra.me.prev;
5353 return;
5354 }
5355 void parser___parser_prod___AAttrPropdef___empty_init(val_t p0, int* init_table){
5356 int itpos37 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrPropdef].i;
5357 struct {struct stack_frame_t me;} fra;
5358 val_t tmp;
5359 if (init_table[itpos37]) return;
5360 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5361 fra.me.file = LOCATE_parser___parser_prod;
5362 fra.me.line = 961;
5363 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___empty_init;
5364 fra.me.has_broke = 0;
5365 fra.me.REG_size = 1;
5366 fra.me.nitni_local_ref_head = NULL;
5367 fra.me.REG[0] = NIT_NULL;
5368 fra.me.REG[0] = p0;
5369 stack_frame_head = fra.me.prev;
5370 init_table[itpos37] = 1;
5371 return;
5372 }
5373 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){
5374 int itpos38 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrPropdef].i;
5375 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
5376 val_t REGB0;
5377 val_t REGB1;
5378 val_t tmp;
5379 if (init_table[itpos38]) return;
5380 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5381 fra.me.file = LOCATE_parser___parser_prod;
5382 fra.me.line = 963;
5383 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___init_aattrpropdef;
5384 fra.me.has_broke = 0;
5385 fra.me.REG_size = 12;
5386 fra.me.nitni_local_ref_head = NULL;
5387 fra.me.REG[0] = NIT_NULL;
5388 fra.me.REG[1] = NIT_NULL;
5389 fra.me.REG[2] = NIT_NULL;
5390 fra.me.REG[3] = NIT_NULL;
5391 fra.me.REG[4] = NIT_NULL;
5392 fra.me.REG[5] = NIT_NULL;
5393 fra.me.REG[6] = NIT_NULL;
5394 fra.me.REG[7] = NIT_NULL;
5395 fra.me.REG[8] = NIT_NULL;
5396 fra.me.REG[9] = NIT_NULL;
5397 fra.me.REG[10] = NIT_NULL;
5398 fra.me.REG[11] = NIT_NULL;
5399 fra.me.REG[0] = p0;
5400 fra.me.REG[1] = p1;
5401 fra.me.REG[2] = p2;
5402 fra.me.REG[3] = p3;
5403 fra.me.REG[4] = p4;
5404 fra.me.REG[5] = p5;
5405 fra.me.REG[6] = p6;
5406 fra.me.REG[7] = p7;
5407 fra.me.REG[8] = p8;
5408 fra.me.REG[9] = p9;
5409 fra.me.REG[10] = p10;
5410 /* ./parser//parser_prod.nit:963 */
5411 fra.me.REG[11] = fra.me.REG[0];
5412 /* ./parser//parser_prod.nit:976 */
5413 CALL_parser___parser_prod___AAttrPropdef___empty_init(fra.me.REG[11])(fra.me.REG[11], init_table);
5414 /* ./parser//parser_prod.nit:977 */
5415 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[11]) = fra.me.REG[1];
5416 /* ./parser//parser_prod.nit:978 */
5417 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5418 if (UNTAG_Bool(REGB0)) {
5419 } else {
5420 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5421 if (UNTAG_Bool(REGB1)) {
5422 REGB1 = TAG_Bool(false);
5423 REGB0 = REGB1;
5424 } else {
5425 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
5426 REGB0 = REGB1;
5427 }
5428 }
5429 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5430 if (UNTAG_Bool(REGB0)) {
5431 /* ./parser//parser_prod.nit:979 */
5432 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5433 if (UNTAG_Bool(REGB0)) {
5434 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 979);
5435 }
5436 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[11]);
5437 }
5438 /* ./parser//parser_prod.nit:981 */
5439 ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[11]) = fra.me.REG[2];
5440 /* ./parser//parser_prod.nit:982 */
5441 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5442 if (UNTAG_Bool(REGB0)) {
5443 } else {
5444 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5445 if (UNTAG_Bool(REGB1)) {
5446 REGB1 = TAG_Bool(false);
5447 REGB0 = REGB1;
5448 } else {
5449 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5450 REGB0 = REGB1;
5451 }
5452 }
5453 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5454 if (UNTAG_Bool(REGB0)) {
5455 /* ./parser//parser_prod.nit:983 */
5456 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5457 if (UNTAG_Bool(REGB0)) {
5458 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 983);
5459 }
5460 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[11]);
5461 }
5462 /* ./parser//parser_prod.nit:985 */
5463 ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[11]) = fra.me.REG[3];
5464 /* ./parser//parser_prod.nit:986 */
5465 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5466 if (UNTAG_Bool(REGB0)) {
5467 } else {
5468 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5469 if (UNTAG_Bool(REGB1)) {
5470 REGB1 = TAG_Bool(false);
5471 REGB0 = REGB1;
5472 } else {
5473 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5474 REGB0 = REGB1;
5475 }
5476 }
5477 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5478 if (UNTAG_Bool(REGB0)) {
5479 /* ./parser//parser_prod.nit:987 */
5480 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5481 if (UNTAG_Bool(REGB0)) {
5482 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 987);
5483 }
5484 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[11]);
5485 }
5486 /* ./parser//parser_prod.nit:989 */
5487 ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[11]) = fra.me.REG[4];
5488 /* ./parser//parser_prod.nit:990 */
5489 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5490 if (UNTAG_Bool(REGB0)) {
5491 } else {
5492 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5493 if (UNTAG_Bool(REGB1)) {
5494 REGB1 = TAG_Bool(false);
5495 REGB0 = REGB1;
5496 } else {
5497 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5498 REGB0 = REGB1;
5499 }
5500 }
5501 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5502 if (UNTAG_Bool(REGB0)) {
5503 /* ./parser//parser_prod.nit:991 */
5504 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5505 if (UNTAG_Bool(REGB0)) {
5506 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 991);
5507 }
5508 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[11]);
5509 }
5510 /* ./parser//parser_prod.nit:993 */
5511 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
5512 if (UNTAG_Bool(REGB0)) {
5513 } else {
5514 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 993);
5515 }
5516 ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[11]) = fra.me.REG[5];
5517 /* ./parser//parser_prod.nit:994 */
5518 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5519 if (UNTAG_Bool(REGB0)) {
5520 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 994);
5521 }
5522 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[11]);
5523 /* ./parser//parser_prod.nit:995 */
5524 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
5525 if (UNTAG_Bool(REGB0)) {
5526 } else {
5527 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 995);
5528 }
5529 ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[11]) = fra.me.REG[6];
5530 /* ./parser//parser_prod.nit:996 */
5531 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5532 if (UNTAG_Bool(REGB0)) {
5533 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 996);
5534 }
5535 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[11]);
5536 /* ./parser//parser_prod.nit:997 */
5537 ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[11]) = fra.me.REG[7];
5538 /* ./parser//parser_prod.nit:998 */
5539 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5540 if (UNTAG_Bool(REGB0)) {
5541 } else {
5542 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5543 if (UNTAG_Bool(REGB1)) {
5544 REGB1 = TAG_Bool(false);
5545 REGB0 = REGB1;
5546 } else {
5547 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
5548 REGB0 = REGB1;
5549 }
5550 }
5551 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5552 if (UNTAG_Bool(REGB0)) {
5553 /* ./parser//parser_prod.nit:999 */
5554 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5555 if (UNTAG_Bool(REGB0)) {
5556 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 999);
5557 }
5558 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
5559 }
5560 /* ./parser//parser_prod.nit:1001 */
5561 ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[11]) = fra.me.REG[8];
5562 /* ./parser//parser_prod.nit:1002 */
5563 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
5564 if (UNTAG_Bool(REGB0)) {
5565 } else {
5566 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
5567 if (UNTAG_Bool(REGB1)) {
5568 REGB1 = TAG_Bool(false);
5569 REGB0 = REGB1;
5570 } else {
5571 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
5572 REGB0 = REGB1;
5573 }
5574 }
5575 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5576 if (UNTAG_Bool(REGB0)) {
5577 /* ./parser//parser_prod.nit:1003 */
5578 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
5579 if (UNTAG_Bool(REGB0)) {
5580 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1003);
5581 }
5582 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[11]);
5583 }
5584 /* ./parser//parser_prod.nit:1005 */
5585 ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[11]) = fra.me.REG[9];
5586 /* ./parser//parser_prod.nit:1006 */
5587 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5588 if (UNTAG_Bool(REGB0)) {
5589 } else {
5590 REGB1 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5591 if (UNTAG_Bool(REGB1)) {
5592 REGB1 = TAG_Bool(false);
5593 REGB0 = REGB1;
5594 } else {
5595 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL);
5596 REGB0 = REGB1;
5597 }
5598 }
5599 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5600 if (UNTAG_Bool(REGB0)) {
5601 /* ./parser//parser_prod.nit:1007 */
5602 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5603 if (UNTAG_Bool(REGB0)) {
5604 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1007);
5605 }
5606 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[11]);
5607 }
5608 /* ./parser//parser_prod.nit:1009 */
5609 ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[11]) = fra.me.REG[10];
5610 /* ./parser//parser_prod.nit:1010 */
5611 REGB0 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5612 if (UNTAG_Bool(REGB0)) {
5613 } else {
5614 REGB1 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5615 if (UNTAG_Bool(REGB1)) {
5616 REGB1 = TAG_Bool(false);
5617 REGB0 = REGB1;
5618 } else {
5619 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
5620 REGB0 = REGB1;
5621 }
5622 }
5623 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5624 if (UNTAG_Bool(REGB0)) {
5625 /* ./parser//parser_prod.nit:1011 */
5626 REGB0 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5627 if (UNTAG_Bool(REGB0)) {
5628 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1011);
5629 }
5630 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
5631 }
5632 stack_frame_head = fra.me.prev;
5633 init_table[itpos38] = 1;
5634 return;
5635 }
5636 void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val_t p2){
5637 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5638 val_t REGB0;
5639 val_t REGB1;
5640 val_t tmp;
5641 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5642 fra.me.file = LOCATE_parser___parser_prod;
5643 fra.me.line = 1015;
5644 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___replace_child;
5645 fra.me.has_broke = 0;
5646 fra.me.REG_size = 4;
5647 fra.me.nitni_local_ref_head = NULL;
5648 fra.me.REG[0] = NIT_NULL;
5649 fra.me.REG[1] = NIT_NULL;
5650 fra.me.REG[2] = NIT_NULL;
5651 fra.me.REG[3] = NIT_NULL;
5652 fra.me.REG[0] = p0;
5653 fra.me.REG[1] = p1;
5654 fra.me.REG[2] = p2;
5655 /* ./parser//parser_prod.nit:1017 */
5656 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
5657 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5658 if (UNTAG_Bool(REGB0)) {
5659 } else {
5660 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5661 if (UNTAG_Bool(REGB1)) {
5662 REGB1 = TAG_Bool(false);
5663 REGB0 = REGB1;
5664 } else {
5665 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5666 REGB0 = REGB1;
5667 }
5668 }
5669 if (UNTAG_Bool(REGB0)) {
5670 /* ./parser//parser_prod.nit:1018 */
5671 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5672 if (UNTAG_Bool(REGB0)) {
5673 } else {
5674 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5675 if (UNTAG_Bool(REGB1)) {
5676 REGB1 = TAG_Bool(false);
5677 REGB0 = REGB1;
5678 } else {
5679 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5680 REGB0 = REGB1;
5681 }
5682 }
5683 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5684 if (UNTAG_Bool(REGB0)) {
5685 /* ./parser//parser_prod.nit:1019 */
5686 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5687 if (UNTAG_Bool(REGB0)) {
5688 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1019);
5689 }
5690 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5691 /* ./parser//parser_prod.nit:1020 */
5692 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*/;
5693 if (UNTAG_Bool(REGB0)) {
5694 } else {
5695 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1020);
5696 }
5697 /* ./parser//parser_prod.nit:1021 */
5698 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
5699 } else {
5700 /* ./parser//parser_prod.nit:1023 */
5701 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
5702 }
5703 /* ./parser//parser_prod.nit:1025 */
5704 goto label1;
5705 }
5706 /* ./parser//parser_prod.nit:1027 */
5707 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]);
5708 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5709 if (UNTAG_Bool(REGB0)) {
5710 } else {
5711 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5712 if (UNTAG_Bool(REGB1)) {
5713 REGB1 = TAG_Bool(false);
5714 REGB0 = REGB1;
5715 } else {
5716 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5717 REGB0 = REGB1;
5718 }
5719 }
5720 if (UNTAG_Bool(REGB0)) {
5721 /* ./parser//parser_prod.nit:1028 */
5722 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5723 if (UNTAG_Bool(REGB0)) {
5724 } else {
5725 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5726 if (UNTAG_Bool(REGB1)) {
5727 REGB1 = TAG_Bool(false);
5728 REGB0 = REGB1;
5729 } else {
5730 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5731 REGB0 = REGB1;
5732 }
5733 }
5734 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5735 if (UNTAG_Bool(REGB0)) {
5736 /* ./parser//parser_prod.nit:1029 */
5737 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5738 if (UNTAG_Bool(REGB0)) {
5739 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1029);
5740 }
5741 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5742 /* ./parser//parser_prod.nit:1030 */
5743 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*/;
5744 if (UNTAG_Bool(REGB0)) {
5745 } else {
5746 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1030);
5747 }
5748 /* ./parser//parser_prod.nit:1031 */
5749 ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]) = fra.me.REG[2];
5750 } else {
5751 /* ./parser//parser_prod.nit:1033 */
5752 ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]) = NIT_NULL;
5753 }
5754 /* ./parser//parser_prod.nit:1035 */
5755 goto label1;
5756 }
5757 /* ./parser//parser_prod.nit:1037 */
5758 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]);
5759 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5760 if (UNTAG_Bool(REGB0)) {
5761 } else {
5762 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5763 if (UNTAG_Bool(REGB1)) {
5764 REGB1 = TAG_Bool(false);
5765 REGB0 = REGB1;
5766 } else {
5767 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5768 REGB0 = REGB1;
5769 }
5770 }
5771 if (UNTAG_Bool(REGB0)) {
5772 /* ./parser//parser_prod.nit:1038 */
5773 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5774 if (UNTAG_Bool(REGB0)) {
5775 } else {
5776 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5777 if (UNTAG_Bool(REGB1)) {
5778 REGB1 = TAG_Bool(false);
5779 REGB0 = REGB1;
5780 } else {
5781 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5782 REGB0 = REGB1;
5783 }
5784 }
5785 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5786 if (UNTAG_Bool(REGB0)) {
5787 /* ./parser//parser_prod.nit:1039 */
5788 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5789 if (UNTAG_Bool(REGB0)) {
5790 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1039);
5791 }
5792 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5793 /* ./parser//parser_prod.nit:1040 */
5794 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*/;
5795 if (UNTAG_Bool(REGB0)) {
5796 } else {
5797 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1040);
5798 }
5799 /* ./parser//parser_prod.nit:1041 */
5800 ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]) = fra.me.REG[2];
5801 } else {
5802 /* ./parser//parser_prod.nit:1043 */
5803 ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]) = NIT_NULL;
5804 }
5805 /* ./parser//parser_prod.nit:1045 */
5806 goto label1;
5807 }
5808 /* ./parser//parser_prod.nit:1047 */
5809 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]);
5810 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5811 if (UNTAG_Bool(REGB0)) {
5812 } else {
5813 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5814 if (UNTAG_Bool(REGB1)) {
5815 REGB1 = TAG_Bool(false);
5816 REGB0 = REGB1;
5817 } else {
5818 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5819 REGB0 = REGB1;
5820 }
5821 }
5822 if (UNTAG_Bool(REGB0)) {
5823 /* ./parser//parser_prod.nit:1048 */
5824 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5825 if (UNTAG_Bool(REGB0)) {
5826 } else {
5827 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5828 if (UNTAG_Bool(REGB1)) {
5829 REGB1 = TAG_Bool(false);
5830 REGB0 = REGB1;
5831 } else {
5832 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5833 REGB0 = REGB1;
5834 }
5835 }
5836 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5837 if (UNTAG_Bool(REGB0)) {
5838 /* ./parser//parser_prod.nit:1049 */
5839 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5840 if (UNTAG_Bool(REGB0)) {
5841 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1049);
5842 }
5843 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5844 /* ./parser//parser_prod.nit:1050 */
5845 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*/;
5846 if (UNTAG_Bool(REGB0)) {
5847 } else {
5848 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1050);
5849 }
5850 /* ./parser//parser_prod.nit:1051 */
5851 ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
5852 } else {
5853 /* ./parser//parser_prod.nit:1053 */
5854 ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
5855 }
5856 /* ./parser//parser_prod.nit:1055 */
5857 goto label1;
5858 }
5859 /* ./parser//parser_prod.nit:1057 */
5860 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
5861 if (UNTAG_Bool(REGB0)) {
5862 } else {
5863 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 1057);
5864 }
5865 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0]);
5866 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
5867 if (UNTAG_Bool(REGB0)) {
5868 } else {
5869 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5870 REGB0 = REGB1;
5871 }
5872 if (UNTAG_Bool(REGB0)) {
5873 /* ./parser//parser_prod.nit:1058 */
5874 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5875 if (UNTAG_Bool(REGB0)) {
5876 } else {
5877 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5878 if (UNTAG_Bool(REGB1)) {
5879 REGB1 = TAG_Bool(false);
5880 REGB0 = REGB1;
5881 } else {
5882 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5883 REGB0 = REGB1;
5884 }
5885 }
5886 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5887 if (UNTAG_Bool(REGB0)) {
5888 /* ./parser//parser_prod.nit:1059 */
5889 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5890 if (UNTAG_Bool(REGB0)) {
5891 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1059);
5892 }
5893 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5894 /* ./parser//parser_prod.nit:1060 */
5895 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*/;
5896 if (UNTAG_Bool(REGB0)) {
5897 } else {
5898 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1060);
5899 }
5900 /* ./parser//parser_prod.nit:1061 */
5901 ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
5902 } else {
5903 /* ./parser//parser_prod.nit:1063 */
5904 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1063);
5905 }
5906 /* ./parser//parser_prod.nit:1065 */
5907 goto label1;
5908 }
5909 /* ./parser//parser_prod.nit:1067 */
5910 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0])!=NIT_NULL);
5911 if (UNTAG_Bool(REGB0)) {
5912 } else {
5913 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 1067);
5914 }
5915 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0]);
5916 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
5917 if (UNTAG_Bool(REGB0)) {
5918 } else {
5919 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5920 REGB0 = REGB1;
5921 }
5922 if (UNTAG_Bool(REGB0)) {
5923 /* ./parser//parser_prod.nit:1068 */
5924 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5925 if (UNTAG_Bool(REGB0)) {
5926 } else {
5927 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5928 if (UNTAG_Bool(REGB1)) {
5929 REGB1 = TAG_Bool(false);
5930 REGB0 = REGB1;
5931 } else {
5932 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5933 REGB0 = REGB1;
5934 }
5935 }
5936 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5937 if (UNTAG_Bool(REGB0)) {
5938 /* ./parser//parser_prod.nit:1069 */
5939 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5940 if (UNTAG_Bool(REGB0)) {
5941 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1069);
5942 }
5943 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5944 /* ./parser//parser_prod.nit:1070 */
5945 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*/;
5946 if (UNTAG_Bool(REGB0)) {
5947 } else {
5948 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1070);
5949 }
5950 /* ./parser//parser_prod.nit:1071 */
5951 ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0]) = fra.me.REG[2];
5952 } else {
5953 /* ./parser//parser_prod.nit:1073 */
5954 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1073);
5955 }
5956 /* ./parser//parser_prod.nit:1075 */
5957 goto label1;
5958 }
5959 /* ./parser//parser_prod.nit:1077 */
5960 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]);
5961 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5962 if (UNTAG_Bool(REGB0)) {
5963 } else {
5964 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5965 if (UNTAG_Bool(REGB1)) {
5966 REGB1 = TAG_Bool(false);
5967 REGB0 = REGB1;
5968 } else {
5969 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5970 REGB0 = REGB1;
5971 }
5972 }
5973 if (UNTAG_Bool(REGB0)) {
5974 /* ./parser//parser_prod.nit:1078 */
5975 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5976 if (UNTAG_Bool(REGB0)) {
5977 } else {
5978 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5979 if (UNTAG_Bool(REGB1)) {
5980 REGB1 = TAG_Bool(false);
5981 REGB0 = REGB1;
5982 } else {
5983 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5984 REGB0 = REGB1;
5985 }
5986 }
5987 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5988 if (UNTAG_Bool(REGB0)) {
5989 /* ./parser//parser_prod.nit:1079 */
5990 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5991 if (UNTAG_Bool(REGB0)) {
5992 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1079);
5993 }
5994 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5995 /* ./parser//parser_prod.nit:1080 */
5996 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*/;
5997 if (UNTAG_Bool(REGB0)) {
5998 } else {
5999 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1080);
6000 }
6001 /* ./parser//parser_prod.nit:1081 */
6002 ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
6003 } else {
6004 /* ./parser//parser_prod.nit:1083 */
6005 ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]) = NIT_NULL;
6006 }
6007 /* ./parser//parser_prod.nit:1085 */
6008 goto label1;
6009 }
6010 /* ./parser//parser_prod.nit:1087 */
6011 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]);
6012 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6013 if (UNTAG_Bool(REGB0)) {
6014 } else {
6015 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6016 if (UNTAG_Bool(REGB1)) {
6017 REGB1 = TAG_Bool(false);
6018 REGB0 = REGB1;
6019 } else {
6020 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6021 REGB0 = REGB1;
6022 }
6023 }
6024 if (UNTAG_Bool(REGB0)) {
6025 /* ./parser//parser_prod.nit:1088 */
6026 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6027 if (UNTAG_Bool(REGB0)) {
6028 } else {
6029 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6030 if (UNTAG_Bool(REGB1)) {
6031 REGB1 = TAG_Bool(false);
6032 REGB0 = REGB1;
6033 } else {
6034 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6035 REGB0 = REGB1;
6036 }
6037 }
6038 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6039 if (UNTAG_Bool(REGB0)) {
6040 /* ./parser//parser_prod.nit:1089 */
6041 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6042 if (UNTAG_Bool(REGB0)) {
6043 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1089);
6044 }
6045 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6046 /* ./parser//parser_prod.nit:1090 */
6047 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*/;
6048 if (UNTAG_Bool(REGB0)) {
6049 } else {
6050 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1090);
6051 }
6052 /* ./parser//parser_prod.nit:1091 */
6053 ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]) = fra.me.REG[2];
6054 } else {
6055 /* ./parser//parser_prod.nit:1093 */
6056 ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]) = NIT_NULL;
6057 }
6058 /* ./parser//parser_prod.nit:1095 */
6059 goto label1;
6060 }
6061 /* ./parser//parser_prod.nit:1097 */
6062 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]);
6063 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6064 if (UNTAG_Bool(REGB0)) {
6065 } else {
6066 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6067 if (UNTAG_Bool(REGB1)) {
6068 REGB1 = TAG_Bool(false);
6069 REGB0 = REGB1;
6070 } else {
6071 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6072 REGB0 = REGB1;
6073 }
6074 }
6075 if (UNTAG_Bool(REGB0)) {
6076 /* ./parser//parser_prod.nit:1098 */
6077 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6078 if (UNTAG_Bool(REGB0)) {
6079 } else {
6080 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6081 if (UNTAG_Bool(REGB1)) {
6082 REGB1 = TAG_Bool(false);
6083 REGB0 = REGB1;
6084 } else {
6085 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6086 REGB0 = REGB1;
6087 }
6088 }
6089 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6090 if (UNTAG_Bool(REGB0)) {
6091 /* ./parser//parser_prod.nit:1099 */
6092 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6093 if (UNTAG_Bool(REGB0)) {
6094 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1099);
6095 }
6096 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6097 /* ./parser//parser_prod.nit:1100 */
6098 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*/;
6099 if (UNTAG_Bool(REGB0)) {
6100 } else {
6101 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1100);
6102 }
6103 /* ./parser//parser_prod.nit:1101 */
6104 ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]) = fra.me.REG[2];
6105 } else {
6106 /* ./parser//parser_prod.nit:1103 */
6107 ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]) = NIT_NULL;
6108 }
6109 /* ./parser//parser_prod.nit:1105 */
6110 goto label1;
6111 }
6112 /* ./parser//parser_prod.nit:1107 */
6113 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]);
6114 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6115 if (UNTAG_Bool(REGB0)) {
6116 } else {
6117 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6118 if (UNTAG_Bool(REGB1)) {
6119 REGB1 = TAG_Bool(false);
6120 REGB0 = REGB1;
6121 } else {
6122 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6123 REGB0 = REGB1;
6124 }
6125 }
6126 if (UNTAG_Bool(REGB0)) {
6127 /* ./parser//parser_prod.nit:1108 */
6128 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6129 if (UNTAG_Bool(REGB0)) {
6130 } else {
6131 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6132 if (UNTAG_Bool(REGB1)) {
6133 REGB1 = TAG_Bool(false);
6134 REGB0 = REGB1;
6135 } else {
6136 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6137 REGB0 = REGB1;
6138 }
6139 }
6140 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6141 if (UNTAG_Bool(REGB0)) {
6142 /* ./parser//parser_prod.nit:1109 */
6143 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6144 if (UNTAG_Bool(REGB0)) {
6145 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1109);
6146 }
6147 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6148 /* ./parser//parser_prod.nit:1110 */
6149 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*/;
6150 if (UNTAG_Bool(REGB0)) {
6151 } else {
6152 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1110);
6153 }
6154 /* ./parser//parser_prod.nit:1111 */
6155 ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]) = fra.me.REG[2];
6156 } else {
6157 /* ./parser//parser_prod.nit:1113 */
6158 ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]) = NIT_NULL;
6159 }
6160 /* ./parser//parser_prod.nit:1115 */
6161 goto label1;
6162 }
6163 label1: while(0);
6164 stack_frame_head = fra.me.prev;
6165 return;
6166 }
6167 void parser___parser_prod___AAttrPropdef___visit_all(val_t p0, val_t p1){
6168 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6169 val_t REGB0;
6170 val_t REGB1;
6171 val_t tmp;
6172 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6173 fra.me.file = LOCATE_parser___parser_prod;
6174 fra.me.line = 1119;
6175 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___visit_all;
6176 fra.me.has_broke = 0;
6177 fra.me.REG_size = 4;
6178 fra.me.nitni_local_ref_head = NULL;
6179 fra.me.REG[0] = NIT_NULL;
6180 fra.me.REG[1] = NIT_NULL;
6181 fra.me.REG[2] = NIT_NULL;
6182 fra.me.REG[3] = NIT_NULL;
6183 fra.me.REG[0] = p0;
6184 fra.me.REG[1] = p1;
6185 /* ./parser//parser_prod.nit:1119 */
6186 fra.me.REG[2] = fra.me.REG[0];
6187 /* ./parser//parser_prod.nit:1121 */
6188 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
6189 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6190 if (UNTAG_Bool(REGB0)) {
6191 } else {
6192 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6193 if (UNTAG_Bool(REGB1)) {
6194 REGB1 = TAG_Bool(false);
6195 REGB0 = REGB1;
6196 } else {
6197 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6198 REGB0 = REGB1;
6199 }
6200 }
6201 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6202 if (UNTAG_Bool(REGB0)) {
6203 /* ./parser//parser_prod.nit:1122 */
6204 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
6205 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*/;
6206 if (UNTAG_Bool(REGB0)) {
6207 } else {
6208 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1122);
6209 }
6210 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6211 }
6212 /* ./parser//parser_prod.nit:1124 */
6213 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[2]);
6214 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6215 if (UNTAG_Bool(REGB0)) {
6216 } else {
6217 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6218 if (UNTAG_Bool(REGB1)) {
6219 REGB1 = TAG_Bool(false);
6220 REGB0 = REGB1;
6221 } else {
6222 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6223 REGB0 = REGB1;
6224 }
6225 }
6226 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6227 if (UNTAG_Bool(REGB0)) {
6228 /* ./parser//parser_prod.nit:1125 */
6229 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[2]);
6230 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*/;
6231 if (UNTAG_Bool(REGB0)) {
6232 } else {
6233 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1125);
6234 }
6235 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6236 }
6237 /* ./parser//parser_prod.nit:1127 */
6238 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[2]);
6239 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6240 if (UNTAG_Bool(REGB0)) {
6241 } else {
6242 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6243 if (UNTAG_Bool(REGB1)) {
6244 REGB1 = TAG_Bool(false);
6245 REGB0 = REGB1;
6246 } else {
6247 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6248 REGB0 = REGB1;
6249 }
6250 }
6251 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6252 if (UNTAG_Bool(REGB0)) {
6253 /* ./parser//parser_prod.nit:1128 */
6254 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[2]);
6255 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*/;
6256 if (UNTAG_Bool(REGB0)) {
6257 } else {
6258 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1128);
6259 }
6260 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6261 }
6262 /* ./parser//parser_prod.nit:1130 */
6263 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[2]);
6264 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6265 if (UNTAG_Bool(REGB0)) {
6266 } else {
6267 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6268 if (UNTAG_Bool(REGB1)) {
6269 REGB1 = TAG_Bool(false);
6270 REGB0 = REGB1;
6271 } else {
6272 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6273 REGB0 = REGB1;
6274 }
6275 }
6276 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6277 if (UNTAG_Bool(REGB0)) {
6278 /* ./parser//parser_prod.nit:1131 */
6279 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[2]);
6280 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*/;
6281 if (UNTAG_Bool(REGB0)) {
6282 } else {
6283 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1131);
6284 }
6285 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6286 }
6287 /* ./parser//parser_prod.nit:1133 */
6288 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[2])!=NIT_NULL);
6289 if (UNTAG_Bool(REGB0)) {
6290 } else {
6291 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 1133);
6292 }
6293 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[2]);
6294 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6295 /* ./parser//parser_prod.nit:1134 */
6296 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[2])!=NIT_NULL);
6297 if (UNTAG_Bool(REGB0)) {
6298 } else {
6299 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 1134);
6300 }
6301 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[2]);
6302 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6303 /* ./parser//parser_prod.nit:1135 */
6304 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[2]);
6305 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6306 if (UNTAG_Bool(REGB0)) {
6307 } else {
6308 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6309 if (UNTAG_Bool(REGB1)) {
6310 REGB1 = TAG_Bool(false);
6311 REGB0 = REGB1;
6312 } else {
6313 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6314 REGB0 = REGB1;
6315 }
6316 }
6317 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6318 if (UNTAG_Bool(REGB0)) {
6319 /* ./parser//parser_prod.nit:1136 */
6320 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[2]);
6321 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*/;
6322 if (UNTAG_Bool(REGB0)) {
6323 } else {
6324 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1136);
6325 }
6326 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6327 }
6328 /* ./parser//parser_prod.nit:1138 */
6329 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[2]);
6330 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6331 if (UNTAG_Bool(REGB0)) {
6332 } else {
6333 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6334 if (UNTAG_Bool(REGB1)) {
6335 REGB1 = TAG_Bool(false);
6336 REGB0 = REGB1;
6337 } else {
6338 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6339 REGB0 = REGB1;
6340 }
6341 }
6342 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6343 if (UNTAG_Bool(REGB0)) {
6344 /* ./parser//parser_prod.nit:1139 */
6345 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[2]);
6346 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*/;
6347 if (UNTAG_Bool(REGB0)) {
6348 } else {
6349 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1139);
6350 }
6351 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6352 }
6353 /* ./parser//parser_prod.nit:1141 */
6354 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[2]);
6355 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6356 if (UNTAG_Bool(REGB0)) {
6357 } else {
6358 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6359 if (UNTAG_Bool(REGB1)) {
6360 REGB1 = TAG_Bool(false);
6361 REGB0 = REGB1;
6362 } else {
6363 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6364 REGB0 = REGB1;
6365 }
6366 }
6367 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6368 if (UNTAG_Bool(REGB0)) {
6369 /* ./parser//parser_prod.nit:1142 */
6370 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[2]);
6371 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*/;
6372 if (UNTAG_Bool(REGB0)) {
6373 } else {
6374 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1142);
6375 }
6376 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6377 }
6378 /* ./parser//parser_prod.nit:1144 */
6379 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[2]);
6380 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6381 if (UNTAG_Bool(REGB0)) {
6382 } else {
6383 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6384 if (UNTAG_Bool(REGB1)) {
6385 REGB1 = TAG_Bool(false);
6386 REGB0 = REGB1;
6387 } else {
6388 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6389 REGB0 = REGB1;
6390 }
6391 }
6392 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6393 if (UNTAG_Bool(REGB0)) {
6394 /* ./parser//parser_prod.nit:1145 */
6395 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[2]);
6396 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*/;
6397 if (UNTAG_Bool(REGB0)) {
6398 } else {
6399 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1145);
6400 }
6401 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
6402 }
6403 stack_frame_head = fra.me.prev;
6404 return;
6405 }
6406 void parser___parser_prod___AMethPropdef___empty_init(val_t p0, int* init_table){
6407 int itpos39 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMethPropdef].i;
6408 struct {struct stack_frame_t me;} fra;
6409 val_t tmp;
6410 if (init_table[itpos39]) return;
6411 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6412 fra.me.file = LOCATE_parser___parser_prod;
6413 fra.me.line = 1150;
6414 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___empty_init;
6415 fra.me.has_broke = 0;
6416 fra.me.REG_size = 1;
6417 fra.me.nitni_local_ref_head = NULL;
6418 fra.me.REG[0] = NIT_NULL;
6419 fra.me.REG[0] = p0;
6420 stack_frame_head = fra.me.prev;
6421 init_table[itpos39] = 1;
6422 return;
6423 }
6424 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){
6425 int itpos40 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMethPropdef].i;
6426 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
6427 val_t REGB0;
6428 val_t REGB1;
6429 val_t tmp;
6430 if (init_table[itpos40]) return;
6431 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6432 fra.me.file = LOCATE_parser___parser_prod;
6433 fra.me.line = 1152;
6434 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___init_amethpropdef;
6435 fra.me.has_broke = 0;
6436 fra.me.REG_size = 7;
6437 fra.me.nitni_local_ref_head = NULL;
6438 fra.me.REG[0] = NIT_NULL;
6439 fra.me.REG[1] = NIT_NULL;
6440 fra.me.REG[2] = NIT_NULL;
6441 fra.me.REG[3] = NIT_NULL;
6442 fra.me.REG[4] = NIT_NULL;
6443 fra.me.REG[5] = NIT_NULL;
6444 fra.me.REG[6] = NIT_NULL;
6445 fra.me.REG[0] = p0;
6446 fra.me.REG[1] = p1;
6447 fra.me.REG[2] = p2;
6448 fra.me.REG[3] = p3;
6449 fra.me.REG[4] = p4;
6450 fra.me.REG[5] = p5;
6451 /* ./parser//parser_prod.nit:1152 */
6452 fra.me.REG[6] = fra.me.REG[0];
6453 /* ./parser//parser_prod.nit:1160 */
6454 CALL_parser___parser_prod___AMethPropdef___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
6455 /* ./parser//parser_prod.nit:1161 */
6456 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[6]) = fra.me.REG[1];
6457 /* ./parser//parser_prod.nit:1162 */
6458 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6459 if (UNTAG_Bool(REGB0)) {
6460 } else {
6461 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6462 if (UNTAG_Bool(REGB1)) {
6463 REGB1 = TAG_Bool(false);
6464 REGB0 = REGB1;
6465 } else {
6466 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6467 REGB0 = REGB1;
6468 }
6469 }
6470 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6471 if (UNTAG_Bool(REGB0)) {
6472 /* ./parser//parser_prod.nit:1163 */
6473 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6474 if (UNTAG_Bool(REGB0)) {
6475 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1163);
6476 }
6477 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
6478 }
6479 /* ./parser//parser_prod.nit:1165 */
6480 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[6]) = fra.me.REG[2];
6481 /* ./parser//parser_prod.nit:1166 */
6482 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6483 if (UNTAG_Bool(REGB0)) {
6484 } else {
6485 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6486 if (UNTAG_Bool(REGB1)) {
6487 REGB1 = TAG_Bool(false);
6488 REGB0 = REGB1;
6489 } else {
6490 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6491 REGB0 = REGB1;
6492 }
6493 }
6494 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6495 if (UNTAG_Bool(REGB0)) {
6496 /* ./parser//parser_prod.nit:1167 */
6497 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6498 if (UNTAG_Bool(REGB0)) {
6499 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1167);
6500 }
6501 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
6502 }
6503 /* ./parser//parser_prod.nit:1169 */
6504 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
6505 if (UNTAG_Bool(REGB0)) {
6506 } else {
6507 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1169);
6508 }
6509 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[6]) = fra.me.REG[3];
6510 /* ./parser//parser_prod.nit:1170 */
6511 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6512 if (UNTAG_Bool(REGB0)) {
6513 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1170);
6514 }
6515 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6516 /* ./parser//parser_prod.nit:1171 */
6517 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
6518 if (UNTAG_Bool(REGB0)) {
6519 } else {
6520 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1171);
6521 }
6522 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[6]) = fra.me.REG[4];
6523 /* ./parser//parser_prod.nit:1172 */
6524 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6525 if (UNTAG_Bool(REGB0)) {
6526 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1172);
6527 }
6528 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
6529 /* ./parser//parser_prod.nit:1173 */
6530 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
6531 if (UNTAG_Bool(REGB0)) {
6532 } else {
6533 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1173);
6534 }
6535 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[6]) = fra.me.REG[5];
6536 /* ./parser//parser_prod.nit:1174 */
6537 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6538 if (UNTAG_Bool(REGB0)) {
6539 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1174);
6540 }
6541 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
6542 stack_frame_head = fra.me.prev;
6543 init_table[itpos40] = 1;
6544 return;
6545 }
6546 void parser___parser_prod___AMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
6547 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6548 val_t REGB0;
6549 val_t REGB1;
6550 val_t tmp;
6551 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6552 fra.me.file = LOCATE_parser___parser_prod;
6553 fra.me.line = 1177;
6554 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___replace_child;
6555 fra.me.has_broke = 0;
6556 fra.me.REG_size = 4;
6557 fra.me.nitni_local_ref_head = NULL;
6558 fra.me.REG[0] = NIT_NULL;
6559 fra.me.REG[1] = NIT_NULL;
6560 fra.me.REG[2] = NIT_NULL;
6561 fra.me.REG[3] = NIT_NULL;
6562 fra.me.REG[0] = p0;
6563 fra.me.REG[1] = p1;
6564 fra.me.REG[2] = p2;
6565 /* ./parser//parser_prod.nit:1179 */
6566 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
6567 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6568 if (UNTAG_Bool(REGB0)) {
6569 } else {
6570 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6571 if (UNTAG_Bool(REGB1)) {
6572 REGB1 = TAG_Bool(false);
6573 REGB0 = REGB1;
6574 } else {
6575 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6576 REGB0 = REGB1;
6577 }
6578 }
6579 if (UNTAG_Bool(REGB0)) {
6580 /* ./parser//parser_prod.nit:1180 */
6581 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6582 if (UNTAG_Bool(REGB0)) {
6583 } else {
6584 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6585 if (UNTAG_Bool(REGB1)) {
6586 REGB1 = TAG_Bool(false);
6587 REGB0 = REGB1;
6588 } else {
6589 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6590 REGB0 = REGB1;
6591 }
6592 }
6593 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6594 if (UNTAG_Bool(REGB0)) {
6595 /* ./parser//parser_prod.nit:1181 */
6596 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6597 if (UNTAG_Bool(REGB0)) {
6598 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1181);
6599 }
6600 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6601 /* ./parser//parser_prod.nit:1182 */
6602 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*/;
6603 if (UNTAG_Bool(REGB0)) {
6604 } else {
6605 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1182);
6606 }
6607 /* ./parser//parser_prod.nit:1183 */
6608 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
6609 } else {
6610 /* ./parser//parser_prod.nit:1185 */
6611 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
6612 }
6613 /* ./parser//parser_prod.nit:1187 */
6614 goto label1;
6615 }
6616 /* ./parser//parser_prod.nit:1189 */
6617 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
6618 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6619 if (UNTAG_Bool(REGB0)) {
6620 } else {
6621 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6622 if (UNTAG_Bool(REGB1)) {
6623 REGB1 = TAG_Bool(false);
6624 REGB0 = REGB1;
6625 } else {
6626 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6627 REGB0 = REGB1;
6628 }
6629 }
6630 if (UNTAG_Bool(REGB0)) {
6631 /* ./parser//parser_prod.nit:1190 */
6632 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6633 if (UNTAG_Bool(REGB0)) {
6634 } else {
6635 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6636 if (UNTAG_Bool(REGB1)) {
6637 REGB1 = TAG_Bool(false);
6638 REGB0 = REGB1;
6639 } else {
6640 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6641 REGB0 = REGB1;
6642 }
6643 }
6644 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6645 if (UNTAG_Bool(REGB0)) {
6646 /* ./parser//parser_prod.nit:1191 */
6647 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6648 if (UNTAG_Bool(REGB0)) {
6649 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1191);
6650 }
6651 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6652 /* ./parser//parser_prod.nit:1192 */
6653 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*/;
6654 if (UNTAG_Bool(REGB0)) {
6655 } else {
6656 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1192);
6657 }
6658 /* ./parser//parser_prod.nit:1193 */
6659 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
6660 } else {
6661 /* ./parser//parser_prod.nit:1195 */
6662 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
6663 }
6664 /* ./parser//parser_prod.nit:1197 */
6665 goto label1;
6666 }
6667 /* ./parser//parser_prod.nit:1199 */
6668 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
6669 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6670 if (UNTAG_Bool(REGB0)) {
6671 } else {
6672 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6673 if (UNTAG_Bool(REGB1)) {
6674 REGB1 = TAG_Bool(false);
6675 REGB0 = REGB1;
6676 } else {
6677 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6678 REGB0 = REGB1;
6679 }
6680 }
6681 if (UNTAG_Bool(REGB0)) {
6682 /* ./parser//parser_prod.nit:1200 */
6683 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6684 if (UNTAG_Bool(REGB0)) {
6685 } else {
6686 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6687 if (UNTAG_Bool(REGB1)) {
6688 REGB1 = TAG_Bool(false);
6689 REGB0 = REGB1;
6690 } else {
6691 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6692 REGB0 = REGB1;
6693 }
6694 }
6695 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6696 if (UNTAG_Bool(REGB0)) {
6697 /* ./parser//parser_prod.nit:1201 */
6698 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6699 if (UNTAG_Bool(REGB0)) {
6700 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1201);
6701 }
6702 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6703 /* ./parser//parser_prod.nit:1202 */
6704 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*/;
6705 if (UNTAG_Bool(REGB0)) {
6706 } else {
6707 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1202);
6708 }
6709 /* ./parser//parser_prod.nit:1203 */
6710 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
6711 } else {
6712 /* ./parser//parser_prod.nit:1205 */
6713 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1205);
6714 }
6715 /* ./parser//parser_prod.nit:1207 */
6716 goto label1;
6717 }
6718 /* ./parser//parser_prod.nit:1209 */
6719 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
6720 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6721 if (UNTAG_Bool(REGB0)) {
6722 } else {
6723 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6724 if (UNTAG_Bool(REGB1)) {
6725 REGB1 = TAG_Bool(false);
6726 REGB0 = REGB1;
6727 } else {
6728 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6729 REGB0 = REGB1;
6730 }
6731 }
6732 if (UNTAG_Bool(REGB0)) {
6733 /* ./parser//parser_prod.nit:1210 */
6734 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6735 if (UNTAG_Bool(REGB0)) {
6736 } else {
6737 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6738 if (UNTAG_Bool(REGB1)) {
6739 REGB1 = TAG_Bool(false);
6740 REGB0 = REGB1;
6741 } else {
6742 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6743 REGB0 = REGB1;
6744 }
6745 }
6746 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6747 if (UNTAG_Bool(REGB0)) {
6748 /* ./parser//parser_prod.nit:1211 */
6749 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6750 if (UNTAG_Bool(REGB0)) {
6751 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1211);
6752 }
6753 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6754 /* ./parser//parser_prod.nit:1212 */
6755 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*/;
6756 if (UNTAG_Bool(REGB0)) {
6757 } else {
6758 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1212);
6759 }
6760 /* ./parser//parser_prod.nit:1213 */
6761 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
6762 } else {
6763 /* ./parser//parser_prod.nit:1215 */
6764 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1215);
6765 }
6766 /* ./parser//parser_prod.nit:1217 */
6767 goto label1;
6768 }
6769 /* ./parser//parser_prod.nit:1219 */
6770 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
6771 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6772 if (UNTAG_Bool(REGB0)) {
6773 } else {
6774 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6775 if (UNTAG_Bool(REGB1)) {
6776 REGB1 = TAG_Bool(false);
6777 REGB0 = REGB1;
6778 } else {
6779 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6780 REGB0 = REGB1;
6781 }
6782 }
6783 if (UNTAG_Bool(REGB0)) {
6784 /* ./parser//parser_prod.nit:1220 */
6785 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6786 if (UNTAG_Bool(REGB0)) {
6787 } else {
6788 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6789 if (UNTAG_Bool(REGB1)) {
6790 REGB1 = TAG_Bool(false);
6791 REGB0 = REGB1;
6792 } else {
6793 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6794 REGB0 = REGB1;
6795 }
6796 }
6797 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6798 if (UNTAG_Bool(REGB0)) {
6799 /* ./parser//parser_prod.nit:1221 */
6800 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6801 if (UNTAG_Bool(REGB0)) {
6802 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1221);
6803 }
6804 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6805 /* ./parser//parser_prod.nit:1222 */
6806 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*/;
6807 if (UNTAG_Bool(REGB0)) {
6808 } else {
6809 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1222);
6810 }
6811 /* ./parser//parser_prod.nit:1223 */
6812 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
6813 } else {
6814 /* ./parser//parser_prod.nit:1225 */
6815 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1225);
6816 }
6817 /* ./parser//parser_prod.nit:1227 */
6818 goto label1;
6819 }
6820 label1: while(0);
6821 stack_frame_head = fra.me.prev;
6822 return;
6823 }
6824 void parser___parser_prod___AMethPropdef___visit_all(val_t p0, val_t p1){
6825 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6826 val_t REGB0;
6827 val_t REGB1;
6828 val_t tmp;
6829 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6830 fra.me.file = LOCATE_parser___parser_prod;
6831 fra.me.line = 1231;
6832 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___visit_all;
6833 fra.me.has_broke = 0;
6834 fra.me.REG_size = 4;
6835 fra.me.nitni_local_ref_head = NULL;
6836 fra.me.REG[0] = NIT_NULL;
6837 fra.me.REG[1] = NIT_NULL;
6838 fra.me.REG[2] = NIT_NULL;
6839 fra.me.REG[3] = NIT_NULL;
6840 fra.me.REG[0] = p0;
6841 fra.me.REG[1] = p1;
6842 /* ./parser//parser_prod.nit:1231 */
6843 fra.me.REG[2] = fra.me.REG[0];
6844 /* ./parser//parser_prod.nit:1233 */
6845 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
6846 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6847 if (UNTAG_Bool(REGB0)) {
6848 } else {
6849 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6850 if (UNTAG_Bool(REGB1)) {
6851 REGB1 = TAG_Bool(false);
6852 REGB0 = REGB1;
6853 } else {
6854 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6855 REGB0 = REGB1;
6856 }
6857 }
6858 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6859 if (UNTAG_Bool(REGB0)) {
6860 /* ./parser//parser_prod.nit:1234 */
6861 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
6862 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*/;
6863 if (UNTAG_Bool(REGB0)) {
6864 } else {
6865 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1234);
6866 }
6867 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6868 }
6869 /* ./parser//parser_prod.nit:1236 */
6870 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
6871 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6872 if (UNTAG_Bool(REGB0)) {
6873 } else {
6874 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6875 if (UNTAG_Bool(REGB1)) {
6876 REGB1 = TAG_Bool(false);
6877 REGB0 = REGB1;
6878 } else {
6879 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6880 REGB0 = REGB1;
6881 }
6882 }
6883 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6884 if (UNTAG_Bool(REGB0)) {
6885 /* ./parser//parser_prod.nit:1237 */
6886 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
6887 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*/;
6888 if (UNTAG_Bool(REGB0)) {
6889 } else {
6890 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1237);
6891 }
6892 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6893 }
6894 /* ./parser//parser_prod.nit:1239 */
6895 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
6896 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6897 /* ./parser//parser_prod.nit:1240 */
6898 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
6899 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6900 /* ./parser//parser_prod.nit:1241 */
6901 fra.me.REG[2] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
6902 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
6903 stack_frame_head = fra.me.prev;
6904 return;
6905 }
6906 void parser___parser_prod___ADeferredMethPropdef___empty_init(val_t p0, int* init_table){
6907 int itpos41 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADeferredMethPropdef].i;
6908 struct {struct stack_frame_t me;} fra;
6909 val_t tmp;
6910 if (init_table[itpos41]) return;
6911 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6912 fra.me.file = LOCATE_parser___parser_prod;
6913 fra.me.line = 1245;
6914 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___empty_init;
6915 fra.me.has_broke = 0;
6916 fra.me.REG_size = 1;
6917 fra.me.nitni_local_ref_head = NULL;
6918 fra.me.REG[0] = NIT_NULL;
6919 fra.me.REG[0] = p0;
6920 stack_frame_head = fra.me.prev;
6921 init_table[itpos41] = 1;
6922 return;
6923 }
6924 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){
6925 int itpos42 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADeferredMethPropdef].i;
6926 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
6927 val_t REGB0;
6928 val_t REGB1;
6929 val_t tmp;
6930 if (init_table[itpos42]) return;
6931 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6932 fra.me.file = LOCATE_parser___parser_prod;
6933 fra.me.line = 1247;
6934 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef;
6935 fra.me.has_broke = 0;
6936 fra.me.REG_size = 8;
6937 fra.me.nitni_local_ref_head = NULL;
6938 fra.me.REG[0] = NIT_NULL;
6939 fra.me.REG[1] = NIT_NULL;
6940 fra.me.REG[2] = NIT_NULL;
6941 fra.me.REG[3] = NIT_NULL;
6942 fra.me.REG[4] = NIT_NULL;
6943 fra.me.REG[5] = NIT_NULL;
6944 fra.me.REG[6] = NIT_NULL;
6945 fra.me.REG[7] = NIT_NULL;
6946 fra.me.REG[0] = p0;
6947 fra.me.REG[1] = p1;
6948 fra.me.REG[2] = p2;
6949 fra.me.REG[3] = p3;
6950 fra.me.REG[4] = p4;
6951 fra.me.REG[5] = p5;
6952 fra.me.REG[6] = p6;
6953 /* ./parser//parser_prod.nit:1247 */
6954 fra.me.REG[7] = fra.me.REG[0];
6955 /* ./parser//parser_prod.nit:1256 */
6956 CALL_parser___parser_prod___ADeferredMethPropdef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
6957 /* ./parser//parser_prod.nit:1257 */
6958 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[7]) = fra.me.REG[1];
6959 /* ./parser//parser_prod.nit:1258 */
6960 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6961 if (UNTAG_Bool(REGB0)) {
6962 } else {
6963 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6964 if (UNTAG_Bool(REGB1)) {
6965 REGB1 = TAG_Bool(false);
6966 REGB0 = REGB1;
6967 } else {
6968 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6969 REGB0 = REGB1;
6970 }
6971 }
6972 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6973 if (UNTAG_Bool(REGB0)) {
6974 /* ./parser//parser_prod.nit:1259 */
6975 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6976 if (UNTAG_Bool(REGB0)) {
6977 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1259);
6978 }
6979 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
6980 }
6981 /* ./parser//parser_prod.nit:1261 */
6982 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[7]) = fra.me.REG[2];
6983 /* ./parser//parser_prod.nit:1262 */
6984 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6985 if (UNTAG_Bool(REGB0)) {
6986 } else {
6987 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6988 if (UNTAG_Bool(REGB1)) {
6989 REGB1 = TAG_Bool(false);
6990 REGB0 = REGB1;
6991 } else {
6992 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6993 REGB0 = REGB1;
6994 }
6995 }
6996 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6997 if (UNTAG_Bool(REGB0)) {
6998 /* ./parser//parser_prod.nit:1263 */
6999 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7000 if (UNTAG_Bool(REGB0)) {
7001 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1263);
7002 }
7003 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
7004 }
7005 /* ./parser//parser_prod.nit:1265 */
7006 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
7007 if (UNTAG_Bool(REGB0)) {
7008 } else {
7009 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1265);
7010 }
7011 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[7]) = fra.me.REG[3];
7012 /* ./parser//parser_prod.nit:1266 */
7013 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7014 if (UNTAG_Bool(REGB0)) {
7015 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1266);
7016 }
7017 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
7018 /* ./parser//parser_prod.nit:1267 */
7019 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
7020 if (UNTAG_Bool(REGB0)) {
7021 } else {
7022 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1267);
7023 }
7024 ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[7]) = fra.me.REG[4];
7025 /* ./parser//parser_prod.nit:1268 */
7026 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7027 if (UNTAG_Bool(REGB0)) {
7028 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1268);
7029 }
7030 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
7031 /* ./parser//parser_prod.nit:1269 */
7032 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
7033 if (UNTAG_Bool(REGB0)) {
7034 } else {
7035 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1269);
7036 }
7037 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[7]) = fra.me.REG[5];
7038 /* ./parser//parser_prod.nit:1270 */
7039 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7040 if (UNTAG_Bool(REGB0)) {
7041 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1270);
7042 }
7043 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
7044 /* ./parser//parser_prod.nit:1271 */
7045 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
7046 if (UNTAG_Bool(REGB0)) {
7047 } else {
7048 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1271);
7049 }
7050 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[7]) = fra.me.REG[6];
7051 /* ./parser//parser_prod.nit:1272 */
7052 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
7053 if (UNTAG_Bool(REGB0)) {
7054 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1272);
7055 }
7056 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7057 stack_frame_head = fra.me.prev;
7058 init_table[itpos42] = 1;
7059 return;
7060 }
7061 void parser___parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
7062 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7063 val_t REGB0;
7064 val_t REGB1;
7065 val_t tmp;
7066 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7067 fra.me.file = LOCATE_parser___parser_prod;
7068 fra.me.line = 1275;
7069 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___replace_child;
7070 fra.me.has_broke = 0;
7071 fra.me.REG_size = 4;
7072 fra.me.nitni_local_ref_head = NULL;
7073 fra.me.REG[0] = NIT_NULL;
7074 fra.me.REG[1] = NIT_NULL;
7075 fra.me.REG[2] = NIT_NULL;
7076 fra.me.REG[3] = NIT_NULL;
7077 fra.me.REG[0] = p0;
7078 fra.me.REG[1] = p1;
7079 fra.me.REG[2] = p2;
7080 /* ./parser//parser_prod.nit:1277 */
7081 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
7082 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7083 if (UNTAG_Bool(REGB0)) {
7084 } else {
7085 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7086 if (UNTAG_Bool(REGB1)) {
7087 REGB1 = TAG_Bool(false);
7088 REGB0 = REGB1;
7089 } else {
7090 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7091 REGB0 = REGB1;
7092 }
7093 }
7094 if (UNTAG_Bool(REGB0)) {
7095 /* ./parser//parser_prod.nit:1278 */
7096 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7097 if (UNTAG_Bool(REGB0)) {
7098 } else {
7099 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7100 if (UNTAG_Bool(REGB1)) {
7101 REGB1 = TAG_Bool(false);
7102 REGB0 = REGB1;
7103 } else {
7104 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7105 REGB0 = REGB1;
7106 }
7107 }
7108 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7109 if (UNTAG_Bool(REGB0)) {
7110 /* ./parser//parser_prod.nit:1279 */
7111 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7112 if (UNTAG_Bool(REGB0)) {
7113 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1279);
7114 }
7115 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7116 /* ./parser//parser_prod.nit:1280 */
7117 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*/;
7118 if (UNTAG_Bool(REGB0)) {
7119 } else {
7120 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1280);
7121 }
7122 /* ./parser//parser_prod.nit:1281 */
7123 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
7124 } else {
7125 /* ./parser//parser_prod.nit:1283 */
7126 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
7127 }
7128 /* ./parser//parser_prod.nit:1285 */
7129 goto label1;
7130 }
7131 /* ./parser//parser_prod.nit:1287 */
7132 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
7133 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7134 if (UNTAG_Bool(REGB0)) {
7135 } else {
7136 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7137 if (UNTAG_Bool(REGB1)) {
7138 REGB1 = TAG_Bool(false);
7139 REGB0 = REGB1;
7140 } else {
7141 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7142 REGB0 = REGB1;
7143 }
7144 }
7145 if (UNTAG_Bool(REGB0)) {
7146 /* ./parser//parser_prod.nit:1288 */
7147 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7148 if (UNTAG_Bool(REGB0)) {
7149 } else {
7150 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7151 if (UNTAG_Bool(REGB1)) {
7152 REGB1 = TAG_Bool(false);
7153 REGB0 = REGB1;
7154 } else {
7155 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7156 REGB0 = REGB1;
7157 }
7158 }
7159 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7160 if (UNTAG_Bool(REGB0)) {
7161 /* ./parser//parser_prod.nit:1289 */
7162 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7163 if (UNTAG_Bool(REGB0)) {
7164 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1289);
7165 }
7166 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7167 /* ./parser//parser_prod.nit:1290 */
7168 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*/;
7169 if (UNTAG_Bool(REGB0)) {
7170 } else {
7171 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1290);
7172 }
7173 /* ./parser//parser_prod.nit:1291 */
7174 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
7175 } else {
7176 /* ./parser//parser_prod.nit:1293 */
7177 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
7178 }
7179 /* ./parser//parser_prod.nit:1295 */
7180 goto label1;
7181 }
7182 /* ./parser//parser_prod.nit:1297 */
7183 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
7184 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7185 if (UNTAG_Bool(REGB0)) {
7186 } else {
7187 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7188 if (UNTAG_Bool(REGB1)) {
7189 REGB1 = TAG_Bool(false);
7190 REGB0 = REGB1;
7191 } else {
7192 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7193 REGB0 = REGB1;
7194 }
7195 }
7196 if (UNTAG_Bool(REGB0)) {
7197 /* ./parser//parser_prod.nit:1298 */
7198 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7199 if (UNTAG_Bool(REGB0)) {
7200 } else {
7201 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7202 if (UNTAG_Bool(REGB1)) {
7203 REGB1 = TAG_Bool(false);
7204 REGB0 = REGB1;
7205 } else {
7206 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7207 REGB0 = REGB1;
7208 }
7209 }
7210 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7211 if (UNTAG_Bool(REGB0)) {
7212 /* ./parser//parser_prod.nit:1299 */
7213 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7214 if (UNTAG_Bool(REGB0)) {
7215 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1299);
7216 }
7217 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7218 /* ./parser//parser_prod.nit:1300 */
7219 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*/;
7220 if (UNTAG_Bool(REGB0)) {
7221 } else {
7222 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1300);
7223 }
7224 /* ./parser//parser_prod.nit:1301 */
7225 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
7226 } else {
7227 /* ./parser//parser_prod.nit:1303 */
7228 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1303);
7229 }
7230 /* ./parser//parser_prod.nit:1305 */
7231 goto label1;
7232 }
7233 /* ./parser//parser_prod.nit:1307 */
7234 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
7235 if (UNTAG_Bool(REGB0)) {
7236 } else {
7237 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1307);
7238 }
7239 fra.me.REG[3] = ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0]);
7240 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
7241 if (UNTAG_Bool(REGB0)) {
7242 } else {
7243 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7244 REGB0 = REGB1;
7245 }
7246 if (UNTAG_Bool(REGB0)) {
7247 /* ./parser//parser_prod.nit:1308 */
7248 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7249 if (UNTAG_Bool(REGB0)) {
7250 } else {
7251 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7252 if (UNTAG_Bool(REGB1)) {
7253 REGB1 = TAG_Bool(false);
7254 REGB0 = REGB1;
7255 } else {
7256 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7257 REGB0 = REGB1;
7258 }
7259 }
7260 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7261 if (UNTAG_Bool(REGB0)) {
7262 /* ./parser//parser_prod.nit:1309 */
7263 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7264 if (UNTAG_Bool(REGB0)) {
7265 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1309);
7266 }
7267 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7268 /* ./parser//parser_prod.nit:1310 */
7269 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*/;
7270 if (UNTAG_Bool(REGB0)) {
7271 } else {
7272 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1310);
7273 }
7274 /* ./parser//parser_prod.nit:1311 */
7275 ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
7276 } else {
7277 /* ./parser//parser_prod.nit:1313 */
7278 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1313);
7279 }
7280 /* ./parser//parser_prod.nit:1315 */
7281 goto label1;
7282 }
7283 /* ./parser//parser_prod.nit:1317 */
7284 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
7285 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7286 if (UNTAG_Bool(REGB0)) {
7287 } else {
7288 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7289 if (UNTAG_Bool(REGB1)) {
7290 REGB1 = TAG_Bool(false);
7291 REGB0 = REGB1;
7292 } else {
7293 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7294 REGB0 = REGB1;
7295 }
7296 }
7297 if (UNTAG_Bool(REGB0)) {
7298 /* ./parser//parser_prod.nit:1318 */
7299 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7300 if (UNTAG_Bool(REGB0)) {
7301 } else {
7302 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7303 if (UNTAG_Bool(REGB1)) {
7304 REGB1 = TAG_Bool(false);
7305 REGB0 = REGB1;
7306 } else {
7307 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7308 REGB0 = REGB1;
7309 }
7310 }
7311 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7312 if (UNTAG_Bool(REGB0)) {
7313 /* ./parser//parser_prod.nit:1319 */
7314 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7315 if (UNTAG_Bool(REGB0)) {
7316 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1319);
7317 }
7318 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7319 /* ./parser//parser_prod.nit:1320 */
7320 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*/;
7321 if (UNTAG_Bool(REGB0)) {
7322 } else {
7323 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1320);
7324 }
7325 /* ./parser//parser_prod.nit:1321 */
7326 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
7327 } else {
7328 /* ./parser//parser_prod.nit:1323 */
7329 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1323);
7330 }
7331 /* ./parser//parser_prod.nit:1325 */
7332 goto label1;
7333 }
7334 /* ./parser//parser_prod.nit:1327 */
7335 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
7336 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7337 if (UNTAG_Bool(REGB0)) {
7338 } else {
7339 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7340 if (UNTAG_Bool(REGB1)) {
7341 REGB1 = TAG_Bool(false);
7342 REGB0 = REGB1;
7343 } else {
7344 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7345 REGB0 = REGB1;
7346 }
7347 }
7348 if (UNTAG_Bool(REGB0)) {
7349 /* ./parser//parser_prod.nit:1328 */
7350 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7351 if (UNTAG_Bool(REGB0)) {
7352 } else {
7353 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7354 if (UNTAG_Bool(REGB1)) {
7355 REGB1 = TAG_Bool(false);
7356 REGB0 = REGB1;
7357 } else {
7358 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7359 REGB0 = REGB1;
7360 }
7361 }
7362 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7363 if (UNTAG_Bool(REGB0)) {
7364 /* ./parser//parser_prod.nit:1329 */
7365 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7366 if (UNTAG_Bool(REGB0)) {
7367 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1329);
7368 }
7369 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7370 /* ./parser//parser_prod.nit:1330 */
7371 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*/;
7372 if (UNTAG_Bool(REGB0)) {
7373 } else {
7374 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1330);
7375 }
7376 /* ./parser//parser_prod.nit:1331 */
7377 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
7378 } else {
7379 /* ./parser//parser_prod.nit:1333 */
7380 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1333);
7381 }
7382 /* ./parser//parser_prod.nit:1335 */
7383 goto label1;
7384 }
7385 label1: while(0);
7386 stack_frame_head = fra.me.prev;
7387 return;
7388 }
7389 void parser___parser_prod___ADeferredMethPropdef___visit_all(val_t p0, val_t p1){
7390 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7391 val_t REGB0;
7392 val_t REGB1;
7393 val_t tmp;
7394 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7395 fra.me.file = LOCATE_parser___parser_prod;
7396 fra.me.line = 1339;
7397 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___visit_all;
7398 fra.me.has_broke = 0;
7399 fra.me.REG_size = 4;
7400 fra.me.nitni_local_ref_head = NULL;
7401 fra.me.REG[0] = NIT_NULL;
7402 fra.me.REG[1] = NIT_NULL;
7403 fra.me.REG[2] = NIT_NULL;
7404 fra.me.REG[3] = NIT_NULL;
7405 fra.me.REG[0] = p0;
7406 fra.me.REG[1] = p1;
7407 /* ./parser//parser_prod.nit:1339 */
7408 fra.me.REG[2] = fra.me.REG[0];
7409 /* ./parser//parser_prod.nit:1341 */
7410 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7411 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7412 if (UNTAG_Bool(REGB0)) {
7413 } else {
7414 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7415 if (UNTAG_Bool(REGB1)) {
7416 REGB1 = TAG_Bool(false);
7417 REGB0 = REGB1;
7418 } else {
7419 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7420 REGB0 = REGB1;
7421 }
7422 }
7423 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7424 if (UNTAG_Bool(REGB0)) {
7425 /* ./parser//parser_prod.nit:1342 */
7426 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7427 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*/;
7428 if (UNTAG_Bool(REGB0)) {
7429 } else {
7430 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1342);
7431 }
7432 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7433 }
7434 /* ./parser//parser_prod.nit:1344 */
7435 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
7436 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7437 if (UNTAG_Bool(REGB0)) {
7438 } else {
7439 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7440 if (UNTAG_Bool(REGB1)) {
7441 REGB1 = TAG_Bool(false);
7442 REGB0 = REGB1;
7443 } else {
7444 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7445 REGB0 = REGB1;
7446 }
7447 }
7448 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7449 if (UNTAG_Bool(REGB0)) {
7450 /* ./parser//parser_prod.nit:1345 */
7451 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
7452 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*/;
7453 if (UNTAG_Bool(REGB0)) {
7454 } else {
7455 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1345);
7456 }
7457 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7458 }
7459 /* ./parser//parser_prod.nit:1347 */
7460 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
7461 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7462 /* ./parser//parser_prod.nit:1348 */
7463 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
7464 if (UNTAG_Bool(REGB0)) {
7465 } else {
7466 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1348);
7467 }
7468 fra.me.REG[3] = ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[2]);
7469 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7470 /* ./parser//parser_prod.nit:1349 */
7471 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
7472 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7473 /* ./parser//parser_prod.nit:1350 */
7474 fra.me.REG[2] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
7475 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
7476 stack_frame_head = fra.me.prev;
7477 return;
7478 }
7479 void parser___parser_prod___AInternMethPropdef___empty_init(val_t p0, int* init_table){
7480 int itpos43 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInternMethPropdef].i;
7481 struct {struct stack_frame_t me;} fra;
7482 val_t tmp;
7483 if (init_table[itpos43]) return;
7484 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7485 fra.me.file = LOCATE_parser___parser_prod;
7486 fra.me.line = 1354;
7487 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___empty_init;
7488 fra.me.has_broke = 0;
7489 fra.me.REG_size = 1;
7490 fra.me.nitni_local_ref_head = NULL;
7491 fra.me.REG[0] = NIT_NULL;
7492 fra.me.REG[0] = p0;
7493 stack_frame_head = fra.me.prev;
7494 init_table[itpos43] = 1;
7495 return;
7496 }
7497 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){
7498 int itpos44 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInternMethPropdef].i;
7499 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
7500 val_t REGB0;
7501 val_t REGB1;
7502 val_t tmp;
7503 if (init_table[itpos44]) return;
7504 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7505 fra.me.file = LOCATE_parser___parser_prod;
7506 fra.me.line = 1356;
7507 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef;
7508 fra.me.has_broke = 0;
7509 fra.me.REG_size = 8;
7510 fra.me.nitni_local_ref_head = NULL;
7511 fra.me.REG[0] = NIT_NULL;
7512 fra.me.REG[1] = NIT_NULL;
7513 fra.me.REG[2] = NIT_NULL;
7514 fra.me.REG[3] = NIT_NULL;
7515 fra.me.REG[4] = NIT_NULL;
7516 fra.me.REG[5] = NIT_NULL;
7517 fra.me.REG[6] = NIT_NULL;
7518 fra.me.REG[7] = NIT_NULL;
7519 fra.me.REG[0] = p0;
7520 fra.me.REG[1] = p1;
7521 fra.me.REG[2] = p2;
7522 fra.me.REG[3] = p3;
7523 fra.me.REG[4] = p4;
7524 fra.me.REG[5] = p5;
7525 fra.me.REG[6] = p6;
7526 /* ./parser//parser_prod.nit:1356 */
7527 fra.me.REG[7] = fra.me.REG[0];
7528 /* ./parser//parser_prod.nit:1365 */
7529 CALL_parser___parser_prod___AInternMethPropdef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
7530 /* ./parser//parser_prod.nit:1366 */
7531 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[7]) = fra.me.REG[1];
7532 /* ./parser//parser_prod.nit:1367 */
7533 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7534 if (UNTAG_Bool(REGB0)) {
7535 } else {
7536 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7537 if (UNTAG_Bool(REGB1)) {
7538 REGB1 = TAG_Bool(false);
7539 REGB0 = REGB1;
7540 } else {
7541 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7542 REGB0 = REGB1;
7543 }
7544 }
7545 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7546 if (UNTAG_Bool(REGB0)) {
7547 /* ./parser//parser_prod.nit:1368 */
7548 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7549 if (UNTAG_Bool(REGB0)) {
7550 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1368);
7551 }
7552 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
7553 }
7554 /* ./parser//parser_prod.nit:1370 */
7555 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[7]) = fra.me.REG[2];
7556 /* ./parser//parser_prod.nit:1371 */
7557 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7558 if (UNTAG_Bool(REGB0)) {
7559 } else {
7560 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7561 if (UNTAG_Bool(REGB1)) {
7562 REGB1 = TAG_Bool(false);
7563 REGB0 = REGB1;
7564 } else {
7565 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7566 REGB0 = REGB1;
7567 }
7568 }
7569 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7570 if (UNTAG_Bool(REGB0)) {
7571 /* ./parser//parser_prod.nit:1372 */
7572 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7573 if (UNTAG_Bool(REGB0)) {
7574 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1372);
7575 }
7576 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
7577 }
7578 /* ./parser//parser_prod.nit:1374 */
7579 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
7580 if (UNTAG_Bool(REGB0)) {
7581 } else {
7582 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1374);
7583 }
7584 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[7]) = fra.me.REG[3];
7585 /* ./parser//parser_prod.nit:1375 */
7586 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7587 if (UNTAG_Bool(REGB0)) {
7588 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1375);
7589 }
7590 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
7591 /* ./parser//parser_prod.nit:1376 */
7592 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
7593 if (UNTAG_Bool(REGB0)) {
7594 } else {
7595 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1376);
7596 }
7597 ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[7]) = fra.me.REG[4];
7598 /* ./parser//parser_prod.nit:1377 */
7599 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7600 if (UNTAG_Bool(REGB0)) {
7601 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1377);
7602 }
7603 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
7604 /* ./parser//parser_prod.nit:1378 */
7605 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
7606 if (UNTAG_Bool(REGB0)) {
7607 } else {
7608 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1378);
7609 }
7610 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[7]) = fra.me.REG[5];
7611 /* ./parser//parser_prod.nit:1379 */
7612 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7613 if (UNTAG_Bool(REGB0)) {
7614 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1379);
7615 }
7616 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
7617 /* ./parser//parser_prod.nit:1380 */
7618 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
7619 if (UNTAG_Bool(REGB0)) {
7620 } else {
7621 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1380);
7622 }
7623 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[7]) = fra.me.REG[6];
7624 /* ./parser//parser_prod.nit:1381 */
7625 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
7626 if (UNTAG_Bool(REGB0)) {
7627 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1381);
7628 }
7629 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7630 stack_frame_head = fra.me.prev;
7631 init_table[itpos44] = 1;
7632 return;
7633 }
7634 void parser___parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
7635 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7636 val_t REGB0;
7637 val_t REGB1;
7638 val_t tmp;
7639 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7640 fra.me.file = LOCATE_parser___parser_prod;
7641 fra.me.line = 1384;
7642 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___replace_child;
7643 fra.me.has_broke = 0;
7644 fra.me.REG_size = 4;
7645 fra.me.nitni_local_ref_head = NULL;
7646 fra.me.REG[0] = NIT_NULL;
7647 fra.me.REG[1] = NIT_NULL;
7648 fra.me.REG[2] = NIT_NULL;
7649 fra.me.REG[3] = NIT_NULL;
7650 fra.me.REG[0] = p0;
7651 fra.me.REG[1] = p1;
7652 fra.me.REG[2] = p2;
7653 /* ./parser//parser_prod.nit:1386 */
7654 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
7655 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7656 if (UNTAG_Bool(REGB0)) {
7657 } else {
7658 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7659 if (UNTAG_Bool(REGB1)) {
7660 REGB1 = TAG_Bool(false);
7661 REGB0 = REGB1;
7662 } else {
7663 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7664 REGB0 = REGB1;
7665 }
7666 }
7667 if (UNTAG_Bool(REGB0)) {
7668 /* ./parser//parser_prod.nit:1387 */
7669 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7670 if (UNTAG_Bool(REGB0)) {
7671 } else {
7672 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7673 if (UNTAG_Bool(REGB1)) {
7674 REGB1 = TAG_Bool(false);
7675 REGB0 = REGB1;
7676 } else {
7677 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7678 REGB0 = REGB1;
7679 }
7680 }
7681 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7682 if (UNTAG_Bool(REGB0)) {
7683 /* ./parser//parser_prod.nit:1388 */
7684 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7685 if (UNTAG_Bool(REGB0)) {
7686 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1388);
7687 }
7688 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7689 /* ./parser//parser_prod.nit:1389 */
7690 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*/;
7691 if (UNTAG_Bool(REGB0)) {
7692 } else {
7693 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1389);
7694 }
7695 /* ./parser//parser_prod.nit:1390 */
7696 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
7697 } else {
7698 /* ./parser//parser_prod.nit:1392 */
7699 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
7700 }
7701 /* ./parser//parser_prod.nit:1394 */
7702 goto label1;
7703 }
7704 /* ./parser//parser_prod.nit:1396 */
7705 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
7706 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7707 if (UNTAG_Bool(REGB0)) {
7708 } else {
7709 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7710 if (UNTAG_Bool(REGB1)) {
7711 REGB1 = TAG_Bool(false);
7712 REGB0 = REGB1;
7713 } else {
7714 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7715 REGB0 = REGB1;
7716 }
7717 }
7718 if (UNTAG_Bool(REGB0)) {
7719 /* ./parser//parser_prod.nit:1397 */
7720 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7721 if (UNTAG_Bool(REGB0)) {
7722 } else {
7723 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7724 if (UNTAG_Bool(REGB1)) {
7725 REGB1 = TAG_Bool(false);
7726 REGB0 = REGB1;
7727 } else {
7728 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7729 REGB0 = REGB1;
7730 }
7731 }
7732 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7733 if (UNTAG_Bool(REGB0)) {
7734 /* ./parser//parser_prod.nit:1398 */
7735 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7736 if (UNTAG_Bool(REGB0)) {
7737 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1398);
7738 }
7739 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7740 /* ./parser//parser_prod.nit:1399 */
7741 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*/;
7742 if (UNTAG_Bool(REGB0)) {
7743 } else {
7744 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1399);
7745 }
7746 /* ./parser//parser_prod.nit:1400 */
7747 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
7748 } else {
7749 /* ./parser//parser_prod.nit:1402 */
7750 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
7751 }
7752 /* ./parser//parser_prod.nit:1404 */
7753 goto label1;
7754 }
7755 /* ./parser//parser_prod.nit:1406 */
7756 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
7757 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7758 if (UNTAG_Bool(REGB0)) {
7759 } else {
7760 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7761 if (UNTAG_Bool(REGB1)) {
7762 REGB1 = TAG_Bool(false);
7763 REGB0 = REGB1;
7764 } else {
7765 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7766 REGB0 = REGB1;
7767 }
7768 }
7769 if (UNTAG_Bool(REGB0)) {
7770 /* ./parser//parser_prod.nit:1407 */
7771 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7772 if (UNTAG_Bool(REGB0)) {
7773 } else {
7774 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7775 if (UNTAG_Bool(REGB1)) {
7776 REGB1 = TAG_Bool(false);
7777 REGB0 = REGB1;
7778 } else {
7779 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7780 REGB0 = REGB1;
7781 }
7782 }
7783 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7784 if (UNTAG_Bool(REGB0)) {
7785 /* ./parser//parser_prod.nit:1408 */
7786 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7787 if (UNTAG_Bool(REGB0)) {
7788 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1408);
7789 }
7790 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7791 /* ./parser//parser_prod.nit:1409 */
7792 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*/;
7793 if (UNTAG_Bool(REGB0)) {
7794 } else {
7795 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1409);
7796 }
7797 /* ./parser//parser_prod.nit:1410 */
7798 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
7799 } else {
7800 /* ./parser//parser_prod.nit:1412 */
7801 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1412);
7802 }
7803 /* ./parser//parser_prod.nit:1414 */
7804 goto label1;
7805 }
7806 /* ./parser//parser_prod.nit:1416 */
7807 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
7808 if (UNTAG_Bool(REGB0)) {
7809 } else {
7810 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1416);
7811 }
7812 fra.me.REG[3] = ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0]);
7813 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
7814 if (UNTAG_Bool(REGB0)) {
7815 } else {
7816 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7817 REGB0 = REGB1;
7818 }
7819 if (UNTAG_Bool(REGB0)) {
7820 /* ./parser//parser_prod.nit:1417 */
7821 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7822 if (UNTAG_Bool(REGB0)) {
7823 } else {
7824 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7825 if (UNTAG_Bool(REGB1)) {
7826 REGB1 = TAG_Bool(false);
7827 REGB0 = REGB1;
7828 } else {
7829 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7830 REGB0 = REGB1;
7831 }
7832 }
7833 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7834 if (UNTAG_Bool(REGB0)) {
7835 /* ./parser//parser_prod.nit:1418 */
7836 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7837 if (UNTAG_Bool(REGB0)) {
7838 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1418);
7839 }
7840 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7841 /* ./parser//parser_prod.nit:1419 */
7842 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*/;
7843 if (UNTAG_Bool(REGB0)) {
7844 } else {
7845 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1419);
7846 }
7847 /* ./parser//parser_prod.nit:1420 */
7848 ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
7849 } else {
7850 /* ./parser//parser_prod.nit:1422 */
7851 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1422);
7852 }
7853 /* ./parser//parser_prod.nit:1424 */
7854 goto label1;
7855 }
7856 /* ./parser//parser_prod.nit:1426 */
7857 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
7858 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7859 if (UNTAG_Bool(REGB0)) {
7860 } else {
7861 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7862 if (UNTAG_Bool(REGB1)) {
7863 REGB1 = TAG_Bool(false);
7864 REGB0 = REGB1;
7865 } else {
7866 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7867 REGB0 = REGB1;
7868 }
7869 }
7870 if (UNTAG_Bool(REGB0)) {
7871 /* ./parser//parser_prod.nit:1427 */
7872 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7873 if (UNTAG_Bool(REGB0)) {
7874 } else {
7875 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7876 if (UNTAG_Bool(REGB1)) {
7877 REGB1 = TAG_Bool(false);
7878 REGB0 = REGB1;
7879 } else {
7880 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7881 REGB0 = REGB1;
7882 }
7883 }
7884 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7885 if (UNTAG_Bool(REGB0)) {
7886 /* ./parser//parser_prod.nit:1428 */
7887 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7888 if (UNTAG_Bool(REGB0)) {
7889 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1428);
7890 }
7891 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7892 /* ./parser//parser_prod.nit:1429 */
7893 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*/;
7894 if (UNTAG_Bool(REGB0)) {
7895 } else {
7896 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1429);
7897 }
7898 /* ./parser//parser_prod.nit:1430 */
7899 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
7900 } else {
7901 /* ./parser//parser_prod.nit:1432 */
7902 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1432);
7903 }
7904 /* ./parser//parser_prod.nit:1434 */
7905 goto label1;
7906 }
7907 /* ./parser//parser_prod.nit:1436 */
7908 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
7909 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7910 if (UNTAG_Bool(REGB0)) {
7911 } else {
7912 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7913 if (UNTAG_Bool(REGB1)) {
7914 REGB1 = TAG_Bool(false);
7915 REGB0 = REGB1;
7916 } else {
7917 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7918 REGB0 = REGB1;
7919 }
7920 }
7921 if (UNTAG_Bool(REGB0)) {
7922 /* ./parser//parser_prod.nit:1437 */
7923 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7924 if (UNTAG_Bool(REGB0)) {
7925 } else {
7926 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7927 if (UNTAG_Bool(REGB1)) {
7928 REGB1 = TAG_Bool(false);
7929 REGB0 = REGB1;
7930 } else {
7931 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7932 REGB0 = REGB1;
7933 }
7934 }
7935 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7936 if (UNTAG_Bool(REGB0)) {
7937 /* ./parser//parser_prod.nit:1438 */
7938 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7939 if (UNTAG_Bool(REGB0)) {
7940 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1438);
7941 }
7942 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7943 /* ./parser//parser_prod.nit:1439 */
7944 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*/;
7945 if (UNTAG_Bool(REGB0)) {
7946 } else {
7947 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1439);
7948 }
7949 /* ./parser//parser_prod.nit:1440 */
7950 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
7951 } else {
7952 /* ./parser//parser_prod.nit:1442 */
7953 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1442);
7954 }
7955 /* ./parser//parser_prod.nit:1444 */
7956 goto label1;
7957 }
7958 label1: while(0);
7959 stack_frame_head = fra.me.prev;
7960 return;
7961 }
7962 void parser___parser_prod___AInternMethPropdef___visit_all(val_t p0, val_t p1){
7963 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7964 val_t REGB0;
7965 val_t REGB1;
7966 val_t tmp;
7967 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7968 fra.me.file = LOCATE_parser___parser_prod;
7969 fra.me.line = 1448;
7970 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___visit_all;
7971 fra.me.has_broke = 0;
7972 fra.me.REG_size = 4;
7973 fra.me.nitni_local_ref_head = NULL;
7974 fra.me.REG[0] = NIT_NULL;
7975 fra.me.REG[1] = NIT_NULL;
7976 fra.me.REG[2] = NIT_NULL;
7977 fra.me.REG[3] = NIT_NULL;
7978 fra.me.REG[0] = p0;
7979 fra.me.REG[1] = p1;
7980 /* ./parser//parser_prod.nit:1448 */
7981 fra.me.REG[2] = fra.me.REG[0];
7982 /* ./parser//parser_prod.nit:1450 */
7983 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7984 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7985 if (UNTAG_Bool(REGB0)) {
7986 } else {
7987 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7988 if (UNTAG_Bool(REGB1)) {
7989 REGB1 = TAG_Bool(false);
7990 REGB0 = REGB1;
7991 } else {
7992 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7993 REGB0 = REGB1;
7994 }
7995 }
7996 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7997 if (UNTAG_Bool(REGB0)) {
7998 /* ./parser//parser_prod.nit:1451 */
7999 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
8000 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*/;
8001 if (UNTAG_Bool(REGB0)) {
8002 } else {
8003 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1451);
8004 }
8005 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8006 }
8007 /* ./parser//parser_prod.nit:1453 */
8008 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
8009 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8010 if (UNTAG_Bool(REGB0)) {
8011 } else {
8012 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8013 if (UNTAG_Bool(REGB1)) {
8014 REGB1 = TAG_Bool(false);
8015 REGB0 = REGB1;
8016 } else {
8017 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8018 REGB0 = REGB1;
8019 }
8020 }
8021 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8022 if (UNTAG_Bool(REGB0)) {
8023 /* ./parser//parser_prod.nit:1454 */
8024 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
8025 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*/;
8026 if (UNTAG_Bool(REGB0)) {
8027 } else {
8028 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1454);
8029 }
8030 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8031 }
8032 /* ./parser//parser_prod.nit:1456 */
8033 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
8034 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8035 /* ./parser//parser_prod.nit:1457 */
8036 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
8037 if (UNTAG_Bool(REGB0)) {
8038 } else {
8039 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1457);
8040 }
8041 fra.me.REG[3] = ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[2]);
8042 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8043 /* ./parser//parser_prod.nit:1458 */
8044 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
8045 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8046 /* ./parser//parser_prod.nit:1459 */
8047 fra.me.REG[2] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
8048 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8049 stack_frame_head = fra.me.prev;
8050 return;
8051 }
8052 void parser___parser_prod___AExternMethPropdef___empty_init(val_t p0, int* init_table){
8053 int itpos45 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternMethPropdef].i;
8054 struct {struct stack_frame_t me;} fra;
8055 val_t tmp;
8056 if (init_table[itpos45]) return;
8057 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8058 fra.me.file = LOCATE_parser___parser_prod;
8059 fra.me.line = 1463;
8060 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___empty_init;
8061 fra.me.has_broke = 0;
8062 fra.me.REG_size = 1;
8063 fra.me.nitni_local_ref_head = NULL;
8064 fra.me.REG[0] = NIT_NULL;
8065 fra.me.REG[0] = p0;
8066 stack_frame_head = fra.me.prev;
8067 init_table[itpos45] = 1;
8068 return;
8069 }
8070 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){
8071 int itpos46 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternMethPropdef].i;
8072 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
8073 val_t REGB0;
8074 val_t REGB1;
8075 val_t tmp;
8076 if (init_table[itpos46]) return;
8077 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8078 fra.me.file = LOCATE_parser___parser_prod;
8079 fra.me.line = 1465;
8080 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef;
8081 fra.me.has_broke = 0;
8082 fra.me.REG_size = 10;
8083 fra.me.nitni_local_ref_head = NULL;
8084 fra.me.REG[0] = NIT_NULL;
8085 fra.me.REG[1] = NIT_NULL;
8086 fra.me.REG[2] = NIT_NULL;
8087 fra.me.REG[3] = NIT_NULL;
8088 fra.me.REG[4] = NIT_NULL;
8089 fra.me.REG[5] = NIT_NULL;
8090 fra.me.REG[6] = NIT_NULL;
8091 fra.me.REG[7] = NIT_NULL;
8092 fra.me.REG[8] = NIT_NULL;
8093 fra.me.REG[9] = NIT_NULL;
8094 fra.me.REG[0] = p0;
8095 fra.me.REG[1] = p1;
8096 fra.me.REG[2] = p2;
8097 fra.me.REG[3] = p3;
8098 fra.me.REG[4] = p4;
8099 fra.me.REG[5] = p5;
8100 fra.me.REG[6] = p6;
8101 fra.me.REG[7] = p7;
8102 fra.me.REG[8] = p8;
8103 /* ./parser//parser_prod.nit:1465 */
8104 fra.me.REG[9] = fra.me.REG[0];
8105 /* ./parser//parser_prod.nit:1476 */
8106 CALL_parser___parser_prod___AExternMethPropdef___empty_init(fra.me.REG[9])(fra.me.REG[9], init_table);
8107 /* ./parser//parser_prod.nit:1477 */
8108 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[9]) = fra.me.REG[1];
8109 /* ./parser//parser_prod.nit:1478 */
8110 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8111 if (UNTAG_Bool(REGB0)) {
8112 } else {
8113 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8114 if (UNTAG_Bool(REGB1)) {
8115 REGB1 = TAG_Bool(false);
8116 REGB0 = REGB1;
8117 } else {
8118 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8119 REGB0 = REGB1;
8120 }
8121 }
8122 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8123 if (UNTAG_Bool(REGB0)) {
8124 /* ./parser//parser_prod.nit:1479 */
8125 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8126 if (UNTAG_Bool(REGB0)) {
8127 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1479);
8128 }
8129 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
8130 }
8131 /* ./parser//parser_prod.nit:1481 */
8132 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[9]) = fra.me.REG[2];
8133 /* ./parser//parser_prod.nit:1482 */
8134 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8135 if (UNTAG_Bool(REGB0)) {
8136 } else {
8137 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8138 if (UNTAG_Bool(REGB1)) {
8139 REGB1 = TAG_Bool(false);
8140 REGB0 = REGB1;
8141 } else {
8142 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8143 REGB0 = REGB1;
8144 }
8145 }
8146 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8147 if (UNTAG_Bool(REGB0)) {
8148 /* ./parser//parser_prod.nit:1483 */
8149 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8150 if (UNTAG_Bool(REGB0)) {
8151 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1483);
8152 }
8153 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[9]);
8154 }
8155 /* ./parser//parser_prod.nit:1485 */
8156 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
8157 if (UNTAG_Bool(REGB0)) {
8158 } else {
8159 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1485);
8160 }
8161 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[9]) = fra.me.REG[3];
8162 /* ./parser//parser_prod.nit:1486 */
8163 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8164 if (UNTAG_Bool(REGB0)) {
8165 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1486);
8166 }
8167 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]);
8168 /* ./parser//parser_prod.nit:1487 */
8169 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8170 if (UNTAG_Bool(REGB0)) {
8171 } else {
8172 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1487);
8173 }
8174 ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[9]) = fra.me.REG[4];
8175 /* ./parser//parser_prod.nit:1488 */
8176 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8177 if (UNTAG_Bool(REGB0)) {
8178 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1488);
8179 }
8180 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
8181 /* ./parser//parser_prod.nit:1489 */
8182 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
8183 if (UNTAG_Bool(REGB0)) {
8184 } else {
8185 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1489);
8186 }
8187 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[9]) = fra.me.REG[5];
8188 /* ./parser//parser_prod.nit:1490 */
8189 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8190 if (UNTAG_Bool(REGB0)) {
8191 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1490);
8192 }
8193 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[9]);
8194 /* ./parser//parser_prod.nit:1491 */
8195 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
8196 if (UNTAG_Bool(REGB0)) {
8197 } else {
8198 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1491);
8199 }
8200 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[9]) = fra.me.REG[6];
8201 /* ./parser//parser_prod.nit:1492 */
8202 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8203 if (UNTAG_Bool(REGB0)) {
8204 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1492);
8205 }
8206 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
8207 /* ./parser//parser_prod.nit:1493 */
8208 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[9]) = fra.me.REG[7];
8209 /* ./parser//parser_prod.nit:1494 */
8210 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8211 if (UNTAG_Bool(REGB0)) {
8212 } else {
8213 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8214 if (UNTAG_Bool(REGB1)) {
8215 REGB1 = TAG_Bool(false);
8216 REGB0 = REGB1;
8217 } else {
8218 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
8219 REGB0 = REGB1;
8220 }
8221 }
8222 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8223 if (UNTAG_Bool(REGB0)) {
8224 /* ./parser//parser_prod.nit:1495 */
8225 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8226 if (UNTAG_Bool(REGB0)) {
8227 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1495);
8228 }
8229 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]);
8230 }
8231 /* ./parser//parser_prod.nit:1497 */
8232 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[9]) = fra.me.REG[8];
8233 /* ./parser//parser_prod.nit:1498 */
8234 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
8235 if (UNTAG_Bool(REGB0)) {
8236 } else {
8237 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
8238 if (UNTAG_Bool(REGB1)) {
8239 REGB1 = TAG_Bool(false);
8240 REGB0 = REGB1;
8241 } else {
8242 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
8243 REGB0 = REGB1;
8244 }
8245 }
8246 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8247 if (UNTAG_Bool(REGB0)) {
8248 /* ./parser//parser_prod.nit:1499 */
8249 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
8250 if (UNTAG_Bool(REGB0)) {
8251 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1499);
8252 }
8253 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
8254 }
8255 stack_frame_head = fra.me.prev;
8256 init_table[itpos46] = 1;
8257 return;
8258 }
8259 void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
8260 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8261 val_t REGB0;
8262 val_t REGB1;
8263 val_t tmp;
8264 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8265 fra.me.file = LOCATE_parser___parser_prod;
8266 fra.me.line = 1503;
8267 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___replace_child;
8268 fra.me.has_broke = 0;
8269 fra.me.REG_size = 4;
8270 fra.me.nitni_local_ref_head = NULL;
8271 fra.me.REG[0] = NIT_NULL;
8272 fra.me.REG[1] = NIT_NULL;
8273 fra.me.REG[2] = NIT_NULL;
8274 fra.me.REG[3] = NIT_NULL;
8275 fra.me.REG[0] = p0;
8276 fra.me.REG[1] = p1;
8277 fra.me.REG[2] = p2;
8278 /* ./parser//parser_prod.nit:1505 */
8279 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
8280 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8281 if (UNTAG_Bool(REGB0)) {
8282 } else {
8283 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8284 if (UNTAG_Bool(REGB1)) {
8285 REGB1 = TAG_Bool(false);
8286 REGB0 = REGB1;
8287 } else {
8288 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8289 REGB0 = REGB1;
8290 }
8291 }
8292 if (UNTAG_Bool(REGB0)) {
8293 /* ./parser//parser_prod.nit:1506 */
8294 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8295 if (UNTAG_Bool(REGB0)) {
8296 } else {
8297 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8298 if (UNTAG_Bool(REGB1)) {
8299 REGB1 = TAG_Bool(false);
8300 REGB0 = REGB1;
8301 } else {
8302 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8303 REGB0 = REGB1;
8304 }
8305 }
8306 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8307 if (UNTAG_Bool(REGB0)) {
8308 /* ./parser//parser_prod.nit:1507 */
8309 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8310 if (UNTAG_Bool(REGB0)) {
8311 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1507);
8312 }
8313 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8314 /* ./parser//parser_prod.nit:1508 */
8315 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*/;
8316 if (UNTAG_Bool(REGB0)) {
8317 } else {
8318 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1508);
8319 }
8320 /* ./parser//parser_prod.nit:1509 */
8321 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
8322 } else {
8323 /* ./parser//parser_prod.nit:1511 */
8324 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
8325 }
8326 /* ./parser//parser_prod.nit:1513 */
8327 goto label1;
8328 }
8329 /* ./parser//parser_prod.nit:1515 */
8330 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
8331 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8332 if (UNTAG_Bool(REGB0)) {
8333 } else {
8334 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8335 if (UNTAG_Bool(REGB1)) {
8336 REGB1 = TAG_Bool(false);
8337 REGB0 = REGB1;
8338 } else {
8339 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8340 REGB0 = REGB1;
8341 }
8342 }
8343 if (UNTAG_Bool(REGB0)) {
8344 /* ./parser//parser_prod.nit:1516 */
8345 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8346 if (UNTAG_Bool(REGB0)) {
8347 } else {
8348 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8349 if (UNTAG_Bool(REGB1)) {
8350 REGB1 = TAG_Bool(false);
8351 REGB0 = REGB1;
8352 } else {
8353 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8354 REGB0 = REGB1;
8355 }
8356 }
8357 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8358 if (UNTAG_Bool(REGB0)) {
8359 /* ./parser//parser_prod.nit:1517 */
8360 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8361 if (UNTAG_Bool(REGB0)) {
8362 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1517);
8363 }
8364 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8365 /* ./parser//parser_prod.nit:1518 */
8366 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*/;
8367 if (UNTAG_Bool(REGB0)) {
8368 } else {
8369 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1518);
8370 }
8371 /* ./parser//parser_prod.nit:1519 */
8372 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
8373 } else {
8374 /* ./parser//parser_prod.nit:1521 */
8375 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
8376 }
8377 /* ./parser//parser_prod.nit:1523 */
8378 goto label1;
8379 }
8380 /* ./parser//parser_prod.nit:1525 */
8381 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
8382 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8383 if (UNTAG_Bool(REGB0)) {
8384 } else {
8385 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8386 if (UNTAG_Bool(REGB1)) {
8387 REGB1 = TAG_Bool(false);
8388 REGB0 = REGB1;
8389 } else {
8390 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8391 REGB0 = REGB1;
8392 }
8393 }
8394 if (UNTAG_Bool(REGB0)) {
8395 /* ./parser//parser_prod.nit:1526 */
8396 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8397 if (UNTAG_Bool(REGB0)) {
8398 } else {
8399 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8400 if (UNTAG_Bool(REGB1)) {
8401 REGB1 = TAG_Bool(false);
8402 REGB0 = REGB1;
8403 } else {
8404 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8405 REGB0 = REGB1;
8406 }
8407 }
8408 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8409 if (UNTAG_Bool(REGB0)) {
8410 /* ./parser//parser_prod.nit:1527 */
8411 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8412 if (UNTAG_Bool(REGB0)) {
8413 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1527);
8414 }
8415 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8416 /* ./parser//parser_prod.nit:1528 */
8417 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*/;
8418 if (UNTAG_Bool(REGB0)) {
8419 } else {
8420 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1528);
8421 }
8422 /* ./parser//parser_prod.nit:1529 */
8423 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
8424 } else {
8425 /* ./parser//parser_prod.nit:1531 */
8426 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1531);
8427 }
8428 /* ./parser//parser_prod.nit:1533 */
8429 goto label1;
8430 }
8431 /* ./parser//parser_prod.nit:1535 */
8432 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
8433 if (UNTAG_Bool(REGB0)) {
8434 } else {
8435 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1535);
8436 }
8437 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]);
8438 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
8439 if (UNTAG_Bool(REGB0)) {
8440 } else {
8441 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8442 REGB0 = REGB1;
8443 }
8444 if (UNTAG_Bool(REGB0)) {
8445 /* ./parser//parser_prod.nit:1536 */
8446 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8447 if (UNTAG_Bool(REGB0)) {
8448 } else {
8449 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8450 if (UNTAG_Bool(REGB1)) {
8451 REGB1 = TAG_Bool(false);
8452 REGB0 = REGB1;
8453 } else {
8454 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8455 REGB0 = REGB1;
8456 }
8457 }
8458 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8459 if (UNTAG_Bool(REGB0)) {
8460 /* ./parser//parser_prod.nit:1537 */
8461 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8462 if (UNTAG_Bool(REGB0)) {
8463 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1537);
8464 }
8465 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8466 /* ./parser//parser_prod.nit:1538 */
8467 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*/;
8468 if (UNTAG_Bool(REGB0)) {
8469 } else {
8470 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1538);
8471 }
8472 /* ./parser//parser_prod.nit:1539 */
8473 ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
8474 } else {
8475 /* ./parser//parser_prod.nit:1541 */
8476 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1541);
8477 }
8478 /* ./parser//parser_prod.nit:1543 */
8479 goto label1;
8480 }
8481 /* ./parser//parser_prod.nit:1545 */
8482 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
8483 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8484 if (UNTAG_Bool(REGB0)) {
8485 } else {
8486 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8487 if (UNTAG_Bool(REGB1)) {
8488 REGB1 = TAG_Bool(false);
8489 REGB0 = REGB1;
8490 } else {
8491 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8492 REGB0 = REGB1;
8493 }
8494 }
8495 if (UNTAG_Bool(REGB0)) {
8496 /* ./parser//parser_prod.nit:1546 */
8497 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8498 if (UNTAG_Bool(REGB0)) {
8499 } else {
8500 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8501 if (UNTAG_Bool(REGB1)) {
8502 REGB1 = TAG_Bool(false);
8503 REGB0 = REGB1;
8504 } else {
8505 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8506 REGB0 = REGB1;
8507 }
8508 }
8509 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8510 if (UNTAG_Bool(REGB0)) {
8511 /* ./parser//parser_prod.nit:1547 */
8512 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8513 if (UNTAG_Bool(REGB0)) {
8514 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1547);
8515 }
8516 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8517 /* ./parser//parser_prod.nit:1548 */
8518 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*/;
8519 if (UNTAG_Bool(REGB0)) {
8520 } else {
8521 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1548);
8522 }
8523 /* ./parser//parser_prod.nit:1549 */
8524 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
8525 } else {
8526 /* ./parser//parser_prod.nit:1551 */
8527 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1551);
8528 }
8529 /* ./parser//parser_prod.nit:1553 */
8530 goto label1;
8531 }
8532 /* ./parser//parser_prod.nit:1555 */
8533 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
8534 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8535 if (UNTAG_Bool(REGB0)) {
8536 } else {
8537 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8538 if (UNTAG_Bool(REGB1)) {
8539 REGB1 = TAG_Bool(false);
8540 REGB0 = REGB1;
8541 } else {
8542 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8543 REGB0 = REGB1;
8544 }
8545 }
8546 if (UNTAG_Bool(REGB0)) {
8547 /* ./parser//parser_prod.nit:1556 */
8548 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8549 if (UNTAG_Bool(REGB0)) {
8550 } else {
8551 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8552 if (UNTAG_Bool(REGB1)) {
8553 REGB1 = TAG_Bool(false);
8554 REGB0 = REGB1;
8555 } else {
8556 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8557 REGB0 = REGB1;
8558 }
8559 }
8560 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8561 if (UNTAG_Bool(REGB0)) {
8562 /* ./parser//parser_prod.nit:1557 */
8563 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8564 if (UNTAG_Bool(REGB0)) {
8565 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1557);
8566 }
8567 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8568 /* ./parser//parser_prod.nit:1558 */
8569 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*/;
8570 if (UNTAG_Bool(REGB0)) {
8571 } else {
8572 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1558);
8573 }
8574 /* ./parser//parser_prod.nit:1559 */
8575 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
8576 } else {
8577 /* ./parser//parser_prod.nit:1561 */
8578 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1561);
8579 }
8580 /* ./parser//parser_prod.nit:1563 */
8581 goto label1;
8582 }
8583 /* ./parser//parser_prod.nit:1565 */
8584 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]);
8585 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8586 if (UNTAG_Bool(REGB0)) {
8587 } else {
8588 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8589 if (UNTAG_Bool(REGB1)) {
8590 REGB1 = TAG_Bool(false);
8591 REGB0 = REGB1;
8592 } else {
8593 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8594 REGB0 = REGB1;
8595 }
8596 }
8597 if (UNTAG_Bool(REGB0)) {
8598 /* ./parser//parser_prod.nit:1566 */
8599 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8600 if (UNTAG_Bool(REGB0)) {
8601 } else {
8602 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8603 if (UNTAG_Bool(REGB1)) {
8604 REGB1 = TAG_Bool(false);
8605 REGB0 = REGB1;
8606 } else {
8607 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8608 REGB0 = REGB1;
8609 }
8610 }
8611 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8612 if (UNTAG_Bool(REGB0)) {
8613 /* ./parser//parser_prod.nit:1567 */
8614 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8615 if (UNTAG_Bool(REGB0)) {
8616 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1567);
8617 }
8618 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8619 /* ./parser//parser_prod.nit:1568 */
8620 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*/;
8621 if (UNTAG_Bool(REGB0)) {
8622 } else {
8623 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1568);
8624 }
8625 /* ./parser//parser_prod.nit:1569 */
8626 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[2];
8627 } else {
8628 /* ./parser//parser_prod.nit:1571 */
8629 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = NIT_NULL;
8630 }
8631 /* ./parser//parser_prod.nit:1573 */
8632 goto label1;
8633 }
8634 /* ./parser//parser_prod.nit:1575 */
8635 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]);
8636 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8637 if (UNTAG_Bool(REGB0)) {
8638 } else {
8639 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8640 if (UNTAG_Bool(REGB1)) {
8641 REGB1 = TAG_Bool(false);
8642 REGB0 = REGB1;
8643 } else {
8644 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8645 REGB0 = REGB1;
8646 }
8647 }
8648 if (UNTAG_Bool(REGB0)) {
8649 /* ./parser//parser_prod.nit:1576 */
8650 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8651 if (UNTAG_Bool(REGB0)) {
8652 } else {
8653 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8654 if (UNTAG_Bool(REGB1)) {
8655 REGB1 = TAG_Bool(false);
8656 REGB0 = REGB1;
8657 } else {
8658 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8659 REGB0 = REGB1;
8660 }
8661 }
8662 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8663 if (UNTAG_Bool(REGB0)) {
8664 /* ./parser//parser_prod.nit:1577 */
8665 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8666 if (UNTAG_Bool(REGB0)) {
8667 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1577);
8668 }
8669 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8670 /* ./parser//parser_prod.nit:1578 */
8671 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*/;
8672 if (UNTAG_Bool(REGB0)) {
8673 } else {
8674 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1578);
8675 }
8676 /* ./parser//parser_prod.nit:1579 */
8677 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = fra.me.REG[2];
8678 } else {
8679 /* ./parser//parser_prod.nit:1581 */
8680 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = NIT_NULL;
8681 }
8682 /* ./parser//parser_prod.nit:1583 */
8683 goto label1;
8684 }
8685 label1: while(0);
8686 stack_frame_head = fra.me.prev;
8687 return;
8688 }
8689 void parser___parser_prod___AExternMethPropdef___visit_all(val_t p0, val_t p1){
8690 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8691 val_t REGB0;
8692 val_t REGB1;
8693 val_t tmp;
8694 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8695 fra.me.file = LOCATE_parser___parser_prod;
8696 fra.me.line = 1587;
8697 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___visit_all;
8698 fra.me.has_broke = 0;
8699 fra.me.REG_size = 4;
8700 fra.me.nitni_local_ref_head = NULL;
8701 fra.me.REG[0] = NIT_NULL;
8702 fra.me.REG[1] = NIT_NULL;
8703 fra.me.REG[2] = NIT_NULL;
8704 fra.me.REG[3] = NIT_NULL;
8705 fra.me.REG[0] = p0;
8706 fra.me.REG[1] = p1;
8707 /* ./parser//parser_prod.nit:1587 */
8708 fra.me.REG[2] = fra.me.REG[0];
8709 /* ./parser//parser_prod.nit:1589 */
8710 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
8711 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8712 if (UNTAG_Bool(REGB0)) {
8713 } else {
8714 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8715 if (UNTAG_Bool(REGB1)) {
8716 REGB1 = TAG_Bool(false);
8717 REGB0 = REGB1;
8718 } else {
8719 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8720 REGB0 = REGB1;
8721 }
8722 }
8723 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8724 if (UNTAG_Bool(REGB0)) {
8725 /* ./parser//parser_prod.nit:1590 */
8726 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
8727 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*/;
8728 if (UNTAG_Bool(REGB0)) {
8729 } else {
8730 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1590);
8731 }
8732 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8733 }
8734 /* ./parser//parser_prod.nit:1592 */
8735 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
8736 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8737 if (UNTAG_Bool(REGB0)) {
8738 } else {
8739 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8740 if (UNTAG_Bool(REGB1)) {
8741 REGB1 = TAG_Bool(false);
8742 REGB0 = REGB1;
8743 } else {
8744 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8745 REGB0 = REGB1;
8746 }
8747 }
8748 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8749 if (UNTAG_Bool(REGB0)) {
8750 /* ./parser//parser_prod.nit:1593 */
8751 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
8752 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*/;
8753 if (UNTAG_Bool(REGB0)) {
8754 } else {
8755 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1593);
8756 }
8757 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8758 }
8759 /* ./parser//parser_prod.nit:1595 */
8760 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
8761 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8762 /* ./parser//parser_prod.nit:1596 */
8763 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
8764 if (UNTAG_Bool(REGB0)) {
8765 } else {
8766 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1596);
8767 }
8768 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[2]);
8769 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8770 /* ./parser//parser_prod.nit:1597 */
8771 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
8772 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8773 /* ./parser//parser_prod.nit:1598 */
8774 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
8775 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8776 /* ./parser//parser_prod.nit:1599 */
8777 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
8778 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8779 if (UNTAG_Bool(REGB0)) {
8780 } else {
8781 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8782 if (UNTAG_Bool(REGB1)) {
8783 REGB1 = TAG_Bool(false);
8784 REGB0 = REGB1;
8785 } else {
8786 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8787 REGB0 = REGB1;
8788 }
8789 }
8790 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8791 if (UNTAG_Bool(REGB0)) {
8792 /* ./parser//parser_prod.nit:1600 */
8793 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
8794 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*/;
8795 if (UNTAG_Bool(REGB0)) {
8796 } else {
8797 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1600);
8798 }
8799 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8800 }
8801 /* ./parser//parser_prod.nit:1602 */
8802 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
8803 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8804 if (UNTAG_Bool(REGB0)) {
8805 } else {
8806 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8807 if (UNTAG_Bool(REGB1)) {
8808 REGB1 = TAG_Bool(false);
8809 REGB0 = REGB1;
8810 } else {
8811 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8812 REGB0 = REGB1;
8813 }
8814 }
8815 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8816 if (UNTAG_Bool(REGB0)) {
8817 /* ./parser//parser_prod.nit:1603 */
8818 fra.me.REG[2] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
8819 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*/;
8820 if (UNTAG_Bool(REGB0)) {
8821 } else {
8822 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1603);
8823 }
8824 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8825 }
8826 stack_frame_head = fra.me.prev;
8827 return;
8828 }
8829 void parser___parser_prod___AConcreteMethPropdef___empty_init(val_t p0, int* init_table){
8830 int itpos47 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteMethPropdef].i;
8831 struct {struct stack_frame_t me;} fra;
8832 val_t tmp;
8833 if (init_table[itpos47]) return;
8834 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8835 fra.me.file = LOCATE_parser___parser_prod;
8836 fra.me.line = 1608;
8837 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___empty_init;
8838 fra.me.has_broke = 0;
8839 fra.me.REG_size = 1;
8840 fra.me.nitni_local_ref_head = NULL;
8841 fra.me.REG[0] = NIT_NULL;
8842 fra.me.REG[0] = p0;
8843 stack_frame_head = fra.me.prev;
8844 init_table[itpos47] = 1;
8845 return;
8846 }
8847 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){
8848 int itpos48 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteMethPropdef].i;
8849 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
8850 val_t REGB0;
8851 val_t REGB1;
8852 val_t tmp;
8853 if (init_table[itpos48]) return;
8854 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8855 fra.me.file = LOCATE_parser___parser_prod;
8856 fra.me.line = 1610;
8857 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef;
8858 fra.me.has_broke = 0;
8859 fra.me.REG_size = 9;
8860 fra.me.nitni_local_ref_head = NULL;
8861 fra.me.REG[0] = NIT_NULL;
8862 fra.me.REG[1] = NIT_NULL;
8863 fra.me.REG[2] = NIT_NULL;
8864 fra.me.REG[3] = NIT_NULL;
8865 fra.me.REG[4] = NIT_NULL;
8866 fra.me.REG[5] = NIT_NULL;
8867 fra.me.REG[6] = NIT_NULL;
8868 fra.me.REG[7] = NIT_NULL;
8869 fra.me.REG[8] = NIT_NULL;
8870 fra.me.REG[0] = p0;
8871 fra.me.REG[1] = p1;
8872 fra.me.REG[2] = p2;
8873 fra.me.REG[3] = p3;
8874 fra.me.REG[4] = p4;
8875 fra.me.REG[5] = p5;
8876 fra.me.REG[6] = p6;
8877 fra.me.REG[7] = p7;
8878 /* ./parser//parser_prod.nit:1610 */
8879 fra.me.REG[8] = fra.me.REG[0];
8880 /* ./parser//parser_prod.nit:1620 */
8881 CALL_parser___parser_prod___AConcreteMethPropdef___empty_init(fra.me.REG[8])(fra.me.REG[8], init_table);
8882 /* ./parser//parser_prod.nit:1621 */
8883 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[8]) = fra.me.REG[1];
8884 /* ./parser//parser_prod.nit:1622 */
8885 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8886 if (UNTAG_Bool(REGB0)) {
8887 } else {
8888 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8889 if (UNTAG_Bool(REGB1)) {
8890 REGB1 = TAG_Bool(false);
8891 REGB0 = REGB1;
8892 } else {
8893 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8894 REGB0 = REGB1;
8895 }
8896 }
8897 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8898 if (UNTAG_Bool(REGB0)) {
8899 /* ./parser//parser_prod.nit:1623 */
8900 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8901 if (UNTAG_Bool(REGB0)) {
8902 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1623);
8903 }
8904 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
8905 }
8906 /* ./parser//parser_prod.nit:1625 */
8907 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[8]) = fra.me.REG[2];
8908 /* ./parser//parser_prod.nit:1626 */
8909 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8910 if (UNTAG_Bool(REGB0)) {
8911 } else {
8912 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8913 if (UNTAG_Bool(REGB1)) {
8914 REGB1 = TAG_Bool(false);
8915 REGB0 = REGB1;
8916 } else {
8917 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8918 REGB0 = REGB1;
8919 }
8920 }
8921 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8922 if (UNTAG_Bool(REGB0)) {
8923 /* ./parser//parser_prod.nit:1627 */
8924 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8925 if (UNTAG_Bool(REGB0)) {
8926 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1627);
8927 }
8928 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
8929 }
8930 /* ./parser//parser_prod.nit:1629 */
8931 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
8932 if (UNTAG_Bool(REGB0)) {
8933 } else {
8934 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1629);
8935 }
8936 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[8]) = fra.me.REG[3];
8937 /* ./parser//parser_prod.nit:1630 */
8938 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8939 if (UNTAG_Bool(REGB0)) {
8940 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1630);
8941 }
8942 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
8943 /* ./parser//parser_prod.nit:1631 */
8944 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8945 if (UNTAG_Bool(REGB0)) {
8946 } else {
8947 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1631);
8948 }
8949 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[8]) = fra.me.REG[4];
8950 /* ./parser//parser_prod.nit:1632 */
8951 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8952 if (UNTAG_Bool(REGB0)) {
8953 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1632);
8954 }
8955 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
8956 /* ./parser//parser_prod.nit:1633 */
8957 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
8958 if (UNTAG_Bool(REGB0)) {
8959 } else {
8960 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1633);
8961 }
8962 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[8]) = fra.me.REG[5];
8963 /* ./parser//parser_prod.nit:1634 */
8964 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8965 if (UNTAG_Bool(REGB0)) {
8966 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1634);
8967 }
8968 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
8969 /* ./parser//parser_prod.nit:1635 */
8970 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
8971 if (UNTAG_Bool(REGB0)) {
8972 } else {
8973 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1635);
8974 }
8975 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[8]) = fra.me.REG[6];
8976 /* ./parser//parser_prod.nit:1636 */
8977 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8978 if (UNTAG_Bool(REGB0)) {
8979 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1636);
8980 }
8981 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
8982 /* ./parser//parser_prod.nit:1637 */
8983 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[8]) = fra.me.REG[7];
8984 /* ./parser//parser_prod.nit:1638 */
8985 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8986 if (UNTAG_Bool(REGB0)) {
8987 } else {
8988 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8989 if (UNTAG_Bool(REGB1)) {
8990 REGB1 = TAG_Bool(false);
8991 REGB0 = REGB1;
8992 } else {
8993 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
8994 REGB0 = REGB1;
8995 }
8996 }
8997 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8998 if (UNTAG_Bool(REGB0)) {
8999 /* ./parser//parser_prod.nit:1639 */
9000 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9001 if (UNTAG_Bool(REGB0)) {
9002 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1639);
9003 }
9004 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
9005 }
9006 stack_frame_head = fra.me.prev;
9007 init_table[itpos48] = 1;
9008 return;
9009 }
9010 void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
9011 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9012 val_t REGB0;
9013 val_t REGB1;
9014 val_t tmp;
9015 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9016 fra.me.file = LOCATE_parser___parser_prod;
9017 fra.me.line = 1643;
9018 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___replace_child;
9019 fra.me.has_broke = 0;
9020 fra.me.REG_size = 4;
9021 fra.me.nitni_local_ref_head = NULL;
9022 fra.me.REG[0] = NIT_NULL;
9023 fra.me.REG[1] = NIT_NULL;
9024 fra.me.REG[2] = NIT_NULL;
9025 fra.me.REG[3] = NIT_NULL;
9026 fra.me.REG[0] = p0;
9027 fra.me.REG[1] = p1;
9028 fra.me.REG[2] = p2;
9029 /* ./parser//parser_prod.nit:1645 */
9030 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
9031 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9032 if (UNTAG_Bool(REGB0)) {
9033 } else {
9034 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9035 if (UNTAG_Bool(REGB1)) {
9036 REGB1 = TAG_Bool(false);
9037 REGB0 = REGB1;
9038 } else {
9039 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9040 REGB0 = REGB1;
9041 }
9042 }
9043 if (UNTAG_Bool(REGB0)) {
9044 /* ./parser//parser_prod.nit:1646 */
9045 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9046 if (UNTAG_Bool(REGB0)) {
9047 } else {
9048 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9049 if (UNTAG_Bool(REGB1)) {
9050 REGB1 = TAG_Bool(false);
9051 REGB0 = REGB1;
9052 } else {
9053 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9054 REGB0 = REGB1;
9055 }
9056 }
9057 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9058 if (UNTAG_Bool(REGB0)) {
9059 /* ./parser//parser_prod.nit:1647 */
9060 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9061 if (UNTAG_Bool(REGB0)) {
9062 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1647);
9063 }
9064 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9065 /* ./parser//parser_prod.nit:1648 */
9066 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*/;
9067 if (UNTAG_Bool(REGB0)) {
9068 } else {
9069 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1648);
9070 }
9071 /* ./parser//parser_prod.nit:1649 */
9072 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
9073 } else {
9074 /* ./parser//parser_prod.nit:1651 */
9075 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
9076 }
9077 /* ./parser//parser_prod.nit:1653 */
9078 goto label1;
9079 }
9080 /* ./parser//parser_prod.nit:1655 */
9081 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9082 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9083 if (UNTAG_Bool(REGB0)) {
9084 } else {
9085 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9086 if (UNTAG_Bool(REGB1)) {
9087 REGB1 = TAG_Bool(false);
9088 REGB0 = REGB1;
9089 } else {
9090 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9091 REGB0 = REGB1;
9092 }
9093 }
9094 if (UNTAG_Bool(REGB0)) {
9095 /* ./parser//parser_prod.nit:1656 */
9096 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9097 if (UNTAG_Bool(REGB0)) {
9098 } else {
9099 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9100 if (UNTAG_Bool(REGB1)) {
9101 REGB1 = TAG_Bool(false);
9102 REGB0 = REGB1;
9103 } else {
9104 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9105 REGB0 = REGB1;
9106 }
9107 }
9108 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9109 if (UNTAG_Bool(REGB0)) {
9110 /* ./parser//parser_prod.nit:1657 */
9111 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9112 if (UNTAG_Bool(REGB0)) {
9113 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1657);
9114 }
9115 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9116 /* ./parser//parser_prod.nit:1658 */
9117 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*/;
9118 if (UNTAG_Bool(REGB0)) {
9119 } else {
9120 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1658);
9121 }
9122 /* ./parser//parser_prod.nit:1659 */
9123 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
9124 } else {
9125 /* ./parser//parser_prod.nit:1661 */
9126 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
9127 }
9128 /* ./parser//parser_prod.nit:1663 */
9129 goto label1;
9130 }
9131 /* ./parser//parser_prod.nit:1665 */
9132 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
9133 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9134 if (UNTAG_Bool(REGB0)) {
9135 } else {
9136 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9137 if (UNTAG_Bool(REGB1)) {
9138 REGB1 = TAG_Bool(false);
9139 REGB0 = REGB1;
9140 } else {
9141 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9142 REGB0 = REGB1;
9143 }
9144 }
9145 if (UNTAG_Bool(REGB0)) {
9146 /* ./parser//parser_prod.nit:1666 */
9147 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9148 if (UNTAG_Bool(REGB0)) {
9149 } else {
9150 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9151 if (UNTAG_Bool(REGB1)) {
9152 REGB1 = TAG_Bool(false);
9153 REGB0 = REGB1;
9154 } else {
9155 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9156 REGB0 = REGB1;
9157 }
9158 }
9159 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9160 if (UNTAG_Bool(REGB0)) {
9161 /* ./parser//parser_prod.nit:1667 */
9162 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9163 if (UNTAG_Bool(REGB0)) {
9164 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1667);
9165 }
9166 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9167 /* ./parser//parser_prod.nit:1668 */
9168 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*/;
9169 if (UNTAG_Bool(REGB0)) {
9170 } else {
9171 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1668);
9172 }
9173 /* ./parser//parser_prod.nit:1669 */
9174 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
9175 } else {
9176 /* ./parser//parser_prod.nit:1671 */
9177 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1671);
9178 }
9179 /* ./parser//parser_prod.nit:1673 */
9180 goto label1;
9181 }
9182 /* ./parser//parser_prod.nit:1675 */
9183 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]);
9184 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9185 if (UNTAG_Bool(REGB0)) {
9186 } else {
9187 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9188 if (UNTAG_Bool(REGB1)) {
9189 REGB1 = TAG_Bool(false);
9190 REGB0 = REGB1;
9191 } else {
9192 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9193 REGB0 = REGB1;
9194 }
9195 }
9196 if (UNTAG_Bool(REGB0)) {
9197 /* ./parser//parser_prod.nit:1676 */
9198 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9199 if (UNTAG_Bool(REGB0)) {
9200 } else {
9201 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9202 if (UNTAG_Bool(REGB1)) {
9203 REGB1 = TAG_Bool(false);
9204 REGB0 = REGB1;
9205 } else {
9206 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9207 REGB0 = REGB1;
9208 }
9209 }
9210 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9211 if (UNTAG_Bool(REGB0)) {
9212 /* ./parser//parser_prod.nit:1677 */
9213 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9214 if (UNTAG_Bool(REGB0)) {
9215 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1677);
9216 }
9217 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9218 /* ./parser//parser_prod.nit:1678 */
9219 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*/;
9220 if (UNTAG_Bool(REGB0)) {
9221 } else {
9222 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1678);
9223 }
9224 /* ./parser//parser_prod.nit:1679 */
9225 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
9226 } else {
9227 /* ./parser//parser_prod.nit:1681 */
9228 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1681);
9229 }
9230 /* ./parser//parser_prod.nit:1683 */
9231 goto label1;
9232 }
9233 /* ./parser//parser_prod.nit:1685 */
9234 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
9235 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9236 if (UNTAG_Bool(REGB0)) {
9237 } else {
9238 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9239 if (UNTAG_Bool(REGB1)) {
9240 REGB1 = TAG_Bool(false);
9241 REGB0 = REGB1;
9242 } else {
9243 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9244 REGB0 = REGB1;
9245 }
9246 }
9247 if (UNTAG_Bool(REGB0)) {
9248 /* ./parser//parser_prod.nit:1686 */
9249 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9250 if (UNTAG_Bool(REGB0)) {
9251 } else {
9252 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9253 if (UNTAG_Bool(REGB1)) {
9254 REGB1 = TAG_Bool(false);
9255 REGB0 = REGB1;
9256 } else {
9257 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9258 REGB0 = REGB1;
9259 }
9260 }
9261 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9262 if (UNTAG_Bool(REGB0)) {
9263 /* ./parser//parser_prod.nit:1687 */
9264 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9265 if (UNTAG_Bool(REGB0)) {
9266 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1687);
9267 }
9268 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9269 /* ./parser//parser_prod.nit:1688 */
9270 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*/;
9271 if (UNTAG_Bool(REGB0)) {
9272 } else {
9273 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1688);
9274 }
9275 /* ./parser//parser_prod.nit:1689 */
9276 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
9277 } else {
9278 /* ./parser//parser_prod.nit:1691 */
9279 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1691);
9280 }
9281 /* ./parser//parser_prod.nit:1693 */
9282 goto label1;
9283 }
9284 /* ./parser//parser_prod.nit:1695 */
9285 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
9286 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9287 if (UNTAG_Bool(REGB0)) {
9288 } else {
9289 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9290 if (UNTAG_Bool(REGB1)) {
9291 REGB1 = TAG_Bool(false);
9292 REGB0 = REGB1;
9293 } else {
9294 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9295 REGB0 = REGB1;
9296 }
9297 }
9298 if (UNTAG_Bool(REGB0)) {
9299 /* ./parser//parser_prod.nit:1696 */
9300 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9301 if (UNTAG_Bool(REGB0)) {
9302 } else {
9303 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9304 if (UNTAG_Bool(REGB1)) {
9305 REGB1 = TAG_Bool(false);
9306 REGB0 = REGB1;
9307 } else {
9308 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9309 REGB0 = REGB1;
9310 }
9311 }
9312 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9313 if (UNTAG_Bool(REGB0)) {
9314 /* ./parser//parser_prod.nit:1697 */
9315 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9316 if (UNTAG_Bool(REGB0)) {
9317 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1697);
9318 }
9319 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9320 /* ./parser//parser_prod.nit:1698 */
9321 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*/;
9322 if (UNTAG_Bool(REGB0)) {
9323 } else {
9324 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1698);
9325 }
9326 /* ./parser//parser_prod.nit:1699 */
9327 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
9328 } else {
9329 /* ./parser//parser_prod.nit:1701 */
9330 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1701);
9331 }
9332 /* ./parser//parser_prod.nit:1703 */
9333 goto label1;
9334 }
9335 /* ./parser//parser_prod.nit:1705 */
9336 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
9337 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9338 if (UNTAG_Bool(REGB0)) {
9339 } else {
9340 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9341 if (UNTAG_Bool(REGB1)) {
9342 REGB1 = TAG_Bool(false);
9343 REGB0 = REGB1;
9344 } else {
9345 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9346 REGB0 = REGB1;
9347 }
9348 }
9349 if (UNTAG_Bool(REGB0)) {
9350 /* ./parser//parser_prod.nit:1706 */
9351 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9352 if (UNTAG_Bool(REGB0)) {
9353 } else {
9354 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9355 if (UNTAG_Bool(REGB1)) {
9356 REGB1 = TAG_Bool(false);
9357 REGB0 = REGB1;
9358 } else {
9359 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9360 REGB0 = REGB1;
9361 }
9362 }
9363 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9364 if (UNTAG_Bool(REGB0)) {
9365 /* ./parser//parser_prod.nit:1707 */
9366 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9367 if (UNTAG_Bool(REGB0)) {
9368 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1707);
9369 }
9370 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9371 /* ./parser//parser_prod.nit:1708 */
9372 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*/;
9373 if (UNTAG_Bool(REGB0)) {
9374 } else {
9375 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1708);
9376 }
9377 /* ./parser//parser_prod.nit:1709 */
9378 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
9379 } else {
9380 /* ./parser//parser_prod.nit:1711 */
9381 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
9382 }
9383 /* ./parser//parser_prod.nit:1713 */
9384 goto label1;
9385 }
9386 label1: while(0);
9387 stack_frame_head = fra.me.prev;
9388 return;
9389 }
9390 void parser___parser_prod___AConcreteMethPropdef___visit_all(val_t p0, val_t p1){
9391 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9392 val_t REGB0;
9393 val_t REGB1;
9394 val_t tmp;
9395 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9396 fra.me.file = LOCATE_parser___parser_prod;
9397 fra.me.line = 1717;
9398 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___visit_all;
9399 fra.me.has_broke = 0;
9400 fra.me.REG_size = 4;
9401 fra.me.nitni_local_ref_head = NULL;
9402 fra.me.REG[0] = NIT_NULL;
9403 fra.me.REG[1] = NIT_NULL;
9404 fra.me.REG[2] = NIT_NULL;
9405 fra.me.REG[3] = NIT_NULL;
9406 fra.me.REG[0] = p0;
9407 fra.me.REG[1] = p1;
9408 /* ./parser//parser_prod.nit:1717 */
9409 fra.me.REG[2] = fra.me.REG[0];
9410 /* ./parser//parser_prod.nit:1719 */
9411 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
9412 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9413 if (UNTAG_Bool(REGB0)) {
9414 } else {
9415 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9416 if (UNTAG_Bool(REGB1)) {
9417 REGB1 = TAG_Bool(false);
9418 REGB0 = REGB1;
9419 } else {
9420 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9421 REGB0 = REGB1;
9422 }
9423 }
9424 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9425 if (UNTAG_Bool(REGB0)) {
9426 /* ./parser//parser_prod.nit:1720 */
9427 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
9428 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*/;
9429 if (UNTAG_Bool(REGB0)) {
9430 } else {
9431 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1720);
9432 }
9433 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9434 }
9435 /* ./parser//parser_prod.nit:1722 */
9436 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
9437 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9438 if (UNTAG_Bool(REGB0)) {
9439 } else {
9440 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9441 if (UNTAG_Bool(REGB1)) {
9442 REGB1 = TAG_Bool(false);
9443 REGB0 = REGB1;
9444 } else {
9445 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9446 REGB0 = REGB1;
9447 }
9448 }
9449 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9450 if (UNTAG_Bool(REGB0)) {
9451 /* ./parser//parser_prod.nit:1723 */
9452 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
9453 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*/;
9454 if (UNTAG_Bool(REGB0)) {
9455 } else {
9456 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1723);
9457 }
9458 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9459 }
9460 /* ./parser//parser_prod.nit:1725 */
9461 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
9462 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9463 /* ./parser//parser_prod.nit:1726 */
9464 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[2]);
9465 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9466 /* ./parser//parser_prod.nit:1727 */
9467 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
9468 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9469 /* ./parser//parser_prod.nit:1728 */
9470 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
9471 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9472 /* ./parser//parser_prod.nit:1729 */
9473 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
9474 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9475 if (UNTAG_Bool(REGB0)) {
9476 } else {
9477 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9478 if (UNTAG_Bool(REGB1)) {
9479 REGB1 = TAG_Bool(false);
9480 REGB0 = REGB1;
9481 } else {
9482 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9483 REGB0 = REGB1;
9484 }
9485 }
9486 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9487 if (UNTAG_Bool(REGB0)) {
9488 /* ./parser//parser_prod.nit:1730 */
9489 fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
9490 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*/;
9491 if (UNTAG_Bool(REGB0)) {
9492 } else {
9493 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1730);
9494 }
9495 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9496 }
9497 stack_frame_head = fra.me.prev;
9498 return;
9499 }
9500 void parser___parser_prod___AConcreteInitPropdef___empty_init(val_t p0, int* init_table){
9501 int itpos49 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteInitPropdef].i;
9502 struct {struct stack_frame_t me;} fra;
9503 val_t tmp;
9504 if (init_table[itpos49]) return;
9505 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9506 fra.me.file = LOCATE_parser___parser_prod;
9507 fra.me.line = 1735;
9508 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___empty_init;
9509 fra.me.has_broke = 0;
9510 fra.me.REG_size = 1;
9511 fra.me.nitni_local_ref_head = NULL;
9512 fra.me.REG[0] = NIT_NULL;
9513 fra.me.REG[0] = p0;
9514 /* ./parser//parser_prod.nit:1735 */
9515 CALL_parser___parser_nodes___AInitPropdef___init(fra.me.REG[0])(fra.me.REG[0], init_table);
9516 stack_frame_head = fra.me.prev;
9517 init_table[itpos49] = 1;
9518 return;
9519 }
9520 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){
9521 int itpos50 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteInitPropdef].i;
9522 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
9523 val_t REGB0;
9524 val_t REGB1;
9525 val_t tmp;
9526 if (init_table[itpos50]) return;
9527 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9528 fra.me.file = LOCATE_parser___parser_prod;
9529 fra.me.line = 1737;
9530 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef;
9531 fra.me.has_broke = 0;
9532 fra.me.REG_size = 9;
9533 fra.me.nitni_local_ref_head = NULL;
9534 fra.me.REG[0] = NIT_NULL;
9535 fra.me.REG[1] = NIT_NULL;
9536 fra.me.REG[2] = NIT_NULL;
9537 fra.me.REG[3] = NIT_NULL;
9538 fra.me.REG[4] = NIT_NULL;
9539 fra.me.REG[5] = NIT_NULL;
9540 fra.me.REG[6] = NIT_NULL;
9541 fra.me.REG[7] = NIT_NULL;
9542 fra.me.REG[8] = NIT_NULL;
9543 fra.me.REG[0] = p0;
9544 fra.me.REG[1] = p1;
9545 fra.me.REG[2] = p2;
9546 fra.me.REG[3] = p3;
9547 fra.me.REG[4] = p4;
9548 fra.me.REG[5] = p5;
9549 fra.me.REG[6] = p6;
9550 fra.me.REG[7] = p7;
9551 /* ./parser//parser_prod.nit:1737 */
9552 fra.me.REG[8] = fra.me.REG[0];
9553 /* ./parser//parser_prod.nit:1747 */
9554 CALL_parser___parser_prod___AConcreteInitPropdef___empty_init(fra.me.REG[8])(fra.me.REG[8], init_table);
9555 /* ./parser//parser_prod.nit:1748 */
9556 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[8]) = fra.me.REG[1];
9557 /* ./parser//parser_prod.nit:1749 */
9558 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9559 if (UNTAG_Bool(REGB0)) {
9560 } else {
9561 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9562 if (UNTAG_Bool(REGB1)) {
9563 REGB1 = TAG_Bool(false);
9564 REGB0 = REGB1;
9565 } else {
9566 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9567 REGB0 = REGB1;
9568 }
9569 }
9570 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9571 if (UNTAG_Bool(REGB0)) {
9572 /* ./parser//parser_prod.nit:1750 */
9573 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9574 if (UNTAG_Bool(REGB0)) {
9575 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1750);
9576 }
9577 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
9578 }
9579 /* ./parser//parser_prod.nit:1752 */
9580 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[8]) = fra.me.REG[2];
9581 /* ./parser//parser_prod.nit:1753 */
9582 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9583 if (UNTAG_Bool(REGB0)) {
9584 } else {
9585 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9586 if (UNTAG_Bool(REGB1)) {
9587 REGB1 = TAG_Bool(false);
9588 REGB0 = REGB1;
9589 } else {
9590 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9591 REGB0 = REGB1;
9592 }
9593 }
9594 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9595 if (UNTAG_Bool(REGB0)) {
9596 /* ./parser//parser_prod.nit:1754 */
9597 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9598 if (UNTAG_Bool(REGB0)) {
9599 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1754);
9600 }
9601 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
9602 }
9603 /* ./parser//parser_prod.nit:1756 */
9604 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
9605 if (UNTAG_Bool(REGB0)) {
9606 } else {
9607 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1756);
9608 }
9609 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[8]) = fra.me.REG[3];
9610 /* ./parser//parser_prod.nit:1757 */
9611 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9612 if (UNTAG_Bool(REGB0)) {
9613 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1757);
9614 }
9615 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
9616 /* ./parser//parser_prod.nit:1758 */
9617 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
9618 if (UNTAG_Bool(REGB0)) {
9619 } else {
9620 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1758);
9621 }
9622 ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[8]) = fra.me.REG[4];
9623 /* ./parser//parser_prod.nit:1759 */
9624 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9625 if (UNTAG_Bool(REGB0)) {
9626 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1759);
9627 }
9628 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
9629 /* ./parser//parser_prod.nit:1760 */
9630 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[8]) = fra.me.REG[5];
9631 /* ./parser//parser_prod.nit:1761 */
9632 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9633 if (UNTAG_Bool(REGB0)) {
9634 } else {
9635 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9636 if (UNTAG_Bool(REGB1)) {
9637 REGB1 = TAG_Bool(false);
9638 REGB0 = REGB1;
9639 } else {
9640 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
9641 REGB0 = REGB1;
9642 }
9643 }
9644 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9645 if (UNTAG_Bool(REGB0)) {
9646 /* ./parser//parser_prod.nit:1762 */
9647 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9648 if (UNTAG_Bool(REGB0)) {
9649 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1762);
9650 }
9651 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
9652 }
9653 /* ./parser//parser_prod.nit:1764 */
9654 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
9655 if (UNTAG_Bool(REGB0)) {
9656 } else {
9657 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1764);
9658 }
9659 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[8]) = fra.me.REG[6];
9660 /* ./parser//parser_prod.nit:1765 */
9661 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
9662 if (UNTAG_Bool(REGB0)) {
9663 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1765);
9664 }
9665 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
9666 /* ./parser//parser_prod.nit:1766 */
9667 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[8]) = fra.me.REG[7];
9668 /* ./parser//parser_prod.nit:1767 */
9669 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9670 if (UNTAG_Bool(REGB0)) {
9671 } else {
9672 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9673 if (UNTAG_Bool(REGB1)) {
9674 REGB1 = TAG_Bool(false);
9675 REGB0 = REGB1;
9676 } else {
9677 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
9678 REGB0 = REGB1;
9679 }
9680 }
9681 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9682 if (UNTAG_Bool(REGB0)) {
9683 /* ./parser//parser_prod.nit:1768 */
9684 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9685 if (UNTAG_Bool(REGB0)) {
9686 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1768);
9687 }
9688 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
9689 }
9690 stack_frame_head = fra.me.prev;
9691 init_table[itpos50] = 1;
9692 return;
9693 }
9694 void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t p1, val_t p2){
9695 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9696 val_t REGB0;
9697 val_t REGB1;
9698 val_t tmp;
9699 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9700 fra.me.file = LOCATE_parser___parser_prod;
9701 fra.me.line = 1772;
9702 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___replace_child;
9703 fra.me.has_broke = 0;
9704 fra.me.REG_size = 4;
9705 fra.me.nitni_local_ref_head = NULL;
9706 fra.me.REG[0] = NIT_NULL;
9707 fra.me.REG[1] = NIT_NULL;
9708 fra.me.REG[2] = NIT_NULL;
9709 fra.me.REG[3] = NIT_NULL;
9710 fra.me.REG[0] = p0;
9711 fra.me.REG[1] = p1;
9712 fra.me.REG[2] = p2;
9713 /* ./parser//parser_prod.nit:1774 */
9714 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
9715 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9716 if (UNTAG_Bool(REGB0)) {
9717 } else {
9718 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9719 if (UNTAG_Bool(REGB1)) {
9720 REGB1 = TAG_Bool(false);
9721 REGB0 = REGB1;
9722 } else {
9723 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9724 REGB0 = REGB1;
9725 }
9726 }
9727 if (UNTAG_Bool(REGB0)) {
9728 /* ./parser//parser_prod.nit:1775 */
9729 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9730 if (UNTAG_Bool(REGB0)) {
9731 } else {
9732 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9733 if (UNTAG_Bool(REGB1)) {
9734 REGB1 = TAG_Bool(false);
9735 REGB0 = REGB1;
9736 } else {
9737 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9738 REGB0 = REGB1;
9739 }
9740 }
9741 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9742 if (UNTAG_Bool(REGB0)) {
9743 /* ./parser//parser_prod.nit:1776 */
9744 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9745 if (UNTAG_Bool(REGB0)) {
9746 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1776);
9747 }
9748 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9749 /* ./parser//parser_prod.nit:1777 */
9750 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*/;
9751 if (UNTAG_Bool(REGB0)) {
9752 } else {
9753 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1777);
9754 }
9755 /* ./parser//parser_prod.nit:1778 */
9756 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
9757 } else {
9758 /* ./parser//parser_prod.nit:1780 */
9759 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
9760 }
9761 /* ./parser//parser_prod.nit:1782 */
9762 goto label1;
9763 }
9764 /* ./parser//parser_prod.nit:1784 */
9765 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9766 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9767 if (UNTAG_Bool(REGB0)) {
9768 } else {
9769 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9770 if (UNTAG_Bool(REGB1)) {
9771 REGB1 = TAG_Bool(false);
9772 REGB0 = REGB1;
9773 } else {
9774 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9775 REGB0 = REGB1;
9776 }
9777 }
9778 if (UNTAG_Bool(REGB0)) {
9779 /* ./parser//parser_prod.nit:1785 */
9780 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9781 if (UNTAG_Bool(REGB0)) {
9782 } else {
9783 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9784 if (UNTAG_Bool(REGB1)) {
9785 REGB1 = TAG_Bool(false);
9786 REGB0 = REGB1;
9787 } else {
9788 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9789 REGB0 = REGB1;
9790 }
9791 }
9792 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9793 if (UNTAG_Bool(REGB0)) {
9794 /* ./parser//parser_prod.nit:1786 */
9795 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9796 if (UNTAG_Bool(REGB0)) {
9797 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1786);
9798 }
9799 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9800 /* ./parser//parser_prod.nit:1787 */
9801 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*/;
9802 if (UNTAG_Bool(REGB0)) {
9803 } else {
9804 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1787);
9805 }
9806 /* ./parser//parser_prod.nit:1788 */
9807 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
9808 } else {
9809 /* ./parser//parser_prod.nit:1790 */
9810 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
9811 }
9812 /* ./parser//parser_prod.nit:1792 */
9813 goto label1;
9814 }
9815 /* ./parser//parser_prod.nit:1794 */
9816 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
9817 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9818 if (UNTAG_Bool(REGB0)) {
9819 } else {
9820 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9821 if (UNTAG_Bool(REGB1)) {
9822 REGB1 = TAG_Bool(false);
9823 REGB0 = REGB1;
9824 } else {
9825 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9826 REGB0 = REGB1;
9827 }
9828 }
9829 if (UNTAG_Bool(REGB0)) {
9830 /* ./parser//parser_prod.nit:1795 */
9831 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9832 if (UNTAG_Bool(REGB0)) {
9833 } else {
9834 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9835 if (UNTAG_Bool(REGB1)) {
9836 REGB1 = TAG_Bool(false);
9837 REGB0 = REGB1;
9838 } else {
9839 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9840 REGB0 = REGB1;
9841 }
9842 }
9843 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9844 if (UNTAG_Bool(REGB0)) {
9845 /* ./parser//parser_prod.nit:1796 */
9846 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9847 if (UNTAG_Bool(REGB0)) {
9848 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1796);
9849 }
9850 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9851 /* ./parser//parser_prod.nit:1797 */
9852 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*/;
9853 if (UNTAG_Bool(REGB0)) {
9854 } else {
9855 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1797);
9856 }
9857 /* ./parser//parser_prod.nit:1798 */
9858 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
9859 } else {
9860 /* ./parser//parser_prod.nit:1800 */
9861 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1800);
9862 }
9863 /* ./parser//parser_prod.nit:1802 */
9864 goto label1;
9865 }
9866 /* ./parser//parser_prod.nit:1804 */
9867 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0])!=NIT_NULL);
9868 if (UNTAG_Bool(REGB0)) {
9869 } else {
9870 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 1804);
9871 }
9872 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]);
9873 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
9874 if (UNTAG_Bool(REGB0)) {
9875 } else {
9876 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9877 REGB0 = REGB1;
9878 }
9879 if (UNTAG_Bool(REGB0)) {
9880 /* ./parser//parser_prod.nit:1805 */
9881 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9882 if (UNTAG_Bool(REGB0)) {
9883 } else {
9884 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9885 if (UNTAG_Bool(REGB1)) {
9886 REGB1 = TAG_Bool(false);
9887 REGB0 = REGB1;
9888 } else {
9889 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9890 REGB0 = REGB1;
9891 }
9892 }
9893 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9894 if (UNTAG_Bool(REGB0)) {
9895 /* ./parser//parser_prod.nit:1806 */
9896 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9897 if (UNTAG_Bool(REGB0)) {
9898 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1806);
9899 }
9900 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9901 /* ./parser//parser_prod.nit:1807 */
9902 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*/;
9903 if (UNTAG_Bool(REGB0)) {
9904 } else {
9905 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1807);
9906 }
9907 /* ./parser//parser_prod.nit:1808 */
9908 ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]) = fra.me.REG[2];
9909 } else {
9910 /* ./parser//parser_prod.nit:1810 */
9911 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1810);
9912 }
9913 /* ./parser//parser_prod.nit:1812 */
9914 goto label1;
9915 }
9916 /* ./parser//parser_prod.nit:1814 */
9917 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
9918 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9919 if (UNTAG_Bool(REGB0)) {
9920 } else {
9921 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9922 if (UNTAG_Bool(REGB1)) {
9923 REGB1 = TAG_Bool(false);
9924 REGB0 = REGB1;
9925 } else {
9926 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9927 REGB0 = REGB1;
9928 }
9929 }
9930 if (UNTAG_Bool(REGB0)) {
9931 /* ./parser//parser_prod.nit:1815 */
9932 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9933 if (UNTAG_Bool(REGB0)) {
9934 } else {
9935 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9936 if (UNTAG_Bool(REGB1)) {
9937 REGB1 = TAG_Bool(false);
9938 REGB0 = REGB1;
9939 } else {
9940 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9941 REGB0 = REGB1;
9942 }
9943 }
9944 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9945 if (UNTAG_Bool(REGB0)) {
9946 /* ./parser//parser_prod.nit:1816 */
9947 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9948 if (UNTAG_Bool(REGB0)) {
9949 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1816);
9950 }
9951 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9952 /* ./parser//parser_prod.nit:1817 */
9953 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*/;
9954 if (UNTAG_Bool(REGB0)) {
9955 } else {
9956 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1817);
9957 }
9958 /* ./parser//parser_prod.nit:1818 */
9959 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
9960 } else {
9961 /* ./parser//parser_prod.nit:1820 */
9962 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = NIT_NULL;
9963 }
9964 /* ./parser//parser_prod.nit:1822 */
9965 goto label1;
9966 }
9967 /* ./parser//parser_prod.nit:1824 */
9968 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
9969 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9970 if (UNTAG_Bool(REGB0)) {
9971 } else {
9972 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9973 if (UNTAG_Bool(REGB1)) {
9974 REGB1 = TAG_Bool(false);
9975 REGB0 = REGB1;
9976 } else {
9977 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9978 REGB0 = REGB1;
9979 }
9980 }
9981 if (UNTAG_Bool(REGB0)) {
9982 /* ./parser//parser_prod.nit:1825 */
9983 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9984 if (UNTAG_Bool(REGB0)) {
9985 } else {
9986 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9987 if (UNTAG_Bool(REGB1)) {
9988 REGB1 = TAG_Bool(false);
9989 REGB0 = REGB1;
9990 } else {
9991 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9992 REGB0 = REGB1;
9993 }
9994 }
9995 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9996 if (UNTAG_Bool(REGB0)) {
9997 /* ./parser//parser_prod.nit:1826 */
9998 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9999 if (UNTAG_Bool(REGB0)) {
10000 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1826);
10001 }
10002 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10003 /* ./parser//parser_prod.nit:1827 */
10004 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*/;
10005 if (UNTAG_Bool(REGB0)) {
10006 } else {
10007 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1827);
10008 }
10009 /* ./parser//parser_prod.nit:1828 */
10010 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
10011 } else {
10012 /* ./parser//parser_prod.nit:1830 */
10013 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1830);
10014 }
10015 /* ./parser//parser_prod.nit:1832 */
10016 goto label1;
10017 }
10018 /* ./parser//parser_prod.nit:1834 */
10019 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
10020 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10021 if (UNTAG_Bool(REGB0)) {
10022 } else {
10023 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10024 if (UNTAG_Bool(REGB1)) {
10025 REGB1 = TAG_Bool(false);
10026 REGB0 = REGB1;
10027 } else {
10028 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10029 REGB0 = REGB1;
10030 }
10031 }
10032 if (UNTAG_Bool(REGB0)) {
10033 /* ./parser//parser_prod.nit:1835 */
10034 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10035 if (UNTAG_Bool(REGB0)) {
10036 } else {
10037 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10038 if (UNTAG_Bool(REGB1)) {
10039 REGB1 = TAG_Bool(false);
10040 REGB0 = REGB1;
10041 } else {
10042 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10043 REGB0 = REGB1;
10044 }
10045 }
10046 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10047 if (UNTAG_Bool(REGB0)) {
10048 /* ./parser//parser_prod.nit:1836 */
10049 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10050 if (UNTAG_Bool(REGB0)) {
10051 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1836);
10052 }
10053 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10054 /* ./parser//parser_prod.nit:1837 */
10055 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*/;
10056 if (UNTAG_Bool(REGB0)) {
10057 } else {
10058 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1837);
10059 }
10060 /* ./parser//parser_prod.nit:1838 */
10061 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
10062 } else {
10063 /* ./parser//parser_prod.nit:1840 */
10064 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
10065 }
10066 /* ./parser//parser_prod.nit:1842 */
10067 goto label1;
10068 }
10069 label1: while(0);
10070 stack_frame_head = fra.me.prev;
10071 return;
10072 }
10073 void parser___parser_prod___AConcreteInitPropdef___visit_all(val_t p0, val_t p1){
10074 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10075 val_t REGB0;
10076 val_t REGB1;
10077 val_t tmp;
10078 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10079 fra.me.file = LOCATE_parser___parser_prod;
10080 fra.me.line = 1846;
10081 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___visit_all;
10082 fra.me.has_broke = 0;
10083 fra.me.REG_size = 4;
10084 fra.me.nitni_local_ref_head = NULL;
10085 fra.me.REG[0] = NIT_NULL;
10086 fra.me.REG[1] = NIT_NULL;
10087 fra.me.REG[2] = NIT_NULL;
10088 fra.me.REG[3] = NIT_NULL;
10089 fra.me.REG[0] = p0;
10090 fra.me.REG[1] = p1;
10091 /* ./parser//parser_prod.nit:1846 */
10092 fra.me.REG[2] = fra.me.REG[0];
10093 /* ./parser//parser_prod.nit:1848 */
10094 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
10095 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10096 if (UNTAG_Bool(REGB0)) {
10097 } else {
10098 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10099 if (UNTAG_Bool(REGB1)) {
10100 REGB1 = TAG_Bool(false);
10101 REGB0 = REGB1;
10102 } else {
10103 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10104 REGB0 = REGB1;
10105 }
10106 }
10107 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10108 if (UNTAG_Bool(REGB0)) {
10109 /* ./parser//parser_prod.nit:1849 */
10110 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
10111 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*/;
10112 if (UNTAG_Bool(REGB0)) {
10113 } else {
10114 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1849);
10115 }
10116 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10117 }
10118 /* ./parser//parser_prod.nit:1851 */
10119 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
10120 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10121 if (UNTAG_Bool(REGB0)) {
10122 } else {
10123 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10124 if (UNTAG_Bool(REGB1)) {
10125 REGB1 = TAG_Bool(false);
10126 REGB0 = REGB1;
10127 } else {
10128 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10129 REGB0 = REGB1;
10130 }
10131 }
10132 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10133 if (UNTAG_Bool(REGB0)) {
10134 /* ./parser//parser_prod.nit:1852 */
10135 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
10136 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*/;
10137 if (UNTAG_Bool(REGB0)) {
10138 } else {
10139 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1852);
10140 }
10141 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10142 }
10143 /* ./parser//parser_prod.nit:1854 */
10144 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
10145 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10146 /* ./parser//parser_prod.nit:1855 */
10147 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[2])!=NIT_NULL);
10148 if (UNTAG_Bool(REGB0)) {
10149 } else {
10150 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 1855);
10151 }
10152 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[2]);
10153 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10154 /* ./parser//parser_prod.nit:1856 */
10155 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
10156 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10157 if (UNTAG_Bool(REGB0)) {
10158 } else {
10159 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10160 if (UNTAG_Bool(REGB1)) {
10161 REGB1 = TAG_Bool(false);
10162 REGB0 = REGB1;
10163 } else {
10164 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10165 REGB0 = REGB1;
10166 }
10167 }
10168 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10169 if (UNTAG_Bool(REGB0)) {
10170 /* ./parser//parser_prod.nit:1857 */
10171 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
10172 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*/;
10173 if (UNTAG_Bool(REGB0)) {
10174 } else {
10175 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1857);
10176 }
10177 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10178 }
10179 /* ./parser//parser_prod.nit:1859 */
10180 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
10181 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10182 /* ./parser//parser_prod.nit:1860 */
10183 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
10184 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10185 if (UNTAG_Bool(REGB0)) {
10186 } else {
10187 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10188 if (UNTAG_Bool(REGB1)) {
10189 REGB1 = TAG_Bool(false);
10190 REGB0 = REGB1;
10191 } else {
10192 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10193 REGB0 = REGB1;
10194 }
10195 }
10196 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10197 if (UNTAG_Bool(REGB0)) {
10198 /* ./parser//parser_prod.nit:1861 */
10199 fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
10200 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*/;
10201 if (UNTAG_Bool(REGB0)) {
10202 } else {
10203 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1861);
10204 }
10205 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10206 }
10207 stack_frame_head = fra.me.prev;
10208 return;
10209 }
10210 void parser___parser_prod___AExternInitPropdef___empty_init(val_t p0, int* init_table){
10211 int itpos51 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternInitPropdef].i;
10212 struct {struct stack_frame_t me;} fra;
10213 val_t tmp;
10214 if (init_table[itpos51]) return;
10215 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10216 fra.me.file = LOCATE_parser___parser_prod;
10217 fra.me.line = 1866;
10218 fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___empty_init;
10219 fra.me.has_broke = 0;
10220 fra.me.REG_size = 1;
10221 fra.me.nitni_local_ref_head = NULL;
10222 fra.me.REG[0] = NIT_NULL;
10223 fra.me.REG[0] = p0;
10224 /* ./parser//parser_prod.nit:1866 */
10225 CALL_parser___parser_nodes___AInitPropdef___init(fra.me.REG[0])(fra.me.REG[0], init_table);
10226 stack_frame_head = fra.me.prev;
10227 init_table[itpos51] = 1;
10228 return;
10229 }
10230 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){
10231 int itpos52 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternInitPropdef].i;
10232 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
10233 val_t REGB0;
10234 val_t REGB1;
10235 val_t tmp;
10236 if (init_table[itpos52]) return;
10237 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10238 fra.me.file = LOCATE_parser___parser_prod;
10239 fra.me.line = 1868;
10240 fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef;
10241 fra.me.has_broke = 0;
10242 fra.me.REG_size = 10;
10243 fra.me.nitni_local_ref_head = NULL;
10244 fra.me.REG[0] = NIT_NULL;
10245 fra.me.REG[1] = NIT_NULL;
10246 fra.me.REG[2] = NIT_NULL;
10247 fra.me.REG[3] = NIT_NULL;
10248 fra.me.REG[4] = NIT_NULL;
10249 fra.me.REG[5] = NIT_NULL;
10250 fra.me.REG[6] = NIT_NULL;
10251 fra.me.REG[7] = NIT_NULL;
10252 fra.me.REG[8] = NIT_NULL;
10253 fra.me.REG[9] = NIT_NULL;
10254 fra.me.REG[0] = p0;
10255 fra.me.REG[1] = p1;
10256 fra.me.REG[2] = p2;
10257 fra.me.REG[3] = p3;
10258 fra.me.REG[4] = p4;
10259 fra.me.REG[5] = p5;
10260 fra.me.REG[6] = p6;
10261 fra.me.REG[7] = p7;
10262 fra.me.REG[8] = p8;
10263 /* ./parser//parser_prod.nit:1868 */
10264 fra.me.REG[9] = fra.me.REG[0];
10265 /* ./parser//parser_prod.nit:1879 */
10266 CALL_parser___parser_prod___AExternInitPropdef___empty_init(fra.me.REG[9])(fra.me.REG[9], init_table);
10267 /* ./parser//parser_prod.nit:1880 */
10268 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[9]) = fra.me.REG[1];
10269 /* ./parser//parser_prod.nit:1881 */
10270 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10271 if (UNTAG_Bool(REGB0)) {
10272 } else {
10273 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10274 if (UNTAG_Bool(REGB1)) {
10275 REGB1 = TAG_Bool(false);
10276 REGB0 = REGB1;
10277 } else {
10278 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10279 REGB0 = REGB1;
10280 }
10281 }
10282 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10283 if (UNTAG_Bool(REGB0)) {
10284 /* ./parser//parser_prod.nit:1882 */
10285 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10286 if (UNTAG_Bool(REGB0)) {
10287 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1882);
10288 }
10289 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
10290 }
10291 /* ./parser//parser_prod.nit:1884 */
10292 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[9]) = fra.me.REG[2];
10293 /* ./parser//parser_prod.nit:1885 */
10294 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10295 if (UNTAG_Bool(REGB0)) {
10296 } else {
10297 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10298 if (UNTAG_Bool(REGB1)) {
10299 REGB1 = TAG_Bool(false);
10300 REGB0 = REGB1;
10301 } else {
10302 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10303 REGB0 = REGB1;
10304 }
10305 }
10306 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10307 if (UNTAG_Bool(REGB0)) {
10308 /* ./parser//parser_prod.nit:1886 */
10309 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10310 if (UNTAG_Bool(REGB0)) {
10311 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1886);
10312 }
10313 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[9]);
10314 }
10315 /* ./parser//parser_prod.nit:1888 */
10316 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
10317 if (UNTAG_Bool(REGB0)) {
10318 } else {
10319 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1888);
10320 }
10321 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[9]) = fra.me.REG[3];
10322 /* ./parser//parser_prod.nit:1889 */
10323 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10324 if (UNTAG_Bool(REGB0)) {
10325 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1889);
10326 }
10327 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]);
10328 /* ./parser//parser_prod.nit:1890 */
10329 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
10330 if (UNTAG_Bool(REGB0)) {
10331 } else {
10332 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1890);
10333 }
10334 ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[9]) = fra.me.REG[4];
10335 /* ./parser//parser_prod.nit:1891 */
10336 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
10337 if (UNTAG_Bool(REGB0)) {
10338 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1891);
10339 }
10340 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
10341 /* ./parser//parser_prod.nit:1892 */
10342 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[9]) = fra.me.REG[5];
10343 /* ./parser//parser_prod.nit:1893 */
10344 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10345 if (UNTAG_Bool(REGB0)) {
10346 } else {
10347 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10348 if (UNTAG_Bool(REGB1)) {
10349 REGB1 = TAG_Bool(false);
10350 REGB0 = REGB1;
10351 } else {
10352 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10353 REGB0 = REGB1;
10354 }
10355 }
10356 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10357 if (UNTAG_Bool(REGB0)) {
10358 /* ./parser//parser_prod.nit:1894 */
10359 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10360 if (UNTAG_Bool(REGB0)) {
10361 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1894);
10362 }
10363 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[9]);
10364 }
10365 /* ./parser//parser_prod.nit:1896 */
10366 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
10367 if (UNTAG_Bool(REGB0)) {
10368 } else {
10369 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1896);
10370 }
10371 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[9]) = fra.me.REG[6];
10372 /* ./parser//parser_prod.nit:1897 */
10373 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
10374 if (UNTAG_Bool(REGB0)) {
10375 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1897);
10376 }
10377 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
10378 /* ./parser//parser_prod.nit:1898 */
10379 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[9]) = fra.me.REG[7];
10380 /* ./parser//parser_prod.nit:1899 */
10381 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10382 if (UNTAG_Bool(REGB0)) {
10383 } else {
10384 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10385 if (UNTAG_Bool(REGB1)) {
10386 REGB1 = TAG_Bool(false);
10387 REGB0 = REGB1;
10388 } else {
10389 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
10390 REGB0 = REGB1;
10391 }
10392 }
10393 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10394 if (UNTAG_Bool(REGB0)) {
10395 /* ./parser//parser_prod.nit:1900 */
10396 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10397 if (UNTAG_Bool(REGB0)) {
10398 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1900);
10399 }
10400 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]);
10401 }
10402 /* ./parser//parser_prod.nit:1902 */
10403 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[9]) = fra.me.REG[8];
10404 /* ./parser//parser_prod.nit:1903 */
10405 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
10406 if (UNTAG_Bool(REGB0)) {
10407 } else {
10408 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
10409 if (UNTAG_Bool(REGB1)) {
10410 REGB1 = TAG_Bool(false);
10411 REGB0 = REGB1;
10412 } else {
10413 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
10414 REGB0 = REGB1;
10415 }
10416 }
10417 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10418 if (UNTAG_Bool(REGB0)) {
10419 /* ./parser//parser_prod.nit:1904 */
10420 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
10421 if (UNTAG_Bool(REGB0)) {
10422 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1904);
10423 }
10424 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
10425 }
10426 stack_frame_head = fra.me.prev;
10427 init_table[itpos52] = 1;
10428 return;
10429 }
10430 void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p1, val_t p2){
10431 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10432 val_t REGB0;
10433 val_t REGB1;
10434 val_t tmp;
10435 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10436 fra.me.file = LOCATE_parser___parser_prod;
10437 fra.me.line = 1908;
10438 fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___replace_child;
10439 fra.me.has_broke = 0;
10440 fra.me.REG_size = 4;
10441 fra.me.nitni_local_ref_head = NULL;
10442 fra.me.REG[0] = NIT_NULL;
10443 fra.me.REG[1] = NIT_NULL;
10444 fra.me.REG[2] = NIT_NULL;
10445 fra.me.REG[3] = NIT_NULL;
10446 fra.me.REG[0] = p0;
10447 fra.me.REG[1] = p1;
10448 fra.me.REG[2] = p2;
10449 /* ./parser//parser_prod.nit:1910 */
10450 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
10451 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10452 if (UNTAG_Bool(REGB0)) {
10453 } else {
10454 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10455 if (UNTAG_Bool(REGB1)) {
10456 REGB1 = TAG_Bool(false);
10457 REGB0 = REGB1;
10458 } else {
10459 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10460 REGB0 = REGB1;
10461 }
10462 }
10463 if (UNTAG_Bool(REGB0)) {
10464 /* ./parser//parser_prod.nit:1911 */
10465 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10466 if (UNTAG_Bool(REGB0)) {
10467 } else {
10468 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10469 if (UNTAG_Bool(REGB1)) {
10470 REGB1 = TAG_Bool(false);
10471 REGB0 = REGB1;
10472 } else {
10473 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10474 REGB0 = REGB1;
10475 }
10476 }
10477 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10478 if (UNTAG_Bool(REGB0)) {
10479 /* ./parser//parser_prod.nit:1912 */
10480 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10481 if (UNTAG_Bool(REGB0)) {
10482 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1912);
10483 }
10484 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10485 /* ./parser//parser_prod.nit:1913 */
10486 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*/;
10487 if (UNTAG_Bool(REGB0)) {
10488 } else {
10489 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1913);
10490 }
10491 /* ./parser//parser_prod.nit:1914 */
10492 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
10493 } else {
10494 /* ./parser//parser_prod.nit:1916 */
10495 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
10496 }
10497 /* ./parser//parser_prod.nit:1918 */
10498 goto label1;
10499 }
10500 /* ./parser//parser_prod.nit:1920 */
10501 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
10502 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10503 if (UNTAG_Bool(REGB0)) {
10504 } else {
10505 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10506 if (UNTAG_Bool(REGB1)) {
10507 REGB1 = TAG_Bool(false);
10508 REGB0 = REGB1;
10509 } else {
10510 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10511 REGB0 = REGB1;
10512 }
10513 }
10514 if (UNTAG_Bool(REGB0)) {
10515 /* ./parser//parser_prod.nit:1921 */
10516 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10517 if (UNTAG_Bool(REGB0)) {
10518 } else {
10519 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10520 if (UNTAG_Bool(REGB1)) {
10521 REGB1 = TAG_Bool(false);
10522 REGB0 = REGB1;
10523 } else {
10524 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10525 REGB0 = REGB1;
10526 }
10527 }
10528 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10529 if (UNTAG_Bool(REGB0)) {
10530 /* ./parser//parser_prod.nit:1922 */
10531 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10532 if (UNTAG_Bool(REGB0)) {
10533 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1922);
10534 }
10535 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10536 /* ./parser//parser_prod.nit:1923 */
10537 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*/;
10538 if (UNTAG_Bool(REGB0)) {
10539 } else {
10540 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1923);
10541 }
10542 /* ./parser//parser_prod.nit:1924 */
10543 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
10544 } else {
10545 /* ./parser//parser_prod.nit:1926 */
10546 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
10547 }
10548 /* ./parser//parser_prod.nit:1928 */
10549 goto label1;
10550 }
10551 /* ./parser//parser_prod.nit:1930 */
10552 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
10553 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10554 if (UNTAG_Bool(REGB0)) {
10555 } else {
10556 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10557 if (UNTAG_Bool(REGB1)) {
10558 REGB1 = TAG_Bool(false);
10559 REGB0 = REGB1;
10560 } else {
10561 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10562 REGB0 = REGB1;
10563 }
10564 }
10565 if (UNTAG_Bool(REGB0)) {
10566 /* ./parser//parser_prod.nit:1931 */
10567 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10568 if (UNTAG_Bool(REGB0)) {
10569 } else {
10570 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10571 if (UNTAG_Bool(REGB1)) {
10572 REGB1 = TAG_Bool(false);
10573 REGB0 = REGB1;
10574 } else {
10575 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10576 REGB0 = REGB1;
10577 }
10578 }
10579 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10580 if (UNTAG_Bool(REGB0)) {
10581 /* ./parser//parser_prod.nit:1932 */
10582 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10583 if (UNTAG_Bool(REGB0)) {
10584 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1932);
10585 }
10586 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10587 /* ./parser//parser_prod.nit:1933 */
10588 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*/;
10589 if (UNTAG_Bool(REGB0)) {
10590 } else {
10591 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1933);
10592 }
10593 /* ./parser//parser_prod.nit:1934 */
10594 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
10595 } else {
10596 /* ./parser//parser_prod.nit:1936 */
10597 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1936);
10598 }
10599 /* ./parser//parser_prod.nit:1938 */
10600 goto label1;
10601 }
10602 /* ./parser//parser_prod.nit:1940 */
10603 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[0])!=NIT_NULL);
10604 if (UNTAG_Bool(REGB0)) {
10605 } else {
10606 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 1940);
10607 }
10608 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[0]);
10609 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
10610 if (UNTAG_Bool(REGB0)) {
10611 } else {
10612 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10613 REGB0 = REGB1;
10614 }
10615 if (UNTAG_Bool(REGB0)) {
10616 /* ./parser//parser_prod.nit:1941 */
10617 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10618 if (UNTAG_Bool(REGB0)) {
10619 } else {
10620 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10621 if (UNTAG_Bool(REGB1)) {
10622 REGB1 = TAG_Bool(false);
10623 REGB0 = REGB1;
10624 } else {
10625 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10626 REGB0 = REGB1;
10627 }
10628 }
10629 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10630 if (UNTAG_Bool(REGB0)) {
10631 /* ./parser//parser_prod.nit:1942 */
10632 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10633 if (UNTAG_Bool(REGB0)) {
10634 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1942);
10635 }
10636 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10637 /* ./parser//parser_prod.nit:1943 */
10638 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*/;
10639 if (UNTAG_Bool(REGB0)) {
10640 } else {
10641 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1943);
10642 }
10643 /* ./parser//parser_prod.nit:1944 */
10644 ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[0]) = fra.me.REG[2];
10645 } else {
10646 /* ./parser//parser_prod.nit:1946 */
10647 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1946);
10648 }
10649 /* ./parser//parser_prod.nit:1948 */
10650 goto label1;
10651 }
10652 /* ./parser//parser_prod.nit:1950 */
10653 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
10654 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10655 if (UNTAG_Bool(REGB0)) {
10656 } else {
10657 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10658 if (UNTAG_Bool(REGB1)) {
10659 REGB1 = TAG_Bool(false);
10660 REGB0 = REGB1;
10661 } else {
10662 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10663 REGB0 = REGB1;
10664 }
10665 }
10666 if (UNTAG_Bool(REGB0)) {
10667 /* ./parser//parser_prod.nit:1951 */
10668 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10669 if (UNTAG_Bool(REGB0)) {
10670 } else {
10671 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10672 if (UNTAG_Bool(REGB1)) {
10673 REGB1 = TAG_Bool(false);
10674 REGB0 = REGB1;
10675 } else {
10676 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10677 REGB0 = REGB1;
10678 }
10679 }
10680 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10681 if (UNTAG_Bool(REGB0)) {
10682 /* ./parser//parser_prod.nit:1952 */
10683 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10684 if (UNTAG_Bool(REGB0)) {
10685 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1952);
10686 }
10687 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10688 /* ./parser//parser_prod.nit:1953 */
10689 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*/;
10690 if (UNTAG_Bool(REGB0)) {
10691 } else {
10692 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1953);
10693 }
10694 /* ./parser//parser_prod.nit:1954 */
10695 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
10696 } else {
10697 /* ./parser//parser_prod.nit:1956 */
10698 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = NIT_NULL;
10699 }
10700 /* ./parser//parser_prod.nit:1958 */
10701 goto label1;
10702 }
10703 /* ./parser//parser_prod.nit:1960 */
10704 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
10705 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10706 if (UNTAG_Bool(REGB0)) {
10707 } else {
10708 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10709 if (UNTAG_Bool(REGB1)) {
10710 REGB1 = TAG_Bool(false);
10711 REGB0 = REGB1;
10712 } else {
10713 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10714 REGB0 = REGB1;
10715 }
10716 }
10717 if (UNTAG_Bool(REGB0)) {
10718 /* ./parser//parser_prod.nit:1961 */
10719 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10720 if (UNTAG_Bool(REGB0)) {
10721 } else {
10722 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10723 if (UNTAG_Bool(REGB1)) {
10724 REGB1 = TAG_Bool(false);
10725 REGB0 = REGB1;
10726 } else {
10727 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10728 REGB0 = REGB1;
10729 }
10730 }
10731 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10732 if (UNTAG_Bool(REGB0)) {
10733 /* ./parser//parser_prod.nit:1962 */
10734 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10735 if (UNTAG_Bool(REGB0)) {
10736 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1962);
10737 }
10738 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10739 /* ./parser//parser_prod.nit:1963 */
10740 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*/;
10741 if (UNTAG_Bool(REGB0)) {
10742 } else {
10743 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1963);
10744 }
10745 /* ./parser//parser_prod.nit:1964 */
10746 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
10747 } else {
10748 /* ./parser//parser_prod.nit:1966 */
10749 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1966);
10750 }
10751 /* ./parser//parser_prod.nit:1968 */
10752 goto label1;
10753 }
10754 /* ./parser//parser_prod.nit:1970 */
10755 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]);
10756 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10757 if (UNTAG_Bool(REGB0)) {
10758 } else {
10759 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10760 if (UNTAG_Bool(REGB1)) {
10761 REGB1 = TAG_Bool(false);
10762 REGB0 = REGB1;
10763 } else {
10764 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10765 REGB0 = REGB1;
10766 }
10767 }
10768 if (UNTAG_Bool(REGB0)) {
10769 /* ./parser//parser_prod.nit:1971 */
10770 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10771 if (UNTAG_Bool(REGB0)) {
10772 } else {
10773 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10774 if (UNTAG_Bool(REGB1)) {
10775 REGB1 = TAG_Bool(false);
10776 REGB0 = REGB1;
10777 } else {
10778 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10779 REGB0 = REGB1;
10780 }
10781 }
10782 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10783 if (UNTAG_Bool(REGB0)) {
10784 /* ./parser//parser_prod.nit:1972 */
10785 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10786 if (UNTAG_Bool(REGB0)) {
10787 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1972);
10788 }
10789 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10790 /* ./parser//parser_prod.nit:1973 */
10791 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*/;
10792 if (UNTAG_Bool(REGB0)) {
10793 } else {
10794 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1973);
10795 }
10796 /* ./parser//parser_prod.nit:1974 */
10797 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[2];
10798 } else {
10799 /* ./parser//parser_prod.nit:1976 */
10800 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = NIT_NULL;
10801 }
10802 /* ./parser//parser_prod.nit:1978 */
10803 goto label1;
10804 }
10805 /* ./parser//parser_prod.nit:1980 */
10806 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]);
10807 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10808 if (UNTAG_Bool(REGB0)) {
10809 } else {
10810 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10811 if (UNTAG_Bool(REGB1)) {
10812 REGB1 = TAG_Bool(false);
10813 REGB0 = REGB1;
10814 } else {
10815 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10816 REGB0 = REGB1;
10817 }
10818 }
10819 if (UNTAG_Bool(REGB0)) {
10820 /* ./parser//parser_prod.nit:1981 */
10821 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10822 if (UNTAG_Bool(REGB0)) {
10823 } else {
10824 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10825 if (UNTAG_Bool(REGB1)) {
10826 REGB1 = TAG_Bool(false);
10827 REGB0 = REGB1;
10828 } else {
10829 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10830 REGB0 = REGB1;
10831 }
10832 }
10833 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10834 if (UNTAG_Bool(REGB0)) {
10835 /* ./parser//parser_prod.nit:1982 */
10836 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10837 if (UNTAG_Bool(REGB0)) {
10838 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1982);
10839 }
10840 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10841 /* ./parser//parser_prod.nit:1983 */
10842 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*/;
10843 if (UNTAG_Bool(REGB0)) {
10844 } else {
10845 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1983);
10846 }
10847 /* ./parser//parser_prod.nit:1984 */
10848 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = fra.me.REG[2];
10849 } else {
10850 /* ./parser//parser_prod.nit:1986 */
10851 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = NIT_NULL;
10852 }
10853 /* ./parser//parser_prod.nit:1988 */
10854 goto label1;
10855 }
10856 label1: while(0);
10857 stack_frame_head = fra.me.prev;
10858 return;
10859 }
10860 void parser___parser_prod___AExternInitPropdef___visit_all(val_t p0, val_t p1){
10861 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10862 val_t REGB0;
10863 val_t REGB1;
10864 val_t tmp;
10865 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10866 fra.me.file = LOCATE_parser___parser_prod;
10867 fra.me.line = 1992;
10868 fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___visit_all;
10869 fra.me.has_broke = 0;
10870 fra.me.REG_size = 4;
10871 fra.me.nitni_local_ref_head = NULL;
10872 fra.me.REG[0] = NIT_NULL;
10873 fra.me.REG[1] = NIT_NULL;
10874 fra.me.REG[2] = NIT_NULL;
10875 fra.me.REG[3] = NIT_NULL;
10876 fra.me.REG[0] = p0;
10877 fra.me.REG[1] = p1;
10878 /* ./parser//parser_prod.nit:1992 */
10879 fra.me.REG[2] = fra.me.REG[0];
10880 /* ./parser//parser_prod.nit:1994 */
10881 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
10882 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10883 if (UNTAG_Bool(REGB0)) {
10884 } else {
10885 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10886 if (UNTAG_Bool(REGB1)) {
10887 REGB1 = TAG_Bool(false);
10888 REGB0 = REGB1;
10889 } else {
10890 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10891 REGB0 = REGB1;
10892 }
10893 }
10894 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10895 if (UNTAG_Bool(REGB0)) {
10896 /* ./parser//parser_prod.nit:1995 */
10897 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
10898 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*/;
10899 if (UNTAG_Bool(REGB0)) {
10900 } else {
10901 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1995);
10902 }
10903 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10904 }
10905 /* ./parser//parser_prod.nit:1997 */
10906 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
10907 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10908 if (UNTAG_Bool(REGB0)) {
10909 } else {
10910 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10911 if (UNTAG_Bool(REGB1)) {
10912 REGB1 = TAG_Bool(false);
10913 REGB0 = REGB1;
10914 } else {
10915 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10916 REGB0 = REGB1;
10917 }
10918 }
10919 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10920 if (UNTAG_Bool(REGB0)) {
10921 /* ./parser//parser_prod.nit:1998 */
10922 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
10923 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*/;
10924 if (UNTAG_Bool(REGB0)) {
10925 } else {
10926 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1998);
10927 }
10928 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10929 }
10930 /* ./parser//parser_prod.nit:2000 */
10931 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
10932 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10933 /* ./parser//parser_prod.nit:2001 */
10934 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[2])!=NIT_NULL);
10935 if (UNTAG_Bool(REGB0)) {
10936 } else {
10937 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 2001);
10938 }
10939 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[2]);
10940 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10941 /* ./parser//parser_prod.nit:2002 */
10942 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
10943 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10944 if (UNTAG_Bool(REGB0)) {
10945 } else {
10946 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10947 if (UNTAG_Bool(REGB1)) {
10948 REGB1 = TAG_Bool(false);
10949 REGB0 = REGB1;
10950 } else {
10951 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10952 REGB0 = REGB1;
10953 }
10954 }
10955 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10956 if (UNTAG_Bool(REGB0)) {
10957 /* ./parser//parser_prod.nit:2003 */
10958 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
10959 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*/;
10960 if (UNTAG_Bool(REGB0)) {
10961 } else {
10962 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2003);
10963 }
10964 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10965 }
10966 /* ./parser//parser_prod.nit:2005 */
10967 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
10968 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10969 /* ./parser//parser_prod.nit:2006 */
10970 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
10971 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10972 if (UNTAG_Bool(REGB0)) {
10973 } else {
10974 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10975 if (UNTAG_Bool(REGB1)) {
10976 REGB1 = TAG_Bool(false);
10977 REGB0 = REGB1;
10978 } else {
10979 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10980 REGB0 = REGB1;
10981 }
10982 }
10983 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10984 if (UNTAG_Bool(REGB0)) {
10985 /* ./parser//parser_prod.nit:2007 */
10986 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
10987 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*/;
10988 if (UNTAG_Bool(REGB0)) {
10989 } else {
10990 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2007);
10991 }
10992 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10993 }
10994 /* ./parser//parser_prod.nit:2009 */
10995 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
10996 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10997 if (UNTAG_Bool(REGB0)) {
10998 } else {
10999 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11000 if (UNTAG_Bool(REGB1)) {
11001 REGB1 = TAG_Bool(false);
11002 REGB0 = REGB1;
11003 } else {
11004 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11005 REGB0 = REGB1;
11006 }
11007 }
11008 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11009 if (UNTAG_Bool(REGB0)) {
11010 /* ./parser//parser_prod.nit:2010 */
11011 fra.me.REG[2] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
11012 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*/;
11013 if (UNTAG_Bool(REGB0)) {
11014 } else {
11015 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2010);
11016 }
11017 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11018 }
11019 stack_frame_head = fra.me.prev;
11020 return;
11021 }
11022 void parser___parser_prod___AMainMethPropdef___empty_init(val_t p0, int* init_table){
11023 int itpos53 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainMethPropdef].i;
11024 struct {struct stack_frame_t me;} fra;
11025 val_t tmp;
11026 if (init_table[itpos53]) return;
11027 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11028 fra.me.file = LOCATE_parser___parser_prod;
11029 fra.me.line = 2015;
11030 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___empty_init;
11031 fra.me.has_broke = 0;
11032 fra.me.REG_size = 1;
11033 fra.me.nitni_local_ref_head = NULL;
11034 fra.me.REG[0] = NIT_NULL;
11035 fra.me.REG[0] = p0;
11036 stack_frame_head = fra.me.prev;
11037 init_table[itpos53] = 1;
11038 return;
11039 }
11040 void parser___parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t p0, val_t p1, val_t p2, int* init_table){
11041 int itpos54 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainMethPropdef].i;
11042 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
11043 val_t REGB0;
11044 val_t REGB1;
11045 val_t tmp;
11046 if (init_table[itpos54]) return;
11047 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11048 fra.me.file = LOCATE_parser___parser_prod;
11049 fra.me.line = 2017;
11050 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___init_amainmethpropdef;
11051 fra.me.has_broke = 0;
11052 fra.me.REG_size = 3;
11053 fra.me.nitni_local_ref_head = NULL;
11054 fra.me.REG[0] = NIT_NULL;
11055 fra.me.REG[1] = NIT_NULL;
11056 fra.me.REG[2] = NIT_NULL;
11057 fra.me.REG[0] = p0;
11058 fra.me.REG[1] = p1;
11059 fra.me.REG[2] = p2;
11060 /* ./parser//parser_prod.nit:2022 */
11061 CALL_parser___parser_prod___AMainMethPropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
11062 /* ./parser//parser_prod.nit:2023 */
11063 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
11064 /* ./parser//parser_prod.nit:2024 */
11065 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11066 if (UNTAG_Bool(REGB0)) {
11067 } else {
11068 REGB1 = TAG_Bool(fra.me.REG[1]==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[1])(fra.me.REG[1], NIT_NULL);
11074 REGB0 = REGB1;
11075 }
11076 }
11077 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11078 if (UNTAG_Bool(REGB0)) {
11079 /* ./parser//parser_prod.nit:2025 */
11080 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11081 if (UNTAG_Bool(REGB0)) {
11082 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2025);
11083 }
11084 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11085 }
11086 /* ./parser//parser_prod.nit:2027 */
11087 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
11088 /* ./parser//parser_prod.nit:2028 */
11089 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11090 if (UNTAG_Bool(REGB0)) {
11091 } else {
11092 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11093 if (UNTAG_Bool(REGB1)) {
11094 REGB1 = TAG_Bool(false);
11095 REGB0 = REGB1;
11096 } else {
11097 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11098 REGB0 = REGB1;
11099 }
11100 }
11101 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11102 if (UNTAG_Bool(REGB0)) {
11103 /* ./parser//parser_prod.nit:2029 */
11104 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11105 if (UNTAG_Bool(REGB0)) {
11106 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2029);
11107 }
11108 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11109 }
11110 stack_frame_head = fra.me.prev;
11111 init_table[itpos54] = 1;
11112 return;
11113 }
11114 void parser___parser_prod___AMainMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
11115 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11116 val_t REGB0;
11117 val_t REGB1;
11118 val_t tmp;
11119 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11120 fra.me.file = LOCATE_parser___parser_prod;
11121 fra.me.line = 2033;
11122 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___replace_child;
11123 fra.me.has_broke = 0;
11124 fra.me.REG_size = 4;
11125 fra.me.nitni_local_ref_head = NULL;
11126 fra.me.REG[0] = NIT_NULL;
11127 fra.me.REG[1] = NIT_NULL;
11128 fra.me.REG[2] = NIT_NULL;
11129 fra.me.REG[3] = NIT_NULL;
11130 fra.me.REG[0] = p0;
11131 fra.me.REG[1] = p1;
11132 fra.me.REG[2] = p2;
11133 /* ./parser//parser_prod.nit:2035 */
11134 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
11135 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11136 if (UNTAG_Bool(REGB0)) {
11137 } else {
11138 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11139 if (UNTAG_Bool(REGB1)) {
11140 REGB1 = TAG_Bool(false);
11141 REGB0 = REGB1;
11142 } else {
11143 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11144 REGB0 = REGB1;
11145 }
11146 }
11147 if (UNTAG_Bool(REGB0)) {
11148 /* ./parser//parser_prod.nit:2036 */
11149 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11150 if (UNTAG_Bool(REGB0)) {
11151 } else {
11152 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11153 if (UNTAG_Bool(REGB1)) {
11154 REGB1 = TAG_Bool(false);
11155 REGB0 = REGB1;
11156 } else {
11157 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11158 REGB0 = REGB1;
11159 }
11160 }
11161 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11162 if (UNTAG_Bool(REGB0)) {
11163 /* ./parser//parser_prod.nit:2037 */
11164 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11165 if (UNTAG_Bool(REGB0)) {
11166 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2037);
11167 }
11168 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11169 /* ./parser//parser_prod.nit:2038 */
11170 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*/;
11171 if (UNTAG_Bool(REGB0)) {
11172 } else {
11173 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2038);
11174 }
11175 /* ./parser//parser_prod.nit:2039 */
11176 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
11177 } else {
11178 /* ./parser//parser_prod.nit:2041 */
11179 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
11180 }
11181 /* ./parser//parser_prod.nit:2043 */
11182 goto label1;
11183 }
11184 /* ./parser//parser_prod.nit:2045 */
11185 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
11186 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11187 if (UNTAG_Bool(REGB0)) {
11188 } else {
11189 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11190 if (UNTAG_Bool(REGB1)) {
11191 REGB1 = TAG_Bool(false);
11192 REGB0 = REGB1;
11193 } else {
11194 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11195 REGB0 = REGB1;
11196 }
11197 }
11198 if (UNTAG_Bool(REGB0)) {
11199 /* ./parser//parser_prod.nit:2046 */
11200 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11201 if (UNTAG_Bool(REGB0)) {
11202 } else {
11203 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11204 if (UNTAG_Bool(REGB1)) {
11205 REGB1 = TAG_Bool(false);
11206 REGB0 = REGB1;
11207 } else {
11208 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11209 REGB0 = REGB1;
11210 }
11211 }
11212 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11213 if (UNTAG_Bool(REGB0)) {
11214 /* ./parser//parser_prod.nit:2047 */
11215 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11216 if (UNTAG_Bool(REGB0)) {
11217 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2047);
11218 }
11219 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11220 /* ./parser//parser_prod.nit:2048 */
11221 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*/;
11222 if (UNTAG_Bool(REGB0)) {
11223 } else {
11224 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2048);
11225 }
11226 /* ./parser//parser_prod.nit:2049 */
11227 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
11228 } else {
11229 /* ./parser//parser_prod.nit:2051 */
11230 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
11231 }
11232 /* ./parser//parser_prod.nit:2053 */
11233 goto label1;
11234 }
11235 label1: while(0);
11236 stack_frame_head = fra.me.prev;
11237 return;
11238 }
11239 void parser___parser_prod___AMainMethPropdef___visit_all(val_t p0, val_t p1){
11240 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11241 val_t REGB0;
11242 val_t REGB1;
11243 val_t tmp;
11244 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11245 fra.me.file = LOCATE_parser___parser_prod;
11246 fra.me.line = 2057;
11247 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___visit_all;
11248 fra.me.has_broke = 0;
11249 fra.me.REG_size = 4;
11250 fra.me.nitni_local_ref_head = NULL;
11251 fra.me.REG[0] = NIT_NULL;
11252 fra.me.REG[1] = NIT_NULL;
11253 fra.me.REG[2] = NIT_NULL;
11254 fra.me.REG[3] = NIT_NULL;
11255 fra.me.REG[0] = p0;
11256 fra.me.REG[1] = p1;
11257 /* ./parser//parser_prod.nit:2057 */
11258 fra.me.REG[2] = fra.me.REG[0];
11259 /* ./parser//parser_prod.nit:2059 */
11260 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
11261 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11262 if (UNTAG_Bool(REGB0)) {
11263 } else {
11264 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11265 if (UNTAG_Bool(REGB1)) {
11266 REGB1 = TAG_Bool(false);
11267 REGB0 = REGB1;
11268 } else {
11269 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11270 REGB0 = REGB1;
11271 }
11272 }
11273 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11274 if (UNTAG_Bool(REGB0)) {
11275 /* ./parser//parser_prod.nit:2060 */
11276 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
11277 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*/;
11278 if (UNTAG_Bool(REGB0)) {
11279 } else {
11280 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2060);
11281 }
11282 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11283 }
11284 /* ./parser//parser_prod.nit:2062 */
11285 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
11286 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11287 if (UNTAG_Bool(REGB0)) {
11288 } else {
11289 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11290 if (UNTAG_Bool(REGB1)) {
11291 REGB1 = TAG_Bool(false);
11292 REGB0 = REGB1;
11293 } else {
11294 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11295 REGB0 = REGB1;
11296 }
11297 }
11298 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11299 if (UNTAG_Bool(REGB0)) {
11300 /* ./parser//parser_prod.nit:2063 */
11301 fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
11302 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*/;
11303 if (UNTAG_Bool(REGB0)) {
11304 } else {
11305 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2063);
11306 }
11307 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11308 }
11309 stack_frame_head = fra.me.prev;
11310 return;
11311 }
11312 void parser___parser_prod___ATypePropdef___empty_init(val_t p0, int* init_table){
11313 int itpos55 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATypePropdef].i;
11314 struct {struct stack_frame_t me;} fra;
11315 val_t tmp;
11316 if (init_table[itpos55]) return;
11317 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11318 fra.me.file = LOCATE_parser___parser_prod;
11319 fra.me.line = 2068;
11320 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___empty_init;
11321 fra.me.has_broke = 0;
11322 fra.me.REG_size = 1;
11323 fra.me.nitni_local_ref_head = NULL;
11324 fra.me.REG[0] = NIT_NULL;
11325 fra.me.REG[0] = p0;
11326 stack_frame_head = fra.me.prev;
11327 init_table[itpos55] = 1;
11328 return;
11329 }
11330 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){
11331 int itpos56 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATypePropdef].i;
11332 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
11333 val_t REGB0;
11334 val_t REGB1;
11335 val_t tmp;
11336 if (init_table[itpos56]) return;
11337 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11338 fra.me.file = LOCATE_parser___parser_prod;
11339 fra.me.line = 2070;
11340 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___init_atypepropdef;
11341 fra.me.has_broke = 0;
11342 fra.me.REG_size = 8;
11343 fra.me.nitni_local_ref_head = NULL;
11344 fra.me.REG[0] = NIT_NULL;
11345 fra.me.REG[1] = NIT_NULL;
11346 fra.me.REG[2] = NIT_NULL;
11347 fra.me.REG[3] = NIT_NULL;
11348 fra.me.REG[4] = NIT_NULL;
11349 fra.me.REG[5] = NIT_NULL;
11350 fra.me.REG[6] = NIT_NULL;
11351 fra.me.REG[7] = NIT_NULL;
11352 fra.me.REG[0] = p0;
11353 fra.me.REG[1] = p1;
11354 fra.me.REG[2] = p2;
11355 fra.me.REG[3] = p3;
11356 fra.me.REG[4] = p4;
11357 fra.me.REG[5] = p5;
11358 fra.me.REG[6] = p6;
11359 /* ./parser//parser_prod.nit:2070 */
11360 fra.me.REG[7] = fra.me.REG[0];
11361 /* ./parser//parser_prod.nit:2079 */
11362 CALL_parser___parser_prod___ATypePropdef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
11363 /* ./parser//parser_prod.nit:2080 */
11364 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[7]) = fra.me.REG[1];
11365 /* ./parser//parser_prod.nit:2081 */
11366 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11367 if (UNTAG_Bool(REGB0)) {
11368 } else {
11369 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11370 if (UNTAG_Bool(REGB1)) {
11371 REGB1 = TAG_Bool(false);
11372 REGB0 = REGB1;
11373 } else {
11374 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
11375 REGB0 = REGB1;
11376 }
11377 }
11378 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11379 if (UNTAG_Bool(REGB0)) {
11380 /* ./parser//parser_prod.nit:2082 */
11381 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11382 if (UNTAG_Bool(REGB0)) {
11383 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2082);
11384 }
11385 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
11386 }
11387 /* ./parser//parser_prod.nit:2084 */
11388 ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[7]) = fra.me.REG[2];
11389 /* ./parser//parser_prod.nit:2085 */
11390 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11391 if (UNTAG_Bool(REGB0)) {
11392 } else {
11393 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11394 if (UNTAG_Bool(REGB1)) {
11395 REGB1 = TAG_Bool(false);
11396 REGB0 = REGB1;
11397 } else {
11398 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11399 REGB0 = REGB1;
11400 }
11401 }
11402 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11403 if (UNTAG_Bool(REGB0)) {
11404 /* ./parser//parser_prod.nit:2086 */
11405 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11406 if (UNTAG_Bool(REGB0)) {
11407 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2086);
11408 }
11409 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
11410 }
11411 /* ./parser//parser_prod.nit:2088 */
11412 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
11413 if (UNTAG_Bool(REGB0)) {
11414 } else {
11415 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2088);
11416 }
11417 ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[7]) = fra.me.REG[3];
11418 /* ./parser//parser_prod.nit:2089 */
11419 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11420 if (UNTAG_Bool(REGB0)) {
11421 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2089);
11422 }
11423 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
11424 /* ./parser//parser_prod.nit:2090 */
11425 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
11426 if (UNTAG_Bool(REGB0)) {
11427 } else {
11428 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2090);
11429 }
11430 ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[7]) = fra.me.REG[4];
11431 /* ./parser//parser_prod.nit:2091 */
11432 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
11433 if (UNTAG_Bool(REGB0)) {
11434 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2091);
11435 }
11436 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
11437 /* ./parser//parser_prod.nit:2092 */
11438 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
11439 if (UNTAG_Bool(REGB0)) {
11440 } else {
11441 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2092);
11442 }
11443 ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[7]) = fra.me.REG[5];
11444 /* ./parser//parser_prod.nit:2093 */
11445 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
11446 if (UNTAG_Bool(REGB0)) {
11447 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2093);
11448 }
11449 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
11450 /* ./parser//parser_prod.nit:2094 */
11451 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
11452 if (UNTAG_Bool(REGB0)) {
11453 } else {
11454 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2094);
11455 }
11456 ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[7]) = fra.me.REG[6];
11457 /* ./parser//parser_prod.nit:2095 */
11458 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
11459 if (UNTAG_Bool(REGB0)) {
11460 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2095);
11461 }
11462 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11463 stack_frame_head = fra.me.prev;
11464 init_table[itpos56] = 1;
11465 return;
11466 }
11467 void parser___parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val_t p2){
11468 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11469 val_t REGB0;
11470 val_t REGB1;
11471 val_t tmp;
11472 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11473 fra.me.file = LOCATE_parser___parser_prod;
11474 fra.me.line = 2098;
11475 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___replace_child;
11476 fra.me.has_broke = 0;
11477 fra.me.REG_size = 4;
11478 fra.me.nitni_local_ref_head = NULL;
11479 fra.me.REG[0] = NIT_NULL;
11480 fra.me.REG[1] = NIT_NULL;
11481 fra.me.REG[2] = NIT_NULL;
11482 fra.me.REG[3] = NIT_NULL;
11483 fra.me.REG[0] = p0;
11484 fra.me.REG[1] = p1;
11485 fra.me.REG[2] = p2;
11486 /* ./parser//parser_prod.nit:2100 */
11487 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
11488 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11489 if (UNTAG_Bool(REGB0)) {
11490 } else {
11491 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11492 if (UNTAG_Bool(REGB1)) {
11493 REGB1 = TAG_Bool(false);
11494 REGB0 = REGB1;
11495 } else {
11496 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11497 REGB0 = REGB1;
11498 }
11499 }
11500 if (UNTAG_Bool(REGB0)) {
11501 /* ./parser//parser_prod.nit:2101 */
11502 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11503 if (UNTAG_Bool(REGB0)) {
11504 } else {
11505 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11506 if (UNTAG_Bool(REGB1)) {
11507 REGB1 = TAG_Bool(false);
11508 REGB0 = REGB1;
11509 } else {
11510 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11511 REGB0 = REGB1;
11512 }
11513 }
11514 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11515 if (UNTAG_Bool(REGB0)) {
11516 /* ./parser//parser_prod.nit:2102 */
11517 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11518 if (UNTAG_Bool(REGB0)) {
11519 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2102);
11520 }
11521 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11522 /* ./parser//parser_prod.nit:2103 */
11523 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*/;
11524 if (UNTAG_Bool(REGB0)) {
11525 } else {
11526 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2103);
11527 }
11528 /* ./parser//parser_prod.nit:2104 */
11529 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
11530 } else {
11531 /* ./parser//parser_prod.nit:2106 */
11532 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
11533 }
11534 /* ./parser//parser_prod.nit:2108 */
11535 goto label1;
11536 }
11537 /* ./parser//parser_prod.nit:2110 */
11538 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]);
11539 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11540 if (UNTAG_Bool(REGB0)) {
11541 } else {
11542 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11543 if (UNTAG_Bool(REGB1)) {
11544 REGB1 = TAG_Bool(false);
11545 REGB0 = REGB1;
11546 } else {
11547 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11548 REGB0 = REGB1;
11549 }
11550 }
11551 if (UNTAG_Bool(REGB0)) {
11552 /* ./parser//parser_prod.nit:2111 */
11553 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11554 if (UNTAG_Bool(REGB0)) {
11555 } else {
11556 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11557 if (UNTAG_Bool(REGB1)) {
11558 REGB1 = TAG_Bool(false);
11559 REGB0 = REGB1;
11560 } else {
11561 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11562 REGB0 = REGB1;
11563 }
11564 }
11565 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11566 if (UNTAG_Bool(REGB0)) {
11567 /* ./parser//parser_prod.nit:2112 */
11568 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11569 if (UNTAG_Bool(REGB0)) {
11570 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2112);
11571 }
11572 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11573 /* ./parser//parser_prod.nit:2113 */
11574 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*/;
11575 if (UNTAG_Bool(REGB0)) {
11576 } else {
11577 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2113);
11578 }
11579 /* ./parser//parser_prod.nit:2114 */
11580 ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
11581 } else {
11582 /* ./parser//parser_prod.nit:2116 */
11583 ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
11584 }
11585 /* ./parser//parser_prod.nit:2118 */
11586 goto label1;
11587 }
11588 /* ./parser//parser_prod.nit:2120 */
11589 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
11590 if (UNTAG_Bool(REGB0)) {
11591 } else {
11592 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 2120);
11593 }
11594 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]);
11595 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11596 if (UNTAG_Bool(REGB0)) {
11597 } else {
11598 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11599 REGB0 = REGB1;
11600 }
11601 if (UNTAG_Bool(REGB0)) {
11602 /* ./parser//parser_prod.nit:2121 */
11603 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11604 if (UNTAG_Bool(REGB0)) {
11605 } else {
11606 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11607 if (UNTAG_Bool(REGB1)) {
11608 REGB1 = TAG_Bool(false);
11609 REGB0 = REGB1;
11610 } else {
11611 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11612 REGB0 = REGB1;
11613 }
11614 }
11615 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11616 if (UNTAG_Bool(REGB0)) {
11617 /* ./parser//parser_prod.nit:2122 */
11618 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11619 if (UNTAG_Bool(REGB0)) {
11620 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2122);
11621 }
11622 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11623 /* ./parser//parser_prod.nit:2123 */
11624 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*/;
11625 if (UNTAG_Bool(REGB0)) {
11626 } else {
11627 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2123);
11628 }
11629 /* ./parser//parser_prod.nit:2124 */
11630 ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
11631 } else {
11632 /* ./parser//parser_prod.nit:2126 */
11633 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2126);
11634 }
11635 /* ./parser//parser_prod.nit:2128 */
11636 goto label1;
11637 }
11638 /* ./parser//parser_prod.nit:2130 */
11639 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0])!=NIT_NULL);
11640 if (UNTAG_Bool(REGB0)) {
11641 } else {
11642 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 2130);
11643 }
11644 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]);
11645 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11646 if (UNTAG_Bool(REGB0)) {
11647 } else {
11648 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11649 REGB0 = REGB1;
11650 }
11651 if (UNTAG_Bool(REGB0)) {
11652 /* ./parser//parser_prod.nit:2131 */
11653 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11654 if (UNTAG_Bool(REGB0)) {
11655 } else {
11656 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11657 if (UNTAG_Bool(REGB1)) {
11658 REGB1 = TAG_Bool(false);
11659 REGB0 = REGB1;
11660 } else {
11661 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11662 REGB0 = REGB1;
11663 }
11664 }
11665 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11666 if (UNTAG_Bool(REGB0)) {
11667 /* ./parser//parser_prod.nit:2132 */
11668 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11669 if (UNTAG_Bool(REGB0)) {
11670 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2132);
11671 }
11672 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11673 /* ./parser//parser_prod.nit:2133 */
11674 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*/;
11675 if (UNTAG_Bool(REGB0)) {
11676 } else {
11677 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2133);
11678 }
11679 /* ./parser//parser_prod.nit:2134 */
11680 ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]) = fra.me.REG[2];
11681 } else {
11682 /* ./parser//parser_prod.nit:2136 */
11683 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2136);
11684 }
11685 /* ./parser//parser_prod.nit:2138 */
11686 goto label1;
11687 }
11688 /* ./parser//parser_prod.nit:2140 */
11689 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0])!=NIT_NULL);
11690 if (UNTAG_Bool(REGB0)) {
11691 } else {
11692 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2140);
11693 }
11694 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0]);
11695 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11696 if (UNTAG_Bool(REGB0)) {
11697 } else {
11698 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11699 REGB0 = REGB1;
11700 }
11701 if (UNTAG_Bool(REGB0)) {
11702 /* ./parser//parser_prod.nit:2141 */
11703 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11704 if (UNTAG_Bool(REGB0)) {
11705 } else {
11706 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11707 if (UNTAG_Bool(REGB1)) {
11708 REGB1 = TAG_Bool(false);
11709 REGB0 = REGB1;
11710 } else {
11711 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11712 REGB0 = REGB1;
11713 }
11714 }
11715 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11716 if (UNTAG_Bool(REGB0)) {
11717 /* ./parser//parser_prod.nit:2142 */
11718 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11719 if (UNTAG_Bool(REGB0)) {
11720 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2142);
11721 }
11722 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11723 /* ./parser//parser_prod.nit:2143 */
11724 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*/;
11725 if (UNTAG_Bool(REGB0)) {
11726 } else {
11727 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2143);
11728 }
11729 /* ./parser//parser_prod.nit:2144 */
11730 ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
11731 } else {
11732 /* ./parser//parser_prod.nit:2146 */
11733 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2146);
11734 }
11735 /* ./parser//parser_prod.nit:2148 */
11736 goto label1;
11737 }
11738 /* ./parser//parser_prod.nit:2150 */
11739 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0])!=NIT_NULL);
11740 if (UNTAG_Bool(REGB0)) {
11741 } else {
11742 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 2150);
11743 }
11744 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0]);
11745 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11746 if (UNTAG_Bool(REGB0)) {
11747 } else {
11748 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11749 REGB0 = REGB1;
11750 }
11751 if (UNTAG_Bool(REGB0)) {
11752 /* ./parser//parser_prod.nit:2151 */
11753 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11754 if (UNTAG_Bool(REGB0)) {
11755 } else {
11756 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11757 if (UNTAG_Bool(REGB1)) {
11758 REGB1 = TAG_Bool(false);
11759 REGB0 = REGB1;
11760 } else {
11761 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11762 REGB0 = REGB1;
11763 }
11764 }
11765 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11766 if (UNTAG_Bool(REGB0)) {
11767 /* ./parser//parser_prod.nit:2152 */
11768 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11769 if (UNTAG_Bool(REGB0)) {
11770 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2152);
11771 }
11772 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11773 /* ./parser//parser_prod.nit:2153 */
11774 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*/;
11775 if (UNTAG_Bool(REGB0)) {
11776 } else {
11777 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2153);
11778 }
11779 /* ./parser//parser_prod.nit:2154 */
11780 ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0]) = fra.me.REG[2];
11781 } else {
11782 /* ./parser//parser_prod.nit:2156 */
11783 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2156);
11784 }
11785 /* ./parser//parser_prod.nit:2158 */
11786 goto label1;
11787 }
11788 label1: while(0);
11789 stack_frame_head = fra.me.prev;
11790 return;
11791 }
11792 void parser___parser_prod___ATypePropdef___visit_all(val_t p0, val_t p1){
11793 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11794 val_t REGB0;
11795 val_t REGB1;
11796 val_t tmp;
11797 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11798 fra.me.file = LOCATE_parser___parser_prod;
11799 fra.me.line = 2162;
11800 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___visit_all;
11801 fra.me.has_broke = 0;
11802 fra.me.REG_size = 4;
11803 fra.me.nitni_local_ref_head = NULL;
11804 fra.me.REG[0] = NIT_NULL;
11805 fra.me.REG[1] = NIT_NULL;
11806 fra.me.REG[2] = NIT_NULL;
11807 fra.me.REG[3] = NIT_NULL;
11808 fra.me.REG[0] = p0;
11809 fra.me.REG[1] = p1;
11810 /* ./parser//parser_prod.nit:2162 */
11811 fra.me.REG[2] = fra.me.REG[0];
11812 /* ./parser//parser_prod.nit:2164 */
11813 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
11814 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11815 if (UNTAG_Bool(REGB0)) {
11816 } else {
11817 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11818 if (UNTAG_Bool(REGB1)) {
11819 REGB1 = TAG_Bool(false);
11820 REGB0 = REGB1;
11821 } else {
11822 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11823 REGB0 = REGB1;
11824 }
11825 }
11826 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11827 if (UNTAG_Bool(REGB0)) {
11828 /* ./parser//parser_prod.nit:2165 */
11829 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
11830 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*/;
11831 if (UNTAG_Bool(REGB0)) {
11832 } else {
11833 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2165);
11834 }
11835 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11836 }
11837 /* ./parser//parser_prod.nit:2167 */
11838 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[2]);
11839 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11840 if (UNTAG_Bool(REGB0)) {
11841 } else {
11842 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11843 if (UNTAG_Bool(REGB1)) {
11844 REGB1 = TAG_Bool(false);
11845 REGB0 = REGB1;
11846 } else {
11847 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11848 REGB0 = REGB1;
11849 }
11850 }
11851 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11852 if (UNTAG_Bool(REGB0)) {
11853 /* ./parser//parser_prod.nit:2168 */
11854 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[2]);
11855 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*/;
11856 if (UNTAG_Bool(REGB0)) {
11857 } else {
11858 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2168);
11859 }
11860 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11861 }
11862 /* ./parser//parser_prod.nit:2170 */
11863 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[2])!=NIT_NULL);
11864 if (UNTAG_Bool(REGB0)) {
11865 } else {
11866 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 2170);
11867 }
11868 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[2]);
11869 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11870 /* ./parser//parser_prod.nit:2171 */
11871 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[2])!=NIT_NULL);
11872 if (UNTAG_Bool(REGB0)) {
11873 } else {
11874 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 2171);
11875 }
11876 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[2]);
11877 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11878 /* ./parser//parser_prod.nit:2172 */
11879 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[2])!=NIT_NULL);
11880 if (UNTAG_Bool(REGB0)) {
11881 } else {
11882 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2172);
11883 }
11884 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[2]);
11885 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11886 /* ./parser//parser_prod.nit:2173 */
11887 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[2])!=NIT_NULL);
11888 if (UNTAG_Bool(REGB0)) {
11889 } else {
11890 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 2173);
11891 }
11892 fra.me.REG[2] = ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[2]);
11893 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11894 stack_frame_head = fra.me.prev;
11895 return;
11896 }
11897 void parser___parser_prod___AReadAble___empty_init(val_t p0, int* init_table){
11898 int itpos57 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReadAble].i;
11899 struct {struct stack_frame_t me;} fra;
11900 val_t tmp;
11901 if (init_table[itpos57]) return;
11902 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11903 fra.me.file = LOCATE_parser___parser_prod;
11904 fra.me.line = 2177;
11905 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___empty_init;
11906 fra.me.has_broke = 0;
11907 fra.me.REG_size = 1;
11908 fra.me.nitni_local_ref_head = NULL;
11909 fra.me.REG[0] = NIT_NULL;
11910 fra.me.REG[0] = p0;
11911 stack_frame_head = fra.me.prev;
11912 init_table[itpos57] = 1;
11913 return;
11914 }
11915 void parser___parser_prod___AReadAble___init_areadable(val_t p0, val_t p1, val_t p2, int* init_table){
11916 int itpos58 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReadAble].i;
11917 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11918 val_t REGB0;
11919 val_t REGB1;
11920 val_t tmp;
11921 if (init_table[itpos58]) return;
11922 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11923 fra.me.file = LOCATE_parser___parser_prod;
11924 fra.me.line = 2179;
11925 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___init_areadable;
11926 fra.me.has_broke = 0;
11927 fra.me.REG_size = 4;
11928 fra.me.nitni_local_ref_head = NULL;
11929 fra.me.REG[0] = NIT_NULL;
11930 fra.me.REG[1] = NIT_NULL;
11931 fra.me.REG[2] = NIT_NULL;
11932 fra.me.REG[3] = NIT_NULL;
11933 fra.me.REG[0] = p0;
11934 fra.me.REG[1] = p1;
11935 fra.me.REG[2] = p2;
11936 /* ./parser//parser_prod.nit:2179 */
11937 fra.me.REG[3] = fra.me.REG[0];
11938 /* ./parser//parser_prod.nit:2184 */
11939 CALL_parser___parser_prod___AReadAble___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
11940 /* ./parser//parser_prod.nit:2185 */
11941 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[3]) = fra.me.REG[1];
11942 /* ./parser//parser_prod.nit:2186 */
11943 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11944 if (UNTAG_Bool(REGB0)) {
11945 } else {
11946 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11947 if (UNTAG_Bool(REGB1)) {
11948 REGB1 = TAG_Bool(false);
11949 REGB0 = REGB1;
11950 } else {
11951 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
11952 REGB0 = REGB1;
11953 }
11954 }
11955 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11956 if (UNTAG_Bool(REGB0)) {
11957 /* ./parser//parser_prod.nit:2187 */
11958 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11959 if (UNTAG_Bool(REGB0)) {
11960 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2187);
11961 }
11962 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11963 }
11964 /* ./parser//parser_prod.nit:2189 */
11965 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
11966 if (UNTAG_Bool(REGB0)) {
11967 } else {
11968 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2189);
11969 }
11970 ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[3]) = fra.me.REG[2];
11971 /* ./parser//parser_prod.nit:2190 */
11972 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11973 if (UNTAG_Bool(REGB0)) {
11974 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2190);
11975 }
11976 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
11977 stack_frame_head = fra.me.prev;
11978 init_table[itpos58] = 1;
11979 return;
11980 }
11981 void parser___parser_prod___AReadAble___replace_child(val_t p0, val_t p1, val_t p2){
11982 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11983 val_t REGB0;
11984 val_t REGB1;
11985 val_t tmp;
11986 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11987 fra.me.file = LOCATE_parser___parser_prod;
11988 fra.me.line = 2193;
11989 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___replace_child;
11990 fra.me.has_broke = 0;
11991 fra.me.REG_size = 4;
11992 fra.me.nitni_local_ref_head = NULL;
11993 fra.me.REG[0] = NIT_NULL;
11994 fra.me.REG[1] = NIT_NULL;
11995 fra.me.REG[2] = NIT_NULL;
11996 fra.me.REG[3] = NIT_NULL;
11997 fra.me.REG[0] = p0;
11998 fra.me.REG[1] = p1;
11999 fra.me.REG[2] = p2;
12000 /* ./parser//parser_prod.nit:2195 */
12001 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
12002 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
12003 if (UNTAG_Bool(REGB0)) {
12004 } else {
12005 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12006 if (UNTAG_Bool(REGB1)) {
12007 REGB1 = TAG_Bool(false);
12008 REGB0 = REGB1;
12009 } else {
12010 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12011 REGB0 = REGB1;
12012 }
12013 }
12014 if (UNTAG_Bool(REGB0)) {
12015 /* ./parser//parser_prod.nit:2196 */
12016 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12017 if (UNTAG_Bool(REGB0)) {
12018 } else {
12019 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12020 if (UNTAG_Bool(REGB1)) {
12021 REGB1 = TAG_Bool(false);
12022 REGB0 = REGB1;
12023 } else {
12024 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12025 REGB0 = REGB1;
12026 }
12027 }
12028 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12029 if (UNTAG_Bool(REGB0)) {
12030 /* ./parser//parser_prod.nit:2197 */
12031 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12032 if (UNTAG_Bool(REGB0)) {
12033 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2197);
12034 }
12035 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12036 /* ./parser//parser_prod.nit:2198 */
12037 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*/;
12038 if (UNTAG_Bool(REGB0)) {
12039 } else {
12040 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2198);
12041 }
12042 /* ./parser//parser_prod.nit:2199 */
12043 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
12044 } else {
12045 /* ./parser//parser_prod.nit:2201 */
12046 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = NIT_NULL;
12047 }
12048 /* ./parser//parser_prod.nit:2203 */
12049 goto label1;
12050 }
12051 /* ./parser//parser_prod.nit:2205 */
12052 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0])!=NIT_NULL);
12053 if (UNTAG_Bool(REGB0)) {
12054 } else {
12055 nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser___parser_prod, 2205);
12056 }
12057 fra.me.REG[3] = ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]);
12058 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12059 if (UNTAG_Bool(REGB0)) {
12060 } else {
12061 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12062 REGB0 = REGB1;
12063 }
12064 if (UNTAG_Bool(REGB0)) {
12065 /* ./parser//parser_prod.nit:2206 */
12066 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12067 if (UNTAG_Bool(REGB0)) {
12068 } else {
12069 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12070 if (UNTAG_Bool(REGB1)) {
12071 REGB1 = TAG_Bool(false);
12072 REGB0 = REGB1;
12073 } else {
12074 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12075 REGB0 = REGB1;
12076 }
12077 }
12078 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12079 if (UNTAG_Bool(REGB0)) {
12080 /* ./parser//parser_prod.nit:2207 */
12081 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12082 if (UNTAG_Bool(REGB0)) {
12083 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2207);
12084 }
12085 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12086 /* ./parser//parser_prod.nit:2208 */
12087 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*/;
12088 if (UNTAG_Bool(REGB0)) {
12089 } else {
12090 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2208);
12091 }
12092 /* ./parser//parser_prod.nit:2209 */
12093 ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]) = fra.me.REG[2];
12094 } else {
12095 /* ./parser//parser_prod.nit:2211 */
12096 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2211);
12097 }
12098 /* ./parser//parser_prod.nit:2213 */
12099 goto label1;
12100 }
12101 label1: while(0);
12102 stack_frame_head = fra.me.prev;
12103 return;
12104 }
12105 void parser___parser_prod___AReadAble___visit_all(val_t p0, val_t p1){
12106 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12107 val_t REGB0;
12108 val_t REGB1;
12109 val_t tmp;
12110 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12111 fra.me.file = LOCATE_parser___parser_prod;
12112 fra.me.line = 2217;
12113 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___visit_all;
12114 fra.me.has_broke = 0;
12115 fra.me.REG_size = 4;
12116 fra.me.nitni_local_ref_head = NULL;
12117 fra.me.REG[0] = NIT_NULL;
12118 fra.me.REG[1] = NIT_NULL;
12119 fra.me.REG[2] = NIT_NULL;
12120 fra.me.REG[3] = NIT_NULL;
12121 fra.me.REG[0] = p0;
12122 fra.me.REG[1] = p1;
12123 /* ./parser//parser_prod.nit:2217 */
12124 fra.me.REG[2] = fra.me.REG[0];
12125 /* ./parser//parser_prod.nit:2219 */
12126 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
12127 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12128 if (UNTAG_Bool(REGB0)) {
12129 } else {
12130 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12131 if (UNTAG_Bool(REGB1)) {
12132 REGB1 = TAG_Bool(false);
12133 REGB0 = REGB1;
12134 } else {
12135 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
12136 REGB0 = REGB1;
12137 }
12138 }
12139 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12140 if (UNTAG_Bool(REGB0)) {
12141 /* ./parser//parser_prod.nit:2220 */
12142 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
12143 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*/;
12144 if (UNTAG_Bool(REGB0)) {
12145 } else {
12146 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2220);
12147 }
12148 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12149 }
12150 /* ./parser//parser_prod.nit:2222 */
12151 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[2])!=NIT_NULL);
12152 if (UNTAG_Bool(REGB0)) {
12153 } else {
12154 nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser___parser_prod, 2222);
12155 }
12156 fra.me.REG[2] = ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[2]);
12157 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12158 stack_frame_head = fra.me.prev;
12159 return;
12160 }
12161 void parser___parser_prod___AWriteAble___empty_init(val_t p0, int* init_table){
12162 int itpos59 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWriteAble].i;
12163 struct {struct stack_frame_t me;} fra;
12164 val_t tmp;
12165 if (init_table[itpos59]) return;
12166 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12167 fra.me.file = LOCATE_parser___parser_prod;
12168 fra.me.line = 2226;
12169 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___empty_init;
12170 fra.me.has_broke = 0;
12171 fra.me.REG_size = 1;
12172 fra.me.nitni_local_ref_head = NULL;
12173 fra.me.REG[0] = NIT_NULL;
12174 fra.me.REG[0] = p0;
12175 stack_frame_head = fra.me.prev;
12176 init_table[itpos59] = 1;
12177 return;
12178 }
12179 void parser___parser_prod___AWriteAble___init_awriteable(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
12180 int itpos60 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWriteAble].i;
12181 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
12182 val_t REGB0;
12183 val_t REGB1;
12184 val_t tmp;
12185 if (init_table[itpos60]) return;
12186 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12187 fra.me.file = LOCATE_parser___parser_prod;
12188 fra.me.line = 2228;
12189 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___init_awriteable;
12190 fra.me.has_broke = 0;
12191 fra.me.REG_size = 5;
12192 fra.me.nitni_local_ref_head = NULL;
12193 fra.me.REG[0] = NIT_NULL;
12194 fra.me.REG[1] = NIT_NULL;
12195 fra.me.REG[2] = NIT_NULL;
12196 fra.me.REG[3] = NIT_NULL;
12197 fra.me.REG[4] = NIT_NULL;
12198 fra.me.REG[0] = p0;
12199 fra.me.REG[1] = p1;
12200 fra.me.REG[2] = p2;
12201 fra.me.REG[3] = p3;
12202 /* ./parser//parser_prod.nit:2228 */
12203 fra.me.REG[4] = fra.me.REG[0];
12204 /* ./parser//parser_prod.nit:2234 */
12205 CALL_parser___parser_prod___AWriteAble___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
12206 /* ./parser//parser_prod.nit:2235 */
12207 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[4]) = fra.me.REG[1];
12208 /* ./parser//parser_prod.nit:2236 */
12209 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12210 if (UNTAG_Bool(REGB0)) {
12211 } else {
12212 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12213 if (UNTAG_Bool(REGB1)) {
12214 REGB1 = TAG_Bool(false);
12215 REGB0 = REGB1;
12216 } else {
12217 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
12218 REGB0 = REGB1;
12219 }
12220 }
12221 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12222 if (UNTAG_Bool(REGB0)) {
12223 /* ./parser//parser_prod.nit:2237 */
12224 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12225 if (UNTAG_Bool(REGB0)) {
12226 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2237);
12227 }
12228 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
12229 }
12230 /* ./parser//parser_prod.nit:2239 */
12231 ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[4]) = fra.me.REG[2];
12232 /* ./parser//parser_prod.nit:2240 */
12233 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12234 if (UNTAG_Bool(REGB0)) {
12235 } else {
12236 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12237 if (UNTAG_Bool(REGB1)) {
12238 REGB1 = TAG_Bool(false);
12239 REGB0 = REGB1;
12240 } else {
12241 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12242 REGB0 = REGB1;
12243 }
12244 }
12245 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12246 if (UNTAG_Bool(REGB0)) {
12247 /* ./parser//parser_prod.nit:2241 */
12248 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12249 if (UNTAG_Bool(REGB0)) {
12250 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2241);
12251 }
12252 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
12253 }
12254 /* ./parser//parser_prod.nit:2243 */
12255 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
12256 if (UNTAG_Bool(REGB0)) {
12257 } else {
12258 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2243);
12259 }
12260 ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[4]) = fra.me.REG[3];
12261 /* ./parser//parser_prod.nit:2244 */
12262 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12263 if (UNTAG_Bool(REGB0)) {
12264 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2244);
12265 }
12266 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
12267 stack_frame_head = fra.me.prev;
12268 init_table[itpos60] = 1;
12269 return;
12270 }
12271 void parser___parser_prod___AWriteAble___replace_child(val_t p0, val_t p1, val_t p2){
12272 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12273 val_t REGB0;
12274 val_t REGB1;
12275 val_t tmp;
12276 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12277 fra.me.file = LOCATE_parser___parser_prod;
12278 fra.me.line = 2247;
12279 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___replace_child;
12280 fra.me.has_broke = 0;
12281 fra.me.REG_size = 4;
12282 fra.me.nitni_local_ref_head = NULL;
12283 fra.me.REG[0] = NIT_NULL;
12284 fra.me.REG[1] = NIT_NULL;
12285 fra.me.REG[2] = NIT_NULL;
12286 fra.me.REG[3] = NIT_NULL;
12287 fra.me.REG[0] = p0;
12288 fra.me.REG[1] = p1;
12289 fra.me.REG[2] = p2;
12290 /* ./parser//parser_prod.nit:2249 */
12291 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
12292 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
12293 if (UNTAG_Bool(REGB0)) {
12294 } else {
12295 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12296 if (UNTAG_Bool(REGB1)) {
12297 REGB1 = TAG_Bool(false);
12298 REGB0 = REGB1;
12299 } else {
12300 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12301 REGB0 = REGB1;
12302 }
12303 }
12304 if (UNTAG_Bool(REGB0)) {
12305 /* ./parser//parser_prod.nit:2250 */
12306 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12307 if (UNTAG_Bool(REGB0)) {
12308 } else {
12309 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12310 if (UNTAG_Bool(REGB1)) {
12311 REGB1 = TAG_Bool(false);
12312 REGB0 = REGB1;
12313 } else {
12314 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12315 REGB0 = REGB1;
12316 }
12317 }
12318 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12319 if (UNTAG_Bool(REGB0)) {
12320 /* ./parser//parser_prod.nit:2251 */
12321 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12322 if (UNTAG_Bool(REGB0)) {
12323 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2251);
12324 }
12325 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12326 /* ./parser//parser_prod.nit:2252 */
12327 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*/;
12328 if (UNTAG_Bool(REGB0)) {
12329 } else {
12330 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2252);
12331 }
12332 /* ./parser//parser_prod.nit:2253 */
12333 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
12334 } else {
12335 /* ./parser//parser_prod.nit:2255 */
12336 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = NIT_NULL;
12337 }
12338 /* ./parser//parser_prod.nit:2257 */
12339 goto label1;
12340 }
12341 /* ./parser//parser_prod.nit:2259 */
12342 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]);
12343 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
12344 if (UNTAG_Bool(REGB0)) {
12345 } else {
12346 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12347 if (UNTAG_Bool(REGB1)) {
12348 REGB1 = TAG_Bool(false);
12349 REGB0 = REGB1;
12350 } else {
12351 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12352 REGB0 = REGB1;
12353 }
12354 }
12355 if (UNTAG_Bool(REGB0)) {
12356 /* ./parser//parser_prod.nit:2260 */
12357 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12358 if (UNTAG_Bool(REGB0)) {
12359 } else {
12360 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12361 if (UNTAG_Bool(REGB1)) {
12362 REGB1 = TAG_Bool(false);
12363 REGB0 = REGB1;
12364 } else {
12365 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12366 REGB0 = REGB1;
12367 }
12368 }
12369 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12370 if (UNTAG_Bool(REGB0)) {
12371 /* ./parser//parser_prod.nit:2261 */
12372 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12373 if (UNTAG_Bool(REGB0)) {
12374 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2261);
12375 }
12376 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12377 /* ./parser//parser_prod.nit:2262 */
12378 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*/;
12379 if (UNTAG_Bool(REGB0)) {
12380 } else {
12381 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2262);
12382 }
12383 /* ./parser//parser_prod.nit:2263 */
12384 ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
12385 } else {
12386 /* ./parser//parser_prod.nit:2265 */
12387 ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]) = NIT_NULL;
12388 }
12389 /* ./parser//parser_prod.nit:2267 */
12390 goto label1;
12391 }
12392 /* ./parser//parser_prod.nit:2269 */
12393 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0])!=NIT_NULL);
12394 if (UNTAG_Bool(REGB0)) {
12395 } else {
12396 nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser___parser_prod, 2269);
12397 }
12398 fra.me.REG[3] = ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]);
12399 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12400 if (UNTAG_Bool(REGB0)) {
12401 } else {
12402 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12403 REGB0 = REGB1;
12404 }
12405 if (UNTAG_Bool(REGB0)) {
12406 /* ./parser//parser_prod.nit:2270 */
12407 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12408 if (UNTAG_Bool(REGB0)) {
12409 } else {
12410 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12411 if (UNTAG_Bool(REGB1)) {
12412 REGB1 = TAG_Bool(false);
12413 REGB0 = REGB1;
12414 } else {
12415 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12416 REGB0 = REGB1;
12417 }
12418 }
12419 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12420 if (UNTAG_Bool(REGB0)) {
12421 /* ./parser//parser_prod.nit:2271 */
12422 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12423 if (UNTAG_Bool(REGB0)) {
12424 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2271);
12425 }
12426 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12427 /* ./parser//parser_prod.nit:2272 */
12428 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*/;
12429 if (UNTAG_Bool(REGB0)) {
12430 } else {
12431 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2272);
12432 }
12433 /* ./parser//parser_prod.nit:2273 */
12434 ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]) = fra.me.REG[2];
12435 } else {
12436 /* ./parser//parser_prod.nit:2275 */
12437 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2275);
12438 }
12439 /* ./parser//parser_prod.nit:2277 */
12440 goto label1;
12441 }
12442 label1: while(0);
12443 stack_frame_head = fra.me.prev;
12444 return;
12445 }
12446 void parser___parser_prod___AWriteAble___visit_all(val_t p0, val_t p1){
12447 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12448 val_t REGB0;
12449 val_t REGB1;
12450 val_t tmp;
12451 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12452 fra.me.file = LOCATE_parser___parser_prod;
12453 fra.me.line = 2281;
12454 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___visit_all;
12455 fra.me.has_broke = 0;
12456 fra.me.REG_size = 4;
12457 fra.me.nitni_local_ref_head = NULL;
12458 fra.me.REG[0] = NIT_NULL;
12459 fra.me.REG[1] = NIT_NULL;
12460 fra.me.REG[2] = NIT_NULL;
12461 fra.me.REG[3] = NIT_NULL;
12462 fra.me.REG[0] = p0;
12463 fra.me.REG[1] = p1;
12464 /* ./parser//parser_prod.nit:2281 */
12465 fra.me.REG[2] = fra.me.REG[0];
12466 /* ./parser//parser_prod.nit:2283 */
12467 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
12468 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12469 if (UNTAG_Bool(REGB0)) {
12470 } else {
12471 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12472 if (UNTAG_Bool(REGB1)) {
12473 REGB1 = TAG_Bool(false);
12474 REGB0 = REGB1;
12475 } else {
12476 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
12477 REGB0 = REGB1;
12478 }
12479 }
12480 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12481 if (UNTAG_Bool(REGB0)) {
12482 /* ./parser//parser_prod.nit:2284 */
12483 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
12484 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*/;
12485 if (UNTAG_Bool(REGB0)) {
12486 } else {
12487 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2284);
12488 }
12489 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12490 }
12491 /* ./parser//parser_prod.nit:2286 */
12492 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[2]);
12493 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12494 if (UNTAG_Bool(REGB0)) {
12495 } else {
12496 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12497 if (UNTAG_Bool(REGB1)) {
12498 REGB1 = TAG_Bool(false);
12499 REGB0 = REGB1;
12500 } else {
12501 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
12502 REGB0 = REGB1;
12503 }
12504 }
12505 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12506 if (UNTAG_Bool(REGB0)) {
12507 /* ./parser//parser_prod.nit:2287 */
12508 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[2]);
12509 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*/;
12510 if (UNTAG_Bool(REGB0)) {
12511 } else {
12512 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2287);
12513 }
12514 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12515 }
12516 /* ./parser//parser_prod.nit:2289 */
12517 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[2])!=NIT_NULL);
12518 if (UNTAG_Bool(REGB0)) {
12519 } else {
12520 nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser___parser_prod, 2289);
12521 }
12522 fra.me.REG[2] = ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[2]);
12523 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12524 stack_frame_head = fra.me.prev;
12525 return;
12526 }
12527 void parser___parser_prod___AIdMethid___empty_init(val_t p0, int* init_table){
12528 int itpos61 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIdMethid].i;
12529 struct {struct stack_frame_t me;} fra;
12530 val_t tmp;
12531 if (init_table[itpos61]) return;
12532 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12533 fra.me.file = LOCATE_parser___parser_prod;
12534 fra.me.line = 2293;
12535 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___empty_init;
12536 fra.me.has_broke = 0;
12537 fra.me.REG_size = 1;
12538 fra.me.nitni_local_ref_head = NULL;
12539 fra.me.REG[0] = NIT_NULL;
12540 fra.me.REG[0] = p0;
12541 stack_frame_head = fra.me.prev;
12542 init_table[itpos61] = 1;
12543 return;
12544 }
12545 void parser___parser_prod___AIdMethid___init_aidmethid(val_t p0, val_t p1, int* init_table){
12546 int itpos62 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIdMethid].i;
12547 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
12548 val_t REGB0;
12549 val_t tmp;
12550 if (init_table[itpos62]) return;
12551 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12552 fra.me.file = LOCATE_parser___parser_prod;
12553 fra.me.line = 2295;
12554 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___init_aidmethid;
12555 fra.me.has_broke = 0;
12556 fra.me.REG_size = 3;
12557 fra.me.nitni_local_ref_head = NULL;
12558 fra.me.REG[0] = NIT_NULL;
12559 fra.me.REG[1] = NIT_NULL;
12560 fra.me.REG[2] = NIT_NULL;
12561 fra.me.REG[0] = p0;
12562 fra.me.REG[1] = p1;
12563 /* ./parser//parser_prod.nit:2295 */
12564 fra.me.REG[2] = fra.me.REG[0];
12565 /* ./parser//parser_prod.nit:2299 */
12566 CALL_parser___parser_prod___AIdMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
12567 /* ./parser//parser_prod.nit:2300 */
12568 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12569 if (UNTAG_Bool(REGB0)) {
12570 } else {
12571 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2300);
12572 }
12573 ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[2]) = fra.me.REG[1];
12574 /* ./parser//parser_prod.nit:2301 */
12575 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12576 if (UNTAG_Bool(REGB0)) {
12577 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2301);
12578 }
12579 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12580 stack_frame_head = fra.me.prev;
12581 init_table[itpos62] = 1;
12582 return;
12583 }
12584 void parser___parser_prod___AIdMethid___replace_child(val_t p0, val_t p1, val_t p2){
12585 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12586 val_t REGB0;
12587 val_t REGB1;
12588 val_t tmp;
12589 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12590 fra.me.file = LOCATE_parser___parser_prod;
12591 fra.me.line = 2304;
12592 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___replace_child;
12593 fra.me.has_broke = 0;
12594 fra.me.REG_size = 4;
12595 fra.me.nitni_local_ref_head = NULL;
12596 fra.me.REG[0] = NIT_NULL;
12597 fra.me.REG[1] = NIT_NULL;
12598 fra.me.REG[2] = NIT_NULL;
12599 fra.me.REG[3] = NIT_NULL;
12600 fra.me.REG[0] = p0;
12601 fra.me.REG[1] = p1;
12602 fra.me.REG[2] = p2;
12603 /* ./parser//parser_prod.nit:2306 */
12604 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0])!=NIT_NULL);
12605 if (UNTAG_Bool(REGB0)) {
12606 } else {
12607 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2306);
12608 }
12609 fra.me.REG[3] = ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]);
12610 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12611 if (UNTAG_Bool(REGB0)) {
12612 } else {
12613 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12614 REGB0 = REGB1;
12615 }
12616 if (UNTAG_Bool(REGB0)) {
12617 /* ./parser//parser_prod.nit:2307 */
12618 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12619 if (UNTAG_Bool(REGB0)) {
12620 } else {
12621 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12622 if (UNTAG_Bool(REGB1)) {
12623 REGB1 = TAG_Bool(false);
12624 REGB0 = REGB1;
12625 } else {
12626 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12627 REGB0 = REGB1;
12628 }
12629 }
12630 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12631 if (UNTAG_Bool(REGB0)) {
12632 /* ./parser//parser_prod.nit:2308 */
12633 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12634 if (UNTAG_Bool(REGB0)) {
12635 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2308);
12636 }
12637 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12638 /* ./parser//parser_prod.nit:2309 */
12639 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*/;
12640 if (UNTAG_Bool(REGB0)) {
12641 } else {
12642 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2309);
12643 }
12644 /* ./parser//parser_prod.nit:2310 */
12645 ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]) = fra.me.REG[2];
12646 } else {
12647 /* ./parser//parser_prod.nit:2312 */
12648 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2312);
12649 }
12650 /* ./parser//parser_prod.nit:2314 */
12651 goto label1;
12652 }
12653 label1: while(0);
12654 stack_frame_head = fra.me.prev;
12655 return;
12656 }
12657 void parser___parser_prod___AIdMethid___visit_all(val_t p0, val_t p1){
12658 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12659 val_t REGB0;
12660 val_t tmp;
12661 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12662 fra.me.file = LOCATE_parser___parser_prod;
12663 fra.me.line = 2318;
12664 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___visit_all;
12665 fra.me.has_broke = 0;
12666 fra.me.REG_size = 2;
12667 fra.me.nitni_local_ref_head = NULL;
12668 fra.me.REG[0] = NIT_NULL;
12669 fra.me.REG[1] = NIT_NULL;
12670 fra.me.REG[0] = p0;
12671 fra.me.REG[1] = p1;
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[0] = ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]);
12679 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12680 stack_frame_head = fra.me.prev;
12681 return;
12682 }
12683 void parser___parser_prod___APlusMethid___empty_init(val_t p0, int* init_table){
12684 int itpos63 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusMethid].i;
12685 struct {struct stack_frame_t me;} fra;
12686 val_t tmp;
12687 if (init_table[itpos63]) return;
12688 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12689 fra.me.file = LOCATE_parser___parser_prod;
12690 fra.me.line = 2324;
12691 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___empty_init;
12692 fra.me.has_broke = 0;
12693 fra.me.REG_size = 1;
12694 fra.me.nitni_local_ref_head = NULL;
12695 fra.me.REG[0] = NIT_NULL;
12696 fra.me.REG[0] = p0;
12697 stack_frame_head = fra.me.prev;
12698 init_table[itpos63] = 1;
12699 return;
12700 }
12701 void parser___parser_prod___APlusMethid___init_aplusmethid(val_t p0, val_t p1, int* init_table){
12702 int itpos64 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusMethid].i;
12703 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
12704 val_t REGB0;
12705 val_t tmp;
12706 if (init_table[itpos64]) return;
12707 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12708 fra.me.file = LOCATE_parser___parser_prod;
12709 fra.me.line = 2326;
12710 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___init_aplusmethid;
12711 fra.me.has_broke = 0;
12712 fra.me.REG_size = 3;
12713 fra.me.nitni_local_ref_head = NULL;
12714 fra.me.REG[0] = NIT_NULL;
12715 fra.me.REG[1] = NIT_NULL;
12716 fra.me.REG[2] = NIT_NULL;
12717 fra.me.REG[0] = p0;
12718 fra.me.REG[1] = p1;
12719 /* ./parser//parser_prod.nit:2326 */
12720 fra.me.REG[2] = fra.me.REG[0];
12721 /* ./parser//parser_prod.nit:2330 */
12722 CALL_parser___parser_prod___APlusMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
12723 /* ./parser//parser_prod.nit:2331 */
12724 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12725 if (UNTAG_Bool(REGB0)) {
12726 } else {
12727 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2331);
12728 }
12729 ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[2]) = fra.me.REG[1];
12730 /* ./parser//parser_prod.nit:2332 */
12731 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12732 if (UNTAG_Bool(REGB0)) {
12733 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2332);
12734 }
12735 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12736 stack_frame_head = fra.me.prev;
12737 init_table[itpos64] = 1;
12738 return;
12739 }
12740 void parser___parser_prod___APlusMethid___replace_child(val_t p0, val_t p1, val_t p2){
12741 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12742 val_t REGB0;
12743 val_t REGB1;
12744 val_t tmp;
12745 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12746 fra.me.file = LOCATE_parser___parser_prod;
12747 fra.me.line = 2335;
12748 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___replace_child;
12749 fra.me.has_broke = 0;
12750 fra.me.REG_size = 4;
12751 fra.me.nitni_local_ref_head = NULL;
12752 fra.me.REG[0] = NIT_NULL;
12753 fra.me.REG[1] = NIT_NULL;
12754 fra.me.REG[2] = NIT_NULL;
12755 fra.me.REG[3] = NIT_NULL;
12756 fra.me.REG[0] = p0;
12757 fra.me.REG[1] = p1;
12758 fra.me.REG[2] = p2;
12759 /* ./parser//parser_prod.nit:2337 */
12760 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0])!=NIT_NULL);
12761 if (UNTAG_Bool(REGB0)) {
12762 } else {
12763 nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser___parser_prod, 2337);
12764 }
12765 fra.me.REG[3] = ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]);
12766 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12767 if (UNTAG_Bool(REGB0)) {
12768 } else {
12769 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12770 REGB0 = REGB1;
12771 }
12772 if (UNTAG_Bool(REGB0)) {
12773 /* ./parser//parser_prod.nit:2338 */
12774 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12775 if (UNTAG_Bool(REGB0)) {
12776 } else {
12777 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12778 if (UNTAG_Bool(REGB1)) {
12779 REGB1 = TAG_Bool(false);
12780 REGB0 = REGB1;
12781 } else {
12782 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12783 REGB0 = REGB1;
12784 }
12785 }
12786 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12787 if (UNTAG_Bool(REGB0)) {
12788 /* ./parser//parser_prod.nit:2339 */
12789 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12790 if (UNTAG_Bool(REGB0)) {
12791 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2339);
12792 }
12793 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12794 /* ./parser//parser_prod.nit:2340 */
12795 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*/;
12796 if (UNTAG_Bool(REGB0)) {
12797 } else {
12798 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2340);
12799 }
12800 /* ./parser//parser_prod.nit:2341 */
12801 ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]) = fra.me.REG[2];
12802 } else {
12803 /* ./parser//parser_prod.nit:2343 */
12804 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2343);
12805 }
12806 /* ./parser//parser_prod.nit:2345 */
12807 goto label1;
12808 }
12809 label1: while(0);
12810 stack_frame_head = fra.me.prev;
12811 return;
12812 }
12813 void parser___parser_prod___APlusMethid___visit_all(val_t p0, val_t p1){
12814 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12815 val_t REGB0;
12816 val_t tmp;
12817 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12818 fra.me.file = LOCATE_parser___parser_prod;
12819 fra.me.line = 2349;
12820 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___visit_all;
12821 fra.me.has_broke = 0;
12822 fra.me.REG_size = 2;
12823 fra.me.nitni_local_ref_head = NULL;
12824 fra.me.REG[0] = NIT_NULL;
12825 fra.me.REG[1] = NIT_NULL;
12826 fra.me.REG[0] = p0;
12827 fra.me.REG[1] = p1;
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[0] = ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]);
12835 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12836 stack_frame_head = fra.me.prev;
12837 return;
12838 }
12839 void parser___parser_prod___AMinusMethid___empty_init(val_t p0, int* init_table){
12840 int itpos65 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusMethid].i;
12841 struct {struct stack_frame_t me;} fra;
12842 val_t tmp;
12843 if (init_table[itpos65]) return;
12844 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12845 fra.me.file = LOCATE_parser___parser_prod;
12846 fra.me.line = 2355;
12847 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___empty_init;
12848 fra.me.has_broke = 0;
12849 fra.me.REG_size = 1;
12850 fra.me.nitni_local_ref_head = NULL;
12851 fra.me.REG[0] = NIT_NULL;
12852 fra.me.REG[0] = p0;
12853 stack_frame_head = fra.me.prev;
12854 init_table[itpos65] = 1;
12855 return;
12856 }
12857 void parser___parser_prod___AMinusMethid___init_aminusmethid(val_t p0, val_t p1, int* init_table){
12858 int itpos66 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusMethid].i;
12859 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
12860 val_t REGB0;
12861 val_t tmp;
12862 if (init_table[itpos66]) return;
12863 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12864 fra.me.file = LOCATE_parser___parser_prod;
12865 fra.me.line = 2357;
12866 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___init_aminusmethid;
12867 fra.me.has_broke = 0;
12868 fra.me.REG_size = 3;
12869 fra.me.nitni_local_ref_head = NULL;
12870 fra.me.REG[0] = NIT_NULL;
12871 fra.me.REG[1] = NIT_NULL;
12872 fra.me.REG[2] = NIT_NULL;
12873 fra.me.REG[0] = p0;
12874 fra.me.REG[1] = p1;
12875 /* ./parser//parser_prod.nit:2357 */
12876 fra.me.REG[2] = fra.me.REG[0];
12877 /* ./parser//parser_prod.nit:2361 */
12878 CALL_parser___parser_prod___AMinusMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
12879 /* ./parser//parser_prod.nit:2362 */
12880 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12881 if (UNTAG_Bool(REGB0)) {
12882 } else {
12883 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2362);
12884 }
12885 ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[2]) = fra.me.REG[1];
12886 /* ./parser//parser_prod.nit:2363 */
12887 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12888 if (UNTAG_Bool(REGB0)) {
12889 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2363);
12890 }
12891 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12892 stack_frame_head = fra.me.prev;
12893 init_table[itpos66] = 1;
12894 return;
12895 }
12896 void parser___parser_prod___AMinusMethid___replace_child(val_t p0, val_t p1, val_t p2){
12897 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12898 val_t REGB0;
12899 val_t REGB1;
12900 val_t tmp;
12901 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12902 fra.me.file = LOCATE_parser___parser_prod;
12903 fra.me.line = 2366;
12904 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___replace_child;
12905 fra.me.has_broke = 0;
12906 fra.me.REG_size = 4;
12907 fra.me.nitni_local_ref_head = NULL;
12908 fra.me.REG[0] = NIT_NULL;
12909 fra.me.REG[1] = NIT_NULL;
12910 fra.me.REG[2] = NIT_NULL;
12911 fra.me.REG[3] = NIT_NULL;
12912 fra.me.REG[0] = p0;
12913 fra.me.REG[1] = p1;
12914 fra.me.REG[2] = p2;
12915 /* ./parser//parser_prod.nit:2368 */
12916 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0])!=NIT_NULL);
12917 if (UNTAG_Bool(REGB0)) {
12918 } else {
12919 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 2368);
12920 }
12921 fra.me.REG[3] = ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]);
12922 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12923 if (UNTAG_Bool(REGB0)) {
12924 } else {
12925 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12926 REGB0 = REGB1;
12927 }
12928 if (UNTAG_Bool(REGB0)) {
12929 /* ./parser//parser_prod.nit:2369 */
12930 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12931 if (UNTAG_Bool(REGB0)) {
12932 } else {
12933 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12934 if (UNTAG_Bool(REGB1)) {
12935 REGB1 = TAG_Bool(false);
12936 REGB0 = REGB1;
12937 } else {
12938 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12939 REGB0 = REGB1;
12940 }
12941 }
12942 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12943 if (UNTAG_Bool(REGB0)) {
12944 /* ./parser//parser_prod.nit:2370 */
12945 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12946 if (UNTAG_Bool(REGB0)) {
12947 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2370);
12948 }
12949 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12950 /* ./parser//parser_prod.nit:2371 */
12951 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*/;
12952 if (UNTAG_Bool(REGB0)) {
12953 } else {
12954 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2371);
12955 }
12956 /* ./parser//parser_prod.nit:2372 */
12957 ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]) = fra.me.REG[2];
12958 } else {
12959 /* ./parser//parser_prod.nit:2374 */
12960 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2374);
12961 }
12962 /* ./parser//parser_prod.nit:2376 */
12963 goto label1;
12964 }
12965 label1: while(0);
12966 stack_frame_head = fra.me.prev;
12967 return;
12968 }
12969 void parser___parser_prod___AMinusMethid___visit_all(val_t p0, val_t p1){
12970 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12971 val_t REGB0;
12972 val_t tmp;
12973 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12974 fra.me.file = LOCATE_parser___parser_prod;
12975 fra.me.line = 2380;
12976 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___visit_all;
12977 fra.me.has_broke = 0;
12978 fra.me.REG_size = 2;
12979 fra.me.nitni_local_ref_head = NULL;
12980 fra.me.REG[0] = NIT_NULL;
12981 fra.me.REG[1] = NIT_NULL;
12982 fra.me.REG[0] = p0;
12983 fra.me.REG[1] = p1;
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[0] = ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]);
12991 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12992 stack_frame_head = fra.me.prev;
12993 return;
12994 }
12995 void parser___parser_prod___AStarMethid___empty_init(val_t p0, int* init_table){
12996 int itpos67 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarMethid].i;
12997 struct {struct stack_frame_t me;} fra;
12998 val_t tmp;
12999 if (init_table[itpos67]) return;
13000 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13001 fra.me.file = LOCATE_parser___parser_prod;
13002 fra.me.line = 2386;
13003 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___empty_init;
13004 fra.me.has_broke = 0;
13005 fra.me.REG_size = 1;
13006 fra.me.nitni_local_ref_head = NULL;
13007 fra.me.REG[0] = NIT_NULL;
13008 fra.me.REG[0] = p0;
13009 stack_frame_head = fra.me.prev;
13010 init_table[itpos67] = 1;
13011 return;
13012 }
13013 void parser___parser_prod___AStarMethid___init_astarmethid(val_t p0, val_t p1, int* init_table){
13014 int itpos68 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarMethid].i;
13015 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13016 val_t REGB0;
13017 val_t tmp;
13018 if (init_table[itpos68]) return;
13019 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13020 fra.me.file = LOCATE_parser___parser_prod;
13021 fra.me.line = 2388;
13022 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___init_astarmethid;
13023 fra.me.has_broke = 0;
13024 fra.me.REG_size = 3;
13025 fra.me.nitni_local_ref_head = NULL;
13026 fra.me.REG[0] = NIT_NULL;
13027 fra.me.REG[1] = NIT_NULL;
13028 fra.me.REG[2] = NIT_NULL;
13029 fra.me.REG[0] = p0;
13030 fra.me.REG[1] = p1;
13031 /* ./parser//parser_prod.nit:2388 */
13032 fra.me.REG[2] = fra.me.REG[0];
13033 /* ./parser//parser_prod.nit:2392 */
13034 CALL_parser___parser_prod___AStarMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13035 /* ./parser//parser_prod.nit:2393 */
13036 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13037 if (UNTAG_Bool(REGB0)) {
13038 } else {
13039 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2393);
13040 }
13041 ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[2]) = fra.me.REG[1];
13042 /* ./parser//parser_prod.nit:2394 */
13043 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13044 if (UNTAG_Bool(REGB0)) {
13045 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2394);
13046 }
13047 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13048 stack_frame_head = fra.me.prev;
13049 init_table[itpos68] = 1;
13050 return;
13051 }
13052 void parser___parser_prod___AStarMethid___replace_child(val_t p0, val_t p1, val_t p2){
13053 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13054 val_t REGB0;
13055 val_t REGB1;
13056 val_t tmp;
13057 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13058 fra.me.file = LOCATE_parser___parser_prod;
13059 fra.me.line = 2397;
13060 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___replace_child;
13061 fra.me.has_broke = 0;
13062 fra.me.REG_size = 4;
13063 fra.me.nitni_local_ref_head = NULL;
13064 fra.me.REG[0] = NIT_NULL;
13065 fra.me.REG[1] = NIT_NULL;
13066 fra.me.REG[2] = NIT_NULL;
13067 fra.me.REG[3] = NIT_NULL;
13068 fra.me.REG[0] = p0;
13069 fra.me.REG[1] = p1;
13070 fra.me.REG[2] = p2;
13071 /* ./parser//parser_prod.nit:2399 */
13072 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0])!=NIT_NULL);
13073 if (UNTAG_Bool(REGB0)) {
13074 } else {
13075 nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser___parser_prod, 2399);
13076 }
13077 fra.me.REG[3] = ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]);
13078 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13079 if (UNTAG_Bool(REGB0)) {
13080 } else {
13081 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13082 REGB0 = REGB1;
13083 }
13084 if (UNTAG_Bool(REGB0)) {
13085 /* ./parser//parser_prod.nit:2400 */
13086 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13087 if (UNTAG_Bool(REGB0)) {
13088 } else {
13089 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13090 if (UNTAG_Bool(REGB1)) {
13091 REGB1 = TAG_Bool(false);
13092 REGB0 = REGB1;
13093 } else {
13094 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13095 REGB0 = REGB1;
13096 }
13097 }
13098 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13099 if (UNTAG_Bool(REGB0)) {
13100 /* ./parser//parser_prod.nit:2401 */
13101 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13102 if (UNTAG_Bool(REGB0)) {
13103 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2401);
13104 }
13105 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13106 /* ./parser//parser_prod.nit:2402 */
13107 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*/;
13108 if (UNTAG_Bool(REGB0)) {
13109 } else {
13110 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2402);
13111 }
13112 /* ./parser//parser_prod.nit:2403 */
13113 ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]) = fra.me.REG[2];
13114 } else {
13115 /* ./parser//parser_prod.nit:2405 */
13116 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2405);
13117 }
13118 /* ./parser//parser_prod.nit:2407 */
13119 goto label1;
13120 }
13121 label1: while(0);
13122 stack_frame_head = fra.me.prev;
13123 return;
13124 }
13125 void parser___parser_prod___AStarMethid___visit_all(val_t p0, val_t p1){
13126 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13127 val_t REGB0;
13128 val_t tmp;
13129 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13130 fra.me.file = LOCATE_parser___parser_prod;
13131 fra.me.line = 2411;
13132 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___visit_all;
13133 fra.me.has_broke = 0;
13134 fra.me.REG_size = 2;
13135 fra.me.nitni_local_ref_head = NULL;
13136 fra.me.REG[0] = NIT_NULL;
13137 fra.me.REG[1] = NIT_NULL;
13138 fra.me.REG[0] = p0;
13139 fra.me.REG[1] = p1;
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[0] = ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]);
13147 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13148 stack_frame_head = fra.me.prev;
13149 return;
13150 }
13151 void parser___parser_prod___ASlashMethid___empty_init(val_t p0, int* init_table){
13152 int itpos69 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashMethid].i;
13153 struct {struct stack_frame_t me;} fra;
13154 val_t tmp;
13155 if (init_table[itpos69]) return;
13156 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13157 fra.me.file = LOCATE_parser___parser_prod;
13158 fra.me.line = 2417;
13159 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___empty_init;
13160 fra.me.has_broke = 0;
13161 fra.me.REG_size = 1;
13162 fra.me.nitni_local_ref_head = NULL;
13163 fra.me.REG[0] = NIT_NULL;
13164 fra.me.REG[0] = p0;
13165 stack_frame_head = fra.me.prev;
13166 init_table[itpos69] = 1;
13167 return;
13168 }
13169 void parser___parser_prod___ASlashMethid___init_aslashmethid(val_t p0, val_t p1, int* init_table){
13170 int itpos70 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashMethid].i;
13171 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13172 val_t REGB0;
13173 val_t tmp;
13174 if (init_table[itpos70]) return;
13175 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13176 fra.me.file = LOCATE_parser___parser_prod;
13177 fra.me.line = 2419;
13178 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___init_aslashmethid;
13179 fra.me.has_broke = 0;
13180 fra.me.REG_size = 3;
13181 fra.me.nitni_local_ref_head = NULL;
13182 fra.me.REG[0] = NIT_NULL;
13183 fra.me.REG[1] = NIT_NULL;
13184 fra.me.REG[2] = NIT_NULL;
13185 fra.me.REG[0] = p0;
13186 fra.me.REG[1] = p1;
13187 /* ./parser//parser_prod.nit:2419 */
13188 fra.me.REG[2] = fra.me.REG[0];
13189 /* ./parser//parser_prod.nit:2423 */
13190 CALL_parser___parser_prod___ASlashMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13191 /* ./parser//parser_prod.nit:2424 */
13192 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13193 if (UNTAG_Bool(REGB0)) {
13194 } else {
13195 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2424);
13196 }
13197 ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[2]) = fra.me.REG[1];
13198 /* ./parser//parser_prod.nit:2425 */
13199 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13200 if (UNTAG_Bool(REGB0)) {
13201 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2425);
13202 }
13203 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13204 stack_frame_head = fra.me.prev;
13205 init_table[itpos70] = 1;
13206 return;
13207 }
13208 void parser___parser_prod___ASlashMethid___replace_child(val_t p0, val_t p1, val_t p2){
13209 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13210 val_t REGB0;
13211 val_t REGB1;
13212 val_t tmp;
13213 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13214 fra.me.file = LOCATE_parser___parser_prod;
13215 fra.me.line = 2428;
13216 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___replace_child;
13217 fra.me.has_broke = 0;
13218 fra.me.REG_size = 4;
13219 fra.me.nitni_local_ref_head = NULL;
13220 fra.me.REG[0] = NIT_NULL;
13221 fra.me.REG[1] = NIT_NULL;
13222 fra.me.REG[2] = NIT_NULL;
13223 fra.me.REG[3] = NIT_NULL;
13224 fra.me.REG[0] = p0;
13225 fra.me.REG[1] = p1;
13226 fra.me.REG[2] = p2;
13227 /* ./parser//parser_prod.nit:2430 */
13228 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0])!=NIT_NULL);
13229 if (UNTAG_Bool(REGB0)) {
13230 } else {
13231 nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser___parser_prod, 2430);
13232 }
13233 fra.me.REG[3] = ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]);
13234 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13235 if (UNTAG_Bool(REGB0)) {
13236 } else {
13237 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13238 REGB0 = REGB1;
13239 }
13240 if (UNTAG_Bool(REGB0)) {
13241 /* ./parser//parser_prod.nit:2431 */
13242 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13243 if (UNTAG_Bool(REGB0)) {
13244 } else {
13245 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13246 if (UNTAG_Bool(REGB1)) {
13247 REGB1 = TAG_Bool(false);
13248 REGB0 = REGB1;
13249 } else {
13250 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13251 REGB0 = REGB1;
13252 }
13253 }
13254 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13255 if (UNTAG_Bool(REGB0)) {
13256 /* ./parser//parser_prod.nit:2432 */
13257 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13258 if (UNTAG_Bool(REGB0)) {
13259 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2432);
13260 }
13261 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13262 /* ./parser//parser_prod.nit:2433 */
13263 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*/;
13264 if (UNTAG_Bool(REGB0)) {
13265 } else {
13266 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2433);
13267 }
13268 /* ./parser//parser_prod.nit:2434 */
13269 ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]) = fra.me.REG[2];
13270 } else {
13271 /* ./parser//parser_prod.nit:2436 */
13272 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2436);
13273 }
13274 /* ./parser//parser_prod.nit:2438 */
13275 goto label1;
13276 }
13277 label1: while(0);
13278 stack_frame_head = fra.me.prev;
13279 return;
13280 }
13281 void parser___parser_prod___ASlashMethid___visit_all(val_t p0, val_t p1){
13282 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13283 val_t REGB0;
13284 val_t tmp;
13285 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13286 fra.me.file = LOCATE_parser___parser_prod;
13287 fra.me.line = 2442;
13288 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___visit_all;
13289 fra.me.has_broke = 0;
13290 fra.me.REG_size = 2;
13291 fra.me.nitni_local_ref_head = NULL;
13292 fra.me.REG[0] = NIT_NULL;
13293 fra.me.REG[1] = NIT_NULL;
13294 fra.me.REG[0] = p0;
13295 fra.me.REG[1] = p1;
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[0] = ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]);
13303 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13304 stack_frame_head = fra.me.prev;
13305 return;
13306 }
13307 void parser___parser_prod___APercentMethid___empty_init(val_t p0, int* init_table){
13308 int itpos71 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentMethid].i;
13309 struct {struct stack_frame_t me;} fra;
13310 val_t tmp;
13311 if (init_table[itpos71]) return;
13312 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13313 fra.me.file = LOCATE_parser___parser_prod;
13314 fra.me.line = 2448;
13315 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___empty_init;
13316 fra.me.has_broke = 0;
13317 fra.me.REG_size = 1;
13318 fra.me.nitni_local_ref_head = NULL;
13319 fra.me.REG[0] = NIT_NULL;
13320 fra.me.REG[0] = p0;
13321 stack_frame_head = fra.me.prev;
13322 init_table[itpos71] = 1;
13323 return;
13324 }
13325 void parser___parser_prod___APercentMethid___init_apercentmethid(val_t p0, val_t p1, int* init_table){
13326 int itpos72 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentMethid].i;
13327 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13328 val_t REGB0;
13329 val_t tmp;
13330 if (init_table[itpos72]) return;
13331 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13332 fra.me.file = LOCATE_parser___parser_prod;
13333 fra.me.line = 2450;
13334 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___init_apercentmethid;
13335 fra.me.has_broke = 0;
13336 fra.me.REG_size = 3;
13337 fra.me.nitni_local_ref_head = NULL;
13338 fra.me.REG[0] = NIT_NULL;
13339 fra.me.REG[1] = NIT_NULL;
13340 fra.me.REG[2] = NIT_NULL;
13341 fra.me.REG[0] = p0;
13342 fra.me.REG[1] = p1;
13343 /* ./parser//parser_prod.nit:2450 */
13344 fra.me.REG[2] = fra.me.REG[0];
13345 /* ./parser//parser_prod.nit:2454 */
13346 CALL_parser___parser_prod___APercentMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13347 /* ./parser//parser_prod.nit:2455 */
13348 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13349 if (UNTAG_Bool(REGB0)) {
13350 } else {
13351 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2455);
13352 }
13353 ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[2]) = fra.me.REG[1];
13354 /* ./parser//parser_prod.nit:2456 */
13355 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13356 if (UNTAG_Bool(REGB0)) {
13357 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2456);
13358 }
13359 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13360 stack_frame_head = fra.me.prev;
13361 init_table[itpos72] = 1;
13362 return;
13363 }
13364 void parser___parser_prod___APercentMethid___replace_child(val_t p0, val_t p1, val_t p2){
13365 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13366 val_t REGB0;
13367 val_t REGB1;
13368 val_t tmp;
13369 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13370 fra.me.file = LOCATE_parser___parser_prod;
13371 fra.me.line = 2459;
13372 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___replace_child;
13373 fra.me.has_broke = 0;
13374 fra.me.REG_size = 4;
13375 fra.me.nitni_local_ref_head = NULL;
13376 fra.me.REG[0] = NIT_NULL;
13377 fra.me.REG[1] = NIT_NULL;
13378 fra.me.REG[2] = NIT_NULL;
13379 fra.me.REG[3] = NIT_NULL;
13380 fra.me.REG[0] = p0;
13381 fra.me.REG[1] = p1;
13382 fra.me.REG[2] = p2;
13383 /* ./parser//parser_prod.nit:2461 */
13384 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0])!=NIT_NULL);
13385 if (UNTAG_Bool(REGB0)) {
13386 } else {
13387 nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser___parser_prod, 2461);
13388 }
13389 fra.me.REG[3] = ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]);
13390 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13391 if (UNTAG_Bool(REGB0)) {
13392 } else {
13393 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13394 REGB0 = REGB1;
13395 }
13396 if (UNTAG_Bool(REGB0)) {
13397 /* ./parser//parser_prod.nit:2462 */
13398 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13399 if (UNTAG_Bool(REGB0)) {
13400 } else {
13401 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13402 if (UNTAG_Bool(REGB1)) {
13403 REGB1 = TAG_Bool(false);
13404 REGB0 = REGB1;
13405 } else {
13406 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13407 REGB0 = REGB1;
13408 }
13409 }
13410 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13411 if (UNTAG_Bool(REGB0)) {
13412 /* ./parser//parser_prod.nit:2463 */
13413 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13414 if (UNTAG_Bool(REGB0)) {
13415 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2463);
13416 }
13417 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13418 /* ./parser//parser_prod.nit:2464 */
13419 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*/;
13420 if (UNTAG_Bool(REGB0)) {
13421 } else {
13422 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2464);
13423 }
13424 /* ./parser//parser_prod.nit:2465 */
13425 ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]) = fra.me.REG[2];
13426 } else {
13427 /* ./parser//parser_prod.nit:2467 */
13428 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2467);
13429 }
13430 /* ./parser//parser_prod.nit:2469 */
13431 goto label1;
13432 }
13433 label1: while(0);
13434 stack_frame_head = fra.me.prev;
13435 return;
13436 }
13437 void parser___parser_prod___APercentMethid___visit_all(val_t p0, val_t p1){
13438 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13439 val_t REGB0;
13440 val_t tmp;
13441 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13442 fra.me.file = LOCATE_parser___parser_prod;
13443 fra.me.line = 2473;
13444 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___visit_all;
13445 fra.me.has_broke = 0;
13446 fra.me.REG_size = 2;
13447 fra.me.nitni_local_ref_head = NULL;
13448 fra.me.REG[0] = NIT_NULL;
13449 fra.me.REG[1] = NIT_NULL;
13450 fra.me.REG[0] = p0;
13451 fra.me.REG[1] = p1;
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[0] = ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]);
13459 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13460 stack_frame_head = fra.me.prev;
13461 return;
13462 }
13463 void parser___parser_prod___AEqMethid___empty_init(val_t p0, int* init_table){
13464 int itpos73 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqMethid].i;
13465 struct {struct stack_frame_t me;} fra;
13466 val_t tmp;
13467 if (init_table[itpos73]) return;
13468 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13469 fra.me.file = LOCATE_parser___parser_prod;
13470 fra.me.line = 2479;
13471 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___empty_init;
13472 fra.me.has_broke = 0;
13473 fra.me.REG_size = 1;
13474 fra.me.nitni_local_ref_head = NULL;
13475 fra.me.REG[0] = NIT_NULL;
13476 fra.me.REG[0] = p0;
13477 stack_frame_head = fra.me.prev;
13478 init_table[itpos73] = 1;
13479 return;
13480 }
13481 void parser___parser_prod___AEqMethid___init_aeqmethid(val_t p0, val_t p1, int* init_table){
13482 int itpos74 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqMethid].i;
13483 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13484 val_t REGB0;
13485 val_t tmp;
13486 if (init_table[itpos74]) return;
13487 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13488 fra.me.file = LOCATE_parser___parser_prod;
13489 fra.me.line = 2481;
13490 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___init_aeqmethid;
13491 fra.me.has_broke = 0;
13492 fra.me.REG_size = 3;
13493 fra.me.nitni_local_ref_head = NULL;
13494 fra.me.REG[0] = NIT_NULL;
13495 fra.me.REG[1] = NIT_NULL;
13496 fra.me.REG[2] = NIT_NULL;
13497 fra.me.REG[0] = p0;
13498 fra.me.REG[1] = p1;
13499 /* ./parser//parser_prod.nit:2481 */
13500 fra.me.REG[2] = fra.me.REG[0];
13501 /* ./parser//parser_prod.nit:2485 */
13502 CALL_parser___parser_prod___AEqMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13503 /* ./parser//parser_prod.nit:2486 */
13504 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13505 if (UNTAG_Bool(REGB0)) {
13506 } else {
13507 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2486);
13508 }
13509 ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[2]) = fra.me.REG[1];
13510 /* ./parser//parser_prod.nit:2487 */
13511 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13512 if (UNTAG_Bool(REGB0)) {
13513 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2487);
13514 }
13515 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13516 stack_frame_head = fra.me.prev;
13517 init_table[itpos74] = 1;
13518 return;
13519 }
13520 void parser___parser_prod___AEqMethid___replace_child(val_t p0, val_t p1, val_t p2){
13521 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13522 val_t REGB0;
13523 val_t REGB1;
13524 val_t tmp;
13525 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13526 fra.me.file = LOCATE_parser___parser_prod;
13527 fra.me.line = 2490;
13528 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___replace_child;
13529 fra.me.has_broke = 0;
13530 fra.me.REG_size = 4;
13531 fra.me.nitni_local_ref_head = NULL;
13532 fra.me.REG[0] = NIT_NULL;
13533 fra.me.REG[1] = NIT_NULL;
13534 fra.me.REG[2] = NIT_NULL;
13535 fra.me.REG[3] = NIT_NULL;
13536 fra.me.REG[0] = p0;
13537 fra.me.REG[1] = p1;
13538 fra.me.REG[2] = p2;
13539 /* ./parser//parser_prod.nit:2492 */
13540 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0])!=NIT_NULL);
13541 if (UNTAG_Bool(REGB0)) {
13542 } else {
13543 nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser___parser_prod, 2492);
13544 }
13545 fra.me.REG[3] = ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]);
13546 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13547 if (UNTAG_Bool(REGB0)) {
13548 } else {
13549 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13550 REGB0 = REGB1;
13551 }
13552 if (UNTAG_Bool(REGB0)) {
13553 /* ./parser//parser_prod.nit:2493 */
13554 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13555 if (UNTAG_Bool(REGB0)) {
13556 } else {
13557 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13558 if (UNTAG_Bool(REGB1)) {
13559 REGB1 = TAG_Bool(false);
13560 REGB0 = REGB1;
13561 } else {
13562 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13563 REGB0 = REGB1;
13564 }
13565 }
13566 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13567 if (UNTAG_Bool(REGB0)) {
13568 /* ./parser//parser_prod.nit:2494 */
13569 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13570 if (UNTAG_Bool(REGB0)) {
13571 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2494);
13572 }
13573 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13574 /* ./parser//parser_prod.nit:2495 */
13575 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*/;
13576 if (UNTAG_Bool(REGB0)) {
13577 } else {
13578 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2495);
13579 }
13580 /* ./parser//parser_prod.nit:2496 */
13581 ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]) = fra.me.REG[2];
13582 } else {
13583 /* ./parser//parser_prod.nit:2498 */
13584 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2498);
13585 }
13586 /* ./parser//parser_prod.nit:2500 */
13587 goto label1;
13588 }
13589 label1: while(0);
13590 stack_frame_head = fra.me.prev;
13591 return;
13592 }
13593 void parser___parser_prod___AEqMethid___visit_all(val_t p0, val_t p1){
13594 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13595 val_t REGB0;
13596 val_t tmp;
13597 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13598 fra.me.file = LOCATE_parser___parser_prod;
13599 fra.me.line = 2504;
13600 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___visit_all;
13601 fra.me.has_broke = 0;
13602 fra.me.REG_size = 2;
13603 fra.me.nitni_local_ref_head = NULL;
13604 fra.me.REG[0] = NIT_NULL;
13605 fra.me.REG[1] = NIT_NULL;
13606 fra.me.REG[0] = p0;
13607 fra.me.REG[1] = p1;
13608 /* ./parser//parser_prod.nit: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[0] = ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]);
13615 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13616 stack_frame_head = fra.me.prev;
13617 return;
13618 }
13619 void parser___parser_prod___ANeMethid___empty_init(val_t p0, int* init_table){
13620 int itpos75 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeMethid].i;
13621 struct {struct stack_frame_t me;} fra;
13622 val_t tmp;
13623 if (init_table[itpos75]) return;
13624 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13625 fra.me.file = LOCATE_parser___parser_prod;
13626 fra.me.line = 2510;
13627 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___empty_init;
13628 fra.me.has_broke = 0;
13629 fra.me.REG_size = 1;
13630 fra.me.nitni_local_ref_head = NULL;
13631 fra.me.REG[0] = NIT_NULL;
13632 fra.me.REG[0] = p0;
13633 stack_frame_head = fra.me.prev;
13634 init_table[itpos75] = 1;
13635 return;
13636 }
13637 void parser___parser_prod___ANeMethid___init_anemethid(val_t p0, val_t p1, int* init_table){
13638 int itpos76 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeMethid].i;
13639 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13640 val_t REGB0;
13641 val_t tmp;
13642 if (init_table[itpos76]) return;
13643 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13644 fra.me.file = LOCATE_parser___parser_prod;
13645 fra.me.line = 2512;
13646 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___init_anemethid;
13647 fra.me.has_broke = 0;
13648 fra.me.REG_size = 3;
13649 fra.me.nitni_local_ref_head = NULL;
13650 fra.me.REG[0] = NIT_NULL;
13651 fra.me.REG[1] = NIT_NULL;
13652 fra.me.REG[2] = NIT_NULL;
13653 fra.me.REG[0] = p0;
13654 fra.me.REG[1] = p1;
13655 /* ./parser//parser_prod.nit:2512 */
13656 fra.me.REG[2] = fra.me.REG[0];
13657 /* ./parser//parser_prod.nit:2516 */
13658 CALL_parser___parser_prod___ANeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13659 /* ./parser//parser_prod.nit:2517 */
13660 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13661 if (UNTAG_Bool(REGB0)) {
13662 } else {
13663 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2517);
13664 }
13665 ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[2]) = fra.me.REG[1];
13666 /* ./parser//parser_prod.nit:2518 */
13667 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13668 if (UNTAG_Bool(REGB0)) {
13669 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2518);
13670 }
13671 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13672 stack_frame_head = fra.me.prev;
13673 init_table[itpos76] = 1;
13674 return;
13675 }
13676 void parser___parser_prod___ANeMethid___replace_child(val_t p0, val_t p1, val_t p2){
13677 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13678 val_t REGB0;
13679 val_t REGB1;
13680 val_t tmp;
13681 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13682 fra.me.file = LOCATE_parser___parser_prod;
13683 fra.me.line = 2521;
13684 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___replace_child;
13685 fra.me.has_broke = 0;
13686 fra.me.REG_size = 4;
13687 fra.me.nitni_local_ref_head = NULL;
13688 fra.me.REG[0] = NIT_NULL;
13689 fra.me.REG[1] = NIT_NULL;
13690 fra.me.REG[2] = NIT_NULL;
13691 fra.me.REG[3] = NIT_NULL;
13692 fra.me.REG[0] = p0;
13693 fra.me.REG[1] = p1;
13694 fra.me.REG[2] = p2;
13695 /* ./parser//parser_prod.nit:2523 */
13696 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0])!=NIT_NULL);
13697 if (UNTAG_Bool(REGB0)) {
13698 } else {
13699 nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser___parser_prod, 2523);
13700 }
13701 fra.me.REG[3] = ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0]);
13702 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13703 if (UNTAG_Bool(REGB0)) {
13704 } else {
13705 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13706 REGB0 = REGB1;
13707 }
13708 if (UNTAG_Bool(REGB0)) {
13709 /* ./parser//parser_prod.nit:2524 */
13710 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13711 if (UNTAG_Bool(REGB0)) {
13712 } else {
13713 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13714 if (UNTAG_Bool(REGB1)) {
13715 REGB1 = TAG_Bool(false);
13716 REGB0 = REGB1;
13717 } else {
13718 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13719 REGB0 = REGB1;
13720 }
13721 }
13722 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13723 if (UNTAG_Bool(REGB0)) {
13724 /* ./parser//parser_prod.nit:2525 */
13725 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13726 if (UNTAG_Bool(REGB0)) {
13727 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2525);
13728 }
13729 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13730 /* ./parser//parser_prod.nit:2526 */
13731 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*/;
13732 if (UNTAG_Bool(REGB0)) {
13733 } else {
13734 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2526);
13735 }
13736 /* ./parser//parser_prod.nit:2527 */
13737 ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0]) = fra.me.REG[2];
13738 } else {
13739 /* ./parser//parser_prod.nit:2529 */
13740 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2529);
13741 }
13742 /* ./parser//parser_prod.nit:2531 */
13743 goto label1;
13744 }
13745 label1: while(0);
13746 stack_frame_head = fra.me.prev;
13747 return;
13748 }
13749 void parser___parser_prod___ANeMethid___visit_all(val_t p0, val_t p1){
13750 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13751 val_t REGB0;
13752 val_t tmp;
13753 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13754 fra.me.file = LOCATE_parser___parser_prod;
13755 fra.me.line = 2535;
13756 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___visit_all;
13757 fra.me.has_broke = 0;
13758 fra.me.REG_size = 2;
13759 fra.me.nitni_local_ref_head = NULL;
13760 fra.me.REG[0] = NIT_NULL;
13761 fra.me.REG[1] = NIT_NULL;
13762 fra.me.REG[0] = p0;
13763 fra.me.REG[1] = p1;
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[0] = ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0]);
13771 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13772 stack_frame_head = fra.me.prev;
13773 return;
13774 }
13775 void parser___parser_prod___ALeMethid___empty_init(val_t p0, int* init_table){
13776 int itpos77 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeMethid].i;
13777 struct {struct stack_frame_t me;} fra;
13778 val_t tmp;
13779 if (init_table[itpos77]) return;
13780 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13781 fra.me.file = LOCATE_parser___parser_prod;
13782 fra.me.line = 2541;
13783 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___empty_init;
13784 fra.me.has_broke = 0;
13785 fra.me.REG_size = 1;
13786 fra.me.nitni_local_ref_head = NULL;
13787 fra.me.REG[0] = NIT_NULL;
13788 fra.me.REG[0] = p0;
13789 stack_frame_head = fra.me.prev;
13790 init_table[itpos77] = 1;
13791 return;
13792 }
13793 void parser___parser_prod___ALeMethid___init_alemethid(val_t p0, val_t p1, int* init_table){
13794 int itpos78 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeMethid].i;
13795 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13796 val_t REGB0;
13797 val_t tmp;
13798 if (init_table[itpos78]) return;
13799 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13800 fra.me.file = LOCATE_parser___parser_prod;
13801 fra.me.line = 2543;
13802 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___init_alemethid;
13803 fra.me.has_broke = 0;
13804 fra.me.REG_size = 3;
13805 fra.me.nitni_local_ref_head = NULL;
13806 fra.me.REG[0] = NIT_NULL;
13807 fra.me.REG[1] = NIT_NULL;
13808 fra.me.REG[2] = NIT_NULL;
13809 fra.me.REG[0] = p0;
13810 fra.me.REG[1] = p1;
13811 /* ./parser//parser_prod.nit:2543 */
13812 fra.me.REG[2] = fra.me.REG[0];
13813 /* ./parser//parser_prod.nit:2547 */
13814 CALL_parser___parser_prod___ALeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13815 /* ./parser//parser_prod.nit:2548 */
13816 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13817 if (UNTAG_Bool(REGB0)) {
13818 } else {
13819 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2548);
13820 }
13821 ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[2]) = fra.me.REG[1];
13822 /* ./parser//parser_prod.nit:2549 */
13823 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13824 if (UNTAG_Bool(REGB0)) {
13825 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2549);
13826 }
13827 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13828 stack_frame_head = fra.me.prev;
13829 init_table[itpos78] = 1;
13830 return;
13831 }
13832 void parser___parser_prod___ALeMethid___replace_child(val_t p0, val_t p1, val_t p2){
13833 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13834 val_t REGB0;
13835 val_t REGB1;
13836 val_t tmp;
13837 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13838 fra.me.file = LOCATE_parser___parser_prod;
13839 fra.me.line = 2552;
13840 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___replace_child;
13841 fra.me.has_broke = 0;
13842 fra.me.REG_size = 4;
13843 fra.me.nitni_local_ref_head = NULL;
13844 fra.me.REG[0] = NIT_NULL;
13845 fra.me.REG[1] = NIT_NULL;
13846 fra.me.REG[2] = NIT_NULL;
13847 fra.me.REG[3] = NIT_NULL;
13848 fra.me.REG[0] = p0;
13849 fra.me.REG[1] = p1;
13850 fra.me.REG[2] = p2;
13851 /* ./parser//parser_prod.nit:2554 */
13852 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0])!=NIT_NULL);
13853 if (UNTAG_Bool(REGB0)) {
13854 } else {
13855 nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser___parser_prod, 2554);
13856 }
13857 fra.me.REG[3] = ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0]);
13858 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13859 if (UNTAG_Bool(REGB0)) {
13860 } else {
13861 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13862 REGB0 = REGB1;
13863 }
13864 if (UNTAG_Bool(REGB0)) {
13865 /* ./parser//parser_prod.nit:2555 */
13866 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13867 if (UNTAG_Bool(REGB0)) {
13868 } else {
13869 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13870 if (UNTAG_Bool(REGB1)) {
13871 REGB1 = TAG_Bool(false);
13872 REGB0 = REGB1;
13873 } else {
13874 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13875 REGB0 = REGB1;
13876 }
13877 }
13878 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13879 if (UNTAG_Bool(REGB0)) {
13880 /* ./parser//parser_prod.nit:2556 */
13881 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13882 if (UNTAG_Bool(REGB0)) {
13883 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2556);
13884 }
13885 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13886 /* ./parser//parser_prod.nit:2557 */
13887 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*/;
13888 if (UNTAG_Bool(REGB0)) {
13889 } else {
13890 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2557);
13891 }
13892 /* ./parser//parser_prod.nit:2558 */
13893 ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0]) = fra.me.REG[2];
13894 } else {
13895 /* ./parser//parser_prod.nit:2560 */
13896 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2560);
13897 }
13898 /* ./parser//parser_prod.nit:2562 */
13899 goto label1;
13900 }
13901 label1: while(0);
13902 stack_frame_head = fra.me.prev;
13903 return;
13904 }
13905 void parser___parser_prod___ALeMethid___visit_all(val_t p0, val_t p1){
13906 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13907 val_t REGB0;
13908 val_t tmp;
13909 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13910 fra.me.file = LOCATE_parser___parser_prod;
13911 fra.me.line = 2566;
13912 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___visit_all;
13913 fra.me.has_broke = 0;
13914 fra.me.REG_size = 2;
13915 fra.me.nitni_local_ref_head = NULL;
13916 fra.me.REG[0] = NIT_NULL;
13917 fra.me.REG[1] = NIT_NULL;
13918 fra.me.REG[0] = p0;
13919 fra.me.REG[1] = p1;
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[0] = ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0]);
13927 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13928 stack_frame_head = fra.me.prev;
13929 return;
13930 }
13931 void parser___parser_prod___AGeMethid___empty_init(val_t p0, int* init_table){
13932 int itpos79 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeMethid].i;
13933 struct {struct stack_frame_t me;} fra;
13934 val_t tmp;
13935 if (init_table[itpos79]) return;
13936 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13937 fra.me.file = LOCATE_parser___parser_prod;
13938 fra.me.line = 2572;
13939 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___empty_init;
13940 fra.me.has_broke = 0;
13941 fra.me.REG_size = 1;
13942 fra.me.nitni_local_ref_head = NULL;
13943 fra.me.REG[0] = NIT_NULL;
13944 fra.me.REG[0] = p0;
13945 stack_frame_head = fra.me.prev;
13946 init_table[itpos79] = 1;
13947 return;
13948 }
13949 void parser___parser_prod___AGeMethid___init_agemethid(val_t p0, val_t p1, int* init_table){
13950 int itpos80 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeMethid].i;
13951 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13952 val_t REGB0;
13953 val_t tmp;
13954 if (init_table[itpos80]) return;
13955 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13956 fra.me.file = LOCATE_parser___parser_prod;
13957 fra.me.line = 2574;
13958 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___init_agemethid;
13959 fra.me.has_broke = 0;
13960 fra.me.REG_size = 3;
13961 fra.me.nitni_local_ref_head = NULL;
13962 fra.me.REG[0] = NIT_NULL;
13963 fra.me.REG[1] = NIT_NULL;
13964 fra.me.REG[2] = NIT_NULL;
13965 fra.me.REG[0] = p0;
13966 fra.me.REG[1] = p1;
13967 /* ./parser//parser_prod.nit:2574 */
13968 fra.me.REG[2] = fra.me.REG[0];
13969 /* ./parser//parser_prod.nit:2578 */
13970 CALL_parser___parser_prod___AGeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13971 /* ./parser//parser_prod.nit:2579 */
13972 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13973 if (UNTAG_Bool(REGB0)) {
13974 } else {
13975 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2579);
13976 }
13977 ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[2]) = fra.me.REG[1];
13978 /* ./parser//parser_prod.nit:2580 */
13979 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13980 if (UNTAG_Bool(REGB0)) {
13981 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2580);
13982 }
13983 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13984 stack_frame_head = fra.me.prev;
13985 init_table[itpos80] = 1;
13986 return;
13987 }
13988 void parser___parser_prod___AGeMethid___replace_child(val_t p0, val_t p1, val_t p2){
13989 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13990 val_t REGB0;
13991 val_t REGB1;
13992 val_t tmp;
13993 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13994 fra.me.file = LOCATE_parser___parser_prod;
13995 fra.me.line = 2583;
13996 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___replace_child;
13997 fra.me.has_broke = 0;
13998 fra.me.REG_size = 4;
13999 fra.me.nitni_local_ref_head = NULL;
14000 fra.me.REG[0] = NIT_NULL;
14001 fra.me.REG[1] = NIT_NULL;
14002 fra.me.REG[2] = NIT_NULL;
14003 fra.me.REG[3] = NIT_NULL;
14004 fra.me.REG[0] = p0;
14005 fra.me.REG[1] = p1;
14006 fra.me.REG[2] = p2;
14007 /* ./parser//parser_prod.nit:2585 */
14008 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0])!=NIT_NULL);
14009 if (UNTAG_Bool(REGB0)) {
14010 } else {
14011 nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser___parser_prod, 2585);
14012 }
14013 fra.me.REG[3] = ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0]);
14014 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14015 if (UNTAG_Bool(REGB0)) {
14016 } else {
14017 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14018 REGB0 = REGB1;
14019 }
14020 if (UNTAG_Bool(REGB0)) {
14021 /* ./parser//parser_prod.nit:2586 */
14022 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14023 if (UNTAG_Bool(REGB0)) {
14024 } else {
14025 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14026 if (UNTAG_Bool(REGB1)) {
14027 REGB1 = TAG_Bool(false);
14028 REGB0 = REGB1;
14029 } else {
14030 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14031 REGB0 = REGB1;
14032 }
14033 }
14034 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14035 if (UNTAG_Bool(REGB0)) {
14036 /* ./parser//parser_prod.nit:2587 */
14037 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14038 if (UNTAG_Bool(REGB0)) {
14039 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2587);
14040 }
14041 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14042 /* ./parser//parser_prod.nit:2588 */
14043 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*/;
14044 if (UNTAG_Bool(REGB0)) {
14045 } else {
14046 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2588);
14047 }
14048 /* ./parser//parser_prod.nit:2589 */
14049 ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0]) = fra.me.REG[2];
14050 } else {
14051 /* ./parser//parser_prod.nit:2591 */
14052 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2591);
14053 }
14054 /* ./parser//parser_prod.nit:2593 */
14055 goto label1;
14056 }
14057 label1: while(0);
14058 stack_frame_head = fra.me.prev;
14059 return;
14060 }
14061 void parser___parser_prod___AGeMethid___visit_all(val_t p0, val_t p1){
14062 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14063 val_t REGB0;
14064 val_t tmp;
14065 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14066 fra.me.file = LOCATE_parser___parser_prod;
14067 fra.me.line = 2597;
14068 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___visit_all;
14069 fra.me.has_broke = 0;
14070 fra.me.REG_size = 2;
14071 fra.me.nitni_local_ref_head = NULL;
14072 fra.me.REG[0] = NIT_NULL;
14073 fra.me.REG[1] = NIT_NULL;
14074 fra.me.REG[0] = p0;
14075 fra.me.REG[1] = p1;
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[0] = ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0]);
14083 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14084 stack_frame_head = fra.me.prev;
14085 return;
14086 }
14087 void parser___parser_prod___ALtMethid___empty_init(val_t p0, int* init_table){
14088 int itpos81 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtMethid].i;
14089 struct {struct stack_frame_t me;} fra;
14090 val_t tmp;
14091 if (init_table[itpos81]) return;
14092 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14093 fra.me.file = LOCATE_parser___parser_prod;
14094 fra.me.line = 2603;
14095 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___empty_init;
14096 fra.me.has_broke = 0;
14097 fra.me.REG_size = 1;
14098 fra.me.nitni_local_ref_head = NULL;
14099 fra.me.REG[0] = NIT_NULL;
14100 fra.me.REG[0] = p0;
14101 stack_frame_head = fra.me.prev;
14102 init_table[itpos81] = 1;
14103 return;
14104 }
14105 void parser___parser_prod___ALtMethid___init_altmethid(val_t p0, val_t p1, int* init_table){
14106 int itpos82 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtMethid].i;
14107 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14108 val_t REGB0;
14109 val_t tmp;
14110 if (init_table[itpos82]) return;
14111 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14112 fra.me.file = LOCATE_parser___parser_prod;
14113 fra.me.line = 2605;
14114 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___init_altmethid;
14115 fra.me.has_broke = 0;
14116 fra.me.REG_size = 3;
14117 fra.me.nitni_local_ref_head = NULL;
14118 fra.me.REG[0] = NIT_NULL;
14119 fra.me.REG[1] = NIT_NULL;
14120 fra.me.REG[2] = NIT_NULL;
14121 fra.me.REG[0] = p0;
14122 fra.me.REG[1] = p1;
14123 /* ./parser//parser_prod.nit:2605 */
14124 fra.me.REG[2] = fra.me.REG[0];
14125 /* ./parser//parser_prod.nit:2609 */
14126 CALL_parser___parser_prod___ALtMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14127 /* ./parser//parser_prod.nit:2610 */
14128 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14129 if (UNTAG_Bool(REGB0)) {
14130 } else {
14131 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2610);
14132 }
14133 ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[2]) = fra.me.REG[1];
14134 /* ./parser//parser_prod.nit:2611 */
14135 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14136 if (UNTAG_Bool(REGB0)) {
14137 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2611);
14138 }
14139 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14140 stack_frame_head = fra.me.prev;
14141 init_table[itpos82] = 1;
14142 return;
14143 }
14144 void parser___parser_prod___ALtMethid___replace_child(val_t p0, val_t p1, val_t p2){
14145 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14146 val_t REGB0;
14147 val_t REGB1;
14148 val_t tmp;
14149 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14150 fra.me.file = LOCATE_parser___parser_prod;
14151 fra.me.line = 2614;
14152 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___replace_child;
14153 fra.me.has_broke = 0;
14154 fra.me.REG_size = 4;
14155 fra.me.nitni_local_ref_head = NULL;
14156 fra.me.REG[0] = NIT_NULL;
14157 fra.me.REG[1] = NIT_NULL;
14158 fra.me.REG[2] = NIT_NULL;
14159 fra.me.REG[3] = NIT_NULL;
14160 fra.me.REG[0] = p0;
14161 fra.me.REG[1] = p1;
14162 fra.me.REG[2] = p2;
14163 /* ./parser//parser_prod.nit:2616 */
14164 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0])!=NIT_NULL);
14165 if (UNTAG_Bool(REGB0)) {
14166 } else {
14167 nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser___parser_prod, 2616);
14168 }
14169 fra.me.REG[3] = ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0]);
14170 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14171 if (UNTAG_Bool(REGB0)) {
14172 } else {
14173 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14174 REGB0 = REGB1;
14175 }
14176 if (UNTAG_Bool(REGB0)) {
14177 /* ./parser//parser_prod.nit:2617 */
14178 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14179 if (UNTAG_Bool(REGB0)) {
14180 } else {
14181 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14182 if (UNTAG_Bool(REGB1)) {
14183 REGB1 = TAG_Bool(false);
14184 REGB0 = REGB1;
14185 } else {
14186 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14187 REGB0 = REGB1;
14188 }
14189 }
14190 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14191 if (UNTAG_Bool(REGB0)) {
14192 /* ./parser//parser_prod.nit:2618 */
14193 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14194 if (UNTAG_Bool(REGB0)) {
14195 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2618);
14196 }
14197 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14198 /* ./parser//parser_prod.nit:2619 */
14199 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*/;
14200 if (UNTAG_Bool(REGB0)) {
14201 } else {
14202 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2619);
14203 }
14204 /* ./parser//parser_prod.nit:2620 */
14205 ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0]) = fra.me.REG[2];
14206 } else {
14207 /* ./parser//parser_prod.nit:2622 */
14208 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2622);
14209 }
14210 /* ./parser//parser_prod.nit:2624 */
14211 goto label1;
14212 }
14213 label1: while(0);
14214 stack_frame_head = fra.me.prev;
14215 return;
14216 }
14217 void parser___parser_prod___ALtMethid___visit_all(val_t p0, val_t p1){
14218 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14219 val_t REGB0;
14220 val_t tmp;
14221 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14222 fra.me.file = LOCATE_parser___parser_prod;
14223 fra.me.line = 2628;
14224 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___visit_all;
14225 fra.me.has_broke = 0;
14226 fra.me.REG_size = 2;
14227 fra.me.nitni_local_ref_head = NULL;
14228 fra.me.REG[0] = NIT_NULL;
14229 fra.me.REG[1] = NIT_NULL;
14230 fra.me.REG[0] = p0;
14231 fra.me.REG[1] = p1;
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[0] = ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0]);
14239 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14240 stack_frame_head = fra.me.prev;
14241 return;
14242 }
14243 void parser___parser_prod___AGtMethid___empty_init(val_t p0, int* init_table){
14244 int itpos83 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtMethid].i;
14245 struct {struct stack_frame_t me;} fra;
14246 val_t tmp;
14247 if (init_table[itpos83]) return;
14248 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14249 fra.me.file = LOCATE_parser___parser_prod;
14250 fra.me.line = 2634;
14251 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___empty_init;
14252 fra.me.has_broke = 0;
14253 fra.me.REG_size = 1;
14254 fra.me.nitni_local_ref_head = NULL;
14255 fra.me.REG[0] = NIT_NULL;
14256 fra.me.REG[0] = p0;
14257 stack_frame_head = fra.me.prev;
14258 init_table[itpos83] = 1;
14259 return;
14260 }
14261 void parser___parser_prod___AGtMethid___init_agtmethid(val_t p0, val_t p1, int* init_table){
14262 int itpos84 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtMethid].i;
14263 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14264 val_t REGB0;
14265 val_t tmp;
14266 if (init_table[itpos84]) return;
14267 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14268 fra.me.file = LOCATE_parser___parser_prod;
14269 fra.me.line = 2636;
14270 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___init_agtmethid;
14271 fra.me.has_broke = 0;
14272 fra.me.REG_size = 3;
14273 fra.me.nitni_local_ref_head = NULL;
14274 fra.me.REG[0] = NIT_NULL;
14275 fra.me.REG[1] = NIT_NULL;
14276 fra.me.REG[2] = NIT_NULL;
14277 fra.me.REG[0] = p0;
14278 fra.me.REG[1] = p1;
14279 /* ./parser//parser_prod.nit:2636 */
14280 fra.me.REG[2] = fra.me.REG[0];
14281 /* ./parser//parser_prod.nit:2640 */
14282 CALL_parser___parser_prod___AGtMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14283 /* ./parser//parser_prod.nit:2641 */
14284 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14285 if (UNTAG_Bool(REGB0)) {
14286 } else {
14287 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2641);
14288 }
14289 ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[2]) = fra.me.REG[1];
14290 /* ./parser//parser_prod.nit:2642 */
14291 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14292 if (UNTAG_Bool(REGB0)) {
14293 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2642);
14294 }
14295 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14296 stack_frame_head = fra.me.prev;
14297 init_table[itpos84] = 1;
14298 return;
14299 }
14300 void parser___parser_prod___AGtMethid___replace_child(val_t p0, val_t p1, val_t p2){
14301 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14302 val_t REGB0;
14303 val_t REGB1;
14304 val_t tmp;
14305 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14306 fra.me.file = LOCATE_parser___parser_prod;
14307 fra.me.line = 2645;
14308 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___replace_child;
14309 fra.me.has_broke = 0;
14310 fra.me.REG_size = 4;
14311 fra.me.nitni_local_ref_head = NULL;
14312 fra.me.REG[0] = NIT_NULL;
14313 fra.me.REG[1] = NIT_NULL;
14314 fra.me.REG[2] = NIT_NULL;
14315 fra.me.REG[3] = NIT_NULL;
14316 fra.me.REG[0] = p0;
14317 fra.me.REG[1] = p1;
14318 fra.me.REG[2] = p2;
14319 /* ./parser//parser_prod.nit:2647 */
14320 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0])!=NIT_NULL);
14321 if (UNTAG_Bool(REGB0)) {
14322 } else {
14323 nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser___parser_prod, 2647);
14324 }
14325 fra.me.REG[3] = ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0]);
14326 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14327 if (UNTAG_Bool(REGB0)) {
14328 } else {
14329 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14330 REGB0 = REGB1;
14331 }
14332 if (UNTAG_Bool(REGB0)) {
14333 /* ./parser//parser_prod.nit:2648 */
14334 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14335 if (UNTAG_Bool(REGB0)) {
14336 } else {
14337 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14338 if (UNTAG_Bool(REGB1)) {
14339 REGB1 = TAG_Bool(false);
14340 REGB0 = REGB1;
14341 } else {
14342 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14343 REGB0 = REGB1;
14344 }
14345 }
14346 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14347 if (UNTAG_Bool(REGB0)) {
14348 /* ./parser//parser_prod.nit:2649 */
14349 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14350 if (UNTAG_Bool(REGB0)) {
14351 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2649);
14352 }
14353 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14354 /* ./parser//parser_prod.nit:2650 */
14355 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*/;
14356 if (UNTAG_Bool(REGB0)) {
14357 } else {
14358 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2650);
14359 }
14360 /* ./parser//parser_prod.nit:2651 */
14361 ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0]) = fra.me.REG[2];
14362 } else {
14363 /* ./parser//parser_prod.nit:2653 */
14364 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2653);
14365 }
14366 /* ./parser//parser_prod.nit:2655 */
14367 goto label1;
14368 }
14369 label1: while(0);
14370 stack_frame_head = fra.me.prev;
14371 return;
14372 }
14373 void parser___parser_prod___AGtMethid___visit_all(val_t p0, val_t p1){
14374 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14375 val_t REGB0;
14376 val_t tmp;
14377 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14378 fra.me.file = LOCATE_parser___parser_prod;
14379 fra.me.line = 2659;
14380 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___visit_all;
14381 fra.me.has_broke = 0;
14382 fra.me.REG_size = 2;
14383 fra.me.nitni_local_ref_head = NULL;
14384 fra.me.REG[0] = NIT_NULL;
14385 fra.me.REG[1] = NIT_NULL;
14386 fra.me.REG[0] = p0;
14387 fra.me.REG[1] = p1;
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[0] = ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0]);
14395 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14396 stack_frame_head = fra.me.prev;
14397 return;
14398 }
14399 void parser___parser_prod___ALlMethid___empty_init(val_t p0, int* init_table){
14400 int itpos85 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlMethid].i;
14401 struct {struct stack_frame_t me;} fra;
14402 val_t tmp;
14403 if (init_table[itpos85]) return;
14404 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14405 fra.me.file = LOCATE_parser___parser_prod;
14406 fra.me.line = 2665;
14407 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___empty_init;
14408 fra.me.has_broke = 0;
14409 fra.me.REG_size = 1;
14410 fra.me.nitni_local_ref_head = NULL;
14411 fra.me.REG[0] = NIT_NULL;
14412 fra.me.REG[0] = p0;
14413 stack_frame_head = fra.me.prev;
14414 init_table[itpos85] = 1;
14415 return;
14416 }
14417 void parser___parser_prod___ALlMethid___init_allmethid(val_t p0, val_t p1, int* init_table){
14418 int itpos86 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlMethid].i;
14419 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14420 val_t REGB0;
14421 val_t tmp;
14422 if (init_table[itpos86]) return;
14423 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14424 fra.me.file = LOCATE_parser___parser_prod;
14425 fra.me.line = 2667;
14426 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___init_allmethid;
14427 fra.me.has_broke = 0;
14428 fra.me.REG_size = 3;
14429 fra.me.nitni_local_ref_head = NULL;
14430 fra.me.REG[0] = NIT_NULL;
14431 fra.me.REG[1] = NIT_NULL;
14432 fra.me.REG[2] = NIT_NULL;
14433 fra.me.REG[0] = p0;
14434 fra.me.REG[1] = p1;
14435 /* ./parser//parser_prod.nit:2667 */
14436 fra.me.REG[2] = fra.me.REG[0];
14437 /* ./parser//parser_prod.nit:2671 */
14438 CALL_parser___parser_prod___ALlMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14439 /* ./parser//parser_prod.nit:2672 */
14440 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14441 if (UNTAG_Bool(REGB0)) {
14442 } else {
14443 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2672);
14444 }
14445 ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[2]) = fra.me.REG[1];
14446 /* ./parser//parser_prod.nit:2673 */
14447 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14448 if (UNTAG_Bool(REGB0)) {
14449 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2673);
14450 }
14451 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14452 stack_frame_head = fra.me.prev;
14453 init_table[itpos86] = 1;
14454 return;
14455 }
14456 void parser___parser_prod___ALlMethid___replace_child(val_t p0, val_t p1, val_t p2){
14457 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14458 val_t REGB0;
14459 val_t REGB1;
14460 val_t tmp;
14461 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14462 fra.me.file = LOCATE_parser___parser_prod;
14463 fra.me.line = 2676;
14464 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___replace_child;
14465 fra.me.has_broke = 0;
14466 fra.me.REG_size = 4;
14467 fra.me.nitni_local_ref_head = NULL;
14468 fra.me.REG[0] = NIT_NULL;
14469 fra.me.REG[1] = NIT_NULL;
14470 fra.me.REG[2] = NIT_NULL;
14471 fra.me.REG[3] = NIT_NULL;
14472 fra.me.REG[0] = p0;
14473 fra.me.REG[1] = p1;
14474 fra.me.REG[2] = p2;
14475 /* ./parser//parser_prod.nit:2678 */
14476 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0])!=NIT_NULL);
14477 if (UNTAG_Bool(REGB0)) {
14478 } else {
14479 nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser___parser_prod, 2678);
14480 }
14481 fra.me.REG[3] = ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]);
14482 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14483 if (UNTAG_Bool(REGB0)) {
14484 } else {
14485 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14486 REGB0 = REGB1;
14487 }
14488 if (UNTAG_Bool(REGB0)) {
14489 /* ./parser//parser_prod.nit:2679 */
14490 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14491 if (UNTAG_Bool(REGB0)) {
14492 } else {
14493 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14494 if (UNTAG_Bool(REGB1)) {
14495 REGB1 = TAG_Bool(false);
14496 REGB0 = REGB1;
14497 } else {
14498 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14499 REGB0 = REGB1;
14500 }
14501 }
14502 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14503 if (UNTAG_Bool(REGB0)) {
14504 /* ./parser//parser_prod.nit:2680 */
14505 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14506 if (UNTAG_Bool(REGB0)) {
14507 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2680);
14508 }
14509 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14510 /* ./parser//parser_prod.nit:2681 */
14511 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*/;
14512 if (UNTAG_Bool(REGB0)) {
14513 } else {
14514 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2681);
14515 }
14516 /* ./parser//parser_prod.nit:2682 */
14517 ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]) = fra.me.REG[2];
14518 } else {
14519 /* ./parser//parser_prod.nit:2684 */
14520 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2684);
14521 }
14522 /* ./parser//parser_prod.nit:2686 */
14523 goto label1;
14524 }
14525 label1: while(0);
14526 stack_frame_head = fra.me.prev;
14527 return;
14528 }
14529 void parser___parser_prod___ALlMethid___visit_all(val_t p0, val_t p1){
14530 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14531 val_t REGB0;
14532 val_t tmp;
14533 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14534 fra.me.file = LOCATE_parser___parser_prod;
14535 fra.me.line = 2690;
14536 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___visit_all;
14537 fra.me.has_broke = 0;
14538 fra.me.REG_size = 2;
14539 fra.me.nitni_local_ref_head = NULL;
14540 fra.me.REG[0] = NIT_NULL;
14541 fra.me.REG[1] = NIT_NULL;
14542 fra.me.REG[0] = p0;
14543 fra.me.REG[1] = p1;
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[0] = ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]);
14551 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14552 stack_frame_head = fra.me.prev;
14553 return;
14554 }
14555 void parser___parser_prod___AGgMethid___empty_init(val_t p0, int* init_table){
14556 int itpos87 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgMethid].i;
14557 struct {struct stack_frame_t me;} fra;
14558 val_t tmp;
14559 if (init_table[itpos87]) return;
14560 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14561 fra.me.file = LOCATE_parser___parser_prod;
14562 fra.me.line = 2696;
14563 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___empty_init;
14564 fra.me.has_broke = 0;
14565 fra.me.REG_size = 1;
14566 fra.me.nitni_local_ref_head = NULL;
14567 fra.me.REG[0] = NIT_NULL;
14568 fra.me.REG[0] = p0;
14569 stack_frame_head = fra.me.prev;
14570 init_table[itpos87] = 1;
14571 return;
14572 }
14573 void parser___parser_prod___AGgMethid___init_aggmethid(val_t p0, val_t p1, int* init_table){
14574 int itpos88 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgMethid].i;
14575 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14576 val_t REGB0;
14577 val_t tmp;
14578 if (init_table[itpos88]) return;
14579 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14580 fra.me.file = LOCATE_parser___parser_prod;
14581 fra.me.line = 2698;
14582 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___init_aggmethid;
14583 fra.me.has_broke = 0;
14584 fra.me.REG_size = 3;
14585 fra.me.nitni_local_ref_head = NULL;
14586 fra.me.REG[0] = NIT_NULL;
14587 fra.me.REG[1] = NIT_NULL;
14588 fra.me.REG[2] = NIT_NULL;
14589 fra.me.REG[0] = p0;
14590 fra.me.REG[1] = p1;
14591 /* ./parser//parser_prod.nit:2698 */
14592 fra.me.REG[2] = fra.me.REG[0];
14593 /* ./parser//parser_prod.nit:2702 */
14594 CALL_parser___parser_prod___AGgMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14595 /* ./parser//parser_prod.nit:2703 */
14596 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14597 if (UNTAG_Bool(REGB0)) {
14598 } else {
14599 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2703);
14600 }
14601 ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[2]) = fra.me.REG[1];
14602 /* ./parser//parser_prod.nit:2704 */
14603 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14604 if (UNTAG_Bool(REGB0)) {
14605 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2704);
14606 }
14607 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14608 stack_frame_head = fra.me.prev;
14609 init_table[itpos88] = 1;
14610 return;
14611 }
14612 void parser___parser_prod___AGgMethid___replace_child(val_t p0, val_t p1, val_t p2){
14613 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14614 val_t REGB0;
14615 val_t REGB1;
14616 val_t tmp;
14617 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14618 fra.me.file = LOCATE_parser___parser_prod;
14619 fra.me.line = 2707;
14620 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___replace_child;
14621 fra.me.has_broke = 0;
14622 fra.me.REG_size = 4;
14623 fra.me.nitni_local_ref_head = NULL;
14624 fra.me.REG[0] = NIT_NULL;
14625 fra.me.REG[1] = NIT_NULL;
14626 fra.me.REG[2] = NIT_NULL;
14627 fra.me.REG[3] = NIT_NULL;
14628 fra.me.REG[0] = p0;
14629 fra.me.REG[1] = p1;
14630 fra.me.REG[2] = p2;
14631 /* ./parser//parser_prod.nit:2709 */
14632 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0])!=NIT_NULL);
14633 if (UNTAG_Bool(REGB0)) {
14634 } else {
14635 nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser___parser_prod, 2709);
14636 }
14637 fra.me.REG[3] = ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]);
14638 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14639 if (UNTAG_Bool(REGB0)) {
14640 } else {
14641 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14642 REGB0 = REGB1;
14643 }
14644 if (UNTAG_Bool(REGB0)) {
14645 /* ./parser//parser_prod.nit:2710 */
14646 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14647 if (UNTAG_Bool(REGB0)) {
14648 } else {
14649 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14650 if (UNTAG_Bool(REGB1)) {
14651 REGB1 = TAG_Bool(false);
14652 REGB0 = REGB1;
14653 } else {
14654 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14655 REGB0 = REGB1;
14656 }
14657 }
14658 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14659 if (UNTAG_Bool(REGB0)) {
14660 /* ./parser//parser_prod.nit:2711 */
14661 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14662 if (UNTAG_Bool(REGB0)) {
14663 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2711);
14664 }
14665 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14666 /* ./parser//parser_prod.nit:2712 */
14667 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*/;
14668 if (UNTAG_Bool(REGB0)) {
14669 } else {
14670 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2712);
14671 }
14672 /* ./parser//parser_prod.nit:2713 */
14673 ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]) = fra.me.REG[2];
14674 } else {
14675 /* ./parser//parser_prod.nit:2715 */
14676 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2715);
14677 }
14678 /* ./parser//parser_prod.nit:2717 */
14679 goto label1;
14680 }
14681 label1: while(0);
14682 stack_frame_head = fra.me.prev;
14683 return;
14684 }
14685 void parser___parser_prod___AGgMethid___visit_all(val_t p0, val_t p1){
14686 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14687 val_t REGB0;
14688 val_t tmp;
14689 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14690 fra.me.file = LOCATE_parser___parser_prod;
14691 fra.me.line = 2721;
14692 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___visit_all;
14693 fra.me.has_broke = 0;
14694 fra.me.REG_size = 2;
14695 fra.me.nitni_local_ref_head = NULL;
14696 fra.me.REG[0] = NIT_NULL;
14697 fra.me.REG[1] = NIT_NULL;
14698 fra.me.REG[0] = p0;
14699 fra.me.REG[1] = p1;
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[0] = ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]);
14707 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14708 stack_frame_head = fra.me.prev;
14709 return;
14710 }
14711 void parser___parser_prod___ABraMethid___empty_init(val_t p0, int* init_table){
14712 int itpos89 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraMethid].i;
14713 struct {struct stack_frame_t me;} fra;
14714 val_t tmp;
14715 if (init_table[itpos89]) return;
14716 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14717 fra.me.file = LOCATE_parser___parser_prod;
14718 fra.me.line = 2727;
14719 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___empty_init;
14720 fra.me.has_broke = 0;
14721 fra.me.REG_size = 1;
14722 fra.me.nitni_local_ref_head = NULL;
14723 fra.me.REG[0] = NIT_NULL;
14724 fra.me.REG[0] = p0;
14725 stack_frame_head = fra.me.prev;
14726 init_table[itpos89] = 1;
14727 return;
14728 }
14729 void parser___parser_prod___ABraMethid___init_abramethid(val_t p0, val_t p1, val_t p2, int* init_table){
14730 int itpos90 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraMethid].i;
14731 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14732 val_t REGB0;
14733 val_t tmp;
14734 if (init_table[itpos90]) return;
14735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14736 fra.me.file = LOCATE_parser___parser_prod;
14737 fra.me.line = 2729;
14738 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___init_abramethid;
14739 fra.me.has_broke = 0;
14740 fra.me.REG_size = 4;
14741 fra.me.nitni_local_ref_head = NULL;
14742 fra.me.REG[0] = NIT_NULL;
14743 fra.me.REG[1] = NIT_NULL;
14744 fra.me.REG[2] = NIT_NULL;
14745 fra.me.REG[3] = NIT_NULL;
14746 fra.me.REG[0] = p0;
14747 fra.me.REG[1] = p1;
14748 fra.me.REG[2] = p2;
14749 /* ./parser//parser_prod.nit:2729 */
14750 fra.me.REG[3] = fra.me.REG[0];
14751 /* ./parser//parser_prod.nit:2734 */
14752 CALL_parser___parser_prod___ABraMethid___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
14753 /* ./parser//parser_prod.nit:2735 */
14754 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14755 if (UNTAG_Bool(REGB0)) {
14756 } else {
14757 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2735);
14758 }
14759 ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[3]) = fra.me.REG[1];
14760 /* ./parser//parser_prod.nit:2736 */
14761 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14762 if (UNTAG_Bool(REGB0)) {
14763 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2736);
14764 }
14765 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14766 /* ./parser//parser_prod.nit:2737 */
14767 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
14768 if (UNTAG_Bool(REGB0)) {
14769 } else {
14770 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2737);
14771 }
14772 ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[3]) = fra.me.REG[2];
14773 /* ./parser//parser_prod.nit:2738 */
14774 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14775 if (UNTAG_Bool(REGB0)) {
14776 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2738);
14777 }
14778 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14779 stack_frame_head = fra.me.prev;
14780 init_table[itpos90] = 1;
14781 return;
14782 }
14783 void parser___parser_prod___ABraMethid___replace_child(val_t p0, val_t p1, val_t p2){
14784 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14785 val_t REGB0;
14786 val_t REGB1;
14787 val_t tmp;
14788 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14789 fra.me.file = LOCATE_parser___parser_prod;
14790 fra.me.line = 2741;
14791 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___replace_child;
14792 fra.me.has_broke = 0;
14793 fra.me.REG_size = 4;
14794 fra.me.nitni_local_ref_head = NULL;
14795 fra.me.REG[0] = NIT_NULL;
14796 fra.me.REG[1] = NIT_NULL;
14797 fra.me.REG[2] = NIT_NULL;
14798 fra.me.REG[3] = NIT_NULL;
14799 fra.me.REG[0] = p0;
14800 fra.me.REG[1] = p1;
14801 fra.me.REG[2] = p2;
14802 /* ./parser//parser_prod.nit:2743 */
14803 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
14804 if (UNTAG_Bool(REGB0)) {
14805 } else {
14806 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2743);
14807 }
14808 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]);
14809 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14810 if (UNTAG_Bool(REGB0)) {
14811 } else {
14812 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14813 REGB0 = REGB1;
14814 }
14815 if (UNTAG_Bool(REGB0)) {
14816 /* ./parser//parser_prod.nit:2744 */
14817 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14818 if (UNTAG_Bool(REGB0)) {
14819 } else {
14820 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14821 if (UNTAG_Bool(REGB1)) {
14822 REGB1 = TAG_Bool(false);
14823 REGB0 = REGB1;
14824 } else {
14825 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14826 REGB0 = REGB1;
14827 }
14828 }
14829 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14830 if (UNTAG_Bool(REGB0)) {
14831 /* ./parser//parser_prod.nit:2745 */
14832 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14833 if (UNTAG_Bool(REGB0)) {
14834 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2745);
14835 }
14836 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14837 /* ./parser//parser_prod.nit:2746 */
14838 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*/;
14839 if (UNTAG_Bool(REGB0)) {
14840 } else {
14841 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2746);
14842 }
14843 /* ./parser//parser_prod.nit:2747 */
14844 ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]) = fra.me.REG[2];
14845 } else {
14846 /* ./parser//parser_prod.nit:2749 */
14847 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2749);
14848 }
14849 /* ./parser//parser_prod.nit:2751 */
14850 goto label1;
14851 }
14852 /* ./parser//parser_prod.nit:2753 */
14853 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
14854 if (UNTAG_Bool(REGB0)) {
14855 } else {
14856 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2753);
14857 }
14858 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]);
14859 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14860 if (UNTAG_Bool(REGB0)) {
14861 } else {
14862 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14863 REGB0 = REGB1;
14864 }
14865 if (UNTAG_Bool(REGB0)) {
14866 /* ./parser//parser_prod.nit:2754 */
14867 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14868 if (UNTAG_Bool(REGB0)) {
14869 } else {
14870 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14871 if (UNTAG_Bool(REGB1)) {
14872 REGB1 = TAG_Bool(false);
14873 REGB0 = REGB1;
14874 } else {
14875 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14876 REGB0 = REGB1;
14877 }
14878 }
14879 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14880 if (UNTAG_Bool(REGB0)) {
14881 /* ./parser//parser_prod.nit:2755 */
14882 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14883 if (UNTAG_Bool(REGB0)) {
14884 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2755);
14885 }
14886 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14887 /* ./parser//parser_prod.nit:2756 */
14888 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*/;
14889 if (UNTAG_Bool(REGB0)) {
14890 } else {
14891 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2756);
14892 }
14893 /* ./parser//parser_prod.nit:2757 */
14894 ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
14895 } else {
14896 /* ./parser//parser_prod.nit:2759 */
14897 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2759);
14898 }
14899 /* ./parser//parser_prod.nit:2761 */
14900 goto label1;
14901 }
14902 label1: while(0);
14903 stack_frame_head = fra.me.prev;
14904 return;
14905 }
14906 void parser___parser_prod___ABraMethid___visit_all(val_t p0, val_t p1){
14907 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14908 val_t REGB0;
14909 val_t tmp;
14910 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14911 fra.me.file = LOCATE_parser___parser_prod;
14912 fra.me.line = 2765;
14913 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___visit_all;
14914 fra.me.has_broke = 0;
14915 fra.me.REG_size = 3;
14916 fra.me.nitni_local_ref_head = NULL;
14917 fra.me.REG[0] = NIT_NULL;
14918 fra.me.REG[1] = NIT_NULL;
14919 fra.me.REG[2] = NIT_NULL;
14920 fra.me.REG[0] = p0;
14921 fra.me.REG[1] = p1;
14922 /* ./parser//parser_prod.nit:2767 */
14923 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
14924 if (UNTAG_Bool(REGB0)) {
14925 } else {
14926 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2767);
14927 }
14928 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]);
14929 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14930 /* ./parser//parser_prod.nit:2768 */
14931 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
14932 if (UNTAG_Bool(REGB0)) {
14933 } else {
14934 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2768);
14935 }
14936 fra.me.REG[0] = ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]);
14937 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14938 stack_frame_head = fra.me.prev;
14939 return;
14940 }
14941 void parser___parser_prod___AStarshipMethid___empty_init(val_t p0, int* init_table){
14942 int itpos91 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipMethid].i;
14943 struct {struct stack_frame_t me;} fra;
14944 val_t tmp;
14945 if (init_table[itpos91]) return;
14946 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14947 fra.me.file = LOCATE_parser___parser_prod;
14948 fra.me.line = 2772;
14949 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___empty_init;
14950 fra.me.has_broke = 0;
14951 fra.me.REG_size = 1;
14952 fra.me.nitni_local_ref_head = NULL;
14953 fra.me.REG[0] = NIT_NULL;
14954 fra.me.REG[0] = p0;
14955 stack_frame_head = fra.me.prev;
14956 init_table[itpos91] = 1;
14957 return;
14958 }
14959 void parser___parser_prod___AStarshipMethid___init_astarshipmethid(val_t p0, val_t p1, int* init_table){
14960 int itpos92 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipMethid].i;
14961 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14962 val_t REGB0;
14963 val_t tmp;
14964 if (init_table[itpos92]) return;
14965 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14966 fra.me.file = LOCATE_parser___parser_prod;
14967 fra.me.line = 2774;
14968 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___init_astarshipmethid;
14969 fra.me.has_broke = 0;
14970 fra.me.REG_size = 3;
14971 fra.me.nitni_local_ref_head = NULL;
14972 fra.me.REG[0] = NIT_NULL;
14973 fra.me.REG[1] = NIT_NULL;
14974 fra.me.REG[2] = NIT_NULL;
14975 fra.me.REG[0] = p0;
14976 fra.me.REG[1] = p1;
14977 /* ./parser//parser_prod.nit:2774 */
14978 fra.me.REG[2] = fra.me.REG[0];
14979 /* ./parser//parser_prod.nit:2778 */
14980 CALL_parser___parser_prod___AStarshipMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14981 /* ./parser//parser_prod.nit:2779 */
14982 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14983 if (UNTAG_Bool(REGB0)) {
14984 } else {
14985 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2779);
14986 }
14987 ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[2]) = fra.me.REG[1];
14988 /* ./parser//parser_prod.nit:2780 */
14989 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14990 if (UNTAG_Bool(REGB0)) {
14991 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2780);
14992 }
14993 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14994 stack_frame_head = fra.me.prev;
14995 init_table[itpos92] = 1;
14996 return;
14997 }
14998 void parser___parser_prod___AStarshipMethid___replace_child(val_t p0, val_t p1, val_t p2){
14999 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15000 val_t REGB0;
15001 val_t REGB1;
15002 val_t tmp;
15003 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15004 fra.me.file = LOCATE_parser___parser_prod;
15005 fra.me.line = 2783;
15006 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___replace_child;
15007 fra.me.has_broke = 0;
15008 fra.me.REG_size = 4;
15009 fra.me.nitni_local_ref_head = NULL;
15010 fra.me.REG[0] = NIT_NULL;
15011 fra.me.REG[1] = NIT_NULL;
15012 fra.me.REG[2] = NIT_NULL;
15013 fra.me.REG[3] = NIT_NULL;
15014 fra.me.REG[0] = p0;
15015 fra.me.REG[1] = p1;
15016 fra.me.REG[2] = p2;
15017 /* ./parser//parser_prod.nit:2785 */
15018 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0])!=NIT_NULL);
15019 if (UNTAG_Bool(REGB0)) {
15020 } else {
15021 nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser___parser_prod, 2785);
15022 }
15023 fra.me.REG[3] = ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]);
15024 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15025 if (UNTAG_Bool(REGB0)) {
15026 } else {
15027 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15028 REGB0 = REGB1;
15029 }
15030 if (UNTAG_Bool(REGB0)) {
15031 /* ./parser//parser_prod.nit:2786 */
15032 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15033 if (UNTAG_Bool(REGB0)) {
15034 } else {
15035 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15036 if (UNTAG_Bool(REGB1)) {
15037 REGB1 = TAG_Bool(false);
15038 REGB0 = REGB1;
15039 } else {
15040 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15041 REGB0 = REGB1;
15042 }
15043 }
15044 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15045 if (UNTAG_Bool(REGB0)) {
15046 /* ./parser//parser_prod.nit:2787 */
15047 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15048 if (UNTAG_Bool(REGB0)) {
15049 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2787);
15050 }
15051 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15052 /* ./parser//parser_prod.nit:2788 */
15053 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*/;
15054 if (UNTAG_Bool(REGB0)) {
15055 } else {
15056 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2788);
15057 }
15058 /* ./parser//parser_prod.nit:2789 */
15059 ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]) = fra.me.REG[2];
15060 } else {
15061 /* ./parser//parser_prod.nit:2791 */
15062 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2791);
15063 }
15064 /* ./parser//parser_prod.nit:2793 */
15065 goto label1;
15066 }
15067 label1: while(0);
15068 stack_frame_head = fra.me.prev;
15069 return;
15070 }
15071 void parser___parser_prod___AStarshipMethid___visit_all(val_t p0, val_t p1){
15072 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15073 val_t REGB0;
15074 val_t tmp;
15075 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15076 fra.me.file = LOCATE_parser___parser_prod;
15077 fra.me.line = 2797;
15078 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___visit_all;
15079 fra.me.has_broke = 0;
15080 fra.me.REG_size = 2;
15081 fra.me.nitni_local_ref_head = NULL;
15082 fra.me.REG[0] = NIT_NULL;
15083 fra.me.REG[1] = NIT_NULL;
15084 fra.me.REG[0] = p0;
15085 fra.me.REG[1] = p1;
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[0] = ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]);
15093 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15094 stack_frame_head = fra.me.prev;
15095 return;
15096 }
15097 void parser___parser_prod___AAssignMethid___empty_init(val_t p0, int* init_table){
15098 int itpos93 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssignMethid].i;
15099 struct {struct stack_frame_t me;} fra;
15100 val_t tmp;
15101 if (init_table[itpos93]) return;
15102 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15103 fra.me.file = LOCATE_parser___parser_prod;
15104 fra.me.line = 2803;
15105 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___empty_init;
15106 fra.me.has_broke = 0;
15107 fra.me.REG_size = 1;
15108 fra.me.nitni_local_ref_head = NULL;
15109 fra.me.REG[0] = NIT_NULL;
15110 fra.me.REG[0] = p0;
15111 stack_frame_head = fra.me.prev;
15112 init_table[itpos93] = 1;
15113 return;
15114 }
15115 void parser___parser_prod___AAssignMethid___init_aassignmethid(val_t p0, val_t p1, val_t p2, int* init_table){
15116 int itpos94 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssignMethid].i;
15117 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15118 val_t REGB0;
15119 val_t tmp;
15120 if (init_table[itpos94]) return;
15121 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15122 fra.me.file = LOCATE_parser___parser_prod;
15123 fra.me.line = 2805;
15124 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___init_aassignmethid;
15125 fra.me.has_broke = 0;
15126 fra.me.REG_size = 4;
15127 fra.me.nitni_local_ref_head = NULL;
15128 fra.me.REG[0] = NIT_NULL;
15129 fra.me.REG[1] = NIT_NULL;
15130 fra.me.REG[2] = NIT_NULL;
15131 fra.me.REG[3] = NIT_NULL;
15132 fra.me.REG[0] = p0;
15133 fra.me.REG[1] = p1;
15134 fra.me.REG[2] = p2;
15135 /* ./parser//parser_prod.nit:2805 */
15136 fra.me.REG[3] = fra.me.REG[0];
15137 /* ./parser//parser_prod.nit:2810 */
15138 CALL_parser___parser_prod___AAssignMethid___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
15139 /* ./parser//parser_prod.nit:2811 */
15140 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
15141 if (UNTAG_Bool(REGB0)) {
15142 } else {
15143 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2811);
15144 }
15145 ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[3]) = fra.me.REG[1];
15146 /* ./parser//parser_prod.nit:2812 */
15147 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15148 if (UNTAG_Bool(REGB0)) {
15149 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2812);
15150 }
15151 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15152 /* ./parser//parser_prod.nit:2813 */
15153 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
15154 if (UNTAG_Bool(REGB0)) {
15155 } else {
15156 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2813);
15157 }
15158 ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[3]) = fra.me.REG[2];
15159 /* ./parser//parser_prod.nit:2814 */
15160 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15161 if (UNTAG_Bool(REGB0)) {
15162 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2814);
15163 }
15164 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
15165 stack_frame_head = fra.me.prev;
15166 init_table[itpos94] = 1;
15167 return;
15168 }
15169 void parser___parser_prod___AAssignMethid___replace_child(val_t p0, val_t p1, val_t p2){
15170 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15171 val_t REGB0;
15172 val_t REGB1;
15173 val_t tmp;
15174 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15175 fra.me.file = LOCATE_parser___parser_prod;
15176 fra.me.line = 2817;
15177 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___replace_child;
15178 fra.me.has_broke = 0;
15179 fra.me.REG_size = 4;
15180 fra.me.nitni_local_ref_head = NULL;
15181 fra.me.REG[0] = NIT_NULL;
15182 fra.me.REG[1] = NIT_NULL;
15183 fra.me.REG[2] = NIT_NULL;
15184 fra.me.REG[3] = NIT_NULL;
15185 fra.me.REG[0] = p0;
15186 fra.me.REG[1] = p1;
15187 fra.me.REG[2] = p2;
15188 /* ./parser//parser_prod.nit:2819 */
15189 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0])!=NIT_NULL);
15190 if (UNTAG_Bool(REGB0)) {
15191 } else {
15192 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2819);
15193 }
15194 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]);
15195 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15196 if (UNTAG_Bool(REGB0)) {
15197 } else {
15198 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15199 REGB0 = REGB1;
15200 }
15201 if (UNTAG_Bool(REGB0)) {
15202 /* ./parser//parser_prod.nit:2820 */
15203 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15204 if (UNTAG_Bool(REGB0)) {
15205 } else {
15206 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15207 if (UNTAG_Bool(REGB1)) {
15208 REGB1 = TAG_Bool(false);
15209 REGB0 = REGB1;
15210 } else {
15211 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15212 REGB0 = REGB1;
15213 }
15214 }
15215 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15216 if (UNTAG_Bool(REGB0)) {
15217 /* ./parser//parser_prod.nit:2821 */
15218 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15219 if (UNTAG_Bool(REGB0)) {
15220 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2821);
15221 }
15222 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15223 /* ./parser//parser_prod.nit:2822 */
15224 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*/;
15225 if (UNTAG_Bool(REGB0)) {
15226 } else {
15227 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2822);
15228 }
15229 /* ./parser//parser_prod.nit:2823 */
15230 ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]) = fra.me.REG[2];
15231 } else {
15232 /* ./parser//parser_prod.nit:2825 */
15233 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2825);
15234 }
15235 /* ./parser//parser_prod.nit:2827 */
15236 goto label1;
15237 }
15238 /* ./parser//parser_prod.nit:2829 */
15239 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
15240 if (UNTAG_Bool(REGB0)) {
15241 } else {
15242 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2829);
15243 }
15244 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]);
15245 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15246 if (UNTAG_Bool(REGB0)) {
15247 } else {
15248 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15249 REGB0 = REGB1;
15250 }
15251 if (UNTAG_Bool(REGB0)) {
15252 /* ./parser//parser_prod.nit:2830 */
15253 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15254 if (UNTAG_Bool(REGB0)) {
15255 } else {
15256 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15257 if (UNTAG_Bool(REGB1)) {
15258 REGB1 = TAG_Bool(false);
15259 REGB0 = REGB1;
15260 } else {
15261 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15262 REGB0 = REGB1;
15263 }
15264 }
15265 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15266 if (UNTAG_Bool(REGB0)) {
15267 /* ./parser//parser_prod.nit:2831 */
15268 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15269 if (UNTAG_Bool(REGB0)) {
15270 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2831);
15271 }
15272 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15273 /* ./parser//parser_prod.nit:2832 */
15274 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*/;
15275 if (UNTAG_Bool(REGB0)) {
15276 } else {
15277 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2832);
15278 }
15279 /* ./parser//parser_prod.nit:2833 */
15280 ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[2];
15281 } else {
15282 /* ./parser//parser_prod.nit:2835 */
15283 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2835);
15284 }
15285 /* ./parser//parser_prod.nit:2837 */
15286 goto label1;
15287 }
15288 label1: while(0);
15289 stack_frame_head = fra.me.prev;
15290 return;
15291 }
15292 void parser___parser_prod___AAssignMethid___visit_all(val_t p0, val_t p1){
15293 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15294 val_t REGB0;
15295 val_t tmp;
15296 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15297 fra.me.file = LOCATE_parser___parser_prod;
15298 fra.me.line = 2841;
15299 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___visit_all;
15300 fra.me.has_broke = 0;
15301 fra.me.REG_size = 3;
15302 fra.me.nitni_local_ref_head = NULL;
15303 fra.me.REG[0] = NIT_NULL;
15304 fra.me.REG[1] = NIT_NULL;
15305 fra.me.REG[2] = NIT_NULL;
15306 fra.me.REG[0] = p0;
15307 fra.me.REG[1] = p1;
15308 /* ./parser//parser_prod.nit:2843 */
15309 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0])!=NIT_NULL);
15310 if (UNTAG_Bool(REGB0)) {
15311 } else {
15312 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2843);
15313 }
15314 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]);
15315 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15316 /* ./parser//parser_prod.nit:2844 */
15317 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
15318 if (UNTAG_Bool(REGB0)) {
15319 } else {
15320 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2844);
15321 }
15322 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]);
15323 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15324 stack_frame_head = fra.me.prev;
15325 return;
15326 }
15327 void parser___parser_prod___ABraassignMethid___empty_init(val_t p0, int* init_table){
15328 int itpos95 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraassignMethid].i;
15329 struct {struct stack_frame_t me;} fra;
15330 val_t tmp;
15331 if (init_table[itpos95]) return;
15332 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15333 fra.me.file = LOCATE_parser___parser_prod;
15334 fra.me.line = 2848;
15335 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___empty_init;
15336 fra.me.has_broke = 0;
15337 fra.me.REG_size = 1;
15338 fra.me.nitni_local_ref_head = NULL;
15339 fra.me.REG[0] = NIT_NULL;
15340 fra.me.REG[0] = p0;
15341 stack_frame_head = fra.me.prev;
15342 init_table[itpos95] = 1;
15343 return;
15344 }
15345 void parser___parser_prod___ABraassignMethid___init_abraassignmethid(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
15346 int itpos96 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraassignMethid].i;
15347 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
15348 val_t REGB0;
15349 val_t tmp;
15350 if (init_table[itpos96]) return;
15351 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15352 fra.me.file = LOCATE_parser___parser_prod;
15353 fra.me.line = 2850;
15354 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___init_abraassignmethid;
15355 fra.me.has_broke = 0;
15356 fra.me.REG_size = 5;
15357 fra.me.nitni_local_ref_head = NULL;
15358 fra.me.REG[0] = NIT_NULL;
15359 fra.me.REG[1] = NIT_NULL;
15360 fra.me.REG[2] = NIT_NULL;
15361 fra.me.REG[3] = NIT_NULL;
15362 fra.me.REG[4] = NIT_NULL;
15363 fra.me.REG[0] = p0;
15364 fra.me.REG[1] = p1;
15365 fra.me.REG[2] = p2;
15366 fra.me.REG[3] = p3;
15367 /* ./parser//parser_prod.nit:2850 */
15368 fra.me.REG[4] = fra.me.REG[0];
15369 /* ./parser//parser_prod.nit:2856 */
15370 CALL_parser___parser_prod___ABraassignMethid___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
15371 /* ./parser//parser_prod.nit:2857 */
15372 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
15373 if (UNTAG_Bool(REGB0)) {
15374 } else {
15375 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2857);
15376 }
15377 ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[4]) = fra.me.REG[1];
15378 /* ./parser//parser_prod.nit:2858 */
15379 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15380 if (UNTAG_Bool(REGB0)) {
15381 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2858);
15382 }
15383 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15384 /* ./parser//parser_prod.nit:2859 */
15385 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
15386 if (UNTAG_Bool(REGB0)) {
15387 } else {
15388 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2859);
15389 }
15390 ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[4]) = fra.me.REG[2];
15391 /* ./parser//parser_prod.nit:2860 */
15392 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15393 if (UNTAG_Bool(REGB0)) {
15394 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2860);
15395 }
15396 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15397 /* ./parser//parser_prod.nit:2861 */
15398 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
15399 if (UNTAG_Bool(REGB0)) {
15400 } else {
15401 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2861);
15402 }
15403 ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[4]) = fra.me.REG[3];
15404 /* ./parser//parser_prod.nit:2862 */
15405 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15406 if (UNTAG_Bool(REGB0)) {
15407 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2862);
15408 }
15409 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15410 stack_frame_head = fra.me.prev;
15411 init_table[itpos96] = 1;
15412 return;
15413 }
15414 void parser___parser_prod___ABraassignMethid___replace_child(val_t p0, val_t p1, val_t p2){
15415 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15416 val_t REGB0;
15417 val_t REGB1;
15418 val_t tmp;
15419 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15420 fra.me.file = LOCATE_parser___parser_prod;
15421 fra.me.line = 2865;
15422 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___replace_child;
15423 fra.me.has_broke = 0;
15424 fra.me.REG_size = 4;
15425 fra.me.nitni_local_ref_head = NULL;
15426 fra.me.REG[0] = NIT_NULL;
15427 fra.me.REG[1] = NIT_NULL;
15428 fra.me.REG[2] = NIT_NULL;
15429 fra.me.REG[3] = NIT_NULL;
15430 fra.me.REG[0] = p0;
15431 fra.me.REG[1] = p1;
15432 fra.me.REG[2] = p2;
15433 /* ./parser//parser_prod.nit:2867 */
15434 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
15435 if (UNTAG_Bool(REGB0)) {
15436 } else {
15437 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2867);
15438 }
15439 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]);
15440 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15441 if (UNTAG_Bool(REGB0)) {
15442 } else {
15443 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15444 REGB0 = REGB1;
15445 }
15446 if (UNTAG_Bool(REGB0)) {
15447 /* ./parser//parser_prod.nit:2868 */
15448 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15449 if (UNTAG_Bool(REGB0)) {
15450 } else {
15451 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15452 if (UNTAG_Bool(REGB1)) {
15453 REGB1 = TAG_Bool(false);
15454 REGB0 = REGB1;
15455 } else {
15456 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15457 REGB0 = REGB1;
15458 }
15459 }
15460 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15461 if (UNTAG_Bool(REGB0)) {
15462 /* ./parser//parser_prod.nit:2869 */
15463 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15464 if (UNTAG_Bool(REGB0)) {
15465 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2869);
15466 }
15467 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15468 /* ./parser//parser_prod.nit:2870 */
15469 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*/;
15470 if (UNTAG_Bool(REGB0)) {
15471 } else {
15472 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2870);
15473 }
15474 /* ./parser//parser_prod.nit:2871 */
15475 ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]) = fra.me.REG[2];
15476 } else {
15477 /* ./parser//parser_prod.nit:2873 */
15478 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2873);
15479 }
15480 /* ./parser//parser_prod.nit:2875 */
15481 goto label1;
15482 }
15483 /* ./parser//parser_prod.nit:2877 */
15484 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
15485 if (UNTAG_Bool(REGB0)) {
15486 } else {
15487 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2877);
15488 }
15489 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]);
15490 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15491 if (UNTAG_Bool(REGB0)) {
15492 } else {
15493 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15494 REGB0 = REGB1;
15495 }
15496 if (UNTAG_Bool(REGB0)) {
15497 /* ./parser//parser_prod.nit:2878 */
15498 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15499 if (UNTAG_Bool(REGB0)) {
15500 } else {
15501 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15502 if (UNTAG_Bool(REGB1)) {
15503 REGB1 = TAG_Bool(false);
15504 REGB0 = REGB1;
15505 } else {
15506 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15507 REGB0 = REGB1;
15508 }
15509 }
15510 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15511 if (UNTAG_Bool(REGB0)) {
15512 /* ./parser//parser_prod.nit:2879 */
15513 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15514 if (UNTAG_Bool(REGB0)) {
15515 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2879);
15516 }
15517 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15518 /* ./parser//parser_prod.nit:2880 */
15519 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*/;
15520 if (UNTAG_Bool(REGB0)) {
15521 } else {
15522 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2880);
15523 }
15524 /* ./parser//parser_prod.nit:2881 */
15525 ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
15526 } else {
15527 /* ./parser//parser_prod.nit:2883 */
15528 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2883);
15529 }
15530 /* ./parser//parser_prod.nit:2885 */
15531 goto label1;
15532 }
15533 /* ./parser//parser_prod.nit:2887 */
15534 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
15535 if (UNTAG_Bool(REGB0)) {
15536 } else {
15537 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2887);
15538 }
15539 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]);
15540 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15541 if (UNTAG_Bool(REGB0)) {
15542 } else {
15543 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15544 REGB0 = REGB1;
15545 }
15546 if (UNTAG_Bool(REGB0)) {
15547 /* ./parser//parser_prod.nit:2888 */
15548 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15549 if (UNTAG_Bool(REGB0)) {
15550 } else {
15551 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15552 if (UNTAG_Bool(REGB1)) {
15553 REGB1 = TAG_Bool(false);
15554 REGB0 = REGB1;
15555 } else {
15556 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15557 REGB0 = REGB1;
15558 }
15559 }
15560 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15561 if (UNTAG_Bool(REGB0)) {
15562 /* ./parser//parser_prod.nit:2889 */
15563 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15564 if (UNTAG_Bool(REGB0)) {
15565 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2889);
15566 }
15567 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15568 /* ./parser//parser_prod.nit:2890 */
15569 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*/;
15570 if (UNTAG_Bool(REGB0)) {
15571 } else {
15572 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2890);
15573 }
15574 /* ./parser//parser_prod.nit:2891 */
15575 ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[2];
15576 } else {
15577 /* ./parser//parser_prod.nit:2893 */
15578 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2893);
15579 }
15580 /* ./parser//parser_prod.nit:2895 */
15581 goto label1;
15582 }
15583 label1: while(0);
15584 stack_frame_head = fra.me.prev;
15585 return;
15586 }
15587 void parser___parser_prod___ABraassignMethid___visit_all(val_t p0, val_t p1){
15588 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15589 val_t REGB0;
15590 val_t tmp;
15591 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15592 fra.me.file = LOCATE_parser___parser_prod;
15593 fra.me.line = 2899;
15594 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___visit_all;
15595 fra.me.has_broke = 0;
15596 fra.me.REG_size = 3;
15597 fra.me.nitni_local_ref_head = NULL;
15598 fra.me.REG[0] = NIT_NULL;
15599 fra.me.REG[1] = NIT_NULL;
15600 fra.me.REG[2] = NIT_NULL;
15601 fra.me.REG[0] = p0;
15602 fra.me.REG[1] = p1;
15603 /* ./parser//parser_prod.nit:2901 */
15604 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
15605 if (UNTAG_Bool(REGB0)) {
15606 } else {
15607 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2901);
15608 }
15609 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]);
15610 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15611 /* ./parser//parser_prod.nit:2902 */
15612 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
15613 if (UNTAG_Bool(REGB0)) {
15614 } else {
15615 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2902);
15616 }
15617 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]);
15618 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15619 /* ./parser//parser_prod.nit:2903 */
15620 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
15621 if (UNTAG_Bool(REGB0)) {
15622 } else {
15623 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2903);
15624 }
15625 fra.me.REG[0] = ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]);
15626 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15627 stack_frame_head = fra.me.prev;
15628 return;
15629 }
15630 void parser___parser_prod___ASignature___empty_init(val_t p0, int* init_table){
15631 int itpos97 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASignature].i;
15632 struct {struct stack_frame_t me;} fra;
15633 val_t tmp;
15634 if (init_table[itpos97]) return;
15635 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15636 fra.me.file = LOCATE_parser___parser_prod;
15637 fra.me.line = 2907;
15638 fra.me.meth = LOCATE_parser___parser_prod___ASignature___empty_init;
15639 fra.me.has_broke = 0;
15640 fra.me.REG_size = 1;
15641 fra.me.nitni_local_ref_head = NULL;
15642 fra.me.REG[0] = NIT_NULL;
15643 fra.me.REG[0] = p0;
15644 stack_frame_head = fra.me.prev;
15645 init_table[itpos97] = 1;
15646 return;
15647 }
15648 void parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
15649 int itpos98 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASignature].i;
15650 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15651 val_t REGB0;
15652 val_t REGB1;
15653 val_t tmp;
15654 if (init_table[itpos98]) return;
15655 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15656 fra.me.file = LOCATE_parser___parser_prod;
15657 fra.me.line = 2909;
15658 fra.me.meth = LOCATE_parser___parser_prod___ASignature___init_asignature;
15659 fra.me.has_broke = 0;
15660 fra.me.REG_size = 4;
15661 fra.me.nitni_local_ref_head = NULL;
15662 fra.me.REG[0] = NIT_NULL;
15663 fra.me.REG[1] = NIT_NULL;
15664 fra.me.REG[2] = NIT_NULL;
15665 fra.me.REG[3] = NIT_NULL;
15666 fra.me.REG[0] = p0;
15667 fra.me.REG[1] = p1;
15668 fra.me.REG[2] = p2;
15669 fra.me.REG[3] = p3;
15670 /* ./parser//parser_prod.nit:2915 */
15671 CALL_parser___parser_prod___ASignature___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
15672 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASignature___init_asignature_1));
15673 /* ./parser//parser_prod.nit:2921 */
15674 ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[2];
15675 /* ./parser//parser_prod.nit:2922 */
15676 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15677 if (UNTAG_Bool(REGB0)) {
15678 } else {
15679 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15680 if (UNTAG_Bool(REGB1)) {
15681 REGB1 = TAG_Bool(false);
15682 REGB0 = REGB1;
15683 } else {
15684 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15685 REGB0 = REGB1;
15686 }
15687 }
15688 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15689 if (UNTAG_Bool(REGB0)) {
15690 /* ./parser//parser_prod.nit:2923 */
15691 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15692 if (UNTAG_Bool(REGB0)) {
15693 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2923);
15694 }
15695 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15696 }
15697 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASignature___init_asignature_2));
15698 stack_frame_head = fra.me.prev;
15699 init_table[itpos98] = 1;
15700 return;
15701 }
15702 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){
15703 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15704 val_t REGB0;
15705 fun_t CREG[1];
15706 val_t tmp;
15707 /* ./parser//parser_prod.nit:2916 */
15708 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15709 fra.me.file = LOCATE_parser___parser_prod;
15710 fra.me.line = 0;
15711 fra.me.meth = LOCATE_parser___parser_prod___ASignature___init_asignature;
15712 fra.me.has_broke = 0;
15713 fra.me.REG_size = 2;
15714 fra.me.nitni_local_ref_head = NULL;
15715 fra.me.REG[0] = NIT_NULL;
15716 fra.me.REG[1] = NIT_NULL;
15717 fra.me.closure_ctx = closctx_param;
15718 fra.me.closure_funs = CREG;
15719 fra.me.REG[0] = p0;
15720 CREG[0] = clos_fun0;
15721 /* ./parser//parser_prod.nit:2917 */
15722 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AParam, ID_parser___parser_nodes___AParam)) /*cast AParam*/;
15723 if (UNTAG_Bool(REGB0)) {
15724 } else {
15725 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2917);
15726 }
15727 /* ./parser//parser_prod.nit:2918 */
15728 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(closctx->REG[0])!=NIT_NULL);
15729 if (UNTAG_Bool(REGB0)) {
15730 } else {
15731 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2918);
15732 }
15733 fra.me.REG[1] = ATTR_parser___parser_nodes___ASignature____n_params(closctx->REG[0]);
15734 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15735 /* ./parser//parser_prod.nit:2919 */
15736 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
15737 stack_frame_head = fra.me.prev;
15738 return;
15739 }
15740 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){
15741 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15742 val_t REGB0;
15743 fun_t CREG[1];
15744 val_t tmp;
15745 /* ./parser//parser_prod.nit:2925 */
15746 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15747 fra.me.file = LOCATE_parser___parser_prod;
15748 fra.me.line = 0;
15749 fra.me.meth = LOCATE_parser___parser_prod___ASignature___init_asignature;
15750 fra.me.has_broke = 0;
15751 fra.me.REG_size = 2;
15752 fra.me.nitni_local_ref_head = NULL;
15753 fra.me.REG[0] = NIT_NULL;
15754 fra.me.REG[1] = NIT_NULL;
15755 fra.me.closure_ctx = closctx_param;
15756 fra.me.closure_funs = CREG;
15757 fra.me.REG[0] = p0;
15758 CREG[0] = clos_fun0;
15759 /* ./parser//parser_prod.nit:2926 */
15760 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDecl, ID_parser___parser_nodes___AClosureDecl)) /*cast AClosureDecl*/;
15761 if (UNTAG_Bool(REGB0)) {
15762 } else {
15763 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2926);
15764 }
15765 /* ./parser//parser_prod.nit:2927 */
15766 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(closctx->REG[0])!=NIT_NULL);
15767 if (UNTAG_Bool(REGB0)) {
15768 } else {
15769 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2927);
15770 }
15771 fra.me.REG[1] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(closctx->REG[0]);
15772 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15773 /* ./parser//parser_prod.nit:2928 */
15774 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
15775 stack_frame_head = fra.me.prev;
15776 return;
15777 }
15778 void parser___parser_prod___ASignature___replace_child(val_t p0, val_t p1, val_t p2){
15779 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15780 val_t REGB0;
15781 val_t REGB1;
15782 val_t REGB2;
15783 val_t REGB3;
15784 val_t REGB4;
15785 val_t tmp;
15786 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15787 fra.me.file = LOCATE_parser___parser_prod;
15788 fra.me.line = 2932;
15789 fra.me.meth = LOCATE_parser___parser_prod___ASignature___replace_child;
15790 fra.me.has_broke = 0;
15791 fra.me.REG_size = 4;
15792 fra.me.nitni_local_ref_head = NULL;
15793 fra.me.REG[0] = NIT_NULL;
15794 fra.me.REG[1] = NIT_NULL;
15795 fra.me.REG[2] = NIT_NULL;
15796 fra.me.REG[3] = NIT_NULL;
15797 fra.me.REG[0] = p0;
15798 fra.me.REG[1] = p1;
15799 fra.me.REG[2] = p2;
15800 /* ./parser//parser_prod.nit:2934 */
15801 REGB0 = TAG_Int(0);
15802 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
15803 if (UNTAG_Bool(REGB1)) {
15804 } else {
15805 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2934);
15806 }
15807 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
15808 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
15809 /* ./../lib/standard//kernel.nit:352 */
15810 while(1) {
15811 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
15812 if (UNTAG_Bool(REGB2)) {
15813 } else {
15814 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15815 }
15816 /* ./../lib/standard//kernel.nit:232 */
15817 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
15818 /* ./../lib/standard//kernel.nit:352 */
15819 if (UNTAG_Bool(REGB2)) {
15820 /* ./parser//parser_prod.nit:2934 */
15821 REGB2 = REGB0;
15822 /* ./parser//parser_prod.nit:2935 */
15823 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
15824 if (UNTAG_Bool(REGB3)) {
15825 } else {
15826 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2935);
15827 }
15828 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
15829 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
15830 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
15831 if (UNTAG_Bool(REGB3)) {
15832 } else {
15833 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15834 if (UNTAG_Bool(REGB4)) {
15835 REGB4 = TAG_Bool(false);
15836 REGB3 = REGB4;
15837 } else {
15838 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15839 REGB3 = REGB4;
15840 }
15841 }
15842 if (UNTAG_Bool(REGB3)) {
15843 /* ./parser//parser_prod.nit:2936 */
15844 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15845 if (UNTAG_Bool(REGB3)) {
15846 } else {
15847 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15848 if (UNTAG_Bool(REGB4)) {
15849 REGB4 = TAG_Bool(false);
15850 REGB3 = REGB4;
15851 } else {
15852 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15853 REGB3 = REGB4;
15854 }
15855 }
15856 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
15857 if (UNTAG_Bool(REGB3)) {
15858 /* ./parser//parser_prod.nit:2937 */
15859 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*/;
15860 if (UNTAG_Bool(REGB3)) {
15861 } else {
15862 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2937);
15863 }
15864 /* ./parser//parser_prod.nit:2938 */
15865 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
15866 if (UNTAG_Bool(REGB3)) {
15867 } else {
15868 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2938);
15869 }
15870 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
15871 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
15872 /* ./parser//parser_prod.nit:2939 */
15873 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15874 if (UNTAG_Bool(REGB3)) {
15875 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2939);
15876 }
15877 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15878 } else {
15879 /* ./parser//parser_prod.nit:2941 */
15880 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
15881 if (UNTAG_Bool(REGB3)) {
15882 } else {
15883 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2941);
15884 }
15885 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
15886 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
15887 }
15888 /* ./parser//parser_prod.nit:2943 */
15889 goto label1;
15890 }
15891 /* ./../lib/standard//kernel.nit:354 */
15892 REGB2 = TAG_Int(1);
15893 /* ./../lib/standard//kernel.nit:235 */
15894 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
15895 /* ./../lib/standard//kernel.nit:354 */
15896 REGB0 = REGB2;
15897 } else {
15898 /* ./../lib/standard//kernel.nit:352 */
15899 goto label2;
15900 }
15901 }
15902 label2: while(0);
15903 /* ./parser//parser_prod.nit:2946 */
15904 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]);
15905 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
15906 if (UNTAG_Bool(REGB0)) {
15907 } else {
15908 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15909 if (UNTAG_Bool(REGB1)) {
15910 REGB1 = TAG_Bool(false);
15911 REGB0 = REGB1;
15912 } else {
15913 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15914 REGB0 = REGB1;
15915 }
15916 }
15917 if (UNTAG_Bool(REGB0)) {
15918 /* ./parser//parser_prod.nit:2947 */
15919 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15920 if (UNTAG_Bool(REGB0)) {
15921 } else {
15922 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15923 if (UNTAG_Bool(REGB1)) {
15924 REGB1 = TAG_Bool(false);
15925 REGB0 = REGB1;
15926 } else {
15927 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15928 REGB0 = REGB1;
15929 }
15930 }
15931 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15932 if (UNTAG_Bool(REGB0)) {
15933 /* ./parser//parser_prod.nit:2948 */
15934 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15935 if (UNTAG_Bool(REGB0)) {
15936 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2948);
15937 }
15938 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15939 /* ./parser//parser_prod.nit:2949 */
15940 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*/;
15941 if (UNTAG_Bool(REGB0)) {
15942 } else {
15943 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2949);
15944 }
15945 /* ./parser//parser_prod.nit:2950 */
15946 ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[2];
15947 } else {
15948 /* ./parser//parser_prod.nit:2952 */
15949 ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = NIT_NULL;
15950 }
15951 /* ./parser//parser_prod.nit:2954 */
15952 goto label1;
15953 }
15954 /* ./parser//parser_prod.nit:2956 */
15955 REGB0 = TAG_Int(0);
15956 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
15957 if (UNTAG_Bool(REGB1)) {
15958 } else {
15959 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2956);
15960 }
15961 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
15962 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
15963 /* ./../lib/standard//kernel.nit:352 */
15964 while(1) {
15965 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
15966 if (UNTAG_Bool(REGB2)) {
15967 } else {
15968 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15969 }
15970 /* ./../lib/standard//kernel.nit:232 */
15971 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
15972 /* ./../lib/standard//kernel.nit:352 */
15973 if (UNTAG_Bool(REGB2)) {
15974 /* ./parser//parser_prod.nit:2956 */
15975 REGB2 = REGB0;
15976 /* ./parser//parser_prod.nit:2957 */
15977 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
15978 if (UNTAG_Bool(REGB3)) {
15979 } else {
15980 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2957);
15981 }
15982 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
15983 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
15984 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
15985 if (UNTAG_Bool(REGB3)) {
15986 } else {
15987 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15988 if (UNTAG_Bool(REGB4)) {
15989 REGB4 = TAG_Bool(false);
15990 REGB3 = REGB4;
15991 } else {
15992 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15993 REGB3 = REGB4;
15994 }
15995 }
15996 if (UNTAG_Bool(REGB3)) {
15997 /* ./parser//parser_prod.nit:2958 */
15998 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15999 if (UNTAG_Bool(REGB3)) {
16000 } else {
16001 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16002 if (UNTAG_Bool(REGB4)) {
16003 REGB4 = TAG_Bool(false);
16004 REGB3 = REGB4;
16005 } else {
16006 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16007 REGB3 = REGB4;
16008 }
16009 }
16010 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
16011 if (UNTAG_Bool(REGB3)) {
16012 /* ./parser//parser_prod.nit:2959 */
16013 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*/;
16014 if (UNTAG_Bool(REGB3)) {
16015 } else {
16016 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2959);
16017 }
16018 /* ./parser//parser_prod.nit:2960 */
16019 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
16020 if (UNTAG_Bool(REGB3)) {
16021 } else {
16022 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2960);
16023 }
16024 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
16025 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
16026 /* ./parser//parser_prod.nit:2961 */
16027 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16028 if (UNTAG_Bool(REGB3)) {
16029 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2961);
16030 }
16031 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16032 } else {
16033 /* ./parser//parser_prod.nit:2963 */
16034 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
16035 if (UNTAG_Bool(REGB3)) {
16036 } else {
16037 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2963);
16038 }
16039 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
16040 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
16041 }
16042 /* ./parser//parser_prod.nit:2965 */
16043 goto label1;
16044 }
16045 /* ./../lib/standard//kernel.nit:354 */
16046 REGB2 = TAG_Int(1);
16047 /* ./../lib/standard//kernel.nit:235 */
16048 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
16049 /* ./../lib/standard//kernel.nit:354 */
16050 REGB0 = REGB2;
16051 } else {
16052 /* ./../lib/standard//kernel.nit:352 */
16053 goto label3;
16054 }
16055 }
16056 label3: while(0);
16057 label1: while(0);
16058 stack_frame_head = fra.me.prev;
16059 return;
16060 }
16061 void parser___parser_prod___ASignature___visit_all(val_t p0, val_t p1){
16062 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16063 val_t REGB0;
16064 val_t REGB1;
16065 val_t tmp;
16066 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16067 fra.me.file = LOCATE_parser___parser_prod;
16068 fra.me.line = 2970;
16069 fra.me.meth = LOCATE_parser___parser_prod___ASignature___visit_all;
16070 fra.me.has_broke = 0;
16071 fra.me.REG_size = 4;
16072 fra.me.nitni_local_ref_head = NULL;
16073 fra.me.REG[0] = NIT_NULL;
16074 fra.me.REG[1] = NIT_NULL;
16075 fra.me.REG[2] = NIT_NULL;
16076 fra.me.REG[3] = NIT_NULL;
16077 fra.me.REG[0] = p0;
16078 fra.me.REG[1] = p1;
16079 /* ./parser//parser_prod.nit:2970 */
16080 fra.me.REG[2] = fra.me.REG[0];
16081 /* ./parser//parser_prod.nit:2972 */
16082 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[2])!=NIT_NULL);
16083 if (UNTAG_Bool(REGB0)) {
16084 } else {
16085 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2972);
16086 }
16087 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[2]);
16088 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));
16089 /* ./parser//parser_prod.nit:2975 */
16090 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[2]);
16091 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16092 if (UNTAG_Bool(REGB0)) {
16093 } else {
16094 REGB1 = TAG_Bool(fra.me.REG[3]==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[3])(fra.me.REG[3], NIT_NULL);
16100 REGB0 = REGB1;
16101 }
16102 }
16103 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16104 if (UNTAG_Bool(REGB0)) {
16105 /* ./parser//parser_prod.nit:2976 */
16106 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[2]);
16107 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*/;
16108 if (UNTAG_Bool(REGB0)) {
16109 } else {
16110 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2976);
16111 }
16112 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16113 }
16114 /* ./parser//parser_prod.nit:2978 */
16115 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[2])!=NIT_NULL);
16116 if (UNTAG_Bool(REGB0)) {
16117 } else {
16118 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2978);
16119 }
16120 fra.me.REG[2] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[2]);
16121 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));
16122 stack_frame_head = fra.me.prev;
16123 return;
16124 }
16125 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){
16126 struct {struct stack_frame_t me;} fra;
16127 fun_t CREG[1];
16128 val_t tmp;
16129 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16130 fra.me.file = LOCATE_parser___parser_prod;
16131 fra.me.line = 0;
16132 fra.me.meth = LOCATE_parser___parser_prod___ASignature___visit_all;
16133 fra.me.has_broke = 0;
16134 fra.me.REG_size = 1;
16135 fra.me.nitni_local_ref_head = NULL;
16136 fra.me.REG[0] = NIT_NULL;
16137 fra.me.closure_ctx = closctx_param;
16138 fra.me.closure_funs = CREG;
16139 fra.me.REG[0] = p0;
16140 CREG[0] = clos_fun0;
16141 /* ./parser//parser_prod.nit:2973 */
16142 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
16143 stack_frame_head = fra.me.prev;
16144 return;
16145 }
16146 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){
16147 struct {struct stack_frame_t me;} fra;
16148 fun_t CREG[1];
16149 val_t tmp;
16150 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16151 fra.me.file = LOCATE_parser___parser_prod;
16152 fra.me.line = 0;
16153 fra.me.meth = LOCATE_parser___parser_prod___ASignature___visit_all;
16154 fra.me.has_broke = 0;
16155 fra.me.REG_size = 1;
16156 fra.me.nitni_local_ref_head = NULL;
16157 fra.me.REG[0] = NIT_NULL;
16158 fra.me.closure_ctx = closctx_param;
16159 fra.me.closure_funs = CREG;
16160 fra.me.REG[0] = p0;
16161 CREG[0] = clos_fun0;
16162 /* ./parser//parser_prod.nit:2979 */
16163 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
16164 stack_frame_head = fra.me.prev;
16165 return;
16166 }
16167 void parser___parser_prod___AParam___empty_init(val_t p0, int* init_table){
16168 int itpos99 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParam].i;
16169 struct {struct stack_frame_t me;} fra;
16170 val_t tmp;
16171 if (init_table[itpos99]) return;
16172 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16173 fra.me.file = LOCATE_parser___parser_prod;
16174 fra.me.line = 2984;
16175 fra.me.meth = LOCATE_parser___parser_prod___AParam___empty_init;
16176 fra.me.has_broke = 0;
16177 fra.me.REG_size = 1;
16178 fra.me.nitni_local_ref_head = NULL;
16179 fra.me.REG[0] = NIT_NULL;
16180 fra.me.REG[0] = p0;
16181 stack_frame_head = fra.me.prev;
16182 init_table[itpos99] = 1;
16183 return;
16184 }
16185 void parser___parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
16186 int itpos100 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParam].i;
16187 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
16188 val_t REGB0;
16189 val_t REGB1;
16190 val_t tmp;
16191 if (init_table[itpos100]) return;
16192 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16193 fra.me.file = LOCATE_parser___parser_prod;
16194 fra.me.line = 2986;
16195 fra.me.meth = LOCATE_parser___parser_prod___AParam___init_aparam;
16196 fra.me.has_broke = 0;
16197 fra.me.REG_size = 5;
16198 fra.me.nitni_local_ref_head = NULL;
16199 fra.me.REG[0] = NIT_NULL;
16200 fra.me.REG[1] = NIT_NULL;
16201 fra.me.REG[2] = NIT_NULL;
16202 fra.me.REG[3] = NIT_NULL;
16203 fra.me.REG[4] = NIT_NULL;
16204 fra.me.REG[0] = p0;
16205 fra.me.REG[1] = p1;
16206 fra.me.REG[2] = p2;
16207 fra.me.REG[3] = p3;
16208 /* ./parser//parser_prod.nit:2986 */
16209 fra.me.REG[4] = fra.me.REG[0];
16210 /* ./parser//parser_prod.nit:2992 */
16211 CALL_parser___parser_prod___AParam___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
16212 /* ./parser//parser_prod.nit:2993 */
16213 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
16214 if (UNTAG_Bool(REGB0)) {
16215 } else {
16216 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2993);
16217 }
16218 ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[4]) = fra.me.REG[1];
16219 /* ./parser//parser_prod.nit:2994 */
16220 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16221 if (UNTAG_Bool(REGB0)) {
16222 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2994);
16223 }
16224 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
16225 /* ./parser//parser_prod.nit:2995 */
16226 ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[4]) = fra.me.REG[2];
16227 /* ./parser//parser_prod.nit:2996 */
16228 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16229 if (UNTAG_Bool(REGB0)) {
16230 } else {
16231 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16232 if (UNTAG_Bool(REGB1)) {
16233 REGB1 = TAG_Bool(false);
16234 REGB0 = REGB1;
16235 } else {
16236 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16237 REGB0 = REGB1;
16238 }
16239 }
16240 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16241 if (UNTAG_Bool(REGB0)) {
16242 /* ./parser//parser_prod.nit:2997 */
16243 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16244 if (UNTAG_Bool(REGB0)) {
16245 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2997);
16246 }
16247 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
16248 }
16249 /* ./parser//parser_prod.nit:2999 */
16250 ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[4]) = fra.me.REG[3];
16251 /* ./parser//parser_prod.nit:3000 */
16252 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16253 if (UNTAG_Bool(REGB0)) {
16254 } else {
16255 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16256 if (UNTAG_Bool(REGB1)) {
16257 REGB1 = TAG_Bool(false);
16258 REGB0 = REGB1;
16259 } else {
16260 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
16261 REGB0 = REGB1;
16262 }
16263 }
16264 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16265 if (UNTAG_Bool(REGB0)) {
16266 /* ./parser//parser_prod.nit:3001 */
16267 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16268 if (UNTAG_Bool(REGB0)) {
16269 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3001);
16270 }
16271 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16272 }
16273 stack_frame_head = fra.me.prev;
16274 init_table[itpos100] = 1;
16275 return;
16276 }
16277 void parser___parser_prod___AParam___replace_child(val_t p0, val_t p1, val_t p2){
16278 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16279 val_t REGB0;
16280 val_t REGB1;
16281 val_t tmp;
16282 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16283 fra.me.file = LOCATE_parser___parser_prod;
16284 fra.me.line = 3005;
16285 fra.me.meth = LOCATE_parser___parser_prod___AParam___replace_child;
16286 fra.me.has_broke = 0;
16287 fra.me.REG_size = 4;
16288 fra.me.nitni_local_ref_head = NULL;
16289 fra.me.REG[0] = NIT_NULL;
16290 fra.me.REG[1] = NIT_NULL;
16291 fra.me.REG[2] = NIT_NULL;
16292 fra.me.REG[3] = NIT_NULL;
16293 fra.me.REG[0] = p0;
16294 fra.me.REG[1] = p1;
16295 fra.me.REG[2] = p2;
16296 /* ./parser//parser_prod.nit:3007 */
16297 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0])!=NIT_NULL);
16298 if (UNTAG_Bool(REGB0)) {
16299 } else {
16300 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3007);
16301 }
16302 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0]);
16303 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16304 if (UNTAG_Bool(REGB0)) {
16305 } else {
16306 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16307 REGB0 = REGB1;
16308 }
16309 if (UNTAG_Bool(REGB0)) {
16310 /* ./parser//parser_prod.nit:3008 */
16311 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16312 if (UNTAG_Bool(REGB0)) {
16313 } else {
16314 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16315 if (UNTAG_Bool(REGB1)) {
16316 REGB1 = TAG_Bool(false);
16317 REGB0 = REGB1;
16318 } else {
16319 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16320 REGB0 = REGB1;
16321 }
16322 }
16323 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16324 if (UNTAG_Bool(REGB0)) {
16325 /* ./parser//parser_prod.nit:3009 */
16326 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16327 if (UNTAG_Bool(REGB0)) {
16328 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3009);
16329 }
16330 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16331 /* ./parser//parser_prod.nit:3010 */
16332 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*/;
16333 if (UNTAG_Bool(REGB0)) {
16334 } else {
16335 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3010);
16336 }
16337 /* ./parser//parser_prod.nit:3011 */
16338 ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0]) = fra.me.REG[2];
16339 } else {
16340 /* ./parser//parser_prod.nit:3013 */
16341 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3013);
16342 }
16343 /* ./parser//parser_prod.nit:3015 */
16344 goto label1;
16345 }
16346 /* ./parser//parser_prod.nit:3017 */
16347 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]);
16348 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16349 if (UNTAG_Bool(REGB0)) {
16350 } else {
16351 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16352 if (UNTAG_Bool(REGB1)) {
16353 REGB1 = TAG_Bool(false);
16354 REGB0 = REGB1;
16355 } else {
16356 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16357 REGB0 = REGB1;
16358 }
16359 }
16360 if (UNTAG_Bool(REGB0)) {
16361 /* ./parser//parser_prod.nit:3018 */
16362 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16363 if (UNTAG_Bool(REGB0)) {
16364 } else {
16365 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16366 if (UNTAG_Bool(REGB1)) {
16367 REGB1 = TAG_Bool(false);
16368 REGB0 = REGB1;
16369 } else {
16370 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16371 REGB0 = REGB1;
16372 }
16373 }
16374 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16375 if (UNTAG_Bool(REGB0)) {
16376 /* ./parser//parser_prod.nit:3019 */
16377 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16378 if (UNTAG_Bool(REGB0)) {
16379 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3019);
16380 }
16381 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16382 /* ./parser//parser_prod.nit:3020 */
16383 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*/;
16384 if (UNTAG_Bool(REGB0)) {
16385 } else {
16386 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3020);
16387 }
16388 /* ./parser//parser_prod.nit:3021 */
16389 ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]) = fra.me.REG[2];
16390 } else {
16391 /* ./parser//parser_prod.nit:3023 */
16392 ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]) = NIT_NULL;
16393 }
16394 /* ./parser//parser_prod.nit:3025 */
16395 goto label1;
16396 }
16397 /* ./parser//parser_prod.nit:3027 */
16398 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]);
16399 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16400 if (UNTAG_Bool(REGB0)) {
16401 } else {
16402 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16403 if (UNTAG_Bool(REGB1)) {
16404 REGB1 = TAG_Bool(false);
16405 REGB0 = REGB1;
16406 } else {
16407 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16408 REGB0 = REGB1;
16409 }
16410 }
16411 if (UNTAG_Bool(REGB0)) {
16412 /* ./parser//parser_prod.nit:3028 */
16413 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16414 if (UNTAG_Bool(REGB0)) {
16415 } else {
16416 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16417 if (UNTAG_Bool(REGB1)) {
16418 REGB1 = TAG_Bool(false);
16419 REGB0 = REGB1;
16420 } else {
16421 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16422 REGB0 = REGB1;
16423 }
16424 }
16425 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16426 if (UNTAG_Bool(REGB0)) {
16427 /* ./parser//parser_prod.nit:3029 */
16428 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16429 if (UNTAG_Bool(REGB0)) {
16430 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3029);
16431 }
16432 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16433 /* ./parser//parser_prod.nit:3030 */
16434 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*/;
16435 if (UNTAG_Bool(REGB0)) {
16436 } else {
16437 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3030);
16438 }
16439 /* ./parser//parser_prod.nit:3031 */
16440 ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = fra.me.REG[2];
16441 } else {
16442 /* ./parser//parser_prod.nit:3033 */
16443 ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = NIT_NULL;
16444 }
16445 /* ./parser//parser_prod.nit:3035 */
16446 goto label1;
16447 }
16448 label1: while(0);
16449 stack_frame_head = fra.me.prev;
16450 return;
16451 }
16452 void parser___parser_prod___AParam___visit_all(val_t p0, val_t p1){
16453 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16454 val_t REGB0;
16455 val_t REGB1;
16456 val_t tmp;
16457 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16458 fra.me.file = LOCATE_parser___parser_prod;
16459 fra.me.line = 3039;
16460 fra.me.meth = LOCATE_parser___parser_prod___AParam___visit_all;
16461 fra.me.has_broke = 0;
16462 fra.me.REG_size = 4;
16463 fra.me.nitni_local_ref_head = NULL;
16464 fra.me.REG[0] = NIT_NULL;
16465 fra.me.REG[1] = NIT_NULL;
16466 fra.me.REG[2] = NIT_NULL;
16467 fra.me.REG[3] = NIT_NULL;
16468 fra.me.REG[0] = p0;
16469 fra.me.REG[1] = p1;
16470 /* ./parser//parser_prod.nit:3039 */
16471 fra.me.REG[2] = fra.me.REG[0];
16472 /* ./parser//parser_prod.nit:3041 */
16473 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[2])!=NIT_NULL);
16474 if (UNTAG_Bool(REGB0)) {
16475 } else {
16476 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3041);
16477 }
16478 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[2]);
16479 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16480 /* ./parser//parser_prod.nit:3042 */
16481 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[2]);
16482 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16483 if (UNTAG_Bool(REGB0)) {
16484 } else {
16485 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16486 if (UNTAG_Bool(REGB1)) {
16487 REGB1 = TAG_Bool(false);
16488 REGB0 = REGB1;
16489 } else {
16490 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
16491 REGB0 = REGB1;
16492 }
16493 }
16494 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16495 if (UNTAG_Bool(REGB0)) {
16496 /* ./parser//parser_prod.nit:3043 */
16497 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[2]);
16498 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*/;
16499 if (UNTAG_Bool(REGB0)) {
16500 } else {
16501 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3043);
16502 }
16503 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16504 }
16505 /* ./parser//parser_prod.nit:3045 */
16506 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[2]);
16507 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16508 if (UNTAG_Bool(REGB0)) {
16509 } else {
16510 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16511 if (UNTAG_Bool(REGB1)) {
16512 REGB1 = TAG_Bool(false);
16513 REGB0 = REGB1;
16514 } else {
16515 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
16516 REGB0 = REGB1;
16517 }
16518 }
16519 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16520 if (UNTAG_Bool(REGB0)) {
16521 /* ./parser//parser_prod.nit:3046 */
16522 fra.me.REG[2] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[2]);
16523 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*/;
16524 if (UNTAG_Bool(REGB0)) {
16525 } else {
16526 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3046);
16527 }
16528 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16529 }
16530 stack_frame_head = fra.me.prev;
16531 return;
16532 }
16533 void parser___parser_prod___AClosureDecl___empty_init(val_t p0, int* init_table){
16534 int itpos101 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDecl].i;
16535 struct {struct stack_frame_t me;} fra;
16536 val_t tmp;
16537 if (init_table[itpos101]) return;
16538 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16539 fra.me.file = LOCATE_parser___parser_prod;
16540 fra.me.line = 3051;
16541 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___empty_init;
16542 fra.me.has_broke = 0;
16543 fra.me.REG_size = 1;
16544 fra.me.nitni_local_ref_head = NULL;
16545 fra.me.REG[0] = NIT_NULL;
16546 fra.me.REG[0] = p0;
16547 stack_frame_head = fra.me.prev;
16548 init_table[itpos101] = 1;
16549 return;
16550 }
16551 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){
16552 int itpos102 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDecl].i;
16553 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
16554 val_t REGB0;
16555 val_t REGB1;
16556 val_t tmp;
16557 if (init_table[itpos102]) return;
16558 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16559 fra.me.file = LOCATE_parser___parser_prod;
16560 fra.me.line = 3053;
16561 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___init_aclosuredecl;
16562 fra.me.has_broke = 0;
16563 fra.me.REG_size = 7;
16564 fra.me.nitni_local_ref_head = NULL;
16565 fra.me.REG[0] = NIT_NULL;
16566 fra.me.REG[1] = NIT_NULL;
16567 fra.me.REG[2] = NIT_NULL;
16568 fra.me.REG[3] = NIT_NULL;
16569 fra.me.REG[4] = NIT_NULL;
16570 fra.me.REG[5] = NIT_NULL;
16571 fra.me.REG[6] = NIT_NULL;
16572 fra.me.REG[0] = p0;
16573 fra.me.REG[1] = p1;
16574 fra.me.REG[2] = p2;
16575 fra.me.REG[3] = p3;
16576 fra.me.REG[4] = p4;
16577 fra.me.REG[5] = p5;
16578 /* ./parser//parser_prod.nit:3053 */
16579 fra.me.REG[6] = fra.me.REG[0];
16580 /* ./parser//parser_prod.nit:3061 */
16581 CALL_parser___parser_prod___AClosureDecl___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
16582 /* ./parser//parser_prod.nit:3062 */
16583 ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[6]) = fra.me.REG[1];
16584 /* ./parser//parser_prod.nit:3063 */
16585 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16586 if (UNTAG_Bool(REGB0)) {
16587 } else {
16588 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16589 if (UNTAG_Bool(REGB1)) {
16590 REGB1 = TAG_Bool(false);
16591 REGB0 = REGB1;
16592 } else {
16593 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
16594 REGB0 = REGB1;
16595 }
16596 }
16597 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16598 if (UNTAG_Bool(REGB0)) {
16599 /* ./parser//parser_prod.nit:3064 */
16600 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16601 if (UNTAG_Bool(REGB0)) {
16602 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3064);
16603 }
16604 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
16605 }
16606 /* ./parser//parser_prod.nit:3066 */
16607 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
16608 if (UNTAG_Bool(REGB0)) {
16609 } else {
16610 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3066);
16611 }
16612 ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[6]) = fra.me.REG[2];
16613 /* ./parser//parser_prod.nit:3067 */
16614 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16615 if (UNTAG_Bool(REGB0)) {
16616 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3067);
16617 }
16618 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
16619 /* ./parser//parser_prod.nit:3068 */
16620 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
16621 if (UNTAG_Bool(REGB0)) {
16622 } else {
16623 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3068);
16624 }
16625 ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[6]) = fra.me.REG[3];
16626 /* ./parser//parser_prod.nit:3069 */
16627 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16628 if (UNTAG_Bool(REGB0)) {
16629 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3069);
16630 }
16631 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
16632 /* ./parser//parser_prod.nit:3070 */
16633 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
16634 if (UNTAG_Bool(REGB0)) {
16635 } else {
16636 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3070);
16637 }
16638 ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[6]) = fra.me.REG[4];
16639 /* ./parser//parser_prod.nit:3071 */
16640 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
16641 if (UNTAG_Bool(REGB0)) {
16642 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3071);
16643 }
16644 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
16645 /* ./parser//parser_prod.nit:3072 */
16646 ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[6]) = fra.me.REG[5];
16647 /* ./parser//parser_prod.nit:3073 */
16648 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
16649 if (UNTAG_Bool(REGB0)) {
16650 } else {
16651 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
16652 if (UNTAG_Bool(REGB1)) {
16653 REGB1 = TAG_Bool(false);
16654 REGB0 = REGB1;
16655 } else {
16656 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
16657 REGB0 = REGB1;
16658 }
16659 }
16660 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16661 if (UNTAG_Bool(REGB0)) {
16662 /* ./parser//parser_prod.nit:3074 */
16663 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
16664 if (UNTAG_Bool(REGB0)) {
16665 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3074);
16666 }
16667 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
16668 }
16669 stack_frame_head = fra.me.prev;
16670 init_table[itpos102] = 1;
16671 return;
16672 }
16673 void parser___parser_prod___AClosureDecl___replace_child(val_t p0, val_t p1, val_t p2){
16674 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16675 val_t REGB0;
16676 val_t REGB1;
16677 val_t tmp;
16678 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16679 fra.me.file = LOCATE_parser___parser_prod;
16680 fra.me.line = 3078;
16681 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___replace_child;
16682 fra.me.has_broke = 0;
16683 fra.me.REG_size = 4;
16684 fra.me.nitni_local_ref_head = NULL;
16685 fra.me.REG[0] = NIT_NULL;
16686 fra.me.REG[1] = NIT_NULL;
16687 fra.me.REG[2] = NIT_NULL;
16688 fra.me.REG[3] = NIT_NULL;
16689 fra.me.REG[0] = p0;
16690 fra.me.REG[1] = p1;
16691 fra.me.REG[2] = p2;
16692 /* ./parser//parser_prod.nit:3080 */
16693 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]);
16694 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16695 if (UNTAG_Bool(REGB0)) {
16696 } else {
16697 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16698 if (UNTAG_Bool(REGB1)) {
16699 REGB1 = TAG_Bool(false);
16700 REGB0 = REGB1;
16701 } else {
16702 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16703 REGB0 = REGB1;
16704 }
16705 }
16706 if (UNTAG_Bool(REGB0)) {
16707 /* ./parser//parser_prod.nit:3081 */
16708 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16709 if (UNTAG_Bool(REGB0)) {
16710 } else {
16711 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16712 if (UNTAG_Bool(REGB1)) {
16713 REGB1 = TAG_Bool(false);
16714 REGB0 = REGB1;
16715 } else {
16716 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16717 REGB0 = REGB1;
16718 }
16719 }
16720 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16721 if (UNTAG_Bool(REGB0)) {
16722 /* ./parser//parser_prod.nit:3082 */
16723 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16724 if (UNTAG_Bool(REGB0)) {
16725 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3082);
16726 }
16727 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16728 /* ./parser//parser_prod.nit:3083 */
16729 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*/;
16730 if (UNTAG_Bool(REGB0)) {
16731 } else {
16732 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3083);
16733 }
16734 /* ./parser//parser_prod.nit:3084 */
16735 ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
16736 } else {
16737 /* ./parser//parser_prod.nit:3086 */
16738 ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = NIT_NULL;
16739 }
16740 /* ./parser//parser_prod.nit:3088 */
16741 goto label1;
16742 }
16743 /* ./parser//parser_prod.nit:3090 */
16744 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0])!=NIT_NULL);
16745 if (UNTAG_Bool(REGB0)) {
16746 } else {
16747 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 3090);
16748 }
16749 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]);
16750 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16751 if (UNTAG_Bool(REGB0)) {
16752 } else {
16753 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16754 REGB0 = REGB1;
16755 }
16756 if (UNTAG_Bool(REGB0)) {
16757 /* ./parser//parser_prod.nit:3091 */
16758 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16759 if (UNTAG_Bool(REGB0)) {
16760 } else {
16761 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16762 if (UNTAG_Bool(REGB1)) {
16763 REGB1 = TAG_Bool(false);
16764 REGB0 = REGB1;
16765 } else {
16766 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16767 REGB0 = REGB1;
16768 }
16769 }
16770 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16771 if (UNTAG_Bool(REGB0)) {
16772 /* ./parser//parser_prod.nit:3092 */
16773 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16774 if (UNTAG_Bool(REGB0)) {
16775 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3092);
16776 }
16777 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16778 /* ./parser//parser_prod.nit:3093 */
16779 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*/;
16780 if (UNTAG_Bool(REGB0)) {
16781 } else {
16782 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3093);
16783 }
16784 /* ./parser//parser_prod.nit:3094 */
16785 ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]) = fra.me.REG[2];
16786 } else {
16787 /* ./parser//parser_prod.nit:3096 */
16788 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3096);
16789 }
16790 /* ./parser//parser_prod.nit:3098 */
16791 goto label1;
16792 }
16793 /* ./parser//parser_prod.nit:3100 */
16794 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0])!=NIT_NULL);
16795 if (UNTAG_Bool(REGB0)) {
16796 } else {
16797 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3100);
16798 }
16799 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0]);
16800 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16801 if (UNTAG_Bool(REGB0)) {
16802 } else {
16803 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16804 REGB0 = REGB1;
16805 }
16806 if (UNTAG_Bool(REGB0)) {
16807 /* ./parser//parser_prod.nit:3101 */
16808 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16809 if (UNTAG_Bool(REGB0)) {
16810 } else {
16811 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16812 if (UNTAG_Bool(REGB1)) {
16813 REGB1 = TAG_Bool(false);
16814 REGB0 = REGB1;
16815 } else {
16816 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16817 REGB0 = REGB1;
16818 }
16819 }
16820 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16821 if (UNTAG_Bool(REGB0)) {
16822 /* ./parser//parser_prod.nit:3102 */
16823 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16824 if (UNTAG_Bool(REGB0)) {
16825 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3102);
16826 }
16827 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16828 /* ./parser//parser_prod.nit:3103 */
16829 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*/;
16830 if (UNTAG_Bool(REGB0)) {
16831 } else {
16832 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3103);
16833 }
16834 /* ./parser//parser_prod.nit:3104 */
16835 ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0]) = fra.me.REG[2];
16836 } else {
16837 /* ./parser//parser_prod.nit:3106 */
16838 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3106);
16839 }
16840 /* ./parser//parser_prod.nit:3108 */
16841 goto label1;
16842 }
16843 /* ./parser//parser_prod.nit:3110 */
16844 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0])!=NIT_NULL);
16845 if (UNTAG_Bool(REGB0)) {
16846 } else {
16847 nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser___parser_prod, 3110);
16848 }
16849 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]);
16850 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16851 if (UNTAG_Bool(REGB0)) {
16852 } else {
16853 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16854 REGB0 = REGB1;
16855 }
16856 if (UNTAG_Bool(REGB0)) {
16857 /* ./parser//parser_prod.nit:3111 */
16858 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16859 if (UNTAG_Bool(REGB0)) {
16860 } else {
16861 REGB1 = TAG_Bool(fra.me.REG[2]==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[2])(fra.me.REG[2], NIT_NULL);
16867 REGB0 = REGB1;
16868 }
16869 }
16870 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16871 if (UNTAG_Bool(REGB0)) {
16872 /* ./parser//parser_prod.nit:3112 */
16873 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16874 if (UNTAG_Bool(REGB0)) {
16875 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3112);
16876 }
16877 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16878 /* ./parser//parser_prod.nit:3113 */
16879 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*/;
16880 if (UNTAG_Bool(REGB0)) {
16881 } else {
16882 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3113);
16883 }
16884 /* ./parser//parser_prod.nit:3114 */
16885 ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]) = fra.me.REG[2];
16886 } else {
16887 /* ./parser//parser_prod.nit:3116 */
16888 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3116);
16889 }
16890 /* ./parser//parser_prod.nit:3118 */
16891 goto label1;
16892 }
16893 /* ./parser//parser_prod.nit:3120 */
16894 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]);
16895 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16896 if (UNTAG_Bool(REGB0)) {
16897 } else {
16898 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16899 if (UNTAG_Bool(REGB1)) {
16900 REGB1 = TAG_Bool(false);
16901 REGB0 = REGB1;
16902 } else {
16903 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16904 REGB0 = REGB1;
16905 }
16906 }
16907 if (UNTAG_Bool(REGB0)) {
16908 /* ./parser//parser_prod.nit:3121 */
16909 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16910 if (UNTAG_Bool(REGB0)) {
16911 } else {
16912 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16913 if (UNTAG_Bool(REGB1)) {
16914 REGB1 = TAG_Bool(false);
16915 REGB0 = REGB1;
16916 } else {
16917 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16918 REGB0 = REGB1;
16919 }
16920 }
16921 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16922 if (UNTAG_Bool(REGB0)) {
16923 /* ./parser//parser_prod.nit:3122 */
16924 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16925 if (UNTAG_Bool(REGB0)) {
16926 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3122);
16927 }
16928 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16929 /* ./parser//parser_prod.nit:3123 */
16930 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*/;
16931 if (UNTAG_Bool(REGB0)) {
16932 } else {
16933 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3123);
16934 }
16935 /* ./parser//parser_prod.nit:3124 */
16936 ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = fra.me.REG[2];
16937 } else {
16938 /* ./parser//parser_prod.nit:3126 */
16939 ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = NIT_NULL;
16940 }
16941 /* ./parser//parser_prod.nit:3128 */
16942 goto label1;
16943 }
16944 label1: while(0);
16945 stack_frame_head = fra.me.prev;
16946 return;
16947 }
16948 void parser___parser_prod___AClosureDecl___visit_all(val_t p0, val_t p1){
16949 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16950 val_t REGB0;
16951 val_t REGB1;
16952 val_t tmp;
16953 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16954 fra.me.file = LOCATE_parser___parser_prod;
16955 fra.me.line = 3132;
16956 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___visit_all;
16957 fra.me.has_broke = 0;
16958 fra.me.REG_size = 4;
16959 fra.me.nitni_local_ref_head = NULL;
16960 fra.me.REG[0] = NIT_NULL;
16961 fra.me.REG[1] = NIT_NULL;
16962 fra.me.REG[2] = NIT_NULL;
16963 fra.me.REG[3] = NIT_NULL;
16964 fra.me.REG[0] = p0;
16965 fra.me.REG[1] = p1;
16966 /* ./parser//parser_prod.nit:3132 */
16967 fra.me.REG[2] = fra.me.REG[0];
16968 /* ./parser//parser_prod.nit:3134 */
16969 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[2]);
16970 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16971 if (UNTAG_Bool(REGB0)) {
16972 } else {
16973 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16974 if (UNTAG_Bool(REGB1)) {
16975 REGB1 = TAG_Bool(false);
16976 REGB0 = REGB1;
16977 } else {
16978 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
16979 REGB0 = REGB1;
16980 }
16981 }
16982 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16983 if (UNTAG_Bool(REGB0)) {
16984 /* ./parser//parser_prod.nit:3135 */
16985 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[2]);
16986 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*/;
16987 if (UNTAG_Bool(REGB0)) {
16988 } else {
16989 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3135);
16990 }
16991 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16992 }
16993 /* ./parser//parser_prod.nit:3137 */
16994 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[2])!=NIT_NULL);
16995 if (UNTAG_Bool(REGB0)) {
16996 } else {
16997 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 3137);
16998 }
16999 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[2]);
17000 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17001 /* ./parser//parser_prod.nit:3138 */
17002 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[2])!=NIT_NULL);
17003 if (UNTAG_Bool(REGB0)) {
17004 } else {
17005 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3138);
17006 }
17007 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[2]);
17008 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17009 /* ./parser//parser_prod.nit:3139 */
17010 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[2])!=NIT_NULL);
17011 if (UNTAG_Bool(REGB0)) {
17012 } else {
17013 nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser___parser_prod, 3139);
17014 }
17015 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[2]);
17016 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17017 /* ./parser//parser_prod.nit:3140 */
17018 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[2]);
17019 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17020 if (UNTAG_Bool(REGB0)) {
17021 } else {
17022 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17023 if (UNTAG_Bool(REGB1)) {
17024 REGB1 = TAG_Bool(false);
17025 REGB0 = REGB1;
17026 } else {
17027 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17028 REGB0 = REGB1;
17029 }
17030 }
17031 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17032 if (UNTAG_Bool(REGB0)) {
17033 /* ./parser//parser_prod.nit:3141 */
17034 fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[2]);
17035 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*/;
17036 if (UNTAG_Bool(REGB0)) {
17037 } else {
17038 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3141);
17039 }
17040 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17041 }
17042 stack_frame_head = fra.me.prev;
17043 return;
17044 }
17045 void parser___parser_prod___AType___empty_init(val_t p0, int* init_table){
17046 int itpos103 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AType].i;
17047 struct {struct stack_frame_t me;} fra;
17048 val_t tmp;
17049 if (init_table[itpos103]) return;
17050 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17051 fra.me.file = LOCATE_parser___parser_prod;
17052 fra.me.line = 3146;
17053 fra.me.meth = LOCATE_parser___parser_prod___AType___empty_init;
17054 fra.me.has_broke = 0;
17055 fra.me.REG_size = 1;
17056 fra.me.nitni_local_ref_head = NULL;
17057 fra.me.REG[0] = NIT_NULL;
17058 fra.me.REG[0] = p0;
17059 stack_frame_head = fra.me.prev;
17060 init_table[itpos103] = 1;
17061 return;
17062 }
17063 void parser___parser_prod___AType___init_atype(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
17064 int itpos104 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AType].i;
17065 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
17066 val_t REGB0;
17067 val_t REGB1;
17068 val_t tmp;
17069 if (init_table[itpos104]) return;
17070 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17071 fra.me.file = LOCATE_parser___parser_prod;
17072 fra.me.line = 3148;
17073 fra.me.meth = LOCATE_parser___parser_prod___AType___init_atype;
17074 fra.me.has_broke = 0;
17075 fra.me.REG_size = 5;
17076 fra.me.nitni_local_ref_head = NULL;
17077 fra.me.REG[0] = NIT_NULL;
17078 fra.me.REG[1] = NIT_NULL;
17079 fra.me.REG[2] = NIT_NULL;
17080 fra.me.REG[3] = NIT_NULL;
17081 fra.me.REG[4] = NIT_NULL;
17082 fra.me.REG[0] = p0;
17083 fra.me.REG[1] = p1;
17084 fra.me.REG[2] = p2;
17085 fra.me.REG[3] = p3;
17086 /* ./parser//parser_prod.nit:3148 */
17087 fra.me.REG[4] = fra.me.REG[0];
17088 /* ./parser//parser_prod.nit:3154 */
17089 CALL_parser___parser_prod___AType___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
17090 /* ./parser//parser_prod.nit:3155 */
17091 ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[4]) = fra.me.REG[1];
17092 /* ./parser//parser_prod.nit:3156 */
17093 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17094 if (UNTAG_Bool(REGB0)) {
17095 } else {
17096 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17097 if (UNTAG_Bool(REGB1)) {
17098 REGB1 = TAG_Bool(false);
17099 REGB0 = REGB1;
17100 } else {
17101 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
17102 REGB0 = REGB1;
17103 }
17104 }
17105 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17106 if (UNTAG_Bool(REGB0)) {
17107 /* ./parser//parser_prod.nit:3157 */
17108 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17109 if (UNTAG_Bool(REGB0)) {
17110 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3157);
17111 }
17112 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
17113 }
17114 /* ./parser//parser_prod.nit:3159 */
17115 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
17116 if (UNTAG_Bool(REGB0)) {
17117 } else {
17118 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3159);
17119 }
17120 ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[4]) = fra.me.REG[2];
17121 /* ./parser//parser_prod.nit:3160 */
17122 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17123 if (UNTAG_Bool(REGB0)) {
17124 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3160);
17125 }
17126 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17127 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));
17128 stack_frame_head = fra.me.prev;
17129 init_table[itpos104] = 1;
17130 return;
17131 }
17132 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){
17133 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17134 val_t REGB0;
17135 fun_t CREG[1];
17136 val_t tmp;
17137 /* ./parser//parser_prod.nit:3161 */
17138 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17139 fra.me.file = LOCATE_parser___parser_prod;
17140 fra.me.line = 0;
17141 fra.me.meth = LOCATE_parser___parser_prod___AType___init_atype;
17142 fra.me.has_broke = 0;
17143 fra.me.REG_size = 2;
17144 fra.me.nitni_local_ref_head = NULL;
17145 fra.me.REG[0] = NIT_NULL;
17146 fra.me.REG[1] = NIT_NULL;
17147 fra.me.closure_ctx = closctx_param;
17148 fra.me.closure_funs = CREG;
17149 fra.me.REG[0] = p0;
17150 CREG[0] = clos_fun0;
17151 /* ./parser//parser_prod.nit:3162 */
17152 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
17153 if (UNTAG_Bool(REGB0)) {
17154 } else {
17155 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3162);
17156 }
17157 /* ./parser//parser_prod.nit:3163 */
17158 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(closctx->REG[4])!=NIT_NULL);
17159 if (UNTAG_Bool(REGB0)) {
17160 } else {
17161 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3163);
17162 }
17163 fra.me.REG[1] = ATTR_parser___parser_nodes___AType____n_types(closctx->REG[4]);
17164 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17165 /* ./parser//parser_prod.nit:3164 */
17166 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
17167 stack_frame_head = fra.me.prev;
17168 return;
17169 }
17170 void parser___parser_prod___AType___replace_child(val_t p0, val_t p1, val_t p2){
17171 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17172 val_t REGB0;
17173 val_t REGB1;
17174 val_t REGB2;
17175 val_t REGB3;
17176 val_t REGB4;
17177 val_t tmp;
17178 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17179 fra.me.file = LOCATE_parser___parser_prod;
17180 fra.me.line = 3168;
17181 fra.me.meth = LOCATE_parser___parser_prod___AType___replace_child;
17182 fra.me.has_broke = 0;
17183 fra.me.REG_size = 4;
17184 fra.me.nitni_local_ref_head = NULL;
17185 fra.me.REG[0] = NIT_NULL;
17186 fra.me.REG[1] = NIT_NULL;
17187 fra.me.REG[2] = NIT_NULL;
17188 fra.me.REG[3] = NIT_NULL;
17189 fra.me.REG[0] = p0;
17190 fra.me.REG[1] = p1;
17191 fra.me.REG[2] = p2;
17192 /* ./parser//parser_prod.nit:3170 */
17193 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]);
17194 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17195 if (UNTAG_Bool(REGB0)) {
17196 } else {
17197 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17198 if (UNTAG_Bool(REGB1)) {
17199 REGB1 = TAG_Bool(false);
17200 REGB0 = REGB1;
17201 } else {
17202 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17203 REGB0 = REGB1;
17204 }
17205 }
17206 if (UNTAG_Bool(REGB0)) {
17207 /* ./parser//parser_prod.nit:3171 */
17208 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17209 if (UNTAG_Bool(REGB0)) {
17210 } else {
17211 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17212 if (UNTAG_Bool(REGB1)) {
17213 REGB1 = TAG_Bool(false);
17214 REGB0 = REGB1;
17215 } else {
17216 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17217 REGB0 = REGB1;
17218 }
17219 }
17220 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17221 if (UNTAG_Bool(REGB0)) {
17222 /* ./parser//parser_prod.nit:3172 */
17223 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17224 if (UNTAG_Bool(REGB0)) {
17225 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3172);
17226 }
17227 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17228 /* ./parser//parser_prod.nit:3173 */
17229 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*/;
17230 if (UNTAG_Bool(REGB0)) {
17231 } else {
17232 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3173);
17233 }
17234 /* ./parser//parser_prod.nit:3174 */
17235 ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
17236 } else {
17237 /* ./parser//parser_prod.nit:3176 */
17238 ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = NIT_NULL;
17239 }
17240 /* ./parser//parser_prod.nit:3178 */
17241 goto label1;
17242 }
17243 /* ./parser//parser_prod.nit:3180 */
17244 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0])!=NIT_NULL);
17245 if (UNTAG_Bool(REGB0)) {
17246 } else {
17247 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3180);
17248 }
17249 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0]);
17250 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17251 if (UNTAG_Bool(REGB0)) {
17252 } else {
17253 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17254 REGB0 = REGB1;
17255 }
17256 if (UNTAG_Bool(REGB0)) {
17257 /* ./parser//parser_prod.nit:3181 */
17258 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17259 if (UNTAG_Bool(REGB0)) {
17260 } else {
17261 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17262 if (UNTAG_Bool(REGB1)) {
17263 REGB1 = TAG_Bool(false);
17264 REGB0 = REGB1;
17265 } else {
17266 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17267 REGB0 = REGB1;
17268 }
17269 }
17270 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17271 if (UNTAG_Bool(REGB0)) {
17272 /* ./parser//parser_prod.nit:3182 */
17273 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17274 if (UNTAG_Bool(REGB0)) {
17275 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3182);
17276 }
17277 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17278 /* ./parser//parser_prod.nit:3183 */
17279 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*/;
17280 if (UNTAG_Bool(REGB0)) {
17281 } else {
17282 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3183);
17283 }
17284 /* ./parser//parser_prod.nit:3184 */
17285 ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0]) = fra.me.REG[2];
17286 } else {
17287 /* ./parser//parser_prod.nit:3186 */
17288 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3186);
17289 }
17290 /* ./parser//parser_prod.nit:3188 */
17291 goto label1;
17292 }
17293 /* ./parser//parser_prod.nit:3190 */
17294 REGB0 = TAG_Int(0);
17295 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
17296 if (UNTAG_Bool(REGB1)) {
17297 } else {
17298 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3190);
17299 }
17300 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
17301 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
17302 /* ./../lib/standard//kernel.nit:352 */
17303 while(1) {
17304 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
17305 if (UNTAG_Bool(REGB2)) {
17306 } else {
17307 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
17308 }
17309 /* ./../lib/standard//kernel.nit:232 */
17310 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
17311 /* ./../lib/standard//kernel.nit:352 */
17312 if (UNTAG_Bool(REGB2)) {
17313 /* ./parser//parser_prod.nit:3190 */
17314 REGB2 = REGB0;
17315 /* ./parser//parser_prod.nit:3191 */
17316 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
17317 if (UNTAG_Bool(REGB3)) {
17318 } else {
17319 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3191);
17320 }
17321 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
17322 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
17323 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17324 if (UNTAG_Bool(REGB3)) {
17325 } else {
17326 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17327 if (UNTAG_Bool(REGB4)) {
17328 REGB4 = TAG_Bool(false);
17329 REGB3 = REGB4;
17330 } else {
17331 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17332 REGB3 = REGB4;
17333 }
17334 }
17335 if (UNTAG_Bool(REGB3)) {
17336 /* ./parser//parser_prod.nit:3192 */
17337 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17338 if (UNTAG_Bool(REGB3)) {
17339 } else {
17340 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17341 if (UNTAG_Bool(REGB4)) {
17342 REGB4 = TAG_Bool(false);
17343 REGB3 = REGB4;
17344 } else {
17345 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17346 REGB3 = REGB4;
17347 }
17348 }
17349 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
17350 if (UNTAG_Bool(REGB3)) {
17351 /* ./parser//parser_prod.nit:3193 */
17352 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*/;
17353 if (UNTAG_Bool(REGB3)) {
17354 } else {
17355 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3193);
17356 }
17357 /* ./parser//parser_prod.nit:3194 */
17358 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
17359 if (UNTAG_Bool(REGB3)) {
17360 } else {
17361 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3194);
17362 }
17363 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
17364 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
17365 /* ./parser//parser_prod.nit:3195 */
17366 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17367 if (UNTAG_Bool(REGB3)) {
17368 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3195);
17369 }
17370 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17371 } else {
17372 /* ./parser//parser_prod.nit:3197 */
17373 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
17374 if (UNTAG_Bool(REGB3)) {
17375 } else {
17376 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3197);
17377 }
17378 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
17379 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
17380 }
17381 /* ./parser//parser_prod.nit:3199 */
17382 goto label1;
17383 }
17384 /* ./../lib/standard//kernel.nit:354 */
17385 REGB2 = TAG_Int(1);
17386 /* ./../lib/standard//kernel.nit:235 */
17387 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
17388 /* ./../lib/standard//kernel.nit:354 */
17389 REGB0 = REGB2;
17390 } else {
17391 /* ./../lib/standard//kernel.nit:352 */
17392 goto label2;
17393 }
17394 }
17395 label2: while(0);
17396 label1: while(0);
17397 stack_frame_head = fra.me.prev;
17398 return;
17399 }
17400 void parser___parser_prod___AType___visit_all(val_t p0, val_t p1){
17401 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17402 val_t REGB0;
17403 val_t REGB1;
17404 val_t tmp;
17405 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17406 fra.me.file = LOCATE_parser___parser_prod;
17407 fra.me.line = 3204;
17408 fra.me.meth = LOCATE_parser___parser_prod___AType___visit_all;
17409 fra.me.has_broke = 0;
17410 fra.me.REG_size = 4;
17411 fra.me.nitni_local_ref_head = NULL;
17412 fra.me.REG[0] = NIT_NULL;
17413 fra.me.REG[1] = NIT_NULL;
17414 fra.me.REG[2] = NIT_NULL;
17415 fra.me.REG[3] = NIT_NULL;
17416 fra.me.REG[0] = p0;
17417 fra.me.REG[1] = p1;
17418 /* ./parser//parser_prod.nit:3204 */
17419 fra.me.REG[2] = fra.me.REG[0];
17420 /* ./parser//parser_prod.nit:3206 */
17421 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[2]);
17422 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17423 if (UNTAG_Bool(REGB0)) {
17424 } else {
17425 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17426 if (UNTAG_Bool(REGB1)) {
17427 REGB1 = TAG_Bool(false);
17428 REGB0 = REGB1;
17429 } else {
17430 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17431 REGB0 = REGB1;
17432 }
17433 }
17434 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17435 if (UNTAG_Bool(REGB0)) {
17436 /* ./parser//parser_prod.nit:3207 */
17437 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[2]);
17438 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*/;
17439 if (UNTAG_Bool(REGB0)) {
17440 } else {
17441 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3207);
17442 }
17443 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17444 }
17445 /* ./parser//parser_prod.nit:3209 */
17446 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[2])!=NIT_NULL);
17447 if (UNTAG_Bool(REGB0)) {
17448 } else {
17449 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3209);
17450 }
17451 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[2]);
17452 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17453 /* ./parser//parser_prod.nit:3210 */
17454 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[2])!=NIT_NULL);
17455 if (UNTAG_Bool(REGB0)) {
17456 } else {
17457 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3210);
17458 }
17459 fra.me.REG[2] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[2]);
17460 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));
17461 stack_frame_head = fra.me.prev;
17462 return;
17463 }
17464 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){
17465 struct {struct stack_frame_t me;} fra;
17466 fun_t CREG[1];
17467 val_t tmp;
17468 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17469 fra.me.file = LOCATE_parser___parser_prod;
17470 fra.me.line = 0;
17471 fra.me.meth = LOCATE_parser___parser_prod___AType___visit_all;
17472 fra.me.has_broke = 0;
17473 fra.me.REG_size = 1;
17474 fra.me.nitni_local_ref_head = NULL;
17475 fra.me.REG[0] = NIT_NULL;
17476 fra.me.closure_ctx = closctx_param;
17477 fra.me.closure_funs = CREG;
17478 fra.me.REG[0] = p0;
17479 CREG[0] = clos_fun0;
17480 /* ./parser//parser_prod.nit:3211 */
17481 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
17482 stack_frame_head = fra.me.prev;
17483 return;
17484 }
17485 void parser___parser_prod___ALabel___empty_init(val_t p0, int* init_table){
17486 int itpos105 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALabel].i;
17487 struct {struct stack_frame_t me;} fra;
17488 val_t tmp;
17489 if (init_table[itpos105]) return;
17490 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17491 fra.me.file = LOCATE_parser___parser_prod;
17492 fra.me.line = 3216;
17493 fra.me.meth = LOCATE_parser___parser_prod___ALabel___empty_init;
17494 fra.me.has_broke = 0;
17495 fra.me.REG_size = 1;
17496 fra.me.nitni_local_ref_head = NULL;
17497 fra.me.REG[0] = NIT_NULL;
17498 fra.me.REG[0] = p0;
17499 stack_frame_head = fra.me.prev;
17500 init_table[itpos105] = 1;
17501 return;
17502 }
17503 void parser___parser_prod___ALabel___init_alabel(val_t p0, val_t p1, val_t p2, int* init_table){
17504 int itpos106 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALabel].i;
17505 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17506 val_t REGB0;
17507 val_t tmp;
17508 if (init_table[itpos106]) return;
17509 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17510 fra.me.file = LOCATE_parser___parser_prod;
17511 fra.me.line = 3218;
17512 fra.me.meth = LOCATE_parser___parser_prod___ALabel___init_alabel;
17513 fra.me.has_broke = 0;
17514 fra.me.REG_size = 4;
17515 fra.me.nitni_local_ref_head = NULL;
17516 fra.me.REG[0] = NIT_NULL;
17517 fra.me.REG[1] = NIT_NULL;
17518 fra.me.REG[2] = NIT_NULL;
17519 fra.me.REG[3] = NIT_NULL;
17520 fra.me.REG[0] = p0;
17521 fra.me.REG[1] = p1;
17522 fra.me.REG[2] = p2;
17523 /* ./parser//parser_prod.nit:3218 */
17524 fra.me.REG[3] = fra.me.REG[0];
17525 /* ./parser//parser_prod.nit:3223 */
17526 CALL_parser___parser_prod___ALabel___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
17527 /* ./parser//parser_prod.nit:3224 */
17528 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
17529 if (UNTAG_Bool(REGB0)) {
17530 } else {
17531 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3224);
17532 }
17533 ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[3]) = fra.me.REG[1];
17534 /* ./parser//parser_prod.nit:3225 */
17535 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17536 if (UNTAG_Bool(REGB0)) {
17537 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3225);
17538 }
17539 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17540 /* ./parser//parser_prod.nit:3226 */
17541 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
17542 if (UNTAG_Bool(REGB0)) {
17543 } else {
17544 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3226);
17545 }
17546 ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[3]) = fra.me.REG[2];
17547 /* ./parser//parser_prod.nit:3227 */
17548 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17549 if (UNTAG_Bool(REGB0)) {
17550 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3227);
17551 }
17552 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17553 stack_frame_head = fra.me.prev;
17554 init_table[itpos106] = 1;
17555 return;
17556 }
17557 void parser___parser_prod___ALabel___replace_child(val_t p0, val_t p1, val_t p2){
17558 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17559 val_t REGB0;
17560 val_t REGB1;
17561 val_t tmp;
17562 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17563 fra.me.file = LOCATE_parser___parser_prod;
17564 fra.me.line = 3230;
17565 fra.me.meth = LOCATE_parser___parser_prod___ALabel___replace_child;
17566 fra.me.has_broke = 0;
17567 fra.me.REG_size = 4;
17568 fra.me.nitni_local_ref_head = NULL;
17569 fra.me.REG[0] = NIT_NULL;
17570 fra.me.REG[1] = NIT_NULL;
17571 fra.me.REG[2] = NIT_NULL;
17572 fra.me.REG[3] = NIT_NULL;
17573 fra.me.REG[0] = p0;
17574 fra.me.REG[1] = p1;
17575 fra.me.REG[2] = p2;
17576 /* ./parser//parser_prod.nit:3232 */
17577 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0])!=NIT_NULL);
17578 if (UNTAG_Bool(REGB0)) {
17579 } else {
17580 nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser___parser_prod, 3232);
17581 }
17582 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]);
17583 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17584 if (UNTAG_Bool(REGB0)) {
17585 } else {
17586 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17587 REGB0 = REGB1;
17588 }
17589 if (UNTAG_Bool(REGB0)) {
17590 /* ./parser//parser_prod.nit:3233 */
17591 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17592 if (UNTAG_Bool(REGB0)) {
17593 } else {
17594 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17595 if (UNTAG_Bool(REGB1)) {
17596 REGB1 = TAG_Bool(false);
17597 REGB0 = REGB1;
17598 } else {
17599 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17600 REGB0 = REGB1;
17601 }
17602 }
17603 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17604 if (UNTAG_Bool(REGB0)) {
17605 /* ./parser//parser_prod.nit:3234 */
17606 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17607 if (UNTAG_Bool(REGB0)) {
17608 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3234);
17609 }
17610 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17611 /* ./parser//parser_prod.nit:3235 */
17612 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*/;
17613 if (UNTAG_Bool(REGB0)) {
17614 } else {
17615 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3235);
17616 }
17617 /* ./parser//parser_prod.nit:3236 */
17618 ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]) = fra.me.REG[2];
17619 } else {
17620 /* ./parser//parser_prod.nit:3238 */
17621 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3238);
17622 }
17623 /* ./parser//parser_prod.nit:3240 */
17624 goto label1;
17625 }
17626 /* ./parser//parser_prod.nit:3242 */
17627 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0])!=NIT_NULL);
17628 if (UNTAG_Bool(REGB0)) {
17629 } else {
17630 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3242);
17631 }
17632 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]);
17633 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17634 if (UNTAG_Bool(REGB0)) {
17635 } else {
17636 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17637 REGB0 = REGB1;
17638 }
17639 if (UNTAG_Bool(REGB0)) {
17640 /* ./parser//parser_prod.nit:3243 */
17641 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17642 if (UNTAG_Bool(REGB0)) {
17643 } else {
17644 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17645 if (UNTAG_Bool(REGB1)) {
17646 REGB1 = TAG_Bool(false);
17647 REGB0 = REGB1;
17648 } else {
17649 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17650 REGB0 = REGB1;
17651 }
17652 }
17653 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17654 if (UNTAG_Bool(REGB0)) {
17655 /* ./parser//parser_prod.nit:3244 */
17656 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17657 if (UNTAG_Bool(REGB0)) {
17658 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3244);
17659 }
17660 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17661 /* ./parser//parser_prod.nit:3245 */
17662 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*/;
17663 if (UNTAG_Bool(REGB0)) {
17664 } else {
17665 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3245);
17666 }
17667 /* ./parser//parser_prod.nit:3246 */
17668 ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]) = fra.me.REG[2];
17669 } else {
17670 /* ./parser//parser_prod.nit:3248 */
17671 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3248);
17672 }
17673 /* ./parser//parser_prod.nit:3250 */
17674 goto label1;
17675 }
17676 label1: while(0);
17677 stack_frame_head = fra.me.prev;
17678 return;
17679 }
17680 void parser___parser_prod___ALabel___visit_all(val_t p0, val_t p1){
17681 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
17682 val_t REGB0;
17683 val_t tmp;
17684 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17685 fra.me.file = LOCATE_parser___parser_prod;
17686 fra.me.line = 3254;
17687 fra.me.meth = LOCATE_parser___parser_prod___ALabel___visit_all;
17688 fra.me.has_broke = 0;
17689 fra.me.REG_size = 3;
17690 fra.me.nitni_local_ref_head = NULL;
17691 fra.me.REG[0] = NIT_NULL;
17692 fra.me.REG[1] = NIT_NULL;
17693 fra.me.REG[2] = NIT_NULL;
17694 fra.me.REG[0] = p0;
17695 fra.me.REG[1] = p1;
17696 /* ./parser//parser_prod.nit:3256 */
17697 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0])!=NIT_NULL);
17698 if (UNTAG_Bool(REGB0)) {
17699 } else {
17700 nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser___parser_prod, 3256);
17701 }
17702 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]);
17703 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17704 /* ./parser//parser_prod.nit:3257 */
17705 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0])!=NIT_NULL);
17706 if (UNTAG_Bool(REGB0)) {
17707 } else {
17708 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3257);
17709 }
17710 fra.me.REG[0] = ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]);
17711 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17712 stack_frame_head = fra.me.prev;
17713 return;
17714 }
17715 void parser___parser_prod___ABlockExpr___empty_init(val_t p0, int* init_table){
17716 int itpos107 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABlockExpr].i;
17717 struct {struct stack_frame_t me;} fra;
17718 val_t tmp;
17719 if (init_table[itpos107]) return;
17720 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17721 fra.me.file = LOCATE_parser___parser_prod;
17722 fra.me.line = 3261;
17723 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___empty_init;
17724 fra.me.has_broke = 0;
17725 fra.me.REG_size = 1;
17726 fra.me.nitni_local_ref_head = NULL;
17727 fra.me.REG[0] = NIT_NULL;
17728 fra.me.REG[0] = p0;
17729 stack_frame_head = fra.me.prev;
17730 init_table[itpos107] = 1;
17731 return;
17732 }
17733 void parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0, val_t p1, int* init_table){
17734 int itpos108 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABlockExpr].i;
17735 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17736 val_t tmp;
17737 if (init_table[itpos108]) return;
17738 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17739 fra.me.file = LOCATE_parser___parser_prod;
17740 fra.me.line = 3263;
17741 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___init_ablockexpr;
17742 fra.me.has_broke = 0;
17743 fra.me.REG_size = 2;
17744 fra.me.nitni_local_ref_head = NULL;
17745 fra.me.REG[0] = NIT_NULL;
17746 fra.me.REG[1] = NIT_NULL;
17747 fra.me.REG[0] = p0;
17748 fra.me.REG[1] = p1;
17749 /* ./parser//parser_prod.nit:3267 */
17750 CALL_parser___parser_prod___ABlockExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
17751 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));
17752 stack_frame_head = fra.me.prev;
17753 init_table[itpos108] = 1;
17754 return;
17755 }
17756 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){
17757 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17758 val_t REGB0;
17759 fun_t CREG[1];
17760 val_t tmp;
17761 /* ./parser//parser_prod.nit:3268 */
17762 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17763 fra.me.file = LOCATE_parser___parser_prod;
17764 fra.me.line = 0;
17765 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___init_ablockexpr;
17766 fra.me.has_broke = 0;
17767 fra.me.REG_size = 2;
17768 fra.me.nitni_local_ref_head = NULL;
17769 fra.me.REG[0] = NIT_NULL;
17770 fra.me.REG[1] = NIT_NULL;
17771 fra.me.closure_ctx = closctx_param;
17772 fra.me.closure_funs = CREG;
17773 fra.me.REG[0] = p0;
17774 CREG[0] = clos_fun0;
17775 /* ./parser//parser_prod.nit:3269 */
17776 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
17777 if (UNTAG_Bool(REGB0)) {
17778 } else {
17779 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3269);
17780 }
17781 /* ./parser//parser_prod.nit:3270 */
17782 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(closctx->REG[0])!=NIT_NULL);
17783 if (UNTAG_Bool(REGB0)) {
17784 } else {
17785 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3270);
17786 }
17787 fra.me.REG[1] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(closctx->REG[0]);
17788 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17789 /* ./parser//parser_prod.nit:3271 */
17790 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
17791 stack_frame_head = fra.me.prev;
17792 return;
17793 }
17794 void parser___parser_prod___ABlockExpr___replace_child(val_t p0, val_t p1, val_t p2){
17795 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17796 val_t REGB0;
17797 val_t REGB1;
17798 val_t REGB2;
17799 val_t REGB3;
17800 val_t REGB4;
17801 val_t tmp;
17802 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17803 fra.me.file = LOCATE_parser___parser_prod;
17804 fra.me.line = 3275;
17805 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___replace_child;
17806 fra.me.has_broke = 0;
17807 fra.me.REG_size = 4;
17808 fra.me.nitni_local_ref_head = NULL;
17809 fra.me.REG[0] = NIT_NULL;
17810 fra.me.REG[1] = NIT_NULL;
17811 fra.me.REG[2] = NIT_NULL;
17812 fra.me.REG[3] = NIT_NULL;
17813 fra.me.REG[0] = p0;
17814 fra.me.REG[1] = p1;
17815 fra.me.REG[2] = p2;
17816 /* ./parser//parser_prod.nit:3277 */
17817 REGB0 = TAG_Int(0);
17818 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
17819 if (UNTAG_Bool(REGB1)) {
17820 } else {
17821 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3277);
17822 }
17823 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
17824 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
17825 /* ./../lib/standard//kernel.nit:352 */
17826 while(1) {
17827 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
17828 if (UNTAG_Bool(REGB2)) {
17829 } else {
17830 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
17831 }
17832 /* ./../lib/standard//kernel.nit:232 */
17833 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
17834 /* ./../lib/standard//kernel.nit:352 */
17835 if (UNTAG_Bool(REGB2)) {
17836 /* ./parser//parser_prod.nit:3277 */
17837 REGB2 = REGB0;
17838 /* ./parser//parser_prod.nit:3278 */
17839 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
17840 if (UNTAG_Bool(REGB3)) {
17841 } else {
17842 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3278);
17843 }
17844 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
17845 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
17846 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17847 if (UNTAG_Bool(REGB3)) {
17848 } else {
17849 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17850 if (UNTAG_Bool(REGB4)) {
17851 REGB4 = TAG_Bool(false);
17852 REGB3 = REGB4;
17853 } else {
17854 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17855 REGB3 = REGB4;
17856 }
17857 }
17858 if (UNTAG_Bool(REGB3)) {
17859 /* ./parser//parser_prod.nit:3279 */
17860 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17861 if (UNTAG_Bool(REGB3)) {
17862 } else {
17863 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17864 if (UNTAG_Bool(REGB4)) {
17865 REGB4 = TAG_Bool(false);
17866 REGB3 = REGB4;
17867 } else {
17868 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17869 REGB3 = REGB4;
17870 }
17871 }
17872 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
17873 if (UNTAG_Bool(REGB3)) {
17874 /* ./parser//parser_prod.nit:3280 */
17875 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*/;
17876 if (UNTAG_Bool(REGB3)) {
17877 } else {
17878 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3280);
17879 }
17880 /* ./parser//parser_prod.nit:3281 */
17881 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
17882 if (UNTAG_Bool(REGB3)) {
17883 } else {
17884 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3281);
17885 }
17886 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
17887 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
17888 /* ./parser//parser_prod.nit:3282 */
17889 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17890 if (UNTAG_Bool(REGB3)) {
17891 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3282);
17892 }
17893 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17894 } else {
17895 /* ./parser//parser_prod.nit:3284 */
17896 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
17897 if (UNTAG_Bool(REGB3)) {
17898 } else {
17899 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3284);
17900 }
17901 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
17902 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
17903 }
17904 /* ./parser//parser_prod.nit:3286 */
17905 goto label1;
17906 }
17907 /* ./../lib/standard//kernel.nit:354 */
17908 REGB2 = TAG_Int(1);
17909 /* ./../lib/standard//kernel.nit:235 */
17910 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
17911 /* ./../lib/standard//kernel.nit:354 */
17912 REGB0 = REGB2;
17913 } else {
17914 /* ./../lib/standard//kernel.nit:352 */
17915 goto label2;
17916 }
17917 }
17918 label2: while(0);
17919 label1: while(0);
17920 stack_frame_head = fra.me.prev;
17921 return;
17922 }
17923 void parser___parser_prod___ABlockExpr___visit_all(val_t p0, val_t p1){
17924 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17925 val_t REGB0;
17926 val_t tmp;
17927 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17928 fra.me.file = LOCATE_parser___parser_prod;
17929 fra.me.line = 3291;
17930 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___visit_all;
17931 fra.me.has_broke = 0;
17932 fra.me.REG_size = 2;
17933 fra.me.nitni_local_ref_head = NULL;
17934 fra.me.REG[0] = NIT_NULL;
17935 fra.me.REG[1] = NIT_NULL;
17936 fra.me.REG[0] = p0;
17937 fra.me.REG[1] = p1;
17938 /* ./parser//parser_prod.nit:3293 */
17939 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
17940 if (UNTAG_Bool(REGB0)) {
17941 } else {
17942 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3293);
17943 }
17944 fra.me.REG[0] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
17945 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABlockExpr___visit_all_1));
17946 stack_frame_head = fra.me.prev;
17947 return;
17948 }
17949 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){
17950 struct {struct stack_frame_t me;} fra;
17951 fun_t CREG[1];
17952 val_t tmp;
17953 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17954 fra.me.file = LOCATE_parser___parser_prod;
17955 fra.me.line = 0;
17956 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___visit_all;
17957 fra.me.has_broke = 0;
17958 fra.me.REG_size = 1;
17959 fra.me.nitni_local_ref_head = NULL;
17960 fra.me.REG[0] = NIT_NULL;
17961 fra.me.closure_ctx = closctx_param;
17962 fra.me.closure_funs = CREG;
17963 fra.me.REG[0] = p0;
17964 CREG[0] = clos_fun0;
17965 /* ./parser//parser_prod.nit:3294 */
17966 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
17967 stack_frame_head = fra.me.prev;
17968 return;
17969 }
17970 void parser___parser_prod___AVardeclExpr___empty_init(val_t p0, int* init_table){
17971 int itpos109 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVardeclExpr].i;
17972 struct {struct stack_frame_t me;} fra;
17973 val_t tmp;
17974 if (init_table[itpos109]) return;
17975 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17976 fra.me.file = LOCATE_parser___parser_prod;
17977 fra.me.line = 3299;
17978 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___empty_init;
17979 fra.me.has_broke = 0;
17980 fra.me.REG_size = 1;
17981 fra.me.nitni_local_ref_head = NULL;
17982 fra.me.REG[0] = NIT_NULL;
17983 fra.me.REG[0] = p0;
17984 stack_frame_head = fra.me.prev;
17985 init_table[itpos109] = 1;
17986 return;
17987 }
17988 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){
17989 int itpos110 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVardeclExpr].i;
17990 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
17991 val_t REGB0;
17992 val_t REGB1;
17993 val_t tmp;
17994 if (init_table[itpos110]) return;
17995 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17996 fra.me.file = LOCATE_parser___parser_prod;
17997 fra.me.line = 3301;
17998 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___init_avardeclexpr;
17999 fra.me.has_broke = 0;
18000 fra.me.REG_size = 7;
18001 fra.me.nitni_local_ref_head = NULL;
18002 fra.me.REG[0] = NIT_NULL;
18003 fra.me.REG[1] = NIT_NULL;
18004 fra.me.REG[2] = NIT_NULL;
18005 fra.me.REG[3] = NIT_NULL;
18006 fra.me.REG[4] = NIT_NULL;
18007 fra.me.REG[5] = NIT_NULL;
18008 fra.me.REG[6] = NIT_NULL;
18009 fra.me.REG[0] = p0;
18010 fra.me.REG[1] = p1;
18011 fra.me.REG[2] = p2;
18012 fra.me.REG[3] = p3;
18013 fra.me.REG[4] = p4;
18014 fra.me.REG[5] = p5;
18015 /* ./parser//parser_prod.nit:3301 */
18016 fra.me.REG[6] = fra.me.REG[0];
18017 /* ./parser//parser_prod.nit:3309 */
18018 CALL_parser___parser_prod___AVardeclExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
18019 /* ./parser//parser_prod.nit:3310 */
18020 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
18021 if (UNTAG_Bool(REGB0)) {
18022 } else {
18023 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3310);
18024 }
18025 ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[6]) = fra.me.REG[1];
18026 /* ./parser//parser_prod.nit:3311 */
18027 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18028 if (UNTAG_Bool(REGB0)) {
18029 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3311);
18030 }
18031 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
18032 /* ./parser//parser_prod.nit:3312 */
18033 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
18034 if (UNTAG_Bool(REGB0)) {
18035 } else {
18036 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3312);
18037 }
18038 ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[6]) = fra.me.REG[2];
18039 /* ./parser//parser_prod.nit:3313 */
18040 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18041 if (UNTAG_Bool(REGB0)) {
18042 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3313);
18043 }
18044 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
18045 /* ./parser//parser_prod.nit:3314 */
18046 ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[6]) = fra.me.REG[3];
18047 /* ./parser//parser_prod.nit:3315 */
18048 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18049 if (UNTAG_Bool(REGB0)) {
18050 } else {
18051 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18052 if (UNTAG_Bool(REGB1)) {
18053 REGB1 = TAG_Bool(false);
18054 REGB0 = REGB1;
18055 } else {
18056 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18057 REGB0 = REGB1;
18058 }
18059 }
18060 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18061 if (UNTAG_Bool(REGB0)) {
18062 /* ./parser//parser_prod.nit:3316 */
18063 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18064 if (UNTAG_Bool(REGB0)) {
18065 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3316);
18066 }
18067 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
18068 }
18069 /* ./parser//parser_prod.nit:3318 */
18070 ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[6]) = fra.me.REG[4];
18071 /* ./parser//parser_prod.nit:3319 */
18072 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
18073 if (UNTAG_Bool(REGB0)) {
18074 } else {
18075 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
18076 if (UNTAG_Bool(REGB1)) {
18077 REGB1 = TAG_Bool(false);
18078 REGB0 = REGB1;
18079 } else {
18080 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
18081 REGB0 = REGB1;
18082 }
18083 }
18084 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18085 if (UNTAG_Bool(REGB0)) {
18086 /* ./parser//parser_prod.nit:3320 */
18087 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
18088 if (UNTAG_Bool(REGB0)) {
18089 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3320);
18090 }
18091 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
18092 }
18093 /* ./parser//parser_prod.nit:3322 */
18094 ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[6]) = fra.me.REG[5];
18095 /* ./parser//parser_prod.nit:3323 */
18096 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
18097 if (UNTAG_Bool(REGB0)) {
18098 } else {
18099 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
18100 if (UNTAG_Bool(REGB1)) {
18101 REGB1 = TAG_Bool(false);
18102 REGB0 = REGB1;
18103 } else {
18104 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
18105 REGB0 = REGB1;
18106 }
18107 }
18108 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18109 if (UNTAG_Bool(REGB0)) {
18110 /* ./parser//parser_prod.nit:3324 */
18111 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
18112 if (UNTAG_Bool(REGB0)) {
18113 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3324);
18114 }
18115 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
18116 }
18117 stack_frame_head = fra.me.prev;
18118 init_table[itpos110] = 1;
18119 return;
18120 }
18121 void parser___parser_prod___AVardeclExpr___replace_child(val_t p0, val_t p1, val_t p2){
18122 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18123 val_t REGB0;
18124 val_t REGB1;
18125 val_t tmp;
18126 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18127 fra.me.file = LOCATE_parser___parser_prod;
18128 fra.me.line = 3328;
18129 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___replace_child;
18130 fra.me.has_broke = 0;
18131 fra.me.REG_size = 4;
18132 fra.me.nitni_local_ref_head = NULL;
18133 fra.me.REG[0] = NIT_NULL;
18134 fra.me.REG[1] = NIT_NULL;
18135 fra.me.REG[2] = NIT_NULL;
18136 fra.me.REG[3] = NIT_NULL;
18137 fra.me.REG[0] = p0;
18138 fra.me.REG[1] = p1;
18139 fra.me.REG[2] = p2;
18140 /* ./parser//parser_prod.nit:3330 */
18141 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0])!=NIT_NULL);
18142 if (UNTAG_Bool(REGB0)) {
18143 } else {
18144 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 3330);
18145 }
18146 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]);
18147 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18148 if (UNTAG_Bool(REGB0)) {
18149 } else {
18150 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18151 REGB0 = REGB1;
18152 }
18153 if (UNTAG_Bool(REGB0)) {
18154 /* ./parser//parser_prod.nit:3331 */
18155 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18156 if (UNTAG_Bool(REGB0)) {
18157 } else {
18158 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18159 if (UNTAG_Bool(REGB1)) {
18160 REGB1 = TAG_Bool(false);
18161 REGB0 = REGB1;
18162 } else {
18163 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18164 REGB0 = REGB1;
18165 }
18166 }
18167 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18168 if (UNTAG_Bool(REGB0)) {
18169 /* ./parser//parser_prod.nit:3332 */
18170 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18171 if (UNTAG_Bool(REGB0)) {
18172 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3332);
18173 }
18174 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18175 /* ./parser//parser_prod.nit:3333 */
18176 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*/;
18177 if (UNTAG_Bool(REGB0)) {
18178 } else {
18179 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3333);
18180 }
18181 /* ./parser//parser_prod.nit:3334 */
18182 ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]) = fra.me.REG[2];
18183 } else {
18184 /* ./parser//parser_prod.nit:3336 */
18185 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3336);
18186 }
18187 /* ./parser//parser_prod.nit:3338 */
18188 goto label1;
18189 }
18190 /* ./parser//parser_prod.nit:3340 */
18191 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0])!=NIT_NULL);
18192 if (UNTAG_Bool(REGB0)) {
18193 } else {
18194 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3340);
18195 }
18196 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]);
18197 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18198 if (UNTAG_Bool(REGB0)) {
18199 } else {
18200 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18201 REGB0 = REGB1;
18202 }
18203 if (UNTAG_Bool(REGB0)) {
18204 /* ./parser//parser_prod.nit:3341 */
18205 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18206 if (UNTAG_Bool(REGB0)) {
18207 } else {
18208 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18209 if (UNTAG_Bool(REGB1)) {
18210 REGB1 = TAG_Bool(false);
18211 REGB0 = REGB1;
18212 } else {
18213 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18214 REGB0 = REGB1;
18215 }
18216 }
18217 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18218 if (UNTAG_Bool(REGB0)) {
18219 /* ./parser//parser_prod.nit:3342 */
18220 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18221 if (UNTAG_Bool(REGB0)) {
18222 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3342);
18223 }
18224 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18225 /* ./parser//parser_prod.nit:3343 */
18226 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*/;
18227 if (UNTAG_Bool(REGB0)) {
18228 } else {
18229 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3343);
18230 }
18231 /* ./parser//parser_prod.nit:3344 */
18232 ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
18233 } else {
18234 /* ./parser//parser_prod.nit:3346 */
18235 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3346);
18236 }
18237 /* ./parser//parser_prod.nit:3348 */
18238 goto label1;
18239 }
18240 /* ./parser//parser_prod.nit:3350 */
18241 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]);
18242 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18243 if (UNTAG_Bool(REGB0)) {
18244 } else {
18245 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18246 if (UNTAG_Bool(REGB1)) {
18247 REGB1 = TAG_Bool(false);
18248 REGB0 = REGB1;
18249 } else {
18250 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18251 REGB0 = REGB1;
18252 }
18253 }
18254 if (UNTAG_Bool(REGB0)) {
18255 /* ./parser//parser_prod.nit:3351 */
18256 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18257 if (UNTAG_Bool(REGB0)) {
18258 } else {
18259 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18260 if (UNTAG_Bool(REGB1)) {
18261 REGB1 = TAG_Bool(false);
18262 REGB0 = REGB1;
18263 } else {
18264 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18265 REGB0 = REGB1;
18266 }
18267 }
18268 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18269 if (UNTAG_Bool(REGB0)) {
18270 /* ./parser//parser_prod.nit:3352 */
18271 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18272 if (UNTAG_Bool(REGB0)) {
18273 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3352);
18274 }
18275 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18276 /* ./parser//parser_prod.nit:3353 */
18277 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*/;
18278 if (UNTAG_Bool(REGB0)) {
18279 } else {
18280 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3353);
18281 }
18282 /* ./parser//parser_prod.nit:3354 */
18283 ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
18284 } else {
18285 /* ./parser//parser_prod.nit:3356 */
18286 ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = NIT_NULL;
18287 }
18288 /* ./parser//parser_prod.nit:3358 */
18289 goto label1;
18290 }
18291 /* ./parser//parser_prod.nit:3360 */
18292 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]);
18293 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18294 if (UNTAG_Bool(REGB0)) {
18295 } else {
18296 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18297 if (UNTAG_Bool(REGB1)) {
18298 REGB1 = TAG_Bool(false);
18299 REGB0 = REGB1;
18300 } else {
18301 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18302 REGB0 = REGB1;
18303 }
18304 }
18305 if (UNTAG_Bool(REGB0)) {
18306 /* ./parser//parser_prod.nit:3361 */
18307 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18308 if (UNTAG_Bool(REGB0)) {
18309 } else {
18310 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18311 if (UNTAG_Bool(REGB1)) {
18312 REGB1 = TAG_Bool(false);
18313 REGB0 = REGB1;
18314 } else {
18315 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18316 REGB0 = REGB1;
18317 }
18318 }
18319 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18320 if (UNTAG_Bool(REGB0)) {
18321 /* ./parser//parser_prod.nit:3362 */
18322 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18323 if (UNTAG_Bool(REGB0)) {
18324 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3362);
18325 }
18326 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18327 /* ./parser//parser_prod.nit:3363 */
18328 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*/;
18329 if (UNTAG_Bool(REGB0)) {
18330 } else {
18331 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3363);
18332 }
18333 /* ./parser//parser_prod.nit:3364 */
18334 ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
18335 } else {
18336 /* ./parser//parser_prod.nit:3366 */
18337 ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = NIT_NULL;
18338 }
18339 /* ./parser//parser_prod.nit:3368 */
18340 goto label1;
18341 }
18342 /* ./parser//parser_prod.nit:3370 */
18343 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]);
18344 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18345 if (UNTAG_Bool(REGB0)) {
18346 } else {
18347 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18348 if (UNTAG_Bool(REGB1)) {
18349 REGB1 = TAG_Bool(false);
18350 REGB0 = REGB1;
18351 } else {
18352 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18353 REGB0 = REGB1;
18354 }
18355 }
18356 if (UNTAG_Bool(REGB0)) {
18357 /* ./parser//parser_prod.nit:3371 */
18358 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18359 if (UNTAG_Bool(REGB0)) {
18360 } else {
18361 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18362 if (UNTAG_Bool(REGB1)) {
18363 REGB1 = TAG_Bool(false);
18364 REGB0 = REGB1;
18365 } else {
18366 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18367 REGB0 = REGB1;
18368 }
18369 }
18370 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18371 if (UNTAG_Bool(REGB0)) {
18372 /* ./parser//parser_prod.nit:3372 */
18373 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18374 if (UNTAG_Bool(REGB0)) {
18375 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3372);
18376 }
18377 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18378 /* ./parser//parser_prod.nit:3373 */
18379 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*/;
18380 if (UNTAG_Bool(REGB0)) {
18381 } else {
18382 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3373);
18383 }
18384 /* ./parser//parser_prod.nit:3374 */
18385 ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
18386 } else {
18387 /* ./parser//parser_prod.nit:3376 */
18388 ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
18389 }
18390 /* ./parser//parser_prod.nit:3378 */
18391 goto label1;
18392 }
18393 label1: while(0);
18394 stack_frame_head = fra.me.prev;
18395 return;
18396 }
18397 void parser___parser_prod___AVardeclExpr___visit_all(val_t p0, val_t p1){
18398 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18399 val_t REGB0;
18400 val_t REGB1;
18401 val_t tmp;
18402 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18403 fra.me.file = LOCATE_parser___parser_prod;
18404 fra.me.line = 3382;
18405 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___visit_all;
18406 fra.me.has_broke = 0;
18407 fra.me.REG_size = 4;
18408 fra.me.nitni_local_ref_head = NULL;
18409 fra.me.REG[0] = NIT_NULL;
18410 fra.me.REG[1] = NIT_NULL;
18411 fra.me.REG[2] = NIT_NULL;
18412 fra.me.REG[3] = NIT_NULL;
18413 fra.me.REG[0] = p0;
18414 fra.me.REG[1] = p1;
18415 /* ./parser//parser_prod.nit:3382 */
18416 fra.me.REG[2] = fra.me.REG[0];
18417 /* ./parser//parser_prod.nit:3384 */
18418 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[2])!=NIT_NULL);
18419 if (UNTAG_Bool(REGB0)) {
18420 } else {
18421 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 3384);
18422 }
18423 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[2]);
18424 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18425 /* ./parser//parser_prod.nit:3385 */
18426 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[2])!=NIT_NULL);
18427 if (UNTAG_Bool(REGB0)) {
18428 } else {
18429 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3385);
18430 }
18431 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[2]);
18432 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18433 /* ./parser//parser_prod.nit:3386 */
18434 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[2]);
18435 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18436 if (UNTAG_Bool(REGB0)) {
18437 } else {
18438 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18439 if (UNTAG_Bool(REGB1)) {
18440 REGB1 = TAG_Bool(false);
18441 REGB0 = REGB1;
18442 } else {
18443 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18444 REGB0 = REGB1;
18445 }
18446 }
18447 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18448 if (UNTAG_Bool(REGB0)) {
18449 /* ./parser//parser_prod.nit:3387 */
18450 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[2]);
18451 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*/;
18452 if (UNTAG_Bool(REGB0)) {
18453 } else {
18454 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3387);
18455 }
18456 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18457 }
18458 /* ./parser//parser_prod.nit:3389 */
18459 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[2]);
18460 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18461 if (UNTAG_Bool(REGB0)) {
18462 } else {
18463 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18464 if (UNTAG_Bool(REGB1)) {
18465 REGB1 = TAG_Bool(false);
18466 REGB0 = REGB1;
18467 } else {
18468 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18469 REGB0 = REGB1;
18470 }
18471 }
18472 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18473 if (UNTAG_Bool(REGB0)) {
18474 /* ./parser//parser_prod.nit:3390 */
18475 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[2]);
18476 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*/;
18477 if (UNTAG_Bool(REGB0)) {
18478 } else {
18479 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3390);
18480 }
18481 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18482 }
18483 /* ./parser//parser_prod.nit:3392 */
18484 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[2]);
18485 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18486 if (UNTAG_Bool(REGB0)) {
18487 } else {
18488 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18489 if (UNTAG_Bool(REGB1)) {
18490 REGB1 = TAG_Bool(false);
18491 REGB0 = REGB1;
18492 } else {
18493 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18494 REGB0 = REGB1;
18495 }
18496 }
18497 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18498 if (UNTAG_Bool(REGB0)) {
18499 /* ./parser//parser_prod.nit:3393 */
18500 fra.me.REG[2] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[2]);
18501 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*/;
18502 if (UNTAG_Bool(REGB0)) {
18503 } else {
18504 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3393);
18505 }
18506 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18507 }
18508 stack_frame_head = fra.me.prev;
18509 return;
18510 }
18511 void parser___parser_prod___AReturnExpr___empty_init(val_t p0, int* init_table){
18512 int itpos111 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReturnExpr].i;
18513 struct {struct stack_frame_t me;} fra;
18514 val_t tmp;
18515 if (init_table[itpos111]) return;
18516 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18517 fra.me.file = LOCATE_parser___parser_prod;
18518 fra.me.line = 3398;
18519 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___empty_init;
18520 fra.me.has_broke = 0;
18521 fra.me.REG_size = 1;
18522 fra.me.nitni_local_ref_head = NULL;
18523 fra.me.REG[0] = NIT_NULL;
18524 fra.me.REG[0] = p0;
18525 stack_frame_head = fra.me.prev;
18526 init_table[itpos111] = 1;
18527 return;
18528 }
18529 void parser___parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1, val_t p2, int* init_table){
18530 int itpos112 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReturnExpr].i;
18531 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
18532 val_t REGB0;
18533 val_t REGB1;
18534 val_t tmp;
18535 if (init_table[itpos112]) return;
18536 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18537 fra.me.file = LOCATE_parser___parser_prod;
18538 fra.me.line = 3400;
18539 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___init_areturnexpr;
18540 fra.me.has_broke = 0;
18541 fra.me.REG_size = 3;
18542 fra.me.nitni_local_ref_head = NULL;
18543 fra.me.REG[0] = NIT_NULL;
18544 fra.me.REG[1] = NIT_NULL;
18545 fra.me.REG[2] = NIT_NULL;
18546 fra.me.REG[0] = p0;
18547 fra.me.REG[1] = p1;
18548 fra.me.REG[2] = p2;
18549 /* ./parser//parser_prod.nit:3405 */
18550 CALL_parser___parser_prod___AReturnExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
18551 /* ./parser//parser_prod.nit:3406 */
18552 ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[1];
18553 /* ./parser//parser_prod.nit:3407 */
18554 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18555 if (UNTAG_Bool(REGB0)) {
18556 } else {
18557 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18558 if (UNTAG_Bool(REGB1)) {
18559 REGB1 = TAG_Bool(false);
18560 REGB0 = REGB1;
18561 } else {
18562 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
18563 REGB0 = REGB1;
18564 }
18565 }
18566 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18567 if (UNTAG_Bool(REGB0)) {
18568 /* ./parser//parser_prod.nit:3408 */
18569 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18570 if (UNTAG_Bool(REGB0)) {
18571 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3408);
18572 }
18573 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18574 }
18575 /* ./parser//parser_prod.nit:3410 */
18576 ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
18577 /* ./parser//parser_prod.nit:3411 */
18578 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18579 if (UNTAG_Bool(REGB0)) {
18580 } else {
18581 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18582 if (UNTAG_Bool(REGB1)) {
18583 REGB1 = TAG_Bool(false);
18584 REGB0 = REGB1;
18585 } else {
18586 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18587 REGB0 = REGB1;
18588 }
18589 }
18590 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18591 if (UNTAG_Bool(REGB0)) {
18592 /* ./parser//parser_prod.nit:3412 */
18593 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18594 if (UNTAG_Bool(REGB0)) {
18595 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3412);
18596 }
18597 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18598 }
18599 stack_frame_head = fra.me.prev;
18600 init_table[itpos112] = 1;
18601 return;
18602 }
18603 void parser___parser_prod___AReturnExpr___replace_child(val_t p0, val_t p1, val_t p2){
18604 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18605 val_t REGB0;
18606 val_t REGB1;
18607 val_t tmp;
18608 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18609 fra.me.file = LOCATE_parser___parser_prod;
18610 fra.me.line = 3416;
18611 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___replace_child;
18612 fra.me.has_broke = 0;
18613 fra.me.REG_size = 4;
18614 fra.me.nitni_local_ref_head = NULL;
18615 fra.me.REG[0] = NIT_NULL;
18616 fra.me.REG[1] = NIT_NULL;
18617 fra.me.REG[2] = NIT_NULL;
18618 fra.me.REG[3] = NIT_NULL;
18619 fra.me.REG[0] = p0;
18620 fra.me.REG[1] = p1;
18621 fra.me.REG[2] = p2;
18622 /* ./parser//parser_prod.nit:3418 */
18623 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(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___TKwreturn, ID_parser___parser_nodes___TKwreturn)) /*cast TKwreturn*/;
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___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[2];
18666 } else {
18667 /* ./parser//parser_prod.nit:3424 */
18668 ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(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___AReturnExpr____n_expr(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___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
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___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
18717 } else {
18718 /* ./parser//parser_prod.nit:3434 */
18719 ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
18720 }
18721 /* ./parser//parser_prod.nit:3436 */
18722 goto label1;
18723 }
18724 label1: while(0);
18725 stack_frame_head = fra.me.prev;
18726 return;
18727 }
18728 void parser___parser_prod___AReturnExpr___visit_all(val_t p0, val_t p1){
18729 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18730 val_t REGB0;
18731 val_t REGB1;
18732 val_t tmp;
18733 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18734 fra.me.file = LOCATE_parser___parser_prod;
18735 fra.me.line = 3440;
18736 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___visit_all;
18737 fra.me.has_broke = 0;
18738 fra.me.REG_size = 4;
18739 fra.me.nitni_local_ref_head = NULL;
18740 fra.me.REG[0] = NIT_NULL;
18741 fra.me.REG[1] = NIT_NULL;
18742 fra.me.REG[2] = NIT_NULL;
18743 fra.me.REG[3] = NIT_NULL;
18744 fra.me.REG[0] = p0;
18745 fra.me.REG[1] = p1;
18746 /* ./parser//parser_prod.nit:3440 */
18747 fra.me.REG[2] = fra.me.REG[0];
18748 /* ./parser//parser_prod.nit:3442 */
18749 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[2]);
18750 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18751 if (UNTAG_Bool(REGB0)) {
18752 } else {
18753 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18754 if (UNTAG_Bool(REGB1)) {
18755 REGB1 = TAG_Bool(false);
18756 REGB0 = REGB1;
18757 } else {
18758 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18759 REGB0 = REGB1;
18760 }
18761 }
18762 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18763 if (UNTAG_Bool(REGB0)) {
18764 /* ./parser//parser_prod.nit:3443 */
18765 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[2]);
18766 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*/;
18767 if (UNTAG_Bool(REGB0)) {
18768 } else {
18769 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3443);
18770 }
18771 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18772 }
18773 /* ./parser//parser_prod.nit:3445 */
18774 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[2]);
18775 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18776 if (UNTAG_Bool(REGB0)) {
18777 } else {
18778 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18779 if (UNTAG_Bool(REGB1)) {
18780 REGB1 = TAG_Bool(false);
18781 REGB0 = REGB1;
18782 } else {
18783 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18784 REGB0 = REGB1;
18785 }
18786 }
18787 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18788 if (UNTAG_Bool(REGB0)) {
18789 /* ./parser//parser_prod.nit:3446 */
18790 fra.me.REG[2] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[2]);
18791 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*/;
18792 if (UNTAG_Bool(REGB0)) {
18793 } else {
18794 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3446);
18795 }
18796 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18797 }
18798 stack_frame_head = fra.me.prev;
18799 return;
18800 }
18801 void parser___parser_prod___ABreakExpr___empty_init(val_t p0, int* init_table){
18802 int itpos113 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakExpr].i;
18803 struct {struct stack_frame_t me;} fra;
18804 val_t tmp;
18805 if (init_table[itpos113]) return;
18806 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18807 fra.me.file = LOCATE_parser___parser_prod;
18808 fra.me.line = 3451;
18809 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___empty_init;
18810 fra.me.has_broke = 0;
18811 fra.me.REG_size = 1;
18812 fra.me.nitni_local_ref_head = NULL;
18813 fra.me.REG[0] = NIT_NULL;
18814 fra.me.REG[0] = p0;
18815 stack_frame_head = fra.me.prev;
18816 init_table[itpos113] = 1;
18817 return;
18818 }
18819 void parser___parser_prod___ABreakExpr___init_abreakexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
18820 int itpos114 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakExpr].i;
18821 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
18822 val_t REGB0;
18823 val_t REGB1;
18824 val_t tmp;
18825 if (init_table[itpos114]) return;
18826 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18827 fra.me.file = LOCATE_parser___parser_prod;
18828 fra.me.line = 3453;
18829 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___init_abreakexpr;
18830 fra.me.has_broke = 0;
18831 fra.me.REG_size = 5;
18832 fra.me.nitni_local_ref_head = NULL;
18833 fra.me.REG[0] = NIT_NULL;
18834 fra.me.REG[1] = NIT_NULL;
18835 fra.me.REG[2] = NIT_NULL;
18836 fra.me.REG[3] = NIT_NULL;
18837 fra.me.REG[4] = NIT_NULL;
18838 fra.me.REG[0] = p0;
18839 fra.me.REG[1] = p1;
18840 fra.me.REG[2] = p2;
18841 fra.me.REG[3] = p3;
18842 /* ./parser//parser_prod.nit:3453 */
18843 fra.me.REG[4] = fra.me.REG[0];
18844 /* ./parser//parser_prod.nit:3459 */
18845 CALL_parser___parser_prod___ABreakExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
18846 /* ./parser//parser_prod.nit:3460 */
18847 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
18848 if (UNTAG_Bool(REGB0)) {
18849 } else {
18850 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3460);
18851 }
18852 ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[4]) = fra.me.REG[1];
18853 /* ./parser//parser_prod.nit:3461 */
18854 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18855 if (UNTAG_Bool(REGB0)) {
18856 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3461);
18857 }
18858 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
18859 /* ./parser//parser_prod.nit:3462 */
18860 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[2];
18861 /* ./parser//parser_prod.nit:3463 */
18862 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18863 if (UNTAG_Bool(REGB0)) {
18864 } else {
18865 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18866 if (UNTAG_Bool(REGB1)) {
18867 REGB1 = TAG_Bool(false);
18868 REGB0 = REGB1;
18869 } else {
18870 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18871 REGB0 = REGB1;
18872 }
18873 }
18874 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18875 if (UNTAG_Bool(REGB0)) {
18876 /* ./parser//parser_prod.nit:3464 */
18877 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18878 if (UNTAG_Bool(REGB0)) {
18879 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3464);
18880 }
18881 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
18882 }
18883 /* ./parser//parser_prod.nit:3466 */
18884 ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[4]) = fra.me.REG[3];
18885 /* ./parser//parser_prod.nit:3467 */
18886 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18887 if (UNTAG_Bool(REGB0)) {
18888 } else {
18889 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18890 if (UNTAG_Bool(REGB1)) {
18891 REGB1 = TAG_Bool(false);
18892 REGB0 = REGB1;
18893 } else {
18894 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18895 REGB0 = REGB1;
18896 }
18897 }
18898 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18899 if (UNTAG_Bool(REGB0)) {
18900 /* ./parser//parser_prod.nit:3468 */
18901 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18902 if (UNTAG_Bool(REGB0)) {
18903 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3468);
18904 }
18905 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
18906 }
18907 stack_frame_head = fra.me.prev;
18908 init_table[itpos114] = 1;
18909 return;
18910 }
18911 void parser___parser_prod___ABreakExpr___replace_child(val_t p0, val_t p1, val_t p2){
18912 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18913 val_t REGB0;
18914 val_t REGB1;
18915 val_t tmp;
18916 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18917 fra.me.file = LOCATE_parser___parser_prod;
18918 fra.me.line = 3472;
18919 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___replace_child;
18920 fra.me.has_broke = 0;
18921 fra.me.REG_size = 4;
18922 fra.me.nitni_local_ref_head = NULL;
18923 fra.me.REG[0] = NIT_NULL;
18924 fra.me.REG[1] = NIT_NULL;
18925 fra.me.REG[2] = NIT_NULL;
18926 fra.me.REG[3] = NIT_NULL;
18927 fra.me.REG[0] = p0;
18928 fra.me.REG[1] = p1;
18929 fra.me.REG[2] = p2;
18930 /* ./parser//parser_prod.nit:3474 */
18931 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
18932 if (UNTAG_Bool(REGB0)) {
18933 } else {
18934 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 3474);
18935 }
18936 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]);
18937 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18938 if (UNTAG_Bool(REGB0)) {
18939 } else {
18940 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18941 REGB0 = REGB1;
18942 }
18943 if (UNTAG_Bool(REGB0)) {
18944 /* ./parser//parser_prod.nit:3475 */
18945 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18946 if (UNTAG_Bool(REGB0)) {
18947 } else {
18948 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18949 if (UNTAG_Bool(REGB1)) {
18950 REGB1 = TAG_Bool(false);
18951 REGB0 = REGB1;
18952 } else {
18953 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18954 REGB0 = REGB1;
18955 }
18956 }
18957 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18958 if (UNTAG_Bool(REGB0)) {
18959 /* ./parser//parser_prod.nit:3476 */
18960 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18961 if (UNTAG_Bool(REGB0)) {
18962 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3476);
18963 }
18964 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18965 /* ./parser//parser_prod.nit:3477 */
18966 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*/;
18967 if (UNTAG_Bool(REGB0)) {
18968 } else {
18969 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3477);
18970 }
18971 /* ./parser//parser_prod.nit:3478 */
18972 ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
18973 } else {
18974 /* ./parser//parser_prod.nit:3480 */
18975 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3480);
18976 }
18977 /* ./parser//parser_prod.nit:3482 */
18978 goto label1;
18979 }
18980 /* ./parser//parser_prod.nit:3484 */
18981 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
18982 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18983 if (UNTAG_Bool(REGB0)) {
18984 } else {
18985 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18986 if (UNTAG_Bool(REGB1)) {
18987 REGB1 = TAG_Bool(false);
18988 REGB0 = REGB1;
18989 } else {
18990 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18991 REGB0 = REGB1;
18992 }
18993 }
18994 if (UNTAG_Bool(REGB0)) {
18995 /* ./parser//parser_prod.nit:3485 */
18996 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18997 if (UNTAG_Bool(REGB0)) {
18998 } else {
18999 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19000 if (UNTAG_Bool(REGB1)) {
19001 REGB1 = TAG_Bool(false);
19002 REGB0 = REGB1;
19003 } else {
19004 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19005 REGB0 = REGB1;
19006 }
19007 }
19008 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19009 if (UNTAG_Bool(REGB0)) {
19010 /* ./parser//parser_prod.nit:3486 */
19011 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19012 if (UNTAG_Bool(REGB0)) {
19013 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3486);
19014 }
19015 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19016 /* ./parser//parser_prod.nit:3487 */
19017 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*/;
19018 if (UNTAG_Bool(REGB0)) {
19019 } else {
19020 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3487);
19021 }
19022 /* ./parser//parser_prod.nit:3488 */
19023 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
19024 } else {
19025 /* ./parser//parser_prod.nit:3490 */
19026 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
19027 }
19028 /* ./parser//parser_prod.nit:3492 */
19029 goto label1;
19030 }
19031 /* ./parser//parser_prod.nit:3494 */
19032 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]);
19033 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19034 if (UNTAG_Bool(REGB0)) {
19035 } else {
19036 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19037 if (UNTAG_Bool(REGB1)) {
19038 REGB1 = TAG_Bool(false);
19039 REGB0 = REGB1;
19040 } else {
19041 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19042 REGB0 = REGB1;
19043 }
19044 }
19045 if (UNTAG_Bool(REGB0)) {
19046 /* ./parser//parser_prod.nit:3495 */
19047 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19048 if (UNTAG_Bool(REGB0)) {
19049 } else {
19050 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19051 if (UNTAG_Bool(REGB1)) {
19052 REGB1 = TAG_Bool(false);
19053 REGB0 = REGB1;
19054 } else {
19055 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19056 REGB0 = REGB1;
19057 }
19058 }
19059 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19060 if (UNTAG_Bool(REGB0)) {
19061 /* ./parser//parser_prod.nit:3496 */
19062 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19063 if (UNTAG_Bool(REGB0)) {
19064 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3496);
19065 }
19066 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19067 /* ./parser//parser_prod.nit:3497 */
19068 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*/;
19069 if (UNTAG_Bool(REGB0)) {
19070 } else {
19071 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3497);
19072 }
19073 /* ./parser//parser_prod.nit:3498 */
19074 ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
19075 } else {
19076 /* ./parser//parser_prod.nit:3500 */
19077 ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
19078 }
19079 /* ./parser//parser_prod.nit:3502 */
19080 goto label1;
19081 }
19082 label1: while(0);
19083 stack_frame_head = fra.me.prev;
19084 return;
19085 }
19086 void parser___parser_prod___ABreakExpr___visit_all(val_t p0, val_t p1){
19087 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19088 val_t REGB0;
19089 val_t REGB1;
19090 val_t tmp;
19091 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19092 fra.me.file = LOCATE_parser___parser_prod;
19093 fra.me.line = 3506;
19094 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___visit_all;
19095 fra.me.has_broke = 0;
19096 fra.me.REG_size = 4;
19097 fra.me.nitni_local_ref_head = NULL;
19098 fra.me.REG[0] = NIT_NULL;
19099 fra.me.REG[1] = NIT_NULL;
19100 fra.me.REG[2] = NIT_NULL;
19101 fra.me.REG[3] = NIT_NULL;
19102 fra.me.REG[0] = p0;
19103 fra.me.REG[1] = p1;
19104 /* ./parser//parser_prod.nit:3506 */
19105 fra.me.REG[2] = fra.me.REG[0];
19106 /* ./parser//parser_prod.nit:3508 */
19107 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[2])!=NIT_NULL);
19108 if (UNTAG_Bool(REGB0)) {
19109 } else {
19110 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 3508);
19111 }
19112 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[2]);
19113 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19114 /* ./parser//parser_prod.nit:3509 */
19115 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
19116 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19117 if (UNTAG_Bool(REGB0)) {
19118 } else {
19119 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19120 if (UNTAG_Bool(REGB1)) {
19121 REGB1 = TAG_Bool(false);
19122 REGB0 = REGB1;
19123 } else {
19124 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19125 REGB0 = REGB1;
19126 }
19127 }
19128 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19129 if (UNTAG_Bool(REGB0)) {
19130 /* ./parser//parser_prod.nit:3510 */
19131 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
19132 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*/;
19133 if (UNTAG_Bool(REGB0)) {
19134 } else {
19135 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3510);
19136 }
19137 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19138 }
19139 /* ./parser//parser_prod.nit:3512 */
19140 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[2]);
19141 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19142 if (UNTAG_Bool(REGB0)) {
19143 } else {
19144 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19145 if (UNTAG_Bool(REGB1)) {
19146 REGB1 = TAG_Bool(false);
19147 REGB0 = REGB1;
19148 } else {
19149 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19150 REGB0 = REGB1;
19151 }
19152 }
19153 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19154 if (UNTAG_Bool(REGB0)) {
19155 /* ./parser//parser_prod.nit:3513 */
19156 fra.me.REG[2] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[2]);
19157 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*/;
19158 if (UNTAG_Bool(REGB0)) {
19159 } else {
19160 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3513);
19161 }
19162 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19163 }
19164 stack_frame_head = fra.me.prev;
19165 return;
19166 }
19167 void parser___parser_prod___AAbortExpr___empty_init(val_t p0, int* init_table){
19168 int itpos115 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbortExpr].i;
19169 struct {struct stack_frame_t me;} fra;
19170 val_t tmp;
19171 if (init_table[itpos115]) return;
19172 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19173 fra.me.file = LOCATE_parser___parser_prod;
19174 fra.me.line = 3518;
19175 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___empty_init;
19176 fra.me.has_broke = 0;
19177 fra.me.REG_size = 1;
19178 fra.me.nitni_local_ref_head = NULL;
19179 fra.me.REG[0] = NIT_NULL;
19180 fra.me.REG[0] = p0;
19181 stack_frame_head = fra.me.prev;
19182 init_table[itpos115] = 1;
19183 return;
19184 }
19185 void parser___parser_prod___AAbortExpr___init_aabortexpr(val_t p0, val_t p1, int* init_table){
19186 int itpos116 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbortExpr].i;
19187 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
19188 val_t REGB0;
19189 val_t tmp;
19190 if (init_table[itpos116]) return;
19191 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19192 fra.me.file = LOCATE_parser___parser_prod;
19193 fra.me.line = 3520;
19194 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___init_aabortexpr;
19195 fra.me.has_broke = 0;
19196 fra.me.REG_size = 3;
19197 fra.me.nitni_local_ref_head = NULL;
19198 fra.me.REG[0] = NIT_NULL;
19199 fra.me.REG[1] = NIT_NULL;
19200 fra.me.REG[2] = NIT_NULL;
19201 fra.me.REG[0] = p0;
19202 fra.me.REG[1] = p1;
19203 /* ./parser//parser_prod.nit:3520 */
19204 fra.me.REG[2] = fra.me.REG[0];
19205 /* ./parser//parser_prod.nit:3524 */
19206 CALL_parser___parser_prod___AAbortExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
19207 /* ./parser//parser_prod.nit:3525 */
19208 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
19209 if (UNTAG_Bool(REGB0)) {
19210 } else {
19211 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3525);
19212 }
19213 ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[2]) = fra.me.REG[1];
19214 /* ./parser//parser_prod.nit:3526 */
19215 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19216 if (UNTAG_Bool(REGB0)) {
19217 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3526);
19218 }
19219 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19220 stack_frame_head = fra.me.prev;
19221 init_table[itpos116] = 1;
19222 return;
19223 }
19224 void parser___parser_prod___AAbortExpr___replace_child(val_t p0, val_t p1, val_t p2){
19225 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19226 val_t REGB0;
19227 val_t REGB1;
19228 val_t tmp;
19229 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19230 fra.me.file = LOCATE_parser___parser_prod;
19231 fra.me.line = 3529;
19232 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___replace_child;
19233 fra.me.has_broke = 0;
19234 fra.me.REG_size = 4;
19235 fra.me.nitni_local_ref_head = NULL;
19236 fra.me.REG[0] = NIT_NULL;
19237 fra.me.REG[1] = NIT_NULL;
19238 fra.me.REG[2] = NIT_NULL;
19239 fra.me.REG[3] = NIT_NULL;
19240 fra.me.REG[0] = p0;
19241 fra.me.REG[1] = p1;
19242 fra.me.REG[2] = p2;
19243 /* ./parser//parser_prod.nit:3531 */
19244 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0])!=NIT_NULL);
19245 if (UNTAG_Bool(REGB0)) {
19246 } else {
19247 nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser___parser_prod, 3531);
19248 }
19249 fra.me.REG[3] = ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]);
19250 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19251 if (UNTAG_Bool(REGB0)) {
19252 } else {
19253 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19254 REGB0 = REGB1;
19255 }
19256 if (UNTAG_Bool(REGB0)) {
19257 /* ./parser//parser_prod.nit:3532 */
19258 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19259 if (UNTAG_Bool(REGB0)) {
19260 } else {
19261 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19262 if (UNTAG_Bool(REGB1)) {
19263 REGB1 = TAG_Bool(false);
19264 REGB0 = REGB1;
19265 } else {
19266 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19267 REGB0 = REGB1;
19268 }
19269 }
19270 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19271 if (UNTAG_Bool(REGB0)) {
19272 /* ./parser//parser_prod.nit:3533 */
19273 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19274 if (UNTAG_Bool(REGB0)) {
19275 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3533);
19276 }
19277 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19278 /* ./parser//parser_prod.nit:3534 */
19279 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*/;
19280 if (UNTAG_Bool(REGB0)) {
19281 } else {
19282 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3534);
19283 }
19284 /* ./parser//parser_prod.nit:3535 */
19285 ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]) = fra.me.REG[2];
19286 } else {
19287 /* ./parser//parser_prod.nit:3537 */
19288 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3537);
19289 }
19290 /* ./parser//parser_prod.nit:3539 */
19291 goto label1;
19292 }
19293 label1: while(0);
19294 stack_frame_head = fra.me.prev;
19295 return;
19296 }
19297 void parser___parser_prod___AAbortExpr___visit_all(val_t p0, val_t p1){
19298 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19299 val_t REGB0;
19300 val_t tmp;
19301 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19302 fra.me.file = LOCATE_parser___parser_prod;
19303 fra.me.line = 3543;
19304 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___visit_all;
19305 fra.me.has_broke = 0;
19306 fra.me.REG_size = 2;
19307 fra.me.nitni_local_ref_head = NULL;
19308 fra.me.REG[0] = NIT_NULL;
19309 fra.me.REG[1] = NIT_NULL;
19310 fra.me.REG[0] = p0;
19311 fra.me.REG[1] = p1;
19312 /* ./parser//parser_prod.nit:3545 */
19313 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0])!=NIT_NULL);
19314 if (UNTAG_Bool(REGB0)) {
19315 } else {
19316 nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser___parser_prod, 3545);
19317 }
19318 fra.me.REG[0] = ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]);
19319 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
19320 stack_frame_head = fra.me.prev;
19321 return;
19322 }
19323 void parser___parser_prod___AContinueExpr___empty_init(val_t p0, int* init_table){
19324 int itpos117 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AContinueExpr].i;
19325 struct {struct stack_frame_t me;} fra;
19326 val_t tmp;
19327 if (init_table[itpos117]) return;
19328 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19329 fra.me.file = LOCATE_parser___parser_prod;
19330 fra.me.line = 3549;
19331 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___empty_init;
19332 fra.me.has_broke = 0;
19333 fra.me.REG_size = 1;
19334 fra.me.nitni_local_ref_head = NULL;
19335 fra.me.REG[0] = NIT_NULL;
19336 fra.me.REG[0] = p0;
19337 stack_frame_head = fra.me.prev;
19338 init_table[itpos117] = 1;
19339 return;
19340 }
19341 void parser___parser_prod___AContinueExpr___init_acontinueexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
19342 int itpos118 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AContinueExpr].i;
19343 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19344 val_t REGB0;
19345 val_t REGB1;
19346 val_t tmp;
19347 if (init_table[itpos118]) return;
19348 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19349 fra.me.file = LOCATE_parser___parser_prod;
19350 fra.me.line = 3551;
19351 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___init_acontinueexpr;
19352 fra.me.has_broke = 0;
19353 fra.me.REG_size = 4;
19354 fra.me.nitni_local_ref_head = NULL;
19355 fra.me.REG[0] = NIT_NULL;
19356 fra.me.REG[1] = NIT_NULL;
19357 fra.me.REG[2] = NIT_NULL;
19358 fra.me.REG[3] = NIT_NULL;
19359 fra.me.REG[0] = p0;
19360 fra.me.REG[1] = p1;
19361 fra.me.REG[2] = p2;
19362 fra.me.REG[3] = p3;
19363 /* ./parser//parser_prod.nit:3557 */
19364 CALL_parser___parser_prod___AContinueExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
19365 /* ./parser//parser_prod.nit:3558 */
19366 ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = fra.me.REG[1];
19367 /* ./parser//parser_prod.nit:3559 */
19368 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19369 if (UNTAG_Bool(REGB0)) {
19370 } else {
19371 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19372 if (UNTAG_Bool(REGB1)) {
19373 REGB1 = TAG_Bool(false);
19374 REGB0 = REGB1;
19375 } else {
19376 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
19377 REGB0 = REGB1;
19378 }
19379 }
19380 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19381 if (UNTAG_Bool(REGB0)) {
19382 /* ./parser//parser_prod.nit:3560 */
19383 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19384 if (UNTAG_Bool(REGB0)) {
19385 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3560);
19386 }
19387 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
19388 }
19389 /* ./parser//parser_prod.nit:3562 */
19390 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
19391 /* ./parser//parser_prod.nit:3563 */
19392 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19393 if (UNTAG_Bool(REGB0)) {
19394 } else {
19395 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19396 if (UNTAG_Bool(REGB1)) {
19397 REGB1 = TAG_Bool(false);
19398 REGB0 = REGB1;
19399 } else {
19400 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19401 REGB0 = REGB1;
19402 }
19403 }
19404 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19405 if (UNTAG_Bool(REGB0)) {
19406 /* ./parser//parser_prod.nit:3564 */
19407 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19408 if (UNTAG_Bool(REGB0)) {
19409 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3564);
19410 }
19411 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19412 }
19413 /* ./parser//parser_prod.nit:3566 */
19414 ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = fra.me.REG[3];
19415 /* ./parser//parser_prod.nit:3567 */
19416 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19417 if (UNTAG_Bool(REGB0)) {
19418 } else {
19419 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19420 if (UNTAG_Bool(REGB1)) {
19421 REGB1 = TAG_Bool(false);
19422 REGB0 = REGB1;
19423 } else {
19424 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19425 REGB0 = REGB1;
19426 }
19427 }
19428 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19429 if (UNTAG_Bool(REGB0)) {
19430 /* ./parser//parser_prod.nit:3568 */
19431 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19432 if (UNTAG_Bool(REGB0)) {
19433 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3568);
19434 }
19435 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
19436 }
19437 stack_frame_head = fra.me.prev;
19438 init_table[itpos118] = 1;
19439 return;
19440 }
19441 void parser___parser_prod___AContinueExpr___replace_child(val_t p0, val_t p1, val_t p2){
19442 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19443 val_t REGB0;
19444 val_t REGB1;
19445 val_t tmp;
19446 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19447 fra.me.file = LOCATE_parser___parser_prod;
19448 fra.me.line = 3572;
19449 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___replace_child;
19450 fra.me.has_broke = 0;
19451 fra.me.REG_size = 4;
19452 fra.me.nitni_local_ref_head = NULL;
19453 fra.me.REG[0] = NIT_NULL;
19454 fra.me.REG[1] = NIT_NULL;
19455 fra.me.REG[2] = NIT_NULL;
19456 fra.me.REG[3] = NIT_NULL;
19457 fra.me.REG[0] = p0;
19458 fra.me.REG[1] = p1;
19459 fra.me.REG[2] = p2;
19460 /* ./parser//parser_prod.nit:3574 */
19461 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]);
19462 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19463 if (UNTAG_Bool(REGB0)) {
19464 } else {
19465 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19466 if (UNTAG_Bool(REGB1)) {
19467 REGB1 = TAG_Bool(false);
19468 REGB0 = REGB1;
19469 } else {
19470 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19471 REGB0 = REGB1;
19472 }
19473 }
19474 if (UNTAG_Bool(REGB0)) {
19475 /* ./parser//parser_prod.nit:3575 */
19476 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19477 if (UNTAG_Bool(REGB0)) {
19478 } else {
19479 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19480 if (UNTAG_Bool(REGB1)) {
19481 REGB1 = TAG_Bool(false);
19482 REGB0 = REGB1;
19483 } else {
19484 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19485 REGB0 = REGB1;
19486 }
19487 }
19488 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19489 if (UNTAG_Bool(REGB0)) {
19490 /* ./parser//parser_prod.nit:3576 */
19491 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19492 if (UNTAG_Bool(REGB0)) {
19493 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3576);
19494 }
19495 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19496 /* ./parser//parser_prod.nit:3577 */
19497 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*/;
19498 if (UNTAG_Bool(REGB0)) {
19499 } else {
19500 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3577);
19501 }
19502 /* ./parser//parser_prod.nit:3578 */
19503 ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = fra.me.REG[2];
19504 } else {
19505 /* ./parser//parser_prod.nit:3580 */
19506 ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = NIT_NULL;
19507 }
19508 /* ./parser//parser_prod.nit:3582 */
19509 goto label1;
19510 }
19511 /* ./parser//parser_prod.nit:3584 */
19512 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
19513 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19514 if (UNTAG_Bool(REGB0)) {
19515 } else {
19516 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19517 if (UNTAG_Bool(REGB1)) {
19518 REGB1 = TAG_Bool(false);
19519 REGB0 = REGB1;
19520 } else {
19521 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19522 REGB0 = REGB1;
19523 }
19524 }
19525 if (UNTAG_Bool(REGB0)) {
19526 /* ./parser//parser_prod.nit:3585 */
19527 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19528 if (UNTAG_Bool(REGB0)) {
19529 } else {
19530 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19531 if (UNTAG_Bool(REGB1)) {
19532 REGB1 = TAG_Bool(false);
19533 REGB0 = REGB1;
19534 } else {
19535 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19536 REGB0 = REGB1;
19537 }
19538 }
19539 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19540 if (UNTAG_Bool(REGB0)) {
19541 /* ./parser//parser_prod.nit:3586 */
19542 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19543 if (UNTAG_Bool(REGB0)) {
19544 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3586);
19545 }
19546 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19547 /* ./parser//parser_prod.nit:3587 */
19548 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*/;
19549 if (UNTAG_Bool(REGB0)) {
19550 } else {
19551 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3587);
19552 }
19553 /* ./parser//parser_prod.nit:3588 */
19554 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
19555 } else {
19556 /* ./parser//parser_prod.nit:3590 */
19557 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
19558 }
19559 /* ./parser//parser_prod.nit:3592 */
19560 goto label1;
19561 }
19562 /* ./parser//parser_prod.nit:3594 */
19563 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]);
19564 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19565 if (UNTAG_Bool(REGB0)) {
19566 } else {
19567 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19568 if (UNTAG_Bool(REGB1)) {
19569 REGB1 = TAG_Bool(false);
19570 REGB0 = REGB1;
19571 } else {
19572 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19573 REGB0 = REGB1;
19574 }
19575 }
19576 if (UNTAG_Bool(REGB0)) {
19577 /* ./parser//parser_prod.nit:3595 */
19578 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19579 if (UNTAG_Bool(REGB0)) {
19580 } else {
19581 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19582 if (UNTAG_Bool(REGB1)) {
19583 REGB1 = TAG_Bool(false);
19584 REGB0 = REGB1;
19585 } else {
19586 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19587 REGB0 = REGB1;
19588 }
19589 }
19590 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19591 if (UNTAG_Bool(REGB0)) {
19592 /* ./parser//parser_prod.nit:3596 */
19593 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19594 if (UNTAG_Bool(REGB0)) {
19595 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3596);
19596 }
19597 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19598 /* ./parser//parser_prod.nit:3597 */
19599 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*/;
19600 if (UNTAG_Bool(REGB0)) {
19601 } else {
19602 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3597);
19603 }
19604 /* ./parser//parser_prod.nit:3598 */
19605 ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
19606 } else {
19607 /* ./parser//parser_prod.nit:3600 */
19608 ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
19609 }
19610 /* ./parser//parser_prod.nit:3602 */
19611 goto label1;
19612 }
19613 label1: while(0);
19614 stack_frame_head = fra.me.prev;
19615 return;
19616 }
19617 void parser___parser_prod___AContinueExpr___visit_all(val_t p0, val_t p1){
19618 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19619 val_t REGB0;
19620 val_t REGB1;
19621 val_t tmp;
19622 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19623 fra.me.file = LOCATE_parser___parser_prod;
19624 fra.me.line = 3606;
19625 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___visit_all;
19626 fra.me.has_broke = 0;
19627 fra.me.REG_size = 4;
19628 fra.me.nitni_local_ref_head = NULL;
19629 fra.me.REG[0] = NIT_NULL;
19630 fra.me.REG[1] = NIT_NULL;
19631 fra.me.REG[2] = NIT_NULL;
19632 fra.me.REG[3] = NIT_NULL;
19633 fra.me.REG[0] = p0;
19634 fra.me.REG[1] = p1;
19635 /* ./parser//parser_prod.nit:3606 */
19636 fra.me.REG[2] = fra.me.REG[0];
19637 /* ./parser//parser_prod.nit:3608 */
19638 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[2]);
19639 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19640 if (UNTAG_Bool(REGB0)) {
19641 } else {
19642 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19643 if (UNTAG_Bool(REGB1)) {
19644 REGB1 = TAG_Bool(false);
19645 REGB0 = REGB1;
19646 } else {
19647 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19648 REGB0 = REGB1;
19649 }
19650 }
19651 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19652 if (UNTAG_Bool(REGB0)) {
19653 /* ./parser//parser_prod.nit:3609 */
19654 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[2]);
19655 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*/;
19656 if (UNTAG_Bool(REGB0)) {
19657 } else {
19658 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3609);
19659 }
19660 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19661 }
19662 /* ./parser//parser_prod.nit:3611 */
19663 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
19664 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19665 if (UNTAG_Bool(REGB0)) {
19666 } else {
19667 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19668 if (UNTAG_Bool(REGB1)) {
19669 REGB1 = TAG_Bool(false);
19670 REGB0 = REGB1;
19671 } else {
19672 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19673 REGB0 = REGB1;
19674 }
19675 }
19676 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19677 if (UNTAG_Bool(REGB0)) {
19678 /* ./parser//parser_prod.nit:3612 */
19679 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
19680 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*/;
19681 if (UNTAG_Bool(REGB0)) {
19682 } else {
19683 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3612);
19684 }
19685 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19686 }
19687 /* ./parser//parser_prod.nit:3614 */
19688 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[2]);
19689 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19690 if (UNTAG_Bool(REGB0)) {
19691 } else {
19692 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19693 if (UNTAG_Bool(REGB1)) {
19694 REGB1 = TAG_Bool(false);
19695 REGB0 = REGB1;
19696 } else {
19697 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19698 REGB0 = REGB1;
19699 }
19700 }
19701 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19702 if (UNTAG_Bool(REGB0)) {
19703 /* ./parser//parser_prod.nit:3615 */
19704 fra.me.REG[2] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[2]);
19705 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*/;
19706 if (UNTAG_Bool(REGB0)) {
19707 } else {
19708 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3615);
19709 }
19710 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19711 }
19712 stack_frame_head = fra.me.prev;
19713 return;
19714 }
19715 void parser___parser_prod___ADoExpr___empty_init(val_t p0, int* init_table){
19716 int itpos119 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoExpr].i;
19717 struct {struct stack_frame_t me;} fra;
19718 val_t tmp;
19719 if (init_table[itpos119]) return;
19720 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19721 fra.me.file = LOCATE_parser___parser_prod;
19722 fra.me.line = 3620;
19723 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___empty_init;
19724 fra.me.has_broke = 0;
19725 fra.me.REG_size = 1;
19726 fra.me.nitni_local_ref_head = NULL;
19727 fra.me.REG[0] = NIT_NULL;
19728 fra.me.REG[0] = p0;
19729 stack_frame_head = fra.me.prev;
19730 init_table[itpos119] = 1;
19731 return;
19732 }
19733 void parser___parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
19734 int itpos120 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoExpr].i;
19735 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
19736 val_t REGB0;
19737 val_t REGB1;
19738 val_t tmp;
19739 if (init_table[itpos120]) return;
19740 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19741 fra.me.file = LOCATE_parser___parser_prod;
19742 fra.me.line = 3622;
19743 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___init_adoexpr;
19744 fra.me.has_broke = 0;
19745 fra.me.REG_size = 5;
19746 fra.me.nitni_local_ref_head = NULL;
19747 fra.me.REG[0] = NIT_NULL;
19748 fra.me.REG[1] = NIT_NULL;
19749 fra.me.REG[2] = NIT_NULL;
19750 fra.me.REG[3] = NIT_NULL;
19751 fra.me.REG[4] = NIT_NULL;
19752 fra.me.REG[0] = p0;
19753 fra.me.REG[1] = p1;
19754 fra.me.REG[2] = p2;
19755 fra.me.REG[3] = p3;
19756 /* ./parser//parser_prod.nit:3622 */
19757 fra.me.REG[4] = fra.me.REG[0];
19758 /* ./parser//parser_prod.nit:3628 */
19759 CALL_parser___parser_prod___ADoExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
19760 /* ./parser//parser_prod.nit:3629 */
19761 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
19762 if (UNTAG_Bool(REGB0)) {
19763 } else {
19764 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3629);
19765 }
19766 ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[4]) = fra.me.REG[1];
19767 /* ./parser//parser_prod.nit:3630 */
19768 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19769 if (UNTAG_Bool(REGB0)) {
19770 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3630);
19771 }
19772 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
19773 /* ./parser//parser_prod.nit:3631 */
19774 ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[4]) = fra.me.REG[2];
19775 /* ./parser//parser_prod.nit:3632 */
19776 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19777 if (UNTAG_Bool(REGB0)) {
19778 } else {
19779 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19780 if (UNTAG_Bool(REGB1)) {
19781 REGB1 = TAG_Bool(false);
19782 REGB0 = REGB1;
19783 } else {
19784 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19785 REGB0 = REGB1;
19786 }
19787 }
19788 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19789 if (UNTAG_Bool(REGB0)) {
19790 /* ./parser//parser_prod.nit:3633 */
19791 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19792 if (UNTAG_Bool(REGB0)) {
19793 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3633);
19794 }
19795 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
19796 }
19797 /* ./parser//parser_prod.nit:3635 */
19798 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[3];
19799 /* ./parser//parser_prod.nit:3636 */
19800 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19801 if (UNTAG_Bool(REGB0)) {
19802 } else {
19803 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19804 if (UNTAG_Bool(REGB1)) {
19805 REGB1 = TAG_Bool(false);
19806 REGB0 = REGB1;
19807 } else {
19808 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19809 REGB0 = REGB1;
19810 }
19811 }
19812 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19813 if (UNTAG_Bool(REGB0)) {
19814 /* ./parser//parser_prod.nit:3637 */
19815 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19816 if (UNTAG_Bool(REGB0)) {
19817 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3637);
19818 }
19819 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
19820 }
19821 stack_frame_head = fra.me.prev;
19822 init_table[itpos120] = 1;
19823 return;
19824 }
19825 void parser___parser_prod___ADoExpr___replace_child(val_t p0, val_t p1, val_t p2){
19826 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19827 val_t REGB0;
19828 val_t REGB1;
19829 val_t tmp;
19830 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19831 fra.me.file = LOCATE_parser___parser_prod;
19832 fra.me.line = 3641;
19833 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___replace_child;
19834 fra.me.has_broke = 0;
19835 fra.me.REG_size = 4;
19836 fra.me.nitni_local_ref_head = NULL;
19837 fra.me.REG[0] = NIT_NULL;
19838 fra.me.REG[1] = NIT_NULL;
19839 fra.me.REG[2] = NIT_NULL;
19840 fra.me.REG[3] = NIT_NULL;
19841 fra.me.REG[0] = p0;
19842 fra.me.REG[1] = p1;
19843 fra.me.REG[2] = p2;
19844 /* ./parser//parser_prod.nit:3643 */
19845 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
19846 if (UNTAG_Bool(REGB0)) {
19847 } else {
19848 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3643);
19849 }
19850 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]);
19851 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19852 if (UNTAG_Bool(REGB0)) {
19853 } else {
19854 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19855 REGB0 = REGB1;
19856 }
19857 if (UNTAG_Bool(REGB0)) {
19858 /* ./parser//parser_prod.nit:3644 */
19859 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19860 if (UNTAG_Bool(REGB0)) {
19861 } else {
19862 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19863 if (UNTAG_Bool(REGB1)) {
19864 REGB1 = TAG_Bool(false);
19865 REGB0 = REGB1;
19866 } else {
19867 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19868 REGB0 = REGB1;
19869 }
19870 }
19871 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19872 if (UNTAG_Bool(REGB0)) {
19873 /* ./parser//parser_prod.nit:3645 */
19874 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19875 if (UNTAG_Bool(REGB0)) {
19876 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3645);
19877 }
19878 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19879 /* ./parser//parser_prod.nit:3646 */
19880 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*/;
19881 if (UNTAG_Bool(REGB0)) {
19882 } else {
19883 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3646);
19884 }
19885 /* ./parser//parser_prod.nit:3647 */
19886 ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
19887 } else {
19888 /* ./parser//parser_prod.nit:3649 */
19889 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3649);
19890 }
19891 /* ./parser//parser_prod.nit:3651 */
19892 goto label1;
19893 }
19894 /* ./parser//parser_prod.nit:3653 */
19895 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]);
19896 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19897 if (UNTAG_Bool(REGB0)) {
19898 } else {
19899 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19900 if (UNTAG_Bool(REGB1)) {
19901 REGB1 = TAG_Bool(false);
19902 REGB0 = REGB1;
19903 } else {
19904 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19905 REGB0 = REGB1;
19906 }
19907 }
19908 if (UNTAG_Bool(REGB0)) {
19909 /* ./parser//parser_prod.nit:3654 */
19910 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19911 if (UNTAG_Bool(REGB0)) {
19912 } else {
19913 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19914 if (UNTAG_Bool(REGB1)) {
19915 REGB1 = TAG_Bool(false);
19916 REGB0 = REGB1;
19917 } else {
19918 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19919 REGB0 = REGB1;
19920 }
19921 }
19922 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19923 if (UNTAG_Bool(REGB0)) {
19924 /* ./parser//parser_prod.nit:3655 */
19925 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19926 if (UNTAG_Bool(REGB0)) {
19927 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3655);
19928 }
19929 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19930 /* ./parser//parser_prod.nit:3656 */
19931 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*/;
19932 if (UNTAG_Bool(REGB0)) {
19933 } else {
19934 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3656);
19935 }
19936 /* ./parser//parser_prod.nit:3657 */
19937 ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
19938 } else {
19939 /* ./parser//parser_prod.nit:3659 */
19940 ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = NIT_NULL;
19941 }
19942 /* ./parser//parser_prod.nit:3661 */
19943 goto label1;
19944 }
19945 /* ./parser//parser_prod.nit:3663 */
19946 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
19947 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19948 if (UNTAG_Bool(REGB0)) {
19949 } else {
19950 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19951 if (UNTAG_Bool(REGB1)) {
19952 REGB1 = TAG_Bool(false);
19953 REGB0 = REGB1;
19954 } else {
19955 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19956 REGB0 = REGB1;
19957 }
19958 }
19959 if (UNTAG_Bool(REGB0)) {
19960 /* ./parser//parser_prod.nit:3664 */
19961 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19962 if (UNTAG_Bool(REGB0)) {
19963 } else {
19964 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19965 if (UNTAG_Bool(REGB1)) {
19966 REGB1 = TAG_Bool(false);
19967 REGB0 = REGB1;
19968 } else {
19969 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19970 REGB0 = REGB1;
19971 }
19972 }
19973 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19974 if (UNTAG_Bool(REGB0)) {
19975 /* ./parser//parser_prod.nit:3665 */
19976 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19977 if (UNTAG_Bool(REGB0)) {
19978 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3665);
19979 }
19980 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19981 /* ./parser//parser_prod.nit:3666 */
19982 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*/;
19983 if (UNTAG_Bool(REGB0)) {
19984 } else {
19985 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3666);
19986 }
19987 /* ./parser//parser_prod.nit:3667 */
19988 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
19989 } else {
19990 /* ./parser//parser_prod.nit:3669 */
19991 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
19992 }
19993 /* ./parser//parser_prod.nit:3671 */
19994 goto label1;
19995 }
19996 label1: while(0);
19997 stack_frame_head = fra.me.prev;
19998 return;
19999 }
20000 void parser___parser_prod___ADoExpr___visit_all(val_t p0, val_t p1){
20001 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20002 val_t REGB0;
20003 val_t REGB1;
20004 val_t tmp;
20005 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20006 fra.me.file = LOCATE_parser___parser_prod;
20007 fra.me.line = 3675;
20008 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___visit_all;
20009 fra.me.has_broke = 0;
20010 fra.me.REG_size = 4;
20011 fra.me.nitni_local_ref_head = NULL;
20012 fra.me.REG[0] = NIT_NULL;
20013 fra.me.REG[1] = NIT_NULL;
20014 fra.me.REG[2] = NIT_NULL;
20015 fra.me.REG[3] = NIT_NULL;
20016 fra.me.REG[0] = p0;
20017 fra.me.REG[1] = p1;
20018 /* ./parser//parser_prod.nit:3675 */
20019 fra.me.REG[2] = fra.me.REG[0];
20020 /* ./parser//parser_prod.nit:3677 */
20021 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
20022 if (UNTAG_Bool(REGB0)) {
20023 } else {
20024 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3677);
20025 }
20026 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[2]);
20027 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20028 /* ./parser//parser_prod.nit:3678 */
20029 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[2]);
20030 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20031 if (UNTAG_Bool(REGB0)) {
20032 } else {
20033 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20034 if (UNTAG_Bool(REGB1)) {
20035 REGB1 = TAG_Bool(false);
20036 REGB0 = REGB1;
20037 } else {
20038 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20039 REGB0 = REGB1;
20040 }
20041 }
20042 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20043 if (UNTAG_Bool(REGB0)) {
20044 /* ./parser//parser_prod.nit:3679 */
20045 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[2]);
20046 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*/;
20047 if (UNTAG_Bool(REGB0)) {
20048 } else {
20049 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3679);
20050 }
20051 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20052 }
20053 /* ./parser//parser_prod.nit:3681 */
20054 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
20055 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20056 if (UNTAG_Bool(REGB0)) {
20057 } else {
20058 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20059 if (UNTAG_Bool(REGB1)) {
20060 REGB1 = TAG_Bool(false);
20061 REGB0 = REGB1;
20062 } else {
20063 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20064 REGB0 = REGB1;
20065 }
20066 }
20067 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20068 if (UNTAG_Bool(REGB0)) {
20069 /* ./parser//parser_prod.nit:3682 */
20070 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
20071 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*/;
20072 if (UNTAG_Bool(REGB0)) {
20073 } else {
20074 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3682);
20075 }
20076 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20077 }
20078 stack_frame_head = fra.me.prev;
20079 return;
20080 }
20081 void parser___parser_prod___AIfExpr___empty_init(val_t p0, int* init_table){
20082 int itpos121 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfExpr].i;
20083 struct {struct stack_frame_t me;} fra;
20084 val_t tmp;
20085 if (init_table[itpos121]) return;
20086 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20087 fra.me.file = LOCATE_parser___parser_prod;
20088 fra.me.line = 3687;
20089 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___empty_init;
20090 fra.me.has_broke = 0;
20091 fra.me.REG_size = 1;
20092 fra.me.nitni_local_ref_head = NULL;
20093 fra.me.REG[0] = NIT_NULL;
20094 fra.me.REG[0] = p0;
20095 stack_frame_head = fra.me.prev;
20096 init_table[itpos121] = 1;
20097 return;
20098 }
20099 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){
20100 int itpos122 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfExpr].i;
20101 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
20102 val_t REGB0;
20103 val_t REGB1;
20104 val_t tmp;
20105 if (init_table[itpos122]) return;
20106 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20107 fra.me.file = LOCATE_parser___parser_prod;
20108 fra.me.line = 3689;
20109 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___init_aifexpr;
20110 fra.me.has_broke = 0;
20111 fra.me.REG_size = 6;
20112 fra.me.nitni_local_ref_head = NULL;
20113 fra.me.REG[0] = NIT_NULL;
20114 fra.me.REG[1] = NIT_NULL;
20115 fra.me.REG[2] = NIT_NULL;
20116 fra.me.REG[3] = NIT_NULL;
20117 fra.me.REG[4] = NIT_NULL;
20118 fra.me.REG[5] = NIT_NULL;
20119 fra.me.REG[0] = p0;
20120 fra.me.REG[1] = p1;
20121 fra.me.REG[2] = p2;
20122 fra.me.REG[3] = p3;
20123 fra.me.REG[4] = p4;
20124 /* ./parser//parser_prod.nit:3689 */
20125 fra.me.REG[5] = fra.me.REG[0];
20126 /* ./parser//parser_prod.nit:3696 */
20127 CALL_parser___parser_prod___AIfExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
20128 /* ./parser//parser_prod.nit:3697 */
20129 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
20130 if (UNTAG_Bool(REGB0)) {
20131 } else {
20132 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3697);
20133 }
20134 ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[5]) = fra.me.REG[1];
20135 /* ./parser//parser_prod.nit:3698 */
20136 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20137 if (UNTAG_Bool(REGB0)) {
20138 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3698);
20139 }
20140 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
20141 /* ./parser//parser_prod.nit:3699 */
20142 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
20143 if (UNTAG_Bool(REGB0)) {
20144 } else {
20145 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3699);
20146 }
20147 ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[5]) = fra.me.REG[2];
20148 /* ./parser//parser_prod.nit:3700 */
20149 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20150 if (UNTAG_Bool(REGB0)) {
20151 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3700);
20152 }
20153 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
20154 /* ./parser//parser_prod.nit:3701 */
20155 ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[5]) = fra.me.REG[3];
20156 /* ./parser//parser_prod.nit:3702 */
20157 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20158 if (UNTAG_Bool(REGB0)) {
20159 } else {
20160 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20161 if (UNTAG_Bool(REGB1)) {
20162 REGB1 = TAG_Bool(false);
20163 REGB0 = REGB1;
20164 } else {
20165 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20166 REGB0 = REGB1;
20167 }
20168 }
20169 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20170 if (UNTAG_Bool(REGB0)) {
20171 /* ./parser//parser_prod.nit:3703 */
20172 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20173 if (UNTAG_Bool(REGB0)) {
20174 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3703);
20175 }
20176 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
20177 }
20178 /* ./parser//parser_prod.nit:3705 */
20179 ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[5]) = fra.me.REG[4];
20180 /* ./parser//parser_prod.nit:3706 */
20181 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
20182 if (UNTAG_Bool(REGB0)) {
20183 } else {
20184 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
20185 if (UNTAG_Bool(REGB1)) {
20186 REGB1 = TAG_Bool(false);
20187 REGB0 = REGB1;
20188 } else {
20189 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
20190 REGB0 = REGB1;
20191 }
20192 }
20193 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20194 if (UNTAG_Bool(REGB0)) {
20195 /* ./parser//parser_prod.nit:3707 */
20196 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
20197 if (UNTAG_Bool(REGB0)) {
20198 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3707);
20199 }
20200 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
20201 }
20202 stack_frame_head = fra.me.prev;
20203 init_table[itpos122] = 1;
20204 return;
20205 }
20206 void parser___parser_prod___AIfExpr___replace_child(val_t p0, val_t p1, val_t p2){
20207 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20208 val_t REGB0;
20209 val_t REGB1;
20210 val_t tmp;
20211 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20212 fra.me.file = LOCATE_parser___parser_prod;
20213 fra.me.line = 3711;
20214 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___replace_child;
20215 fra.me.has_broke = 0;
20216 fra.me.REG_size = 4;
20217 fra.me.nitni_local_ref_head = NULL;
20218 fra.me.REG[0] = NIT_NULL;
20219 fra.me.REG[1] = NIT_NULL;
20220 fra.me.REG[2] = NIT_NULL;
20221 fra.me.REG[3] = NIT_NULL;
20222 fra.me.REG[0] = p0;
20223 fra.me.REG[1] = p1;
20224 fra.me.REG[2] = p2;
20225 /* ./parser//parser_prod.nit:3713 */
20226 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
20227 if (UNTAG_Bool(REGB0)) {
20228 } else {
20229 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3713);
20230 }
20231 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]);
20232 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20233 if (UNTAG_Bool(REGB0)) {
20234 } else {
20235 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20236 REGB0 = REGB1;
20237 }
20238 if (UNTAG_Bool(REGB0)) {
20239 /* ./parser//parser_prod.nit:3714 */
20240 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20241 if (UNTAG_Bool(REGB0)) {
20242 } else {
20243 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20244 if (UNTAG_Bool(REGB1)) {
20245 REGB1 = TAG_Bool(false);
20246 REGB0 = REGB1;
20247 } else {
20248 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20249 REGB0 = REGB1;
20250 }
20251 }
20252 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20253 if (UNTAG_Bool(REGB0)) {
20254 /* ./parser//parser_prod.nit:3715 */
20255 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20256 if (UNTAG_Bool(REGB0)) {
20257 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3715);
20258 }
20259 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20260 /* ./parser//parser_prod.nit:3716 */
20261 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*/;
20262 if (UNTAG_Bool(REGB0)) {
20263 } else {
20264 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3716);
20265 }
20266 /* ./parser//parser_prod.nit:3717 */
20267 ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[2];
20268 } else {
20269 /* ./parser//parser_prod.nit:3719 */
20270 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3719);
20271 }
20272 /* ./parser//parser_prod.nit:3721 */
20273 goto label1;
20274 }
20275 /* ./parser//parser_prod.nit:3723 */
20276 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
20277 if (UNTAG_Bool(REGB0)) {
20278 } else {
20279 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3723);
20280 }
20281 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0]);
20282 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20283 if (UNTAG_Bool(REGB0)) {
20284 } else {
20285 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20286 REGB0 = REGB1;
20287 }
20288 if (UNTAG_Bool(REGB0)) {
20289 /* ./parser//parser_prod.nit:3724 */
20290 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20291 if (UNTAG_Bool(REGB0)) {
20292 } else {
20293 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20294 if (UNTAG_Bool(REGB1)) {
20295 REGB1 = TAG_Bool(false);
20296 REGB0 = REGB1;
20297 } else {
20298 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20299 REGB0 = REGB1;
20300 }
20301 }
20302 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20303 if (UNTAG_Bool(REGB0)) {
20304 /* ./parser//parser_prod.nit:3725 */
20305 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20306 if (UNTAG_Bool(REGB0)) {
20307 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3725);
20308 }
20309 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20310 /* ./parser//parser_prod.nit:3726 */
20311 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*/;
20312 if (UNTAG_Bool(REGB0)) {
20313 } else {
20314 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3726);
20315 }
20316 /* ./parser//parser_prod.nit:3727 */
20317 ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
20318 } else {
20319 /* ./parser//parser_prod.nit:3729 */
20320 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3729);
20321 }
20322 /* ./parser//parser_prod.nit:3731 */
20323 goto label1;
20324 }
20325 /* ./parser//parser_prod.nit:3733 */
20326 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]);
20327 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20328 if (UNTAG_Bool(REGB0)) {
20329 } else {
20330 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20331 if (UNTAG_Bool(REGB1)) {
20332 REGB1 = TAG_Bool(false);
20333 REGB0 = REGB1;
20334 } else {
20335 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20336 REGB0 = REGB1;
20337 }
20338 }
20339 if (UNTAG_Bool(REGB0)) {
20340 /* ./parser//parser_prod.nit:3734 */
20341 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20342 if (UNTAG_Bool(REGB0)) {
20343 } else {
20344 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20345 if (UNTAG_Bool(REGB1)) {
20346 REGB1 = TAG_Bool(false);
20347 REGB0 = REGB1;
20348 } else {
20349 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20350 REGB0 = REGB1;
20351 }
20352 }
20353 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20354 if (UNTAG_Bool(REGB0)) {
20355 /* ./parser//parser_prod.nit:3735 */
20356 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20357 if (UNTAG_Bool(REGB0)) {
20358 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3735);
20359 }
20360 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20361 /* ./parser//parser_prod.nit:3736 */
20362 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*/;
20363 if (UNTAG_Bool(REGB0)) {
20364 } else {
20365 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3736);
20366 }
20367 /* ./parser//parser_prod.nit:3737 */
20368 ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = fra.me.REG[2];
20369 } else {
20370 /* ./parser//parser_prod.nit:3739 */
20371 ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = NIT_NULL;
20372 }
20373 /* ./parser//parser_prod.nit:3741 */
20374 goto label1;
20375 }
20376 /* ./parser//parser_prod.nit:3743 */
20377 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]);
20378 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20379 if (UNTAG_Bool(REGB0)) {
20380 } else {
20381 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20382 if (UNTAG_Bool(REGB1)) {
20383 REGB1 = TAG_Bool(false);
20384 REGB0 = REGB1;
20385 } else {
20386 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20387 REGB0 = REGB1;
20388 }
20389 }
20390 if (UNTAG_Bool(REGB0)) {
20391 /* ./parser//parser_prod.nit:3744 */
20392 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20393 if (UNTAG_Bool(REGB0)) {
20394 } else {
20395 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20396 if (UNTAG_Bool(REGB1)) {
20397 REGB1 = TAG_Bool(false);
20398 REGB0 = REGB1;
20399 } else {
20400 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20401 REGB0 = REGB1;
20402 }
20403 }
20404 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20405 if (UNTAG_Bool(REGB0)) {
20406 /* ./parser//parser_prod.nit:3745 */
20407 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20408 if (UNTAG_Bool(REGB0)) {
20409 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3745);
20410 }
20411 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20412 /* ./parser//parser_prod.nit:3746 */
20413 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*/;
20414 if (UNTAG_Bool(REGB0)) {
20415 } else {
20416 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3746);
20417 }
20418 /* ./parser//parser_prod.nit:3747 */
20419 ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
20420 } else {
20421 /* ./parser//parser_prod.nit:3749 */
20422 ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = NIT_NULL;
20423 }
20424 /* ./parser//parser_prod.nit:3751 */
20425 goto label1;
20426 }
20427 label1: while(0);
20428 stack_frame_head = fra.me.prev;
20429 return;
20430 }
20431 void parser___parser_prod___AIfExpr___visit_all(val_t p0, val_t p1){
20432 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20433 val_t REGB0;
20434 val_t REGB1;
20435 val_t tmp;
20436 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20437 fra.me.file = LOCATE_parser___parser_prod;
20438 fra.me.line = 3755;
20439 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___visit_all;
20440 fra.me.has_broke = 0;
20441 fra.me.REG_size = 4;
20442 fra.me.nitni_local_ref_head = NULL;
20443 fra.me.REG[0] = NIT_NULL;
20444 fra.me.REG[1] = NIT_NULL;
20445 fra.me.REG[2] = NIT_NULL;
20446 fra.me.REG[3] = NIT_NULL;
20447 fra.me.REG[0] = p0;
20448 fra.me.REG[1] = p1;
20449 /* ./parser//parser_prod.nit:3755 */
20450 fra.me.REG[2] = fra.me.REG[0];
20451 /* ./parser//parser_prod.nit:3757 */
20452 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[2])!=NIT_NULL);
20453 if (UNTAG_Bool(REGB0)) {
20454 } else {
20455 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3757);
20456 }
20457 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[2]);
20458 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20459 /* ./parser//parser_prod.nit:3758 */
20460 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
20461 if (UNTAG_Bool(REGB0)) {
20462 } else {
20463 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3758);
20464 }
20465 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[2]);
20466 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20467 /* ./parser//parser_prod.nit:3759 */
20468 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[2]);
20469 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20470 if (UNTAG_Bool(REGB0)) {
20471 } else {
20472 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20473 if (UNTAG_Bool(REGB1)) {
20474 REGB1 = TAG_Bool(false);
20475 REGB0 = REGB1;
20476 } else {
20477 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20478 REGB0 = REGB1;
20479 }
20480 }
20481 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20482 if (UNTAG_Bool(REGB0)) {
20483 /* ./parser//parser_prod.nit:3760 */
20484 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[2]);
20485 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*/;
20486 if (UNTAG_Bool(REGB0)) {
20487 } else {
20488 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3760);
20489 }
20490 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20491 }
20492 /* ./parser//parser_prod.nit:3762 */
20493 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[2]);
20494 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20495 if (UNTAG_Bool(REGB0)) {
20496 } else {
20497 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20498 if (UNTAG_Bool(REGB1)) {
20499 REGB1 = TAG_Bool(false);
20500 REGB0 = REGB1;
20501 } else {
20502 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20503 REGB0 = REGB1;
20504 }
20505 }
20506 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20507 if (UNTAG_Bool(REGB0)) {
20508 /* ./parser//parser_prod.nit:3763 */
20509 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[2]);
20510 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*/;
20511 if (UNTAG_Bool(REGB0)) {
20512 } else {
20513 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3763);
20514 }
20515 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20516 }
20517 stack_frame_head = fra.me.prev;
20518 return;
20519 }
20520 void parser___parser_prod___AIfexprExpr___empty_init(val_t p0, int* init_table){
20521 int itpos123 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfexprExpr].i;
20522 struct {struct stack_frame_t me;} fra;
20523 val_t tmp;
20524 if (init_table[itpos123]) return;
20525 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20526 fra.me.file = LOCATE_parser___parser_prod;
20527 fra.me.line = 3768;
20528 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___empty_init;
20529 fra.me.has_broke = 0;
20530 fra.me.REG_size = 1;
20531 fra.me.nitni_local_ref_head = NULL;
20532 fra.me.REG[0] = NIT_NULL;
20533 fra.me.REG[0] = p0;
20534 stack_frame_head = fra.me.prev;
20535 init_table[itpos123] = 1;
20536 return;
20537 }
20538 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){
20539 int itpos124 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfexprExpr].i;
20540 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
20541 val_t REGB0;
20542 val_t tmp;
20543 if (init_table[itpos124]) return;
20544 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20545 fra.me.file = LOCATE_parser___parser_prod;
20546 fra.me.line = 3770;
20547 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___init_aifexprexpr;
20548 fra.me.has_broke = 0;
20549 fra.me.REG_size = 8;
20550 fra.me.nitni_local_ref_head = NULL;
20551 fra.me.REG[0] = NIT_NULL;
20552 fra.me.REG[1] = NIT_NULL;
20553 fra.me.REG[2] = NIT_NULL;
20554 fra.me.REG[3] = NIT_NULL;
20555 fra.me.REG[4] = NIT_NULL;
20556 fra.me.REG[5] = NIT_NULL;
20557 fra.me.REG[6] = NIT_NULL;
20558 fra.me.REG[7] = NIT_NULL;
20559 fra.me.REG[0] = p0;
20560 fra.me.REG[1] = p1;
20561 fra.me.REG[2] = p2;
20562 fra.me.REG[3] = p3;
20563 fra.me.REG[4] = p4;
20564 fra.me.REG[5] = p5;
20565 fra.me.REG[6] = p6;
20566 /* ./parser//parser_prod.nit:3770 */
20567 fra.me.REG[7] = fra.me.REG[0];
20568 /* ./parser//parser_prod.nit:3779 */
20569 CALL_parser___parser_prod___AIfexprExpr___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
20570 /* ./parser//parser_prod.nit:3780 */
20571 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
20572 if (UNTAG_Bool(REGB0)) {
20573 } else {
20574 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3780);
20575 }
20576 ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[7]) = fra.me.REG[1];
20577 /* ./parser//parser_prod.nit:3781 */
20578 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20579 if (UNTAG_Bool(REGB0)) {
20580 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3781);
20581 }
20582 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
20583 /* ./parser//parser_prod.nit:3782 */
20584 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
20585 if (UNTAG_Bool(REGB0)) {
20586 } else {
20587 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3782);
20588 }
20589 ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[7]) = fra.me.REG[2];
20590 /* ./parser//parser_prod.nit:3783 */
20591 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20592 if (UNTAG_Bool(REGB0)) {
20593 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3783);
20594 }
20595 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
20596 /* ./parser//parser_prod.nit:3784 */
20597 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
20598 if (UNTAG_Bool(REGB0)) {
20599 } else {
20600 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3784);
20601 }
20602 ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[7]) = fra.me.REG[3];
20603 /* ./parser//parser_prod.nit:3785 */
20604 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20605 if (UNTAG_Bool(REGB0)) {
20606 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3785);
20607 }
20608 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
20609 /* ./parser//parser_prod.nit:3786 */
20610 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
20611 if (UNTAG_Bool(REGB0)) {
20612 } else {
20613 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3786);
20614 }
20615 ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[7]) = fra.me.REG[4];
20616 /* ./parser//parser_prod.nit:3787 */
20617 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
20618 if (UNTAG_Bool(REGB0)) {
20619 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3787);
20620 }
20621 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
20622 /* ./parser//parser_prod.nit:3788 */
20623 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
20624 if (UNTAG_Bool(REGB0)) {
20625 } else {
20626 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3788);
20627 }
20628 ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[7]) = fra.me.REG[5];
20629 /* ./parser//parser_prod.nit:3789 */
20630 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
20631 if (UNTAG_Bool(REGB0)) {
20632 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3789);
20633 }
20634 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
20635 /* ./parser//parser_prod.nit:3790 */
20636 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
20637 if (UNTAG_Bool(REGB0)) {
20638 } else {
20639 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3790);
20640 }
20641 ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[7]) = fra.me.REG[6];
20642 /* ./parser//parser_prod.nit:3791 */
20643 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
20644 if (UNTAG_Bool(REGB0)) {
20645 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3791);
20646 }
20647 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
20648 stack_frame_head = fra.me.prev;
20649 init_table[itpos124] = 1;
20650 return;
20651 }
20652 void parser___parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_t p2){
20653 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20654 val_t REGB0;
20655 val_t REGB1;
20656 val_t tmp;
20657 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20658 fra.me.file = LOCATE_parser___parser_prod;
20659 fra.me.line = 3794;
20660 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___replace_child;
20661 fra.me.has_broke = 0;
20662 fra.me.REG_size = 4;
20663 fra.me.nitni_local_ref_head = NULL;
20664 fra.me.REG[0] = NIT_NULL;
20665 fra.me.REG[1] = NIT_NULL;
20666 fra.me.REG[2] = NIT_NULL;
20667 fra.me.REG[3] = NIT_NULL;
20668 fra.me.REG[0] = p0;
20669 fra.me.REG[1] = p1;
20670 fra.me.REG[2] = p2;
20671 /* ./parser//parser_prod.nit:3796 */
20672 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
20673 if (UNTAG_Bool(REGB0)) {
20674 } else {
20675 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3796);
20676 }
20677 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]);
20678 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20679 if (UNTAG_Bool(REGB0)) {
20680 } else {
20681 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20682 REGB0 = REGB1;
20683 }
20684 if (UNTAG_Bool(REGB0)) {
20685 /* ./parser//parser_prod.nit:3797 */
20686 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20687 if (UNTAG_Bool(REGB0)) {
20688 } else {
20689 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20690 if (UNTAG_Bool(REGB1)) {
20691 REGB1 = TAG_Bool(false);
20692 REGB0 = REGB1;
20693 } else {
20694 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20695 REGB0 = REGB1;
20696 }
20697 }
20698 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20699 if (UNTAG_Bool(REGB0)) {
20700 /* ./parser//parser_prod.nit:3798 */
20701 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20702 if (UNTAG_Bool(REGB0)) {
20703 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3798);
20704 }
20705 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20706 /* ./parser//parser_prod.nit:3799 */
20707 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*/;
20708 if (UNTAG_Bool(REGB0)) {
20709 } else {
20710 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3799);
20711 }
20712 /* ./parser//parser_prod.nit:3800 */
20713 ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[2];
20714 } else {
20715 /* ./parser//parser_prod.nit:3802 */
20716 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3802);
20717 }
20718 /* ./parser//parser_prod.nit:3804 */
20719 goto label1;
20720 }
20721 /* ./parser//parser_prod.nit:3806 */
20722 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
20723 if (UNTAG_Bool(REGB0)) {
20724 } else {
20725 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3806);
20726 }
20727 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]);
20728 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20729 if (UNTAG_Bool(REGB0)) {
20730 } else {
20731 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20732 REGB0 = REGB1;
20733 }
20734 if (UNTAG_Bool(REGB0)) {
20735 /* ./parser//parser_prod.nit:3807 */
20736 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20737 if (UNTAG_Bool(REGB0)) {
20738 } else {
20739 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20740 if (UNTAG_Bool(REGB1)) {
20741 REGB1 = TAG_Bool(false);
20742 REGB0 = REGB1;
20743 } else {
20744 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20745 REGB0 = REGB1;
20746 }
20747 }
20748 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20749 if (UNTAG_Bool(REGB0)) {
20750 /* ./parser//parser_prod.nit:3808 */
20751 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20752 if (UNTAG_Bool(REGB0)) {
20753 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3808);
20754 }
20755 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20756 /* ./parser//parser_prod.nit:3809 */
20757 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*/;
20758 if (UNTAG_Bool(REGB0)) {
20759 } else {
20760 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3809);
20761 }
20762 /* ./parser//parser_prod.nit:3810 */
20763 ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
20764 } else {
20765 /* ./parser//parser_prod.nit:3812 */
20766 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3812);
20767 }
20768 /* ./parser//parser_prod.nit:3814 */
20769 goto label1;
20770 }
20771 /* ./parser//parser_prod.nit:3816 */
20772 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0])!=NIT_NULL);
20773 if (UNTAG_Bool(REGB0)) {
20774 } else {
20775 nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser___parser_prod, 3816);
20776 }
20777 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]);
20778 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20779 if (UNTAG_Bool(REGB0)) {
20780 } else {
20781 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20782 REGB0 = REGB1;
20783 }
20784 if (UNTAG_Bool(REGB0)) {
20785 /* ./parser//parser_prod.nit:3817 */
20786 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20787 if (UNTAG_Bool(REGB0)) {
20788 } else {
20789 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20790 if (UNTAG_Bool(REGB1)) {
20791 REGB1 = TAG_Bool(false);
20792 REGB0 = REGB1;
20793 } else {
20794 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20795 REGB0 = REGB1;
20796 }
20797 }
20798 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20799 if (UNTAG_Bool(REGB0)) {
20800 /* ./parser//parser_prod.nit:3818 */
20801 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20802 if (UNTAG_Bool(REGB0)) {
20803 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3818);
20804 }
20805 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20806 /* ./parser//parser_prod.nit:3819 */
20807 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*/;
20808 if (UNTAG_Bool(REGB0)) {
20809 } else {
20810 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3819);
20811 }
20812 /* ./parser//parser_prod.nit:3820 */
20813 ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]) = fra.me.REG[2];
20814 } else {
20815 /* ./parser//parser_prod.nit:3822 */
20816 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3822);
20817 }
20818 /* ./parser//parser_prod.nit:3824 */
20819 goto label1;
20820 }
20821 /* ./parser//parser_prod.nit:3826 */
20822 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0])!=NIT_NULL);
20823 if (UNTAG_Bool(REGB0)) {
20824 } else {
20825 nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser___parser_prod, 3826);
20826 }
20827 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]);
20828 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20829 if (UNTAG_Bool(REGB0)) {
20830 } else {
20831 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20832 REGB0 = REGB1;
20833 }
20834 if (UNTAG_Bool(REGB0)) {
20835 /* ./parser//parser_prod.nit:3827 */
20836 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20837 if (UNTAG_Bool(REGB0)) {
20838 } else {
20839 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20840 if (UNTAG_Bool(REGB1)) {
20841 REGB1 = TAG_Bool(false);
20842 REGB0 = REGB1;
20843 } else {
20844 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20845 REGB0 = REGB1;
20846 }
20847 }
20848 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20849 if (UNTAG_Bool(REGB0)) {
20850 /* ./parser//parser_prod.nit:3828 */
20851 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20852 if (UNTAG_Bool(REGB0)) {
20853 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3828);
20854 }
20855 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20856 /* ./parser//parser_prod.nit:3829 */
20857 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*/;
20858 if (UNTAG_Bool(REGB0)) {
20859 } else {
20860 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3829);
20861 }
20862 /* ./parser//parser_prod.nit:3830 */
20863 ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]) = fra.me.REG[2];
20864 } else {
20865 /* ./parser//parser_prod.nit:3832 */
20866 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3832);
20867 }
20868 /* ./parser//parser_prod.nit:3834 */
20869 goto label1;
20870 }
20871 /* ./parser//parser_prod.nit:3836 */
20872 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0])!=NIT_NULL);
20873 if (UNTAG_Bool(REGB0)) {
20874 } else {
20875 nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser___parser_prod, 3836);
20876 }
20877 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]);
20878 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20879 if (UNTAG_Bool(REGB0)) {
20880 } else {
20881 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20882 REGB0 = REGB1;
20883 }
20884 if (UNTAG_Bool(REGB0)) {
20885 /* ./parser//parser_prod.nit:3837 */
20886 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20887 if (UNTAG_Bool(REGB0)) {
20888 } else {
20889 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20890 if (UNTAG_Bool(REGB1)) {
20891 REGB1 = TAG_Bool(false);
20892 REGB0 = REGB1;
20893 } else {
20894 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20895 REGB0 = REGB1;
20896 }
20897 }
20898 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20899 if (UNTAG_Bool(REGB0)) {
20900 /* ./parser//parser_prod.nit:3838 */
20901 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20902 if (UNTAG_Bool(REGB0)) {
20903 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3838);
20904 }
20905 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20906 /* ./parser//parser_prod.nit:3839 */
20907 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*/;
20908 if (UNTAG_Bool(REGB0)) {
20909 } else {
20910 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3839);
20911 }
20912 /* ./parser//parser_prod.nit:3840 */
20913 ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]) = fra.me.REG[2];
20914 } else {
20915 /* ./parser//parser_prod.nit:3842 */
20916 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3842);
20917 }
20918 /* ./parser//parser_prod.nit:3844 */
20919 goto label1;
20920 }
20921 /* ./parser//parser_prod.nit:3846 */
20922 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0])!=NIT_NULL);
20923 if (UNTAG_Bool(REGB0)) {
20924 } else {
20925 nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser___parser_prod, 3846);
20926 }
20927 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]);
20928 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20929 if (UNTAG_Bool(REGB0)) {
20930 } else {
20931 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20932 REGB0 = REGB1;
20933 }
20934 if (UNTAG_Bool(REGB0)) {
20935 /* ./parser//parser_prod.nit:3847 */
20936 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20937 if (UNTAG_Bool(REGB0)) {
20938 } else {
20939 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20940 if (UNTAG_Bool(REGB1)) {
20941 REGB1 = TAG_Bool(false);
20942 REGB0 = REGB1;
20943 } else {
20944 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20945 REGB0 = REGB1;
20946 }
20947 }
20948 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20949 if (UNTAG_Bool(REGB0)) {
20950 /* ./parser//parser_prod.nit:3848 */
20951 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20952 if (UNTAG_Bool(REGB0)) {
20953 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3848);
20954 }
20955 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20956 /* ./parser//parser_prod.nit:3849 */
20957 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*/;
20958 if (UNTAG_Bool(REGB0)) {
20959 } else {
20960 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3849);
20961 }
20962 /* ./parser//parser_prod.nit:3850 */
20963 ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
20964 } else {
20965 /* ./parser//parser_prod.nit:3852 */
20966 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3852);
20967 }
20968 /* ./parser//parser_prod.nit:3854 */
20969 goto label1;
20970 }
20971 label1: while(0);
20972 stack_frame_head = fra.me.prev;
20973 return;
20974 }
20975 void parser___parser_prod___AIfexprExpr___visit_all(val_t p0, val_t p1){
20976 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
20977 val_t REGB0;
20978 val_t tmp;
20979 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20980 fra.me.file = LOCATE_parser___parser_prod;
20981 fra.me.line = 3858;
20982 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___visit_all;
20983 fra.me.has_broke = 0;
20984 fra.me.REG_size = 3;
20985 fra.me.nitni_local_ref_head = NULL;
20986 fra.me.REG[0] = NIT_NULL;
20987 fra.me.REG[1] = NIT_NULL;
20988 fra.me.REG[2] = NIT_NULL;
20989 fra.me.REG[0] = p0;
20990 fra.me.REG[1] = p1;
20991 /* ./parser//parser_prod.nit:3860 */
20992 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
20993 if (UNTAG_Bool(REGB0)) {
20994 } else {
20995 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3860);
20996 }
20997 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]);
20998 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20999 /* ./parser//parser_prod.nit:3861 */
21000 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21001 if (UNTAG_Bool(REGB0)) {
21002 } else {
21003 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3861);
21004 }
21005 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]);
21006 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21007 /* ./parser//parser_prod.nit:3862 */
21008 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0])!=NIT_NULL);
21009 if (UNTAG_Bool(REGB0)) {
21010 } else {
21011 nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser___parser_prod, 3862);
21012 }
21013 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]);
21014 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21015 /* ./parser//parser_prod.nit:3863 */
21016 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0])!=NIT_NULL);
21017 if (UNTAG_Bool(REGB0)) {
21018 } else {
21019 nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser___parser_prod, 3863);
21020 }
21021 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]);
21022 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21023 /* ./parser//parser_prod.nit:3864 */
21024 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0])!=NIT_NULL);
21025 if (UNTAG_Bool(REGB0)) {
21026 } else {
21027 nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser___parser_prod, 3864);
21028 }
21029 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]);
21030 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21031 /* ./parser//parser_prod.nit:3865 */
21032 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0])!=NIT_NULL);
21033 if (UNTAG_Bool(REGB0)) {
21034 } else {
21035 nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser___parser_prod, 3865);
21036 }
21037 fra.me.REG[0] = ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]);
21038 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21039 stack_frame_head = fra.me.prev;
21040 return;
21041 }
21042 void parser___parser_prod___AWhileExpr___empty_init(val_t p0, int* init_table){
21043 int itpos125 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWhileExpr].i;
21044 struct {struct stack_frame_t me;} fra;
21045 val_t tmp;
21046 if (init_table[itpos125]) return;
21047 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21048 fra.me.file = LOCATE_parser___parser_prod;
21049 fra.me.line = 3869;
21050 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___empty_init;
21051 fra.me.has_broke = 0;
21052 fra.me.REG_size = 1;
21053 fra.me.nitni_local_ref_head = NULL;
21054 fra.me.REG[0] = NIT_NULL;
21055 fra.me.REG[0] = p0;
21056 stack_frame_head = fra.me.prev;
21057 init_table[itpos125] = 1;
21058 return;
21059 }
21060 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){
21061 int itpos126 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWhileExpr].i;
21062 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
21063 val_t REGB0;
21064 val_t REGB1;
21065 val_t tmp;
21066 if (init_table[itpos126]) return;
21067 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21068 fra.me.file = LOCATE_parser___parser_prod;
21069 fra.me.line = 3871;
21070 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___init_awhileexpr;
21071 fra.me.has_broke = 0;
21072 fra.me.REG_size = 7;
21073 fra.me.nitni_local_ref_head = NULL;
21074 fra.me.REG[0] = NIT_NULL;
21075 fra.me.REG[1] = NIT_NULL;
21076 fra.me.REG[2] = NIT_NULL;
21077 fra.me.REG[3] = NIT_NULL;
21078 fra.me.REG[4] = NIT_NULL;
21079 fra.me.REG[5] = NIT_NULL;
21080 fra.me.REG[6] = NIT_NULL;
21081 fra.me.REG[0] = p0;
21082 fra.me.REG[1] = p1;
21083 fra.me.REG[2] = p2;
21084 fra.me.REG[3] = p3;
21085 fra.me.REG[4] = p4;
21086 fra.me.REG[5] = p5;
21087 /* ./parser//parser_prod.nit:3871 */
21088 fra.me.REG[6] = fra.me.REG[0];
21089 /* ./parser//parser_prod.nit:3879 */
21090 CALL_parser___parser_prod___AWhileExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
21091 /* ./parser//parser_prod.nit:3880 */
21092 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21093 if (UNTAG_Bool(REGB0)) {
21094 } else {
21095 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3880);
21096 }
21097 ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[6]) = fra.me.REG[1];
21098 /* ./parser//parser_prod.nit:3881 */
21099 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21100 if (UNTAG_Bool(REGB0)) {
21101 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3881);
21102 }
21103 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
21104 /* ./parser//parser_prod.nit:3882 */
21105 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
21106 if (UNTAG_Bool(REGB0)) {
21107 } else {
21108 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3882);
21109 }
21110 ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[6]) = fra.me.REG[2];
21111 /* ./parser//parser_prod.nit:3883 */
21112 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21113 if (UNTAG_Bool(REGB0)) {
21114 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3883);
21115 }
21116 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
21117 /* ./parser//parser_prod.nit:3884 */
21118 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
21119 if (UNTAG_Bool(REGB0)) {
21120 } else {
21121 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3884);
21122 }
21123 ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[6]) = fra.me.REG[3];
21124 /* ./parser//parser_prod.nit:3885 */
21125 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21126 if (UNTAG_Bool(REGB0)) {
21127 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3885);
21128 }
21129 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
21130 /* ./parser//parser_prod.nit:3886 */
21131 ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[6]) = fra.me.REG[4];
21132 /* ./parser//parser_prod.nit:3887 */
21133 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
21134 if (UNTAG_Bool(REGB0)) {
21135 } else {
21136 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
21137 if (UNTAG_Bool(REGB1)) {
21138 REGB1 = TAG_Bool(false);
21139 REGB0 = REGB1;
21140 } else {
21141 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
21142 REGB0 = REGB1;
21143 }
21144 }
21145 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21146 if (UNTAG_Bool(REGB0)) {
21147 /* ./parser//parser_prod.nit:3888 */
21148 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
21149 if (UNTAG_Bool(REGB0)) {
21150 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3888);
21151 }
21152 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
21153 }
21154 /* ./parser//parser_prod.nit:3890 */
21155 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[6]) = fra.me.REG[5];
21156 /* ./parser//parser_prod.nit:3891 */
21157 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
21158 if (UNTAG_Bool(REGB0)) {
21159 } else {
21160 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
21161 if (UNTAG_Bool(REGB1)) {
21162 REGB1 = TAG_Bool(false);
21163 REGB0 = REGB1;
21164 } else {
21165 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
21166 REGB0 = REGB1;
21167 }
21168 }
21169 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21170 if (UNTAG_Bool(REGB0)) {
21171 /* ./parser//parser_prod.nit:3892 */
21172 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
21173 if (UNTAG_Bool(REGB0)) {
21174 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3892);
21175 }
21176 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
21177 }
21178 stack_frame_head = fra.me.prev;
21179 init_table[itpos126] = 1;
21180 return;
21181 }
21182 void parser___parser_prod___AWhileExpr___replace_child(val_t p0, val_t p1, val_t p2){
21183 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21184 val_t REGB0;
21185 val_t REGB1;
21186 val_t tmp;
21187 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21188 fra.me.file = LOCATE_parser___parser_prod;
21189 fra.me.line = 3896;
21190 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___replace_child;
21191 fra.me.has_broke = 0;
21192 fra.me.REG_size = 4;
21193 fra.me.nitni_local_ref_head = NULL;
21194 fra.me.REG[0] = NIT_NULL;
21195 fra.me.REG[1] = NIT_NULL;
21196 fra.me.REG[2] = NIT_NULL;
21197 fra.me.REG[3] = NIT_NULL;
21198 fra.me.REG[0] = p0;
21199 fra.me.REG[1] = p1;
21200 fra.me.REG[2] = p2;
21201 /* ./parser//parser_prod.nit:3898 */
21202 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0])!=NIT_NULL);
21203 if (UNTAG_Bool(REGB0)) {
21204 } else {
21205 nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser___parser_prod, 3898);
21206 }
21207 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]);
21208 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21209 if (UNTAG_Bool(REGB0)) {
21210 } else {
21211 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21212 REGB0 = REGB1;
21213 }
21214 if (UNTAG_Bool(REGB0)) {
21215 /* ./parser//parser_prod.nit:3899 */
21216 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21217 if (UNTAG_Bool(REGB0)) {
21218 } else {
21219 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21220 if (UNTAG_Bool(REGB1)) {
21221 REGB1 = TAG_Bool(false);
21222 REGB0 = REGB1;
21223 } else {
21224 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21225 REGB0 = REGB1;
21226 }
21227 }
21228 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21229 if (UNTAG_Bool(REGB0)) {
21230 /* ./parser//parser_prod.nit:3900 */
21231 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21232 if (UNTAG_Bool(REGB0)) {
21233 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3900);
21234 }
21235 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21236 /* ./parser//parser_prod.nit:3901 */
21237 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*/;
21238 if (UNTAG_Bool(REGB0)) {
21239 } else {
21240 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3901);
21241 }
21242 /* ./parser//parser_prod.nit:3902 */
21243 ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]) = fra.me.REG[2];
21244 } else {
21245 /* ./parser//parser_prod.nit:3904 */
21246 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3904);
21247 }
21248 /* ./parser//parser_prod.nit:3906 */
21249 goto label1;
21250 }
21251 /* ./parser//parser_prod.nit:3908 */
21252 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21253 if (UNTAG_Bool(REGB0)) {
21254 } else {
21255 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3908);
21256 }
21257 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]);
21258 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21259 if (UNTAG_Bool(REGB0)) {
21260 } else {
21261 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21262 REGB0 = REGB1;
21263 }
21264 if (UNTAG_Bool(REGB0)) {
21265 /* ./parser//parser_prod.nit:3909 */
21266 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21267 if (UNTAG_Bool(REGB0)) {
21268 } else {
21269 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21270 if (UNTAG_Bool(REGB1)) {
21271 REGB1 = TAG_Bool(false);
21272 REGB0 = REGB1;
21273 } else {
21274 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21275 REGB0 = REGB1;
21276 }
21277 }
21278 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21279 if (UNTAG_Bool(REGB0)) {
21280 /* ./parser//parser_prod.nit:3910 */
21281 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21282 if (UNTAG_Bool(REGB0)) {
21283 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3910);
21284 }
21285 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21286 /* ./parser//parser_prod.nit:3911 */
21287 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*/;
21288 if (UNTAG_Bool(REGB0)) {
21289 } else {
21290 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3911);
21291 }
21292 /* ./parser//parser_prod.nit:3912 */
21293 ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21294 } else {
21295 /* ./parser//parser_prod.nit:3914 */
21296 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3914);
21297 }
21298 /* ./parser//parser_prod.nit:3916 */
21299 goto label1;
21300 }
21301 /* ./parser//parser_prod.nit:3918 */
21302 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
21303 if (UNTAG_Bool(REGB0)) {
21304 } else {
21305 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3918);
21306 }
21307 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]);
21308 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21309 if (UNTAG_Bool(REGB0)) {
21310 } else {
21311 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21312 REGB0 = REGB1;
21313 }
21314 if (UNTAG_Bool(REGB0)) {
21315 /* ./parser//parser_prod.nit:3919 */
21316 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21317 if (UNTAG_Bool(REGB0)) {
21318 } else {
21319 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21320 if (UNTAG_Bool(REGB1)) {
21321 REGB1 = TAG_Bool(false);
21322 REGB0 = REGB1;
21323 } else {
21324 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21325 REGB0 = REGB1;
21326 }
21327 }
21328 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21329 if (UNTAG_Bool(REGB0)) {
21330 /* ./parser//parser_prod.nit:3920 */
21331 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21332 if (UNTAG_Bool(REGB0)) {
21333 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3920);
21334 }
21335 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21336 /* ./parser//parser_prod.nit:3921 */
21337 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*/;
21338 if (UNTAG_Bool(REGB0)) {
21339 } else {
21340 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3921);
21341 }
21342 /* ./parser//parser_prod.nit:3922 */
21343 ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
21344 } else {
21345 /* ./parser//parser_prod.nit:3924 */
21346 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3924);
21347 }
21348 /* ./parser//parser_prod.nit:3926 */
21349 goto label1;
21350 }
21351 /* ./parser//parser_prod.nit:3928 */
21352 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]);
21353 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21354 if (UNTAG_Bool(REGB0)) {
21355 } else {
21356 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21357 if (UNTAG_Bool(REGB1)) {
21358 REGB1 = TAG_Bool(false);
21359 REGB0 = REGB1;
21360 } else {
21361 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21362 REGB0 = REGB1;
21363 }
21364 }
21365 if (UNTAG_Bool(REGB0)) {
21366 /* ./parser//parser_prod.nit:3929 */
21367 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21368 if (UNTAG_Bool(REGB0)) {
21369 } else {
21370 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21371 if (UNTAG_Bool(REGB1)) {
21372 REGB1 = TAG_Bool(false);
21373 REGB0 = REGB1;
21374 } else {
21375 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21376 REGB0 = REGB1;
21377 }
21378 }
21379 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21380 if (UNTAG_Bool(REGB0)) {
21381 /* ./parser//parser_prod.nit:3930 */
21382 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21383 if (UNTAG_Bool(REGB0)) {
21384 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3930);
21385 }
21386 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21387 /* ./parser//parser_prod.nit:3931 */
21388 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*/;
21389 if (UNTAG_Bool(REGB0)) {
21390 } else {
21391 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3931);
21392 }
21393 /* ./parser//parser_prod.nit:3932 */
21394 ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
21395 } else {
21396 /* ./parser//parser_prod.nit:3934 */
21397 ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = NIT_NULL;
21398 }
21399 /* ./parser//parser_prod.nit:3936 */
21400 goto label1;
21401 }
21402 /* ./parser//parser_prod.nit:3938 */
21403 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
21404 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21405 if (UNTAG_Bool(REGB0)) {
21406 } else {
21407 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21408 if (UNTAG_Bool(REGB1)) {
21409 REGB1 = TAG_Bool(false);
21410 REGB0 = REGB1;
21411 } else {
21412 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21413 REGB0 = REGB1;
21414 }
21415 }
21416 if (UNTAG_Bool(REGB0)) {
21417 /* ./parser//parser_prod.nit:3939 */
21418 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21419 if (UNTAG_Bool(REGB0)) {
21420 } else {
21421 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21422 if (UNTAG_Bool(REGB1)) {
21423 REGB1 = TAG_Bool(false);
21424 REGB0 = REGB1;
21425 } else {
21426 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21427 REGB0 = REGB1;
21428 }
21429 }
21430 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21431 if (UNTAG_Bool(REGB0)) {
21432 /* ./parser//parser_prod.nit:3940 */
21433 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21434 if (UNTAG_Bool(REGB0)) {
21435 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3940);
21436 }
21437 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21438 /* ./parser//parser_prod.nit:3941 */
21439 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*/;
21440 if (UNTAG_Bool(REGB0)) {
21441 } else {
21442 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3941);
21443 }
21444 /* ./parser//parser_prod.nit:3942 */
21445 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
21446 } else {
21447 /* ./parser//parser_prod.nit:3944 */
21448 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
21449 }
21450 /* ./parser//parser_prod.nit:3946 */
21451 goto label1;
21452 }
21453 label1: while(0);
21454 stack_frame_head = fra.me.prev;
21455 return;
21456 }
21457 void parser___parser_prod___AWhileExpr___visit_all(val_t p0, val_t p1){
21458 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21459 val_t REGB0;
21460 val_t REGB1;
21461 val_t tmp;
21462 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21463 fra.me.file = LOCATE_parser___parser_prod;
21464 fra.me.line = 3950;
21465 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___visit_all;
21466 fra.me.has_broke = 0;
21467 fra.me.REG_size = 4;
21468 fra.me.nitni_local_ref_head = NULL;
21469 fra.me.REG[0] = NIT_NULL;
21470 fra.me.REG[1] = NIT_NULL;
21471 fra.me.REG[2] = NIT_NULL;
21472 fra.me.REG[3] = NIT_NULL;
21473 fra.me.REG[0] = p0;
21474 fra.me.REG[1] = p1;
21475 /* ./parser//parser_prod.nit:3950 */
21476 fra.me.REG[2] = fra.me.REG[0];
21477 /* ./parser//parser_prod.nit:3952 */
21478 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[2])!=NIT_NULL);
21479 if (UNTAG_Bool(REGB0)) {
21480 } else {
21481 nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser___parser_prod, 3952);
21482 }
21483 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[2]);
21484 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21485 /* ./parser//parser_prod.nit:3953 */
21486 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
21487 if (UNTAG_Bool(REGB0)) {
21488 } else {
21489 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3953);
21490 }
21491 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[2]);
21492 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21493 /* ./parser//parser_prod.nit:3954 */
21494 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
21495 if (UNTAG_Bool(REGB0)) {
21496 } else {
21497 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3954);
21498 }
21499 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[2]);
21500 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21501 /* ./parser//parser_prod.nit:3955 */
21502 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[2]);
21503 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21504 if (UNTAG_Bool(REGB0)) {
21505 } else {
21506 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21507 if (UNTAG_Bool(REGB1)) {
21508 REGB1 = TAG_Bool(false);
21509 REGB0 = REGB1;
21510 } else {
21511 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21512 REGB0 = REGB1;
21513 }
21514 }
21515 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21516 if (UNTAG_Bool(REGB0)) {
21517 /* ./parser//parser_prod.nit:3956 */
21518 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[2]);
21519 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*/;
21520 if (UNTAG_Bool(REGB0)) {
21521 } else {
21522 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3956);
21523 }
21524 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21525 }
21526 /* ./parser//parser_prod.nit:3958 */
21527 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
21528 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21529 if (UNTAG_Bool(REGB0)) {
21530 } else {
21531 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21532 if (UNTAG_Bool(REGB1)) {
21533 REGB1 = TAG_Bool(false);
21534 REGB0 = REGB1;
21535 } else {
21536 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21537 REGB0 = REGB1;
21538 }
21539 }
21540 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21541 if (UNTAG_Bool(REGB0)) {
21542 /* ./parser//parser_prod.nit:3959 */
21543 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
21544 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*/;
21545 if (UNTAG_Bool(REGB0)) {
21546 } else {
21547 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3959);
21548 }
21549 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21550 }
21551 stack_frame_head = fra.me.prev;
21552 return;
21553 }
21554 void parser___parser_prod___ALoopExpr___empty_init(val_t p0, int* init_table){
21555 int itpos127 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALoopExpr].i;
21556 struct {struct stack_frame_t me;} fra;
21557 val_t tmp;
21558 if (init_table[itpos127]) return;
21559 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21560 fra.me.file = LOCATE_parser___parser_prod;
21561 fra.me.line = 3964;
21562 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___empty_init;
21563 fra.me.has_broke = 0;
21564 fra.me.REG_size = 1;
21565 fra.me.nitni_local_ref_head = NULL;
21566 fra.me.REG[0] = NIT_NULL;
21567 fra.me.REG[0] = p0;
21568 stack_frame_head = fra.me.prev;
21569 init_table[itpos127] = 1;
21570 return;
21571 }
21572 void parser___parser_prod___ALoopExpr___init_aloopexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
21573 int itpos128 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALoopExpr].i;
21574 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
21575 val_t REGB0;
21576 val_t REGB1;
21577 val_t tmp;
21578 if (init_table[itpos128]) return;
21579 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21580 fra.me.file = LOCATE_parser___parser_prod;
21581 fra.me.line = 3966;
21582 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___init_aloopexpr;
21583 fra.me.has_broke = 0;
21584 fra.me.REG_size = 5;
21585 fra.me.nitni_local_ref_head = NULL;
21586 fra.me.REG[0] = NIT_NULL;
21587 fra.me.REG[1] = NIT_NULL;
21588 fra.me.REG[2] = NIT_NULL;
21589 fra.me.REG[3] = NIT_NULL;
21590 fra.me.REG[4] = NIT_NULL;
21591 fra.me.REG[0] = p0;
21592 fra.me.REG[1] = p1;
21593 fra.me.REG[2] = p2;
21594 fra.me.REG[3] = p3;
21595 /* ./parser//parser_prod.nit:3966 */
21596 fra.me.REG[4] = fra.me.REG[0];
21597 /* ./parser//parser_prod.nit:3972 */
21598 CALL_parser___parser_prod___ALoopExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
21599 /* ./parser//parser_prod.nit:3973 */
21600 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21601 if (UNTAG_Bool(REGB0)) {
21602 } else {
21603 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3973);
21604 }
21605 ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[4]) = fra.me.REG[1];
21606 /* ./parser//parser_prod.nit:3974 */
21607 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21608 if (UNTAG_Bool(REGB0)) {
21609 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3974);
21610 }
21611 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
21612 /* ./parser//parser_prod.nit:3975 */
21613 ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[4]) = fra.me.REG[2];
21614 /* ./parser//parser_prod.nit:3976 */
21615 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21616 if (UNTAG_Bool(REGB0)) {
21617 } else {
21618 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21619 if (UNTAG_Bool(REGB1)) {
21620 REGB1 = TAG_Bool(false);
21621 REGB0 = REGB1;
21622 } else {
21623 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21624 REGB0 = REGB1;
21625 }
21626 }
21627 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21628 if (UNTAG_Bool(REGB0)) {
21629 /* ./parser//parser_prod.nit:3977 */
21630 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21631 if (UNTAG_Bool(REGB0)) {
21632 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3977);
21633 }
21634 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
21635 }
21636 /* ./parser//parser_prod.nit:3979 */
21637 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[3];
21638 /* ./parser//parser_prod.nit:3980 */
21639 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21640 if (UNTAG_Bool(REGB0)) {
21641 } else {
21642 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21643 if (UNTAG_Bool(REGB1)) {
21644 REGB1 = TAG_Bool(false);
21645 REGB0 = REGB1;
21646 } else {
21647 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21648 REGB0 = REGB1;
21649 }
21650 }
21651 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21652 if (UNTAG_Bool(REGB0)) {
21653 /* ./parser//parser_prod.nit:3981 */
21654 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21655 if (UNTAG_Bool(REGB0)) {
21656 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3981);
21657 }
21658 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
21659 }
21660 stack_frame_head = fra.me.prev;
21661 init_table[itpos128] = 1;
21662 return;
21663 }
21664 void parser___parser_prod___ALoopExpr___replace_child(val_t p0, val_t p1, val_t p2){
21665 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21666 val_t REGB0;
21667 val_t REGB1;
21668 val_t tmp;
21669 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21670 fra.me.file = LOCATE_parser___parser_prod;
21671 fra.me.line = 3985;
21672 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___replace_child;
21673 fra.me.has_broke = 0;
21674 fra.me.REG_size = 4;
21675 fra.me.nitni_local_ref_head = NULL;
21676 fra.me.REG[0] = NIT_NULL;
21677 fra.me.REG[1] = NIT_NULL;
21678 fra.me.REG[2] = NIT_NULL;
21679 fra.me.REG[3] = NIT_NULL;
21680 fra.me.REG[0] = p0;
21681 fra.me.REG[1] = p1;
21682 fra.me.REG[2] = p2;
21683 /* ./parser//parser_prod.nit:3987 */
21684 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0])!=NIT_NULL);
21685 if (UNTAG_Bool(REGB0)) {
21686 } else {
21687 nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser___parser_prod, 3987);
21688 }
21689 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(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:3988 */
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:3989 */
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, 3989);
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:3990 */
21719 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*/;
21720 if (UNTAG_Bool(REGB0)) {
21721 } else {
21722 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3990);
21723 }
21724 /* ./parser//parser_prod.nit:3991 */
21725 ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]) = fra.me.REG[2];
21726 } else {
21727 /* ./parser//parser_prod.nit:3993 */
21728 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3993);
21729 }
21730 /* ./parser//parser_prod.nit:3995 */
21731 goto label1;
21732 }
21733 /* ./parser//parser_prod.nit:3997 */
21734 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____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:3998 */
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:3999 */
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, 3999);
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:4000 */
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, 4000);
21774 }
21775 /* ./parser//parser_prod.nit:4001 */
21776 ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
21777 } else {
21778 /* ./parser//parser_prod.nit:4003 */
21779 ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = NIT_NULL;
21780 }
21781 /* ./parser//parser_prod.nit:4005 */
21782 goto label1;
21783 }
21784 /* ./parser//parser_prod.nit:4007 */
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:4008 */
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:4009 */
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, 4009);
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:4010 */
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, 4010);
21825 }
21826 /* ./parser//parser_prod.nit:4011 */
21827 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
21828 } else {
21829 /* ./parser//parser_prod.nit:4013 */
21830 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
21831 }
21832 /* ./parser//parser_prod.nit:4015 */
21833 goto label1;
21834 }
21835 label1: while(0);
21836 stack_frame_head = fra.me.prev;
21837 return;
21838 }
21839 void parser___parser_prod___ALoopExpr___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 = 4019;
21847 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___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:4019 */
21858 fra.me.REG[2] = fra.me.REG[0];
21859 /* ./parser//parser_prod.nit:4021 */
21860 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[2])!=NIT_NULL);
21861 if (UNTAG_Bool(REGB0)) {
21862 } else {
21863 nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser___parser_prod, 4021);
21864 }
21865 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(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:4022 */
21868 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[2]);
21869 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21870 if (UNTAG_Bool(REGB0)) {
21871 } else {
21872 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21873 if (UNTAG_Bool(REGB1)) {
21874 REGB1 = TAG_Bool(false);
21875 REGB0 = REGB1;
21876 } else {
21877 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21878 REGB0 = REGB1;
21879 }
21880 }
21881 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21882 if (UNTAG_Bool(REGB0)) {
21883 /* ./parser//parser_prod.nit:4023 */
21884 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[2]);
21885 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*/;
21886 if (UNTAG_Bool(REGB0)) {
21887 } else {
21888 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4023);
21889 }
21890 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21891 }
21892 /* ./parser//parser_prod.nit:4025 */
21893 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
21894 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21895 if (UNTAG_Bool(REGB0)) {
21896 } else {
21897 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21898 if (UNTAG_Bool(REGB1)) {
21899 REGB1 = TAG_Bool(false);
21900 REGB0 = REGB1;
21901 } else {
21902 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21903 REGB0 = REGB1;
21904 }
21905 }
21906 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21907 if (UNTAG_Bool(REGB0)) {
21908 /* ./parser//parser_prod.nit:4026 */
21909 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
21910 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*/;
21911 if (UNTAG_Bool(REGB0)) {
21912 } else {
21913 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4026);
21914 }
21915 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21916 }
21917 stack_frame_head = fra.me.prev;
21918 return;
21919 }
21920 void parser___parser_prod___AForExpr___empty_init(val_t p0, int* init_table){
21921 int itpos129 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AForExpr].i;
21922 struct {struct stack_frame_t me;} fra;
21923 val_t tmp;
21924 if (init_table[itpos129]) return;
21925 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21926 fra.me.file = LOCATE_parser___parser_prod;
21927 fra.me.line = 4031;
21928 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___empty_init;
21929 fra.me.has_broke = 0;
21930 fra.me.REG_size = 1;
21931 fra.me.nitni_local_ref_head = NULL;
21932 fra.me.REG[0] = NIT_NULL;
21933 fra.me.REG[0] = p0;
21934 stack_frame_head = fra.me.prev;
21935 init_table[itpos129] = 1;
21936 return;
21937 }
21938 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){
21939 int itpos130 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AForExpr].i;
21940 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
21941 val_t REGB0;
21942 val_t REGB1;
21943 val_t tmp;
21944 if (init_table[itpos130]) return;
21945 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21946 fra.me.file = LOCATE_parser___parser_prod;
21947 fra.me.line = 4033;
21948 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___init_aforexpr;
21949 fra.me.has_broke = 0;
21950 fra.me.REG_size = 8;
21951 fra.me.nitni_local_ref_head = NULL;
21952 fra.me.REG[0] = NIT_NULL;
21953 fra.me.REG[1] = NIT_NULL;
21954 fra.me.REG[2] = NIT_NULL;
21955 fra.me.REG[3] = NIT_NULL;
21956 fra.me.REG[4] = NIT_NULL;
21957 fra.me.REG[5] = NIT_NULL;
21958 fra.me.REG[6] = NIT_NULL;
21959 fra.me.REG[7] = NIT_NULL;
21960 fra.me.REG[0] = p0;
21961 fra.me.REG[1] = p1;
21962 fra.me.REG[2] = p2;
21963 fra.me.REG[3] = p3;
21964 fra.me.REG[4] = p4;
21965 fra.me.REG[5] = p5;
21966 fra.me.REG[6] = p6;
21967 /* ./parser//parser_prod.nit:4033 */
21968 fra.me.REG[7] = fra.me.REG[0];
21969 /* ./parser//parser_prod.nit:4042 */
21970 CALL_parser___parser_prod___AForExpr___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
21971 /* ./parser//parser_prod.nit:4043 */
21972 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21973 if (UNTAG_Bool(REGB0)) {
21974 } else {
21975 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4043);
21976 }
21977 ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[7]) = fra.me.REG[1];
21978 /* ./parser//parser_prod.nit:4044 */
21979 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21980 if (UNTAG_Bool(REGB0)) {
21981 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4044);
21982 }
21983 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
21984 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));
21985 /* ./parser//parser_prod.nit:4050 */
21986 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
21987 if (UNTAG_Bool(REGB0)) {
21988 } else {
21989 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4050);
21990 }
21991 ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[7]) = fra.me.REG[3];
21992 /* ./parser//parser_prod.nit:4051 */
21993 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21994 if (UNTAG_Bool(REGB0)) {
21995 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4051);
21996 }
21997 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
21998 /* ./parser//parser_prod.nit:4052 */
21999 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
22000 if (UNTAG_Bool(REGB0)) {
22001 } else {
22002 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4052);
22003 }
22004 ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[7]) = fra.me.REG[4];
22005 /* ./parser//parser_prod.nit:4053 */
22006 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
22007 if (UNTAG_Bool(REGB0)) {
22008 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4053);
22009 }
22010 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
22011 /* ./parser//parser_prod.nit:4054 */
22012 ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[7]) = fra.me.REG[5];
22013 /* ./parser//parser_prod.nit:4055 */
22014 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
22015 if (UNTAG_Bool(REGB0)) {
22016 } else {
22017 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
22018 if (UNTAG_Bool(REGB1)) {
22019 REGB1 = TAG_Bool(false);
22020 REGB0 = REGB1;
22021 } else {
22022 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
22023 REGB0 = REGB1;
22024 }
22025 }
22026 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22027 if (UNTAG_Bool(REGB0)) {
22028 /* ./parser//parser_prod.nit:4056 */
22029 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
22030 if (UNTAG_Bool(REGB0)) {
22031 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4056);
22032 }
22033 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
22034 }
22035 /* ./parser//parser_prod.nit:4058 */
22036 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[7]) = fra.me.REG[6];
22037 /* ./parser//parser_prod.nit:4059 */
22038 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
22039 if (UNTAG_Bool(REGB0)) {
22040 } else {
22041 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
22042 if (UNTAG_Bool(REGB1)) {
22043 REGB1 = TAG_Bool(false);
22044 REGB0 = REGB1;
22045 } else {
22046 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
22047 REGB0 = REGB1;
22048 }
22049 }
22050 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22051 if (UNTAG_Bool(REGB0)) {
22052 /* ./parser//parser_prod.nit:4060 */
22053 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
22054 if (UNTAG_Bool(REGB0)) {
22055 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4060);
22056 }
22057 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
22058 }
22059 stack_frame_head = fra.me.prev;
22060 init_table[itpos130] = 1;
22061 return;
22062 }
22063 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){
22064 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22065 val_t REGB0;
22066 fun_t CREG[1];
22067 val_t tmp;
22068 /* ./parser//parser_prod.nit:4045 */
22069 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22070 fra.me.file = LOCATE_parser___parser_prod;
22071 fra.me.line = 0;
22072 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___init_aforexpr;
22073 fra.me.has_broke = 0;
22074 fra.me.REG_size = 2;
22075 fra.me.nitni_local_ref_head = NULL;
22076 fra.me.REG[0] = NIT_NULL;
22077 fra.me.REG[1] = NIT_NULL;
22078 fra.me.closure_ctx = closctx_param;
22079 fra.me.closure_funs = CREG;
22080 fra.me.REG[0] = p0;
22081 CREG[0] = clos_fun0;
22082 /* ./parser//parser_prod.nit:4046 */
22083 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
22084 if (UNTAG_Bool(REGB0)) {
22085 } else {
22086 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4046);
22087 }
22088 /* ./parser//parser_prod.nit:4047 */
22089 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(closctx->REG[7])!=NIT_NULL);
22090 if (UNTAG_Bool(REGB0)) {
22091 } else {
22092 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4047);
22093 }
22094 fra.me.REG[1] = ATTR_parser___parser_nodes___AForExpr____n_ids(closctx->REG[7]);
22095 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22096 /* ./parser//parser_prod.nit:4048 */
22097 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[7]);
22098 stack_frame_head = fra.me.prev;
22099 return;
22100 }
22101 void parser___parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p2){
22102 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22103 val_t REGB0;
22104 val_t REGB1;
22105 val_t REGB2;
22106 val_t REGB3;
22107 val_t REGB4;
22108 val_t tmp;
22109 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22110 fra.me.file = LOCATE_parser___parser_prod;
22111 fra.me.line = 4064;
22112 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___replace_child;
22113 fra.me.has_broke = 0;
22114 fra.me.REG_size = 4;
22115 fra.me.nitni_local_ref_head = NULL;
22116 fra.me.REG[0] = NIT_NULL;
22117 fra.me.REG[1] = NIT_NULL;
22118 fra.me.REG[2] = NIT_NULL;
22119 fra.me.REG[3] = NIT_NULL;
22120 fra.me.REG[0] = p0;
22121 fra.me.REG[1] = p1;
22122 fra.me.REG[2] = p2;
22123 /* ./parser//parser_prod.nit:4066 */
22124 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0])!=NIT_NULL);
22125 if (UNTAG_Bool(REGB0)) {
22126 } else {
22127 nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser___parser_prod, 4066);
22128 }
22129 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]);
22130 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22131 if (UNTAG_Bool(REGB0)) {
22132 } else {
22133 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22134 REGB0 = REGB1;
22135 }
22136 if (UNTAG_Bool(REGB0)) {
22137 /* ./parser//parser_prod.nit:4067 */
22138 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22139 if (UNTAG_Bool(REGB0)) {
22140 } else {
22141 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22142 if (UNTAG_Bool(REGB1)) {
22143 REGB1 = TAG_Bool(false);
22144 REGB0 = REGB1;
22145 } else {
22146 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22147 REGB0 = REGB1;
22148 }
22149 }
22150 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22151 if (UNTAG_Bool(REGB0)) {
22152 /* ./parser//parser_prod.nit:4068 */
22153 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22154 if (UNTAG_Bool(REGB0)) {
22155 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4068);
22156 }
22157 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22158 /* ./parser//parser_prod.nit:4069 */
22159 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*/;
22160 if (UNTAG_Bool(REGB0)) {
22161 } else {
22162 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4069);
22163 }
22164 /* ./parser//parser_prod.nit:4070 */
22165 ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]) = fra.me.REG[2];
22166 } else {
22167 /* ./parser//parser_prod.nit:4072 */
22168 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4072);
22169 }
22170 /* ./parser//parser_prod.nit:4074 */
22171 goto label1;
22172 }
22173 /* ./parser//parser_prod.nit:4076 */
22174 REGB0 = TAG_Int(0);
22175 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
22176 if (UNTAG_Bool(REGB1)) {
22177 } else {
22178 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4076);
22179 }
22180 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
22181 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
22182 /* ./../lib/standard//kernel.nit:352 */
22183 while(1) {
22184 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
22185 if (UNTAG_Bool(REGB2)) {
22186 } else {
22187 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
22188 }
22189 /* ./../lib/standard//kernel.nit:232 */
22190 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
22191 /* ./../lib/standard//kernel.nit:352 */
22192 if (UNTAG_Bool(REGB2)) {
22193 /* ./parser//parser_prod.nit:4076 */
22194 REGB2 = REGB0;
22195 /* ./parser//parser_prod.nit:4077 */
22196 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
22197 if (UNTAG_Bool(REGB3)) {
22198 } else {
22199 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4077);
22200 }
22201 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
22202 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
22203 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22204 if (UNTAG_Bool(REGB3)) {
22205 } else {
22206 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22207 if (UNTAG_Bool(REGB4)) {
22208 REGB4 = TAG_Bool(false);
22209 REGB3 = REGB4;
22210 } else {
22211 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22212 REGB3 = REGB4;
22213 }
22214 }
22215 if (UNTAG_Bool(REGB3)) {
22216 /* ./parser//parser_prod.nit:4078 */
22217 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22218 if (UNTAG_Bool(REGB3)) {
22219 } else {
22220 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22221 if (UNTAG_Bool(REGB4)) {
22222 REGB4 = TAG_Bool(false);
22223 REGB3 = REGB4;
22224 } else {
22225 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22226 REGB3 = REGB4;
22227 }
22228 }
22229 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
22230 if (UNTAG_Bool(REGB3)) {
22231 /* ./parser//parser_prod.nit:4079 */
22232 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*/;
22233 if (UNTAG_Bool(REGB3)) {
22234 } else {
22235 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4079);
22236 }
22237 /* ./parser//parser_prod.nit:4080 */
22238 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
22239 if (UNTAG_Bool(REGB3)) {
22240 } else {
22241 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4080);
22242 }
22243 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
22244 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
22245 /* ./parser//parser_prod.nit:4081 */
22246 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22247 if (UNTAG_Bool(REGB3)) {
22248 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4081);
22249 }
22250 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22251 } else {
22252 /* ./parser//parser_prod.nit:4083 */
22253 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
22254 if (UNTAG_Bool(REGB3)) {
22255 } else {
22256 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4083);
22257 }
22258 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
22259 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
22260 }
22261 /* ./parser//parser_prod.nit:4085 */
22262 goto label1;
22263 }
22264 /* ./../lib/standard//kernel.nit:354 */
22265 REGB2 = TAG_Int(1);
22266 /* ./../lib/standard//kernel.nit:235 */
22267 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
22268 /* ./../lib/standard//kernel.nit:354 */
22269 REGB0 = REGB2;
22270 } else {
22271 /* ./../lib/standard//kernel.nit:352 */
22272 goto label2;
22273 }
22274 }
22275 label2: while(0);
22276 /* ./parser//parser_prod.nit:4088 */
22277 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22278 if (UNTAG_Bool(REGB0)) {
22279 } else {
22280 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4088);
22281 }
22282 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0]);
22283 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22284 if (UNTAG_Bool(REGB0)) {
22285 } else {
22286 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22287 REGB0 = REGB1;
22288 }
22289 if (UNTAG_Bool(REGB0)) {
22290 /* ./parser//parser_prod.nit:4089 */
22291 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22292 if (UNTAG_Bool(REGB0)) {
22293 } else {
22294 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22295 if (UNTAG_Bool(REGB1)) {
22296 REGB1 = TAG_Bool(false);
22297 REGB0 = REGB1;
22298 } else {
22299 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22300 REGB0 = REGB1;
22301 }
22302 }
22303 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22304 if (UNTAG_Bool(REGB0)) {
22305 /* ./parser//parser_prod.nit:4090 */
22306 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22307 if (UNTAG_Bool(REGB0)) {
22308 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4090);
22309 }
22310 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22311 /* ./parser//parser_prod.nit:4091 */
22312 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*/;
22313 if (UNTAG_Bool(REGB0)) {
22314 } else {
22315 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4091);
22316 }
22317 /* ./parser//parser_prod.nit:4092 */
22318 ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22319 } else {
22320 /* ./parser//parser_prod.nit:4094 */
22321 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4094);
22322 }
22323 /* ./parser//parser_prod.nit:4096 */
22324 goto label1;
22325 }
22326 /* ./parser//parser_prod.nit:4098 */
22327 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
22328 if (UNTAG_Bool(REGB0)) {
22329 } else {
22330 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4098);
22331 }
22332 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]);
22333 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22334 if (UNTAG_Bool(REGB0)) {
22335 } else {
22336 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22337 REGB0 = REGB1;
22338 }
22339 if (UNTAG_Bool(REGB0)) {
22340 /* ./parser//parser_prod.nit:4099 */
22341 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22342 if (UNTAG_Bool(REGB0)) {
22343 } else {
22344 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22345 if (UNTAG_Bool(REGB1)) {
22346 REGB1 = TAG_Bool(false);
22347 REGB0 = REGB1;
22348 } else {
22349 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22350 REGB0 = REGB1;
22351 }
22352 }
22353 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22354 if (UNTAG_Bool(REGB0)) {
22355 /* ./parser//parser_prod.nit:4100 */
22356 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22357 if (UNTAG_Bool(REGB0)) {
22358 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4100);
22359 }
22360 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22361 /* ./parser//parser_prod.nit:4101 */
22362 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*/;
22363 if (UNTAG_Bool(REGB0)) {
22364 } else {
22365 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4101);
22366 }
22367 /* ./parser//parser_prod.nit:4102 */
22368 ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
22369 } else {
22370 /* ./parser//parser_prod.nit:4104 */
22371 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4104);
22372 }
22373 /* ./parser//parser_prod.nit:4106 */
22374 goto label1;
22375 }
22376 /* ./parser//parser_prod.nit:4108 */
22377 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]);
22378 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22379 if (UNTAG_Bool(REGB0)) {
22380 } else {
22381 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22382 if (UNTAG_Bool(REGB1)) {
22383 REGB1 = TAG_Bool(false);
22384 REGB0 = REGB1;
22385 } else {
22386 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22387 REGB0 = REGB1;
22388 }
22389 }
22390 if (UNTAG_Bool(REGB0)) {
22391 /* ./parser//parser_prod.nit:4109 */
22392 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22393 if (UNTAG_Bool(REGB0)) {
22394 } else {
22395 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22396 if (UNTAG_Bool(REGB1)) {
22397 REGB1 = TAG_Bool(false);
22398 REGB0 = REGB1;
22399 } else {
22400 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22401 REGB0 = REGB1;
22402 }
22403 }
22404 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22405 if (UNTAG_Bool(REGB0)) {
22406 /* ./parser//parser_prod.nit:4110 */
22407 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22408 if (UNTAG_Bool(REGB0)) {
22409 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4110);
22410 }
22411 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22412 /* ./parser//parser_prod.nit:4111 */
22413 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*/;
22414 if (UNTAG_Bool(REGB0)) {
22415 } else {
22416 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4111);
22417 }
22418 /* ./parser//parser_prod.nit:4112 */
22419 ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
22420 } else {
22421 /* ./parser//parser_prod.nit:4114 */
22422 ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]) = NIT_NULL;
22423 }
22424 /* ./parser//parser_prod.nit:4116 */
22425 goto label1;
22426 }
22427 /* ./parser//parser_prod.nit:4118 */
22428 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
22429 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22430 if (UNTAG_Bool(REGB0)) {
22431 } else {
22432 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22433 if (UNTAG_Bool(REGB1)) {
22434 REGB1 = TAG_Bool(false);
22435 REGB0 = REGB1;
22436 } else {
22437 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22438 REGB0 = REGB1;
22439 }
22440 }
22441 if (UNTAG_Bool(REGB0)) {
22442 /* ./parser//parser_prod.nit:4119 */
22443 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22444 if (UNTAG_Bool(REGB0)) {
22445 } else {
22446 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22447 if (UNTAG_Bool(REGB1)) {
22448 REGB1 = TAG_Bool(false);
22449 REGB0 = REGB1;
22450 } else {
22451 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22452 REGB0 = REGB1;
22453 }
22454 }
22455 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22456 if (UNTAG_Bool(REGB0)) {
22457 /* ./parser//parser_prod.nit:4120 */
22458 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22459 if (UNTAG_Bool(REGB0)) {
22460 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4120);
22461 }
22462 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22463 /* ./parser//parser_prod.nit:4121 */
22464 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*/;
22465 if (UNTAG_Bool(REGB0)) {
22466 } else {
22467 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4121);
22468 }
22469 /* ./parser//parser_prod.nit:4122 */
22470 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
22471 } else {
22472 /* ./parser//parser_prod.nit:4124 */
22473 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
22474 }
22475 /* ./parser//parser_prod.nit:4126 */
22476 goto label1;
22477 }
22478 label1: while(0);
22479 stack_frame_head = fra.me.prev;
22480 return;
22481 }
22482 void parser___parser_prod___AForExpr___visit_all(val_t p0, val_t p1){
22483 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22484 val_t REGB0;
22485 val_t REGB1;
22486 val_t tmp;
22487 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22488 fra.me.file = LOCATE_parser___parser_prod;
22489 fra.me.line = 4130;
22490 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___visit_all;
22491 fra.me.has_broke = 0;
22492 fra.me.REG_size = 4;
22493 fra.me.nitni_local_ref_head = NULL;
22494 fra.me.REG[0] = NIT_NULL;
22495 fra.me.REG[1] = NIT_NULL;
22496 fra.me.REG[2] = NIT_NULL;
22497 fra.me.REG[3] = NIT_NULL;
22498 fra.me.REG[0] = p0;
22499 fra.me.REG[1] = p1;
22500 /* ./parser//parser_prod.nit:4130 */
22501 fra.me.REG[2] = fra.me.REG[0];
22502 /* ./parser//parser_prod.nit:4132 */
22503 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[2])!=NIT_NULL);
22504 if (UNTAG_Bool(REGB0)) {
22505 } else {
22506 nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser___parser_prod, 4132);
22507 }
22508 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[2]);
22509 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22510 /* ./parser//parser_prod.nit:4133 */
22511 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[2])!=NIT_NULL);
22512 if (UNTAG_Bool(REGB0)) {
22513 } else {
22514 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4133);
22515 }
22516 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[2]);
22517 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));
22518 /* ./parser//parser_prod.nit:4136 */
22519 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
22520 if (UNTAG_Bool(REGB0)) {
22521 } else {
22522 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4136);
22523 }
22524 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[2]);
22525 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22526 /* ./parser//parser_prod.nit:4137 */
22527 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
22528 if (UNTAG_Bool(REGB0)) {
22529 } else {
22530 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4137);
22531 }
22532 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[2]);
22533 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22534 /* ./parser//parser_prod.nit:4138 */
22535 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[2]);
22536 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22537 if (UNTAG_Bool(REGB0)) {
22538 } else {
22539 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22540 if (UNTAG_Bool(REGB1)) {
22541 REGB1 = TAG_Bool(false);
22542 REGB0 = REGB1;
22543 } else {
22544 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22545 REGB0 = REGB1;
22546 }
22547 }
22548 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22549 if (UNTAG_Bool(REGB0)) {
22550 /* ./parser//parser_prod.nit:4139 */
22551 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[2]);
22552 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*/;
22553 if (UNTAG_Bool(REGB0)) {
22554 } else {
22555 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4139);
22556 }
22557 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22558 }
22559 /* ./parser//parser_prod.nit:4141 */
22560 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
22561 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22562 if (UNTAG_Bool(REGB0)) {
22563 } else {
22564 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22565 if (UNTAG_Bool(REGB1)) {
22566 REGB1 = TAG_Bool(false);
22567 REGB0 = REGB1;
22568 } else {
22569 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22570 REGB0 = REGB1;
22571 }
22572 }
22573 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22574 if (UNTAG_Bool(REGB0)) {
22575 /* ./parser//parser_prod.nit:4142 */
22576 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
22577 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*/;
22578 if (UNTAG_Bool(REGB0)) {
22579 } else {
22580 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4142);
22581 }
22582 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22583 }
22584 stack_frame_head = fra.me.prev;
22585 return;
22586 }
22587 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){
22588 struct {struct stack_frame_t me;} fra;
22589 fun_t CREG[1];
22590 val_t tmp;
22591 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22592 fra.me.file = LOCATE_parser___parser_prod;
22593 fra.me.line = 0;
22594 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___visit_all;
22595 fra.me.has_broke = 0;
22596 fra.me.REG_size = 1;
22597 fra.me.nitni_local_ref_head = NULL;
22598 fra.me.REG[0] = NIT_NULL;
22599 fra.me.closure_ctx = closctx_param;
22600 fra.me.closure_funs = CREG;
22601 fra.me.REG[0] = p0;
22602 CREG[0] = clos_fun0;
22603 /* ./parser//parser_prod.nit:4134 */
22604 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
22605 stack_frame_head = fra.me.prev;
22606 return;
22607 }
22608 void parser___parser_prod___AAssertExpr___empty_init(val_t p0, int* init_table){
22609 int itpos131 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssertExpr].i;
22610 struct {struct stack_frame_t me;} fra;
22611 val_t tmp;
22612 if (init_table[itpos131]) return;
22613 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22614 fra.me.file = LOCATE_parser___parser_prod;
22615 fra.me.line = 4147;
22616 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___empty_init;
22617 fra.me.has_broke = 0;
22618 fra.me.REG_size = 1;
22619 fra.me.nitni_local_ref_head = NULL;
22620 fra.me.REG[0] = NIT_NULL;
22621 fra.me.REG[0] = p0;
22622 stack_frame_head = fra.me.prev;
22623 init_table[itpos131] = 1;
22624 return;
22625 }
22626 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){
22627 int itpos132 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssertExpr].i;
22628 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
22629 val_t REGB0;
22630 val_t REGB1;
22631 val_t tmp;
22632 if (init_table[itpos132]) return;
22633 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22634 fra.me.file = LOCATE_parser___parser_prod;
22635 fra.me.line = 4149;
22636 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___init_aassertexpr;
22637 fra.me.has_broke = 0;
22638 fra.me.REG_size = 6;
22639 fra.me.nitni_local_ref_head = NULL;
22640 fra.me.REG[0] = NIT_NULL;
22641 fra.me.REG[1] = NIT_NULL;
22642 fra.me.REG[2] = NIT_NULL;
22643 fra.me.REG[3] = NIT_NULL;
22644 fra.me.REG[4] = NIT_NULL;
22645 fra.me.REG[5] = NIT_NULL;
22646 fra.me.REG[0] = p0;
22647 fra.me.REG[1] = p1;
22648 fra.me.REG[2] = p2;
22649 fra.me.REG[3] = p3;
22650 fra.me.REG[4] = p4;
22651 /* ./parser//parser_prod.nit:4149 */
22652 fra.me.REG[5] = fra.me.REG[0];
22653 /* ./parser//parser_prod.nit:4156 */
22654 CALL_parser___parser_prod___AAssertExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
22655 /* ./parser//parser_prod.nit:4157 */
22656 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22657 if (UNTAG_Bool(REGB0)) {
22658 } else {
22659 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4157);
22660 }
22661 ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[5]) = fra.me.REG[1];
22662 /* ./parser//parser_prod.nit:4158 */
22663 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22664 if (UNTAG_Bool(REGB0)) {
22665 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4158);
22666 }
22667 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
22668 /* ./parser//parser_prod.nit:4159 */
22669 ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
22670 /* ./parser//parser_prod.nit:4160 */
22671 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22672 if (UNTAG_Bool(REGB0)) {
22673 } else {
22674 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22675 if (UNTAG_Bool(REGB1)) {
22676 REGB1 = TAG_Bool(false);
22677 REGB0 = REGB1;
22678 } else {
22679 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22680 REGB0 = REGB1;
22681 }
22682 }
22683 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22684 if (UNTAG_Bool(REGB0)) {
22685 /* ./parser//parser_prod.nit:4161 */
22686 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22687 if (UNTAG_Bool(REGB0)) {
22688 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4161);
22689 }
22690 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
22691 }
22692 /* ./parser//parser_prod.nit:4163 */
22693 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
22694 if (UNTAG_Bool(REGB0)) {
22695 } else {
22696 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4163);
22697 }
22698 ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[5]) = fra.me.REG[3];
22699 /* ./parser//parser_prod.nit:4164 */
22700 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22701 if (UNTAG_Bool(REGB0)) {
22702 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4164);
22703 }
22704 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
22705 /* ./parser//parser_prod.nit:4165 */
22706 ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[5]) = fra.me.REG[4];
22707 /* ./parser//parser_prod.nit:4166 */
22708 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
22709 if (UNTAG_Bool(REGB0)) {
22710 } else {
22711 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
22712 if (UNTAG_Bool(REGB1)) {
22713 REGB1 = TAG_Bool(false);
22714 REGB0 = REGB1;
22715 } else {
22716 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
22717 REGB0 = REGB1;
22718 }
22719 }
22720 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22721 if (UNTAG_Bool(REGB0)) {
22722 /* ./parser//parser_prod.nit:4167 */
22723 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
22724 if (UNTAG_Bool(REGB0)) {
22725 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4167);
22726 }
22727 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
22728 }
22729 stack_frame_head = fra.me.prev;
22730 init_table[itpos132] = 1;
22731 return;
22732 }
22733 void parser___parser_prod___AAssertExpr___replace_child(val_t p0, val_t p1, val_t p2){
22734 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22735 val_t REGB0;
22736 val_t REGB1;
22737 val_t tmp;
22738 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22739 fra.me.file = LOCATE_parser___parser_prod;
22740 fra.me.line = 4171;
22741 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___replace_child;
22742 fra.me.has_broke = 0;
22743 fra.me.REG_size = 4;
22744 fra.me.nitni_local_ref_head = NULL;
22745 fra.me.REG[0] = NIT_NULL;
22746 fra.me.REG[1] = NIT_NULL;
22747 fra.me.REG[2] = NIT_NULL;
22748 fra.me.REG[3] = NIT_NULL;
22749 fra.me.REG[0] = p0;
22750 fra.me.REG[1] = p1;
22751 fra.me.REG[2] = p2;
22752 /* ./parser//parser_prod.nit:4173 */
22753 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0])!=NIT_NULL);
22754 if (UNTAG_Bool(REGB0)) {
22755 } else {
22756 nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser___parser_prod, 4173);
22757 }
22758 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]);
22759 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22760 if (UNTAG_Bool(REGB0)) {
22761 } else {
22762 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22763 REGB0 = REGB1;
22764 }
22765 if (UNTAG_Bool(REGB0)) {
22766 /* ./parser//parser_prod.nit:4174 */
22767 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22768 if (UNTAG_Bool(REGB0)) {
22769 } else {
22770 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22771 if (UNTAG_Bool(REGB1)) {
22772 REGB1 = TAG_Bool(false);
22773 REGB0 = REGB1;
22774 } else {
22775 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22776 REGB0 = REGB1;
22777 }
22778 }
22779 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22780 if (UNTAG_Bool(REGB0)) {
22781 /* ./parser//parser_prod.nit:4175 */
22782 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22783 if (UNTAG_Bool(REGB0)) {
22784 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4175);
22785 }
22786 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22787 /* ./parser//parser_prod.nit:4176 */
22788 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*/;
22789 if (UNTAG_Bool(REGB0)) {
22790 } else {
22791 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4176);
22792 }
22793 /* ./parser//parser_prod.nit:4177 */
22794 ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]) = fra.me.REG[2];
22795 } else {
22796 /* ./parser//parser_prod.nit:4179 */
22797 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4179);
22798 }
22799 /* ./parser//parser_prod.nit:4181 */
22800 goto label1;
22801 }
22802 /* ./parser//parser_prod.nit:4183 */
22803 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]);
22804 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22805 if (UNTAG_Bool(REGB0)) {
22806 } else {
22807 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22808 if (UNTAG_Bool(REGB1)) {
22809 REGB1 = TAG_Bool(false);
22810 REGB0 = REGB1;
22811 } else {
22812 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22813 REGB0 = REGB1;
22814 }
22815 }
22816 if (UNTAG_Bool(REGB0)) {
22817 /* ./parser//parser_prod.nit:4184 */
22818 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22819 if (UNTAG_Bool(REGB0)) {
22820 } else {
22821 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22822 if (UNTAG_Bool(REGB1)) {
22823 REGB1 = TAG_Bool(false);
22824 REGB0 = REGB1;
22825 } else {
22826 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22827 REGB0 = REGB1;
22828 }
22829 }
22830 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22831 if (UNTAG_Bool(REGB0)) {
22832 /* ./parser//parser_prod.nit:4185 */
22833 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22834 if (UNTAG_Bool(REGB0)) {
22835 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4185);
22836 }
22837 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22838 /* ./parser//parser_prod.nit:4186 */
22839 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*/;
22840 if (UNTAG_Bool(REGB0)) {
22841 } else {
22842 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4186);
22843 }
22844 /* ./parser//parser_prod.nit:4187 */
22845 ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
22846 } else {
22847 /* ./parser//parser_prod.nit:4189 */
22848 ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = NIT_NULL;
22849 }
22850 /* ./parser//parser_prod.nit:4191 */
22851 goto label1;
22852 }
22853 /* ./parser//parser_prod.nit:4193 */
22854 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22855 if (UNTAG_Bool(REGB0)) {
22856 } else {
22857 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4193);
22858 }
22859 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]);
22860 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22861 if (UNTAG_Bool(REGB0)) {
22862 } else {
22863 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22864 REGB0 = REGB1;
22865 }
22866 if (UNTAG_Bool(REGB0)) {
22867 /* ./parser//parser_prod.nit:4194 */
22868 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22869 if (UNTAG_Bool(REGB0)) {
22870 } else {
22871 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22872 if (UNTAG_Bool(REGB1)) {
22873 REGB1 = TAG_Bool(false);
22874 REGB0 = REGB1;
22875 } else {
22876 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22877 REGB0 = REGB1;
22878 }
22879 }
22880 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22881 if (UNTAG_Bool(REGB0)) {
22882 /* ./parser//parser_prod.nit:4195 */
22883 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22884 if (UNTAG_Bool(REGB0)) {
22885 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4195);
22886 }
22887 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22888 /* ./parser//parser_prod.nit:4196 */
22889 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*/;
22890 if (UNTAG_Bool(REGB0)) {
22891 } else {
22892 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4196);
22893 }
22894 /* ./parser//parser_prod.nit:4197 */
22895 ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22896 } else {
22897 /* ./parser//parser_prod.nit:4199 */
22898 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4199);
22899 }
22900 /* ./parser//parser_prod.nit:4201 */
22901 goto label1;
22902 }
22903 /* ./parser//parser_prod.nit:4203 */
22904 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]);
22905 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22906 if (UNTAG_Bool(REGB0)) {
22907 } else {
22908 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22909 if (UNTAG_Bool(REGB1)) {
22910 REGB1 = TAG_Bool(false);
22911 REGB0 = REGB1;
22912 } else {
22913 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22914 REGB0 = REGB1;
22915 }
22916 }
22917 if (UNTAG_Bool(REGB0)) {
22918 /* ./parser//parser_prod.nit:4204 */
22919 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22920 if (UNTAG_Bool(REGB0)) {
22921 } else {
22922 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22923 if (UNTAG_Bool(REGB1)) {
22924 REGB1 = TAG_Bool(false);
22925 REGB0 = REGB1;
22926 } else {
22927 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22928 REGB0 = REGB1;
22929 }
22930 }
22931 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22932 if (UNTAG_Bool(REGB0)) {
22933 /* ./parser//parser_prod.nit:4205 */
22934 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22935 if (UNTAG_Bool(REGB0)) {
22936 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4205);
22937 }
22938 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22939 /* ./parser//parser_prod.nit:4206 */
22940 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*/;
22941 if (UNTAG_Bool(REGB0)) {
22942 } else {
22943 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4206);
22944 }
22945 /* ./parser//parser_prod.nit:4207 */
22946 ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
22947 } else {
22948 /* ./parser//parser_prod.nit:4209 */
22949 ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = NIT_NULL;
22950 }
22951 /* ./parser//parser_prod.nit:4211 */
22952 goto label1;
22953 }
22954 label1: while(0);
22955 stack_frame_head = fra.me.prev;
22956 return;
22957 }
22958 void parser___parser_prod___AAssertExpr___visit_all(val_t p0, val_t p1){
22959 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22960 val_t REGB0;
22961 val_t REGB1;
22962 val_t tmp;
22963 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22964 fra.me.file = LOCATE_parser___parser_prod;
22965 fra.me.line = 4215;
22966 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___visit_all;
22967 fra.me.has_broke = 0;
22968 fra.me.REG_size = 4;
22969 fra.me.nitni_local_ref_head = NULL;
22970 fra.me.REG[0] = NIT_NULL;
22971 fra.me.REG[1] = NIT_NULL;
22972 fra.me.REG[2] = NIT_NULL;
22973 fra.me.REG[3] = NIT_NULL;
22974 fra.me.REG[0] = p0;
22975 fra.me.REG[1] = p1;
22976 /* ./parser//parser_prod.nit:4215 */
22977 fra.me.REG[2] = fra.me.REG[0];
22978 /* ./parser//parser_prod.nit:4217 */
22979 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[2])!=NIT_NULL);
22980 if (UNTAG_Bool(REGB0)) {
22981 } else {
22982 nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser___parser_prod, 4217);
22983 }
22984 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[2]);
22985 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22986 /* ./parser//parser_prod.nit:4218 */
22987 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[2]);
22988 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22989 if (UNTAG_Bool(REGB0)) {
22990 } else {
22991 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22992 if (UNTAG_Bool(REGB1)) {
22993 REGB1 = TAG_Bool(false);
22994 REGB0 = REGB1;
22995 } else {
22996 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22997 REGB0 = REGB1;
22998 }
22999 }
23000 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23001 if (UNTAG_Bool(REGB0)) {
23002 /* ./parser//parser_prod.nit:4219 */
23003 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[2]);
23004 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*/;
23005 if (UNTAG_Bool(REGB0)) {
23006 } else {
23007 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4219);
23008 }
23009 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23010 }
23011 /* ./parser//parser_prod.nit:4221 */
23012 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
23013 if (UNTAG_Bool(REGB0)) {
23014 } else {
23015 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4221);
23016 }
23017 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[2]);
23018 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23019 /* ./parser//parser_prod.nit:4222 */
23020 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[2]);
23021 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23022 if (UNTAG_Bool(REGB0)) {
23023 } else {
23024 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23025 if (UNTAG_Bool(REGB1)) {
23026 REGB1 = TAG_Bool(false);
23027 REGB0 = REGB1;
23028 } else {
23029 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
23030 REGB0 = REGB1;
23031 }
23032 }
23033 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23034 if (UNTAG_Bool(REGB0)) {
23035 /* ./parser//parser_prod.nit:4223 */
23036 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[2]);
23037 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*/;
23038 if (UNTAG_Bool(REGB0)) {
23039 } else {
23040 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4223);
23041 }
23042 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23043 }
23044 stack_frame_head = fra.me.prev;
23045 return;
23046 }
23047 void parser___parser_prod___AOnceExpr___empty_init(val_t p0, int* init_table){
23048 int itpos133 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOnceExpr].i;
23049 struct {struct stack_frame_t me;} fra;
23050 val_t tmp;
23051 if (init_table[itpos133]) return;
23052 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23053 fra.me.file = LOCATE_parser___parser_prod;
23054 fra.me.line = 4228;
23055 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___empty_init;
23056 fra.me.has_broke = 0;
23057 fra.me.REG_size = 1;
23058 fra.me.nitni_local_ref_head = NULL;
23059 fra.me.REG[0] = NIT_NULL;
23060 fra.me.REG[0] = p0;
23061 stack_frame_head = fra.me.prev;
23062 init_table[itpos133] = 1;
23063 return;
23064 }
23065 void parser___parser_prod___AOnceExpr___init_aonceexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23066 int itpos134 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOnceExpr].i;
23067 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23068 val_t REGB0;
23069 val_t tmp;
23070 if (init_table[itpos134]) return;
23071 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23072 fra.me.file = LOCATE_parser___parser_prod;
23073 fra.me.line = 4230;
23074 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___init_aonceexpr;
23075 fra.me.has_broke = 0;
23076 fra.me.REG_size = 4;
23077 fra.me.nitni_local_ref_head = NULL;
23078 fra.me.REG[0] = NIT_NULL;
23079 fra.me.REG[1] = NIT_NULL;
23080 fra.me.REG[2] = NIT_NULL;
23081 fra.me.REG[3] = NIT_NULL;
23082 fra.me.REG[0] = p0;
23083 fra.me.REG[1] = p1;
23084 fra.me.REG[2] = p2;
23085 /* ./parser//parser_prod.nit:4230 */
23086 fra.me.REG[3] = fra.me.REG[0];
23087 /* ./parser//parser_prod.nit:4235 */
23088 CALL_parser___parser_prod___AOnceExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
23089 /* ./parser//parser_prod.nit:4236 */
23090 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23091 if (UNTAG_Bool(REGB0)) {
23092 } else {
23093 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4236);
23094 }
23095 ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[3]) = fra.me.REG[1];
23096 /* ./parser//parser_prod.nit:4237 */
23097 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23098 if (UNTAG_Bool(REGB0)) {
23099 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4237);
23100 }
23101 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23102 /* ./parser//parser_prod.nit:4238 */
23103 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23104 if (UNTAG_Bool(REGB0)) {
23105 } else {
23106 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4238);
23107 }
23108 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
23109 /* ./parser//parser_prod.nit:4239 */
23110 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23111 if (UNTAG_Bool(REGB0)) {
23112 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4239);
23113 }
23114 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
23115 stack_frame_head = fra.me.prev;
23116 init_table[itpos134] = 1;
23117 return;
23118 }
23119 void parser___parser_prod___AOnceExpr___replace_child(val_t p0, val_t p1, val_t p2){
23120 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23121 val_t REGB0;
23122 val_t REGB1;
23123 val_t tmp;
23124 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23125 fra.me.file = LOCATE_parser___parser_prod;
23126 fra.me.line = 4242;
23127 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___replace_child;
23128 fra.me.has_broke = 0;
23129 fra.me.REG_size = 4;
23130 fra.me.nitni_local_ref_head = NULL;
23131 fra.me.REG[0] = NIT_NULL;
23132 fra.me.REG[1] = NIT_NULL;
23133 fra.me.REG[2] = NIT_NULL;
23134 fra.me.REG[3] = NIT_NULL;
23135 fra.me.REG[0] = p0;
23136 fra.me.REG[1] = p1;
23137 fra.me.REG[2] = p2;
23138 /* ./parser//parser_prod.nit:4244 */
23139 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
23140 if (UNTAG_Bool(REGB0)) {
23141 } else {
23142 nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser___parser_prod, 4244);
23143 }
23144 fra.me.REG[3] = ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]);
23145 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23146 if (UNTAG_Bool(REGB0)) {
23147 } else {
23148 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23149 REGB0 = REGB1;
23150 }
23151 if (UNTAG_Bool(REGB0)) {
23152 /* ./parser//parser_prod.nit:4245 */
23153 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23154 if (UNTAG_Bool(REGB0)) {
23155 } else {
23156 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23157 if (UNTAG_Bool(REGB1)) {
23158 REGB1 = TAG_Bool(false);
23159 REGB0 = REGB1;
23160 } else {
23161 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23162 REGB0 = REGB1;
23163 }
23164 }
23165 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23166 if (UNTAG_Bool(REGB0)) {
23167 /* ./parser//parser_prod.nit:4246 */
23168 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23169 if (UNTAG_Bool(REGB0)) {
23170 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4246);
23171 }
23172 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23173 /* ./parser//parser_prod.nit:4247 */
23174 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*/;
23175 if (UNTAG_Bool(REGB0)) {
23176 } else {
23177 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4247);
23178 }
23179 /* ./parser//parser_prod.nit:4248 */
23180 ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]) = fra.me.REG[2];
23181 } else {
23182 /* ./parser//parser_prod.nit:4250 */
23183 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4250);
23184 }
23185 /* ./parser//parser_prod.nit:4252 */
23186 goto label1;
23187 }
23188 /* ./parser//parser_prod.nit:4254 */
23189 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23190 if (UNTAG_Bool(REGB0)) {
23191 } else {
23192 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4254);
23193 }
23194 fra.me.REG[3] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
23195 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23196 if (UNTAG_Bool(REGB0)) {
23197 } else {
23198 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23199 REGB0 = REGB1;
23200 }
23201 if (UNTAG_Bool(REGB0)) {
23202 /* ./parser//parser_prod.nit:4255 */
23203 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23204 if (UNTAG_Bool(REGB0)) {
23205 } else {
23206 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23207 if (UNTAG_Bool(REGB1)) {
23208 REGB1 = TAG_Bool(false);
23209 REGB0 = REGB1;
23210 } else {
23211 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23212 REGB0 = REGB1;
23213 }
23214 }
23215 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23216 if (UNTAG_Bool(REGB0)) {
23217 /* ./parser//parser_prod.nit:4256 */
23218 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23219 if (UNTAG_Bool(REGB0)) {
23220 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4256);
23221 }
23222 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23223 /* ./parser//parser_prod.nit:4257 */
23224 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*/;
23225 if (UNTAG_Bool(REGB0)) {
23226 } else {
23227 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4257);
23228 }
23229 /* ./parser//parser_prod.nit:4258 */
23230 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23231 } else {
23232 /* ./parser//parser_prod.nit:4260 */
23233 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4260);
23234 }
23235 /* ./parser//parser_prod.nit:4262 */
23236 goto label1;
23237 }
23238 label1: while(0);
23239 stack_frame_head = fra.me.prev;
23240 return;
23241 }
23242 void parser___parser_prod___AOnceExpr___visit_all(val_t p0, val_t p1){
23243 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23244 val_t REGB0;
23245 val_t tmp;
23246 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23247 fra.me.file = LOCATE_parser___parser_prod;
23248 fra.me.line = 4266;
23249 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___visit_all;
23250 fra.me.has_broke = 0;
23251 fra.me.REG_size = 3;
23252 fra.me.nitni_local_ref_head = NULL;
23253 fra.me.REG[0] = NIT_NULL;
23254 fra.me.REG[1] = NIT_NULL;
23255 fra.me.REG[2] = NIT_NULL;
23256 fra.me.REG[0] = p0;
23257 fra.me.REG[1] = p1;
23258 /* ./parser//parser_prod.nit:4268 */
23259 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
23260 if (UNTAG_Bool(REGB0)) {
23261 } else {
23262 nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser___parser_prod, 4268);
23263 }
23264 fra.me.REG[2] = ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]);
23265 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23266 /* ./parser//parser_prod.nit:4269 */
23267 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23268 if (UNTAG_Bool(REGB0)) {
23269 } else {
23270 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4269);
23271 }
23272 fra.me.REG[0] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
23273 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23274 stack_frame_head = fra.me.prev;
23275 return;
23276 }
23277 void parser___parser_prod___ASendExpr___empty_init(val_t p0, int* init_table){
23278 int itpos135 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASendExpr].i;
23279 struct {struct stack_frame_t me;} fra;
23280 val_t tmp;
23281 if (init_table[itpos135]) return;
23282 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23283 fra.me.file = LOCATE_parser___parser_prod;
23284 fra.me.line = 4273;
23285 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___empty_init;
23286 fra.me.has_broke = 0;
23287 fra.me.REG_size = 1;
23288 fra.me.nitni_local_ref_head = NULL;
23289 fra.me.REG[0] = NIT_NULL;
23290 fra.me.REG[0] = p0;
23291 stack_frame_head = fra.me.prev;
23292 init_table[itpos135] = 1;
23293 return;
23294 }
23295 void parser___parser_prod___ASendExpr___init_asendexpr(val_t p0, val_t p1, int* init_table){
23296 int itpos136 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASendExpr].i;
23297 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23298 val_t REGB0;
23299 val_t tmp;
23300 if (init_table[itpos136]) return;
23301 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23302 fra.me.file = LOCATE_parser___parser_prod;
23303 fra.me.line = 4275;
23304 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___init_asendexpr;
23305 fra.me.has_broke = 0;
23306 fra.me.REG_size = 3;
23307 fra.me.nitni_local_ref_head = NULL;
23308 fra.me.REG[0] = NIT_NULL;
23309 fra.me.REG[1] = NIT_NULL;
23310 fra.me.REG[2] = NIT_NULL;
23311 fra.me.REG[0] = p0;
23312 fra.me.REG[1] = p1;
23313 /* ./parser//parser_prod.nit:4275 */
23314 fra.me.REG[2] = fra.me.REG[0];
23315 /* ./parser//parser_prod.nit:4279 */
23316 CALL_parser___parser_prod___ASendExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
23317 /* ./parser//parser_prod.nit:4280 */
23318 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23319 if (UNTAG_Bool(REGB0)) {
23320 } else {
23321 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4280);
23322 }
23323 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[2]) = fra.me.REG[1];
23324 /* ./parser//parser_prod.nit:4281 */
23325 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23326 if (UNTAG_Bool(REGB0)) {
23327 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4281);
23328 }
23329 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23330 stack_frame_head = fra.me.prev;
23331 init_table[itpos136] = 1;
23332 return;
23333 }
23334 void parser___parser_prod___ASendExpr___replace_child(val_t p0, val_t p1, val_t p2){
23335 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23336 val_t REGB0;
23337 val_t REGB1;
23338 val_t tmp;
23339 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23340 fra.me.file = LOCATE_parser___parser_prod;
23341 fra.me.line = 4284;
23342 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___replace_child;
23343 fra.me.has_broke = 0;
23344 fra.me.REG_size = 4;
23345 fra.me.nitni_local_ref_head = NULL;
23346 fra.me.REG[0] = NIT_NULL;
23347 fra.me.REG[1] = NIT_NULL;
23348 fra.me.REG[2] = NIT_NULL;
23349 fra.me.REG[3] = NIT_NULL;
23350 fra.me.REG[0] = p0;
23351 fra.me.REG[1] = p1;
23352 fra.me.REG[2] = p2;
23353 /* ./parser//parser_prod.nit:4286 */
23354 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23355 if (UNTAG_Bool(REGB0)) {
23356 } else {
23357 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4286);
23358 }
23359 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23360 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23361 if (UNTAG_Bool(REGB0)) {
23362 } else {
23363 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23364 REGB0 = REGB1;
23365 }
23366 if (UNTAG_Bool(REGB0)) {
23367 /* ./parser//parser_prod.nit:4287 */
23368 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23369 if (UNTAG_Bool(REGB0)) {
23370 } else {
23371 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23372 if (UNTAG_Bool(REGB1)) {
23373 REGB1 = TAG_Bool(false);
23374 REGB0 = REGB1;
23375 } else {
23376 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23377 REGB0 = REGB1;
23378 }
23379 }
23380 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23381 if (UNTAG_Bool(REGB0)) {
23382 /* ./parser//parser_prod.nit:4288 */
23383 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23384 if (UNTAG_Bool(REGB0)) {
23385 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4288);
23386 }
23387 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23388 /* ./parser//parser_prod.nit:4289 */
23389 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*/;
23390 if (UNTAG_Bool(REGB0)) {
23391 } else {
23392 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4289);
23393 }
23394 /* ./parser//parser_prod.nit:4290 */
23395 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23396 } else {
23397 /* ./parser//parser_prod.nit:4292 */
23398 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4292);
23399 }
23400 /* ./parser//parser_prod.nit:4294 */
23401 goto label1;
23402 }
23403 label1: while(0);
23404 stack_frame_head = fra.me.prev;
23405 return;
23406 }
23407 void parser___parser_prod___ASendExpr___visit_all(val_t p0, val_t p1){
23408 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23409 val_t REGB0;
23410 val_t tmp;
23411 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23412 fra.me.file = LOCATE_parser___parser_prod;
23413 fra.me.line = 4298;
23414 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___visit_all;
23415 fra.me.has_broke = 0;
23416 fra.me.REG_size = 2;
23417 fra.me.nitni_local_ref_head = NULL;
23418 fra.me.REG[0] = NIT_NULL;
23419 fra.me.REG[1] = NIT_NULL;
23420 fra.me.REG[0] = p0;
23421 fra.me.REG[1] = p1;
23422 /* ./parser//parser_prod.nit:4300 */
23423 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23424 if (UNTAG_Bool(REGB0)) {
23425 } else {
23426 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4300);
23427 }
23428 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23429 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23430 stack_frame_head = fra.me.prev;
23431 return;
23432 }
23433 void parser___parser_prod___ABinopExpr___empty_init(val_t p0, int* init_table){
23434 int itpos137 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABinopExpr].i;
23435 struct {struct stack_frame_t me;} fra;
23436 val_t tmp;
23437 if (init_table[itpos137]) return;
23438 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23439 fra.me.file = LOCATE_parser___parser_prod;
23440 fra.me.line = 4304;
23441 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___empty_init;
23442 fra.me.has_broke = 0;
23443 fra.me.REG_size = 1;
23444 fra.me.nitni_local_ref_head = NULL;
23445 fra.me.REG[0] = NIT_NULL;
23446 fra.me.REG[0] = p0;
23447 stack_frame_head = fra.me.prev;
23448 init_table[itpos137] = 1;
23449 return;
23450 }
23451 void parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23452 int itpos138 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABinopExpr].i;
23453 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23454 val_t REGB0;
23455 val_t tmp;
23456 if (init_table[itpos138]) return;
23457 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23458 fra.me.file = LOCATE_parser___parser_prod;
23459 fra.me.line = 4306;
23460 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___init_abinopexpr;
23461 fra.me.has_broke = 0;
23462 fra.me.REG_size = 4;
23463 fra.me.nitni_local_ref_head = NULL;
23464 fra.me.REG[0] = NIT_NULL;
23465 fra.me.REG[1] = NIT_NULL;
23466 fra.me.REG[2] = NIT_NULL;
23467 fra.me.REG[3] = NIT_NULL;
23468 fra.me.REG[0] = p0;
23469 fra.me.REG[1] = p1;
23470 fra.me.REG[2] = p2;
23471 /* ./parser//parser_prod.nit:4306 */
23472 fra.me.REG[3] = fra.me.REG[0];
23473 /* ./parser//parser_prod.nit:4311 */
23474 CALL_parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
23475 /* ./parser//parser_prod.nit:4312 */
23476 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23477 if (UNTAG_Bool(REGB0)) {
23478 } else {
23479 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4312);
23480 }
23481 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
23482 /* ./parser//parser_prod.nit:4313 */
23483 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23484 if (UNTAG_Bool(REGB0)) {
23485 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4313);
23486 }
23487 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23488 /* ./parser//parser_prod.nit:4314 */
23489 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23490 if (UNTAG_Bool(REGB0)) {
23491 } else {
23492 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4314);
23493 }
23494 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
23495 /* ./parser//parser_prod.nit:4315 */
23496 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23497 if (UNTAG_Bool(REGB0)) {
23498 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4315);
23499 }
23500 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
23501 stack_frame_head = fra.me.prev;
23502 init_table[itpos138] = 1;
23503 return;
23504 }
23505 void parser___parser_prod___ABinopExpr___replace_child(val_t p0, val_t p1, val_t p2){
23506 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23507 val_t REGB0;
23508 val_t REGB1;
23509 val_t tmp;
23510 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23511 fra.me.file = LOCATE_parser___parser_prod;
23512 fra.me.line = 4318;
23513 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___replace_child;
23514 fra.me.has_broke = 0;
23515 fra.me.REG_size = 4;
23516 fra.me.nitni_local_ref_head = NULL;
23517 fra.me.REG[0] = NIT_NULL;
23518 fra.me.REG[1] = NIT_NULL;
23519 fra.me.REG[2] = NIT_NULL;
23520 fra.me.REG[3] = NIT_NULL;
23521 fra.me.REG[0] = p0;
23522 fra.me.REG[1] = p1;
23523 fra.me.REG[2] = p2;
23524 /* ./parser//parser_prod.nit:4320 */
23525 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23526 if (UNTAG_Bool(REGB0)) {
23527 } else {
23528 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4320);
23529 }
23530 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23531 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23532 if (UNTAG_Bool(REGB0)) {
23533 } else {
23534 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23535 REGB0 = REGB1;
23536 }
23537 if (UNTAG_Bool(REGB0)) {
23538 /* ./parser//parser_prod.nit:4321 */
23539 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23540 if (UNTAG_Bool(REGB0)) {
23541 } else {
23542 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23543 if (UNTAG_Bool(REGB1)) {
23544 REGB1 = TAG_Bool(false);
23545 REGB0 = REGB1;
23546 } else {
23547 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23548 REGB0 = REGB1;
23549 }
23550 }
23551 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23552 if (UNTAG_Bool(REGB0)) {
23553 /* ./parser//parser_prod.nit:4322 */
23554 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23555 if (UNTAG_Bool(REGB0)) {
23556 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4322);
23557 }
23558 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23559 /* ./parser//parser_prod.nit:4323 */
23560 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*/;
23561 if (UNTAG_Bool(REGB0)) {
23562 } else {
23563 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4323);
23564 }
23565 /* ./parser//parser_prod.nit:4324 */
23566 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23567 } else {
23568 /* ./parser//parser_prod.nit:4326 */
23569 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4326);
23570 }
23571 /* ./parser//parser_prod.nit:4328 */
23572 goto label1;
23573 }
23574 /* ./parser//parser_prod.nit:4330 */
23575 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23576 if (UNTAG_Bool(REGB0)) {
23577 } else {
23578 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4330);
23579 }
23580 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23581 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23582 if (UNTAG_Bool(REGB0)) {
23583 } else {
23584 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23585 REGB0 = REGB1;
23586 }
23587 if (UNTAG_Bool(REGB0)) {
23588 /* ./parser//parser_prod.nit:4331 */
23589 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23590 if (UNTAG_Bool(REGB0)) {
23591 } else {
23592 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23593 if (UNTAG_Bool(REGB1)) {
23594 REGB1 = TAG_Bool(false);
23595 REGB0 = REGB1;
23596 } else {
23597 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23598 REGB0 = REGB1;
23599 }
23600 }
23601 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23602 if (UNTAG_Bool(REGB0)) {
23603 /* ./parser//parser_prod.nit:4332 */
23604 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23605 if (UNTAG_Bool(REGB0)) {
23606 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4332);
23607 }
23608 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23609 /* ./parser//parser_prod.nit:4333 */
23610 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*/;
23611 if (UNTAG_Bool(REGB0)) {
23612 } else {
23613 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4333);
23614 }
23615 /* ./parser//parser_prod.nit:4334 */
23616 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23617 } else {
23618 /* ./parser//parser_prod.nit:4336 */
23619 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4336);
23620 }
23621 /* ./parser//parser_prod.nit:4338 */
23622 goto label1;
23623 }
23624 label1: while(0);
23625 stack_frame_head = fra.me.prev;
23626 return;
23627 }
23628 void parser___parser_prod___ABinopExpr___visit_all(val_t p0, val_t p1){
23629 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23630 val_t REGB0;
23631 val_t tmp;
23632 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23633 fra.me.file = LOCATE_parser___parser_prod;
23634 fra.me.line = 4342;
23635 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___visit_all;
23636 fra.me.has_broke = 0;
23637 fra.me.REG_size = 3;
23638 fra.me.nitni_local_ref_head = NULL;
23639 fra.me.REG[0] = NIT_NULL;
23640 fra.me.REG[1] = NIT_NULL;
23641 fra.me.REG[2] = NIT_NULL;
23642 fra.me.REG[0] = p0;
23643 fra.me.REG[1] = p1;
23644 /* ./parser//parser_prod.nit:4344 */
23645 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23646 if (UNTAG_Bool(REGB0)) {
23647 } else {
23648 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4344);
23649 }
23650 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23651 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23652 /* ./parser//parser_prod.nit:4345 */
23653 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23654 if (UNTAG_Bool(REGB0)) {
23655 } else {
23656 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4345);
23657 }
23658 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23659 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23660 stack_frame_head = fra.me.prev;
23661 return;
23662 }
23663 void parser___parser_prod___AOrExpr___empty_init(val_t p0, int* init_table){
23664 int itpos139 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrExpr].i;
23665 struct {struct stack_frame_t me;} fra;
23666 val_t tmp;
23667 if (init_table[itpos139]) return;
23668 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23669 fra.me.file = LOCATE_parser___parser_prod;
23670 fra.me.line = 4349;
23671 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___empty_init;
23672 fra.me.has_broke = 0;
23673 fra.me.REG_size = 1;
23674 fra.me.nitni_local_ref_head = NULL;
23675 fra.me.REG[0] = NIT_NULL;
23676 fra.me.REG[0] = p0;
23677 stack_frame_head = fra.me.prev;
23678 init_table[itpos139] = 1;
23679 return;
23680 }
23681 void parser___parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23682 int itpos140 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrExpr].i;
23683 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23684 val_t REGB0;
23685 val_t tmp;
23686 if (init_table[itpos140]) return;
23687 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23688 fra.me.file = LOCATE_parser___parser_prod;
23689 fra.me.line = 4351;
23690 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___init_aorexpr;
23691 fra.me.has_broke = 0;
23692 fra.me.REG_size = 4;
23693 fra.me.nitni_local_ref_head = NULL;
23694 fra.me.REG[0] = NIT_NULL;
23695 fra.me.REG[1] = NIT_NULL;
23696 fra.me.REG[2] = NIT_NULL;
23697 fra.me.REG[3] = NIT_NULL;
23698 fra.me.REG[0] = p0;
23699 fra.me.REG[1] = p1;
23700 fra.me.REG[2] = p2;
23701 /* ./parser//parser_prod.nit:4351 */
23702 fra.me.REG[3] = fra.me.REG[0];
23703 /* ./parser//parser_prod.nit:4356 */
23704 CALL_parser___parser_prod___AOrExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
23705 /* ./parser//parser_prod.nit:4357 */
23706 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23707 if (UNTAG_Bool(REGB0)) {
23708 } else {
23709 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4357);
23710 }
23711 ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
23712 /* ./parser//parser_prod.nit:4358 */
23713 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23714 if (UNTAG_Bool(REGB0)) {
23715 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4358);
23716 }
23717 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23718 /* ./parser//parser_prod.nit:4359 */
23719 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23720 if (UNTAG_Bool(REGB0)) {
23721 } else {
23722 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4359);
23723 }
23724 ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
23725 /* ./parser//parser_prod.nit:4360 */
23726 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23727 if (UNTAG_Bool(REGB0)) {
23728 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4360);
23729 }
23730 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
23731 stack_frame_head = fra.me.prev;
23732 init_table[itpos140] = 1;
23733 return;
23734 }
23735 void parser___parser_prod___AOrExpr___replace_child(val_t p0, val_t p1, val_t p2){
23736 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23737 val_t REGB0;
23738 val_t REGB1;
23739 val_t tmp;
23740 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23741 fra.me.file = LOCATE_parser___parser_prod;
23742 fra.me.line = 4363;
23743 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___replace_child;
23744 fra.me.has_broke = 0;
23745 fra.me.REG_size = 4;
23746 fra.me.nitni_local_ref_head = NULL;
23747 fra.me.REG[0] = NIT_NULL;
23748 fra.me.REG[1] = NIT_NULL;
23749 fra.me.REG[2] = NIT_NULL;
23750 fra.me.REG[3] = NIT_NULL;
23751 fra.me.REG[0] = p0;
23752 fra.me.REG[1] = p1;
23753 fra.me.REG[2] = p2;
23754 /* ./parser//parser_prod.nit:4365 */
23755 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23756 if (UNTAG_Bool(REGB0)) {
23757 } else {
23758 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4365);
23759 }
23760 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]);
23761 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23762 if (UNTAG_Bool(REGB0)) {
23763 } else {
23764 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23765 REGB0 = REGB1;
23766 }
23767 if (UNTAG_Bool(REGB0)) {
23768 /* ./parser//parser_prod.nit:4366 */
23769 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23770 if (UNTAG_Bool(REGB0)) {
23771 } else {
23772 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23773 if (UNTAG_Bool(REGB1)) {
23774 REGB1 = TAG_Bool(false);
23775 REGB0 = REGB1;
23776 } else {
23777 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23778 REGB0 = REGB1;
23779 }
23780 }
23781 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23782 if (UNTAG_Bool(REGB0)) {
23783 /* ./parser//parser_prod.nit:4367 */
23784 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23785 if (UNTAG_Bool(REGB0)) {
23786 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4367);
23787 }
23788 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23789 /* ./parser//parser_prod.nit:4368 */
23790 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*/;
23791 if (UNTAG_Bool(REGB0)) {
23792 } else {
23793 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4368);
23794 }
23795 /* ./parser//parser_prod.nit:4369 */
23796 ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23797 } else {
23798 /* ./parser//parser_prod.nit:4371 */
23799 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4371);
23800 }
23801 /* ./parser//parser_prod.nit:4373 */
23802 goto label1;
23803 }
23804 /* ./parser//parser_prod.nit:4375 */
23805 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23806 if (UNTAG_Bool(REGB0)) {
23807 } else {
23808 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4375);
23809 }
23810 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]);
23811 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23812 if (UNTAG_Bool(REGB0)) {
23813 } else {
23814 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23815 REGB0 = REGB1;
23816 }
23817 if (UNTAG_Bool(REGB0)) {
23818 /* ./parser//parser_prod.nit:4376 */
23819 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23820 if (UNTAG_Bool(REGB0)) {
23821 } else {
23822 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23823 if (UNTAG_Bool(REGB1)) {
23824 REGB1 = TAG_Bool(false);
23825 REGB0 = REGB1;
23826 } else {
23827 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23828 REGB0 = REGB1;
23829 }
23830 }
23831 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23832 if (UNTAG_Bool(REGB0)) {
23833 /* ./parser//parser_prod.nit:4377 */
23834 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23835 if (UNTAG_Bool(REGB0)) {
23836 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4377);
23837 }
23838 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23839 /* ./parser//parser_prod.nit:4378 */
23840 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*/;
23841 if (UNTAG_Bool(REGB0)) {
23842 } else {
23843 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4378);
23844 }
23845 /* ./parser//parser_prod.nit:4379 */
23846 ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23847 } else {
23848 /* ./parser//parser_prod.nit:4381 */
23849 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4381);
23850 }
23851 /* ./parser//parser_prod.nit:4383 */
23852 goto label1;
23853 }
23854 label1: while(0);
23855 stack_frame_head = fra.me.prev;
23856 return;
23857 }
23858 void parser___parser_prod___AOrExpr___visit_all(val_t p0, val_t p1){
23859 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23860 val_t REGB0;
23861 val_t tmp;
23862 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23863 fra.me.file = LOCATE_parser___parser_prod;
23864 fra.me.line = 4387;
23865 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___visit_all;
23866 fra.me.has_broke = 0;
23867 fra.me.REG_size = 3;
23868 fra.me.nitni_local_ref_head = NULL;
23869 fra.me.REG[0] = NIT_NULL;
23870 fra.me.REG[1] = NIT_NULL;
23871 fra.me.REG[2] = NIT_NULL;
23872 fra.me.REG[0] = p0;
23873 fra.me.REG[1] = p1;
23874 /* ./parser//parser_prod.nit:4389 */
23875 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23876 if (UNTAG_Bool(REGB0)) {
23877 } else {
23878 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4389);
23879 }
23880 fra.me.REG[2] = ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]);
23881 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23882 /* ./parser//parser_prod.nit:4390 */
23883 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23884 if (UNTAG_Bool(REGB0)) {
23885 } else {
23886 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4390);
23887 }
23888 fra.me.REG[0] = ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]);
23889 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23890 stack_frame_head = fra.me.prev;
23891 return;
23892 }
23893 void parser___parser_prod___AAndExpr___empty_init(val_t p0, int* init_table){
23894 int itpos141 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAndExpr].i;
23895 struct {struct stack_frame_t me;} fra;
23896 val_t tmp;
23897 if (init_table[itpos141]) return;
23898 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23899 fra.me.file = LOCATE_parser___parser_prod;
23900 fra.me.line = 4394;
23901 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___empty_init;
23902 fra.me.has_broke = 0;
23903 fra.me.REG_size = 1;
23904 fra.me.nitni_local_ref_head = NULL;
23905 fra.me.REG[0] = NIT_NULL;
23906 fra.me.REG[0] = p0;
23907 stack_frame_head = fra.me.prev;
23908 init_table[itpos141] = 1;
23909 return;
23910 }
23911 void parser___parser_prod___AAndExpr___init_aandexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23912 int itpos142 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAndExpr].i;
23913 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23914 val_t REGB0;
23915 val_t tmp;
23916 if (init_table[itpos142]) return;
23917 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23918 fra.me.file = LOCATE_parser___parser_prod;
23919 fra.me.line = 4396;
23920 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___init_aandexpr;
23921 fra.me.has_broke = 0;
23922 fra.me.REG_size = 4;
23923 fra.me.nitni_local_ref_head = NULL;
23924 fra.me.REG[0] = NIT_NULL;
23925 fra.me.REG[1] = NIT_NULL;
23926 fra.me.REG[2] = NIT_NULL;
23927 fra.me.REG[3] = NIT_NULL;
23928 fra.me.REG[0] = p0;
23929 fra.me.REG[1] = p1;
23930 fra.me.REG[2] = p2;
23931 /* ./parser//parser_prod.nit:4396 */
23932 fra.me.REG[3] = fra.me.REG[0];
23933 /* ./parser//parser_prod.nit:4401 */
23934 CALL_parser___parser_prod___AAndExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
23935 /* ./parser//parser_prod.nit:4402 */
23936 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23937 if (UNTAG_Bool(REGB0)) {
23938 } else {
23939 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4402);
23940 }
23941 ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
23942 /* ./parser//parser_prod.nit:4403 */
23943 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23944 if (UNTAG_Bool(REGB0)) {
23945 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4403);
23946 }
23947 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23948 /* ./parser//parser_prod.nit:4404 */
23949 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23950 if (UNTAG_Bool(REGB0)) {
23951 } else {
23952 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4404);
23953 }
23954 ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
23955 /* ./parser//parser_prod.nit:4405 */
23956 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23957 if (UNTAG_Bool(REGB0)) {
23958 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4405);
23959 }
23960 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
23961 stack_frame_head = fra.me.prev;
23962 init_table[itpos142] = 1;
23963 return;
23964 }
23965 void parser___parser_prod___AAndExpr___replace_child(val_t p0, val_t p1, val_t p2){
23966 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23967 val_t REGB0;
23968 val_t REGB1;
23969 val_t tmp;
23970 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23971 fra.me.file = LOCATE_parser___parser_prod;
23972 fra.me.line = 4408;
23973 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___replace_child;
23974 fra.me.has_broke = 0;
23975 fra.me.REG_size = 4;
23976 fra.me.nitni_local_ref_head = NULL;
23977 fra.me.REG[0] = NIT_NULL;
23978 fra.me.REG[1] = NIT_NULL;
23979 fra.me.REG[2] = NIT_NULL;
23980 fra.me.REG[3] = NIT_NULL;
23981 fra.me.REG[0] = p0;
23982 fra.me.REG[1] = p1;
23983 fra.me.REG[2] = p2;
23984 /* ./parser//parser_prod.nit:4410 */
23985 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23986 if (UNTAG_Bool(REGB0)) {
23987 } else {
23988 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4410);
23989 }
23990 fra.me.REG[3] = ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]);
23991 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23992 if (UNTAG_Bool(REGB0)) {
23993 } else {
23994 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23995 REGB0 = REGB1;
23996 }
23997 if (UNTAG_Bool(REGB0)) {
23998 /* ./parser//parser_prod.nit:4411 */
23999 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24000 if (UNTAG_Bool(REGB0)) {
24001 } else {
24002 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24003 if (UNTAG_Bool(REGB1)) {
24004 REGB1 = TAG_Bool(false);
24005 REGB0 = REGB1;
24006 } else {
24007 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24008 REGB0 = REGB1;
24009 }
24010 }
24011 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24012 if (UNTAG_Bool(REGB0)) {
24013 /* ./parser//parser_prod.nit:4412 */
24014 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24015 if (UNTAG_Bool(REGB0)) {
24016 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4412);
24017 }
24018 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24019 /* ./parser//parser_prod.nit:4413 */
24020 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*/;
24021 if (UNTAG_Bool(REGB0)) {
24022 } else {
24023 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4413);
24024 }
24025 /* ./parser//parser_prod.nit:4414 */
24026 ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24027 } else {
24028 /* ./parser//parser_prod.nit:4416 */
24029 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4416);
24030 }
24031 /* ./parser//parser_prod.nit:4418 */
24032 goto label1;
24033 }
24034 /* ./parser//parser_prod.nit:4420 */
24035 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____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, 4420);
24039 }
24040 fra.me.REG[3] = ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]);
24041 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24042 if (UNTAG_Bool(REGB0)) {
24043 } else {
24044 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24045 REGB0 = REGB1;
24046 }
24047 if (UNTAG_Bool(REGB0)) {
24048 /* ./parser//parser_prod.nit:4421 */
24049 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24050 if (UNTAG_Bool(REGB0)) {
24051 } else {
24052 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24053 if (UNTAG_Bool(REGB1)) {
24054 REGB1 = TAG_Bool(false);
24055 REGB0 = REGB1;
24056 } else {
24057 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24058 REGB0 = REGB1;
24059 }
24060 }
24061 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24062 if (UNTAG_Bool(REGB0)) {
24063 /* ./parser//parser_prod.nit:4422 */
24064 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24065 if (UNTAG_Bool(REGB0)) {
24066 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4422);
24067 }
24068 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24069 /* ./parser//parser_prod.nit:4423 */
24070 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*/;
24071 if (UNTAG_Bool(REGB0)) {
24072 } else {
24073 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4423);
24074 }
24075 /* ./parser//parser_prod.nit:4424 */
24076 ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24077 } else {
24078 /* ./parser//parser_prod.nit:4426 */
24079 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4426);
24080 }
24081 /* ./parser//parser_prod.nit:4428 */
24082 goto label1;
24083 }
24084 label1: while(0);
24085 stack_frame_head = fra.me.prev;
24086 return;
24087 }
24088 void parser___parser_prod___AAndExpr___visit_all(val_t p0, val_t p1){
24089 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24090 val_t REGB0;
24091 val_t tmp;
24092 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24093 fra.me.file = LOCATE_parser___parser_prod;
24094 fra.me.line = 4432;
24095 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___visit_all;
24096 fra.me.has_broke = 0;
24097 fra.me.REG_size = 3;
24098 fra.me.nitni_local_ref_head = NULL;
24099 fra.me.REG[0] = NIT_NULL;
24100 fra.me.REG[1] = NIT_NULL;
24101 fra.me.REG[2] = NIT_NULL;
24102 fra.me.REG[0] = p0;
24103 fra.me.REG[1] = p1;
24104 /* ./parser//parser_prod.nit:4434 */
24105 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24106 if (UNTAG_Bool(REGB0)) {
24107 } else {
24108 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4434);
24109 }
24110 fra.me.REG[2] = ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]);
24111 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24112 /* ./parser//parser_prod.nit:4435 */
24113 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24114 if (UNTAG_Bool(REGB0)) {
24115 } else {
24116 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4435);
24117 }
24118 fra.me.REG[0] = ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]);
24119 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24120 stack_frame_head = fra.me.prev;
24121 return;
24122 }
24123 void parser___parser_prod___AOrElseExpr___empty_init(val_t p0, int* init_table){
24124 int itpos143 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrElseExpr].i;
24125 struct {struct stack_frame_t me;} fra;
24126 val_t tmp;
24127 if (init_table[itpos143]) return;
24128 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24129 fra.me.file = LOCATE_parser___parser_prod;
24130 fra.me.line = 4439;
24131 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___empty_init;
24132 fra.me.has_broke = 0;
24133 fra.me.REG_size = 1;
24134 fra.me.nitni_local_ref_head = NULL;
24135 fra.me.REG[0] = NIT_NULL;
24136 fra.me.REG[0] = p0;
24137 stack_frame_head = fra.me.prev;
24138 init_table[itpos143] = 1;
24139 return;
24140 }
24141 void parser___parser_prod___AOrElseExpr___init_aorelseexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24142 int itpos144 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrElseExpr].i;
24143 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24144 val_t REGB0;
24145 val_t tmp;
24146 if (init_table[itpos144]) return;
24147 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24148 fra.me.file = LOCATE_parser___parser_prod;
24149 fra.me.line = 4441;
24150 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___init_aorelseexpr;
24151 fra.me.has_broke = 0;
24152 fra.me.REG_size = 4;
24153 fra.me.nitni_local_ref_head = NULL;
24154 fra.me.REG[0] = NIT_NULL;
24155 fra.me.REG[1] = NIT_NULL;
24156 fra.me.REG[2] = NIT_NULL;
24157 fra.me.REG[3] = NIT_NULL;
24158 fra.me.REG[0] = p0;
24159 fra.me.REG[1] = p1;
24160 fra.me.REG[2] = p2;
24161 /* ./parser//parser_prod.nit:4441 */
24162 fra.me.REG[3] = fra.me.REG[0];
24163 /* ./parser//parser_prod.nit:4446 */
24164 CALL_parser___parser_prod___AOrElseExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
24165 /* ./parser//parser_prod.nit:4447 */
24166 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24167 if (UNTAG_Bool(REGB0)) {
24168 } else {
24169 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4447);
24170 }
24171 ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
24172 /* ./parser//parser_prod.nit:4448 */
24173 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24174 if (UNTAG_Bool(REGB0)) {
24175 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4448);
24176 }
24177 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24178 /* ./parser//parser_prod.nit:4449 */
24179 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24180 if (UNTAG_Bool(REGB0)) {
24181 } else {
24182 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4449);
24183 }
24184 ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
24185 /* ./parser//parser_prod.nit:4450 */
24186 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24187 if (UNTAG_Bool(REGB0)) {
24188 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4450);
24189 }
24190 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
24191 stack_frame_head = fra.me.prev;
24192 init_table[itpos144] = 1;
24193 return;
24194 }
24195 void parser___parser_prod___AOrElseExpr___replace_child(val_t p0, val_t p1, val_t p2){
24196 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24197 val_t REGB0;
24198 val_t REGB1;
24199 val_t tmp;
24200 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24201 fra.me.file = LOCATE_parser___parser_prod;
24202 fra.me.line = 4453;
24203 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___replace_child;
24204 fra.me.has_broke = 0;
24205 fra.me.REG_size = 4;
24206 fra.me.nitni_local_ref_head = NULL;
24207 fra.me.REG[0] = NIT_NULL;
24208 fra.me.REG[1] = NIT_NULL;
24209 fra.me.REG[2] = NIT_NULL;
24210 fra.me.REG[3] = NIT_NULL;
24211 fra.me.REG[0] = p0;
24212 fra.me.REG[1] = p1;
24213 fra.me.REG[2] = p2;
24214 /* ./parser//parser_prod.nit:4455 */
24215 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24216 if (UNTAG_Bool(REGB0)) {
24217 } else {
24218 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4455);
24219 }
24220 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]);
24221 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24222 if (UNTAG_Bool(REGB0)) {
24223 } else {
24224 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24225 REGB0 = REGB1;
24226 }
24227 if (UNTAG_Bool(REGB0)) {
24228 /* ./parser//parser_prod.nit:4456 */
24229 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24230 if (UNTAG_Bool(REGB0)) {
24231 } else {
24232 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24233 if (UNTAG_Bool(REGB1)) {
24234 REGB1 = TAG_Bool(false);
24235 REGB0 = REGB1;
24236 } else {
24237 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24238 REGB0 = REGB1;
24239 }
24240 }
24241 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24242 if (UNTAG_Bool(REGB0)) {
24243 /* ./parser//parser_prod.nit:4457 */
24244 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24245 if (UNTAG_Bool(REGB0)) {
24246 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4457);
24247 }
24248 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24249 /* ./parser//parser_prod.nit:4458 */
24250 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*/;
24251 if (UNTAG_Bool(REGB0)) {
24252 } else {
24253 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4458);
24254 }
24255 /* ./parser//parser_prod.nit:4459 */
24256 ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24257 } else {
24258 /* ./parser//parser_prod.nit:4461 */
24259 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4461);
24260 }
24261 /* ./parser//parser_prod.nit:4463 */
24262 goto label1;
24263 }
24264 /* ./parser//parser_prod.nit:4465 */
24265 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____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, 4465);
24269 }
24270 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]);
24271 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24272 if (UNTAG_Bool(REGB0)) {
24273 } else {
24274 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24275 REGB0 = REGB1;
24276 }
24277 if (UNTAG_Bool(REGB0)) {
24278 /* ./parser//parser_prod.nit:4466 */
24279 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24280 if (UNTAG_Bool(REGB0)) {
24281 } else {
24282 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24283 if (UNTAG_Bool(REGB1)) {
24284 REGB1 = TAG_Bool(false);
24285 REGB0 = REGB1;
24286 } else {
24287 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24288 REGB0 = REGB1;
24289 }
24290 }
24291 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24292 if (UNTAG_Bool(REGB0)) {
24293 /* ./parser//parser_prod.nit:4467 */
24294 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24295 if (UNTAG_Bool(REGB0)) {
24296 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4467);
24297 }
24298 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24299 /* ./parser//parser_prod.nit:4468 */
24300 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*/;
24301 if (UNTAG_Bool(REGB0)) {
24302 } else {
24303 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4468);
24304 }
24305 /* ./parser//parser_prod.nit:4469 */
24306 ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24307 } else {
24308 /* ./parser//parser_prod.nit:4471 */
24309 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4471);
24310 }
24311 /* ./parser//parser_prod.nit:4473 */
24312 goto label1;
24313 }
24314 label1: while(0);
24315 stack_frame_head = fra.me.prev;
24316 return;
24317 }
24318 void parser___parser_prod___AOrElseExpr___visit_all(val_t p0, val_t p1){
24319 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24320 val_t REGB0;
24321 val_t tmp;
24322 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24323 fra.me.file = LOCATE_parser___parser_prod;
24324 fra.me.line = 4477;
24325 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___visit_all;
24326 fra.me.has_broke = 0;
24327 fra.me.REG_size = 3;
24328 fra.me.nitni_local_ref_head = NULL;
24329 fra.me.REG[0] = NIT_NULL;
24330 fra.me.REG[1] = NIT_NULL;
24331 fra.me.REG[2] = NIT_NULL;
24332 fra.me.REG[0] = p0;
24333 fra.me.REG[1] = p1;
24334 /* ./parser//parser_prod.nit:4479 */
24335 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24336 if (UNTAG_Bool(REGB0)) {
24337 } else {
24338 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4479);
24339 }
24340 fra.me.REG[2] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]);
24341 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24342 /* ./parser//parser_prod.nit:4480 */
24343 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24344 if (UNTAG_Bool(REGB0)) {
24345 } else {
24346 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4480);
24347 }
24348 fra.me.REG[0] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]);
24349 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24350 stack_frame_head = fra.me.prev;
24351 return;
24352 }
24353 void parser___parser_prod___ANotExpr___empty_init(val_t p0, int* init_table){
24354 int itpos145 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANotExpr].i;
24355 struct {struct stack_frame_t me;} fra;
24356 val_t tmp;
24357 if (init_table[itpos145]) return;
24358 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24359 fra.me.file = LOCATE_parser___parser_prod;
24360 fra.me.line = 4484;
24361 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___empty_init;
24362 fra.me.has_broke = 0;
24363 fra.me.REG_size = 1;
24364 fra.me.nitni_local_ref_head = NULL;
24365 fra.me.REG[0] = NIT_NULL;
24366 fra.me.REG[0] = p0;
24367 stack_frame_head = fra.me.prev;
24368 init_table[itpos145] = 1;
24369 return;
24370 }
24371 void parser___parser_prod___ANotExpr___init_anotexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24372 int itpos146 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANotExpr].i;
24373 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24374 val_t REGB0;
24375 val_t tmp;
24376 if (init_table[itpos146]) return;
24377 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24378 fra.me.file = LOCATE_parser___parser_prod;
24379 fra.me.line = 4486;
24380 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___init_anotexpr;
24381 fra.me.has_broke = 0;
24382 fra.me.REG_size = 4;
24383 fra.me.nitni_local_ref_head = NULL;
24384 fra.me.REG[0] = NIT_NULL;
24385 fra.me.REG[1] = NIT_NULL;
24386 fra.me.REG[2] = NIT_NULL;
24387 fra.me.REG[3] = NIT_NULL;
24388 fra.me.REG[0] = p0;
24389 fra.me.REG[1] = p1;
24390 fra.me.REG[2] = p2;
24391 /* ./parser//parser_prod.nit:4486 */
24392 fra.me.REG[3] = fra.me.REG[0];
24393 /* ./parser//parser_prod.nit:4491 */
24394 CALL_parser___parser_prod___ANotExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
24395 /* ./parser//parser_prod.nit:4492 */
24396 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24397 if (UNTAG_Bool(REGB0)) {
24398 } else {
24399 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4492);
24400 }
24401 ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[3]) = fra.me.REG[1];
24402 /* ./parser//parser_prod.nit:4493 */
24403 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24404 if (UNTAG_Bool(REGB0)) {
24405 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4493);
24406 }
24407 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24408 /* ./parser//parser_prod.nit:4494 */
24409 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24410 if (UNTAG_Bool(REGB0)) {
24411 } else {
24412 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4494);
24413 }
24414 ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
24415 /* ./parser//parser_prod.nit:4495 */
24416 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24417 if (UNTAG_Bool(REGB0)) {
24418 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4495);
24419 }
24420 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
24421 stack_frame_head = fra.me.prev;
24422 init_table[itpos146] = 1;
24423 return;
24424 }
24425 void parser___parser_prod___ANotExpr___replace_child(val_t p0, val_t p1, val_t p2){
24426 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24427 val_t REGB0;
24428 val_t REGB1;
24429 val_t tmp;
24430 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24431 fra.me.file = LOCATE_parser___parser_prod;
24432 fra.me.line = 4498;
24433 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___replace_child;
24434 fra.me.has_broke = 0;
24435 fra.me.REG_size = 4;
24436 fra.me.nitni_local_ref_head = NULL;
24437 fra.me.REG[0] = NIT_NULL;
24438 fra.me.REG[1] = NIT_NULL;
24439 fra.me.REG[2] = NIT_NULL;
24440 fra.me.REG[3] = NIT_NULL;
24441 fra.me.REG[0] = p0;
24442 fra.me.REG[1] = p1;
24443 fra.me.REG[2] = p2;
24444 /* ./parser//parser_prod.nit:4500 */
24445 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
24446 if (UNTAG_Bool(REGB0)) {
24447 } else {
24448 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 4500);
24449 }
24450 fra.me.REG[3] = ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]);
24451 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24452 if (UNTAG_Bool(REGB0)) {
24453 } else {
24454 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24455 REGB0 = REGB1;
24456 }
24457 if (UNTAG_Bool(REGB0)) {
24458 /* ./parser//parser_prod.nit:4501 */
24459 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24460 if (UNTAG_Bool(REGB0)) {
24461 } else {
24462 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24463 if (UNTAG_Bool(REGB1)) {
24464 REGB1 = TAG_Bool(false);
24465 REGB0 = REGB1;
24466 } else {
24467 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24468 REGB0 = REGB1;
24469 }
24470 }
24471 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24472 if (UNTAG_Bool(REGB0)) {
24473 /* ./parser//parser_prod.nit:4502 */
24474 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24475 if (UNTAG_Bool(REGB0)) {
24476 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4502);
24477 }
24478 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24479 /* ./parser//parser_prod.nit:4503 */
24480 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*/;
24481 if (UNTAG_Bool(REGB0)) {
24482 } else {
24483 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4503);
24484 }
24485 /* ./parser//parser_prod.nit:4504 */
24486 ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
24487 } else {
24488 /* ./parser//parser_prod.nit:4506 */
24489 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4506);
24490 }
24491 /* ./parser//parser_prod.nit:4508 */
24492 goto label1;
24493 }
24494 /* ./parser//parser_prod.nit:4510 */
24495 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24496 if (UNTAG_Bool(REGB0)) {
24497 } else {
24498 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4510);
24499 }
24500 fra.me.REG[3] = ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]);
24501 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24502 if (UNTAG_Bool(REGB0)) {
24503 } else {
24504 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24505 REGB0 = REGB1;
24506 }
24507 if (UNTAG_Bool(REGB0)) {
24508 /* ./parser//parser_prod.nit:4511 */
24509 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24510 if (UNTAG_Bool(REGB0)) {
24511 } else {
24512 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24513 if (UNTAG_Bool(REGB1)) {
24514 REGB1 = TAG_Bool(false);
24515 REGB0 = REGB1;
24516 } else {
24517 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24518 REGB0 = REGB1;
24519 }
24520 }
24521 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24522 if (UNTAG_Bool(REGB0)) {
24523 /* ./parser//parser_prod.nit:4512 */
24524 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24525 if (UNTAG_Bool(REGB0)) {
24526 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4512);
24527 }
24528 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24529 /* ./parser//parser_prod.nit:4513 */
24530 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*/;
24531 if (UNTAG_Bool(REGB0)) {
24532 } else {
24533 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4513);
24534 }
24535 /* ./parser//parser_prod.nit:4514 */
24536 ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24537 } else {
24538 /* ./parser//parser_prod.nit:4516 */
24539 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4516);
24540 }
24541 /* ./parser//parser_prod.nit:4518 */
24542 goto label1;
24543 }
24544 label1: while(0);
24545 stack_frame_head = fra.me.prev;
24546 return;
24547 }
24548 void parser___parser_prod___ANotExpr___visit_all(val_t p0, val_t p1){
24549 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24550 val_t REGB0;
24551 val_t tmp;
24552 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24553 fra.me.file = LOCATE_parser___parser_prod;
24554 fra.me.line = 4522;
24555 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___visit_all;
24556 fra.me.has_broke = 0;
24557 fra.me.REG_size = 3;
24558 fra.me.nitni_local_ref_head = NULL;
24559 fra.me.REG[0] = NIT_NULL;
24560 fra.me.REG[1] = NIT_NULL;
24561 fra.me.REG[2] = NIT_NULL;
24562 fra.me.REG[0] = p0;
24563 fra.me.REG[1] = p1;
24564 /* ./parser//parser_prod.nit:4524 */
24565 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
24566 if (UNTAG_Bool(REGB0)) {
24567 } else {
24568 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 4524);
24569 }
24570 fra.me.REG[2] = ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]);
24571 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24572 /* ./parser//parser_prod.nit:4525 */
24573 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24574 if (UNTAG_Bool(REGB0)) {
24575 } else {
24576 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4525);
24577 }
24578 fra.me.REG[0] = ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]);
24579 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24580 stack_frame_head = fra.me.prev;
24581 return;
24582 }
24583 void parser___parser_prod___AEqExpr___empty_init(val_t p0, int* init_table){
24584 int itpos147 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqExpr].i;
24585 struct {struct stack_frame_t me;} fra;
24586 val_t tmp;
24587 if (init_table[itpos147]) return;
24588 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24589 fra.me.file = LOCATE_parser___parser_prod;
24590 fra.me.line = 4529;
24591 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___empty_init;
24592 fra.me.has_broke = 0;
24593 fra.me.REG_size = 1;
24594 fra.me.nitni_local_ref_head = NULL;
24595 fra.me.REG[0] = NIT_NULL;
24596 fra.me.REG[0] = p0;
24597 stack_frame_head = fra.me.prev;
24598 init_table[itpos147] = 1;
24599 return;
24600 }
24601 void parser___parser_prod___AEqExpr___init_aeqexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24602 int itpos148 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqExpr].i;
24603 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24604 val_t REGB0;
24605 val_t tmp;
24606 if (init_table[itpos148]) return;
24607 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24608 fra.me.file = LOCATE_parser___parser_prod;
24609 fra.me.line = 4531;
24610 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___init_aeqexpr;
24611 fra.me.has_broke = 0;
24612 fra.me.REG_size = 4;
24613 fra.me.nitni_local_ref_head = NULL;
24614 fra.me.REG[0] = NIT_NULL;
24615 fra.me.REG[1] = NIT_NULL;
24616 fra.me.REG[2] = NIT_NULL;
24617 fra.me.REG[3] = NIT_NULL;
24618 fra.me.REG[0] = p0;
24619 fra.me.REG[1] = p1;
24620 fra.me.REG[2] = p2;
24621 /* ./parser//parser_prod.nit:4531 */
24622 fra.me.REG[3] = fra.me.REG[0];
24623 /* ./parser//parser_prod.nit:4536 */
24624 CALL_parser___parser_prod___AEqExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
24625 /* ./parser//parser_prod.nit:4537 */
24626 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24627 if (UNTAG_Bool(REGB0)) {
24628 } else {
24629 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4537);
24630 }
24631 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
24632 /* ./parser//parser_prod.nit:4538 */
24633 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24634 if (UNTAG_Bool(REGB0)) {
24635 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4538);
24636 }
24637 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24638 /* ./parser//parser_prod.nit:4539 */
24639 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24640 if (UNTAG_Bool(REGB0)) {
24641 } else {
24642 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4539);
24643 }
24644 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
24645 /* ./parser//parser_prod.nit:4540 */
24646 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24647 if (UNTAG_Bool(REGB0)) {
24648 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4540);
24649 }
24650 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
24651 stack_frame_head = fra.me.prev;
24652 init_table[itpos148] = 1;
24653 return;
24654 }
24655 void parser___parser_prod___AEqExpr___replace_child(val_t p0, val_t p1, val_t p2){
24656 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24657 val_t REGB0;
24658 val_t REGB1;
24659 val_t tmp;
24660 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24661 fra.me.file = LOCATE_parser___parser_prod;
24662 fra.me.line = 4543;
24663 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___replace_child;
24664 fra.me.has_broke = 0;
24665 fra.me.REG_size = 4;
24666 fra.me.nitni_local_ref_head = NULL;
24667 fra.me.REG[0] = NIT_NULL;
24668 fra.me.REG[1] = NIT_NULL;
24669 fra.me.REG[2] = NIT_NULL;
24670 fra.me.REG[3] = NIT_NULL;
24671 fra.me.REG[0] = p0;
24672 fra.me.REG[1] = p1;
24673 fra.me.REG[2] = p2;
24674 /* ./parser//parser_prod.nit:4545 */
24675 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24676 if (UNTAG_Bool(REGB0)) {
24677 } else {
24678 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4545);
24679 }
24680 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24681 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24682 if (UNTAG_Bool(REGB0)) {
24683 } else {
24684 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24685 REGB0 = REGB1;
24686 }
24687 if (UNTAG_Bool(REGB0)) {
24688 /* ./parser//parser_prod.nit:4546 */
24689 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24690 if (UNTAG_Bool(REGB0)) {
24691 } else {
24692 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24693 if (UNTAG_Bool(REGB1)) {
24694 REGB1 = TAG_Bool(false);
24695 REGB0 = REGB1;
24696 } else {
24697 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24698 REGB0 = REGB1;
24699 }
24700 }
24701 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24702 if (UNTAG_Bool(REGB0)) {
24703 /* ./parser//parser_prod.nit:4547 */
24704 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24705 if (UNTAG_Bool(REGB0)) {
24706 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4547);
24707 }
24708 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24709 /* ./parser//parser_prod.nit:4548 */
24710 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*/;
24711 if (UNTAG_Bool(REGB0)) {
24712 } else {
24713 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4548);
24714 }
24715 /* ./parser//parser_prod.nit:4549 */
24716 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24717 } else {
24718 /* ./parser//parser_prod.nit:4551 */
24719 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4551);
24720 }
24721 /* ./parser//parser_prod.nit:4553 */
24722 goto label1;
24723 }
24724 /* ./parser//parser_prod.nit:4555 */
24725 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____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, 4555);
24729 }
24730 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24731 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24732 if (UNTAG_Bool(REGB0)) {
24733 } else {
24734 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24735 REGB0 = REGB1;
24736 }
24737 if (UNTAG_Bool(REGB0)) {
24738 /* ./parser//parser_prod.nit:4556 */
24739 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24740 if (UNTAG_Bool(REGB0)) {
24741 } else {
24742 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24743 if (UNTAG_Bool(REGB1)) {
24744 REGB1 = TAG_Bool(false);
24745 REGB0 = REGB1;
24746 } else {
24747 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24748 REGB0 = REGB1;
24749 }
24750 }
24751 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24752 if (UNTAG_Bool(REGB0)) {
24753 /* ./parser//parser_prod.nit:4557 */
24754 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24755 if (UNTAG_Bool(REGB0)) {
24756 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4557);
24757 }
24758 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24759 /* ./parser//parser_prod.nit:4558 */
24760 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*/;
24761 if (UNTAG_Bool(REGB0)) {
24762 } else {
24763 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4558);
24764 }
24765 /* ./parser//parser_prod.nit:4559 */
24766 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24767 } else {
24768 /* ./parser//parser_prod.nit:4561 */
24769 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4561);
24770 }
24771 /* ./parser//parser_prod.nit:4563 */
24772 goto label1;
24773 }
24774 label1: while(0);
24775 stack_frame_head = fra.me.prev;
24776 return;
24777 }
24778 void parser___parser_prod___AEqExpr___visit_all(val_t p0, val_t p1){
24779 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24780 val_t REGB0;
24781 val_t tmp;
24782 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24783 fra.me.file = LOCATE_parser___parser_prod;
24784 fra.me.line = 4567;
24785 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___visit_all;
24786 fra.me.has_broke = 0;
24787 fra.me.REG_size = 3;
24788 fra.me.nitni_local_ref_head = NULL;
24789 fra.me.REG[0] = NIT_NULL;
24790 fra.me.REG[1] = NIT_NULL;
24791 fra.me.REG[2] = NIT_NULL;
24792 fra.me.REG[0] = p0;
24793 fra.me.REG[1] = p1;
24794 /* ./parser//parser_prod.nit:4569 */
24795 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24796 if (UNTAG_Bool(REGB0)) {
24797 } else {
24798 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4569);
24799 }
24800 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24801 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24802 /* ./parser//parser_prod.nit:4570 */
24803 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24804 if (UNTAG_Bool(REGB0)) {
24805 } else {
24806 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4570);
24807 }
24808 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24809 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24810 stack_frame_head = fra.me.prev;
24811 return;
24812 }
24813 void parser___parser_prod___AEeExpr___empty_init(val_t p0, int* init_table){
24814 int itpos149 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEeExpr].i;
24815 struct {struct stack_frame_t me;} fra;
24816 val_t tmp;
24817 if (init_table[itpos149]) return;
24818 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24819 fra.me.file = LOCATE_parser___parser_prod;
24820 fra.me.line = 4574;
24821 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___empty_init;
24822 fra.me.has_broke = 0;
24823 fra.me.REG_size = 1;
24824 fra.me.nitni_local_ref_head = NULL;
24825 fra.me.REG[0] = NIT_NULL;
24826 fra.me.REG[0] = p0;
24827 stack_frame_head = fra.me.prev;
24828 init_table[itpos149] = 1;
24829 return;
24830 }
24831 void parser___parser_prod___AEeExpr___init_aeeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24832 int itpos150 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEeExpr].i;
24833 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24834 val_t REGB0;
24835 val_t tmp;
24836 if (init_table[itpos150]) return;
24837 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24838 fra.me.file = LOCATE_parser___parser_prod;
24839 fra.me.line = 4576;
24840 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___init_aeeexpr;
24841 fra.me.has_broke = 0;
24842 fra.me.REG_size = 4;
24843 fra.me.nitni_local_ref_head = NULL;
24844 fra.me.REG[0] = NIT_NULL;
24845 fra.me.REG[1] = NIT_NULL;
24846 fra.me.REG[2] = NIT_NULL;
24847 fra.me.REG[3] = NIT_NULL;
24848 fra.me.REG[0] = p0;
24849 fra.me.REG[1] = p1;
24850 fra.me.REG[2] = p2;
24851 /* ./parser//parser_prod.nit:4576 */
24852 fra.me.REG[3] = fra.me.REG[0];
24853 /* ./parser//parser_prod.nit:4581 */
24854 CALL_parser___parser_prod___AEeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
24855 /* ./parser//parser_prod.nit:4582 */
24856 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24857 if (UNTAG_Bool(REGB0)) {
24858 } else {
24859 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4582);
24860 }
24861 ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
24862 /* ./parser//parser_prod.nit:4583 */
24863 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24864 if (UNTAG_Bool(REGB0)) {
24865 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4583);
24866 }
24867 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24868 /* ./parser//parser_prod.nit:4584 */
24869 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24870 if (UNTAG_Bool(REGB0)) {
24871 } else {
24872 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4584);
24873 }
24874 ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
24875 /* ./parser//parser_prod.nit:4585 */
24876 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24877 if (UNTAG_Bool(REGB0)) {
24878 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4585);
24879 }
24880 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
24881 stack_frame_head = fra.me.prev;
24882 init_table[itpos150] = 1;
24883 return;
24884 }
24885 void parser___parser_prod___AEeExpr___replace_child(val_t p0, val_t p1, val_t p2){
24886 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24887 val_t REGB0;
24888 val_t REGB1;
24889 val_t tmp;
24890 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24891 fra.me.file = LOCATE_parser___parser_prod;
24892 fra.me.line = 4588;
24893 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___replace_child;
24894 fra.me.has_broke = 0;
24895 fra.me.REG_size = 4;
24896 fra.me.nitni_local_ref_head = NULL;
24897 fra.me.REG[0] = NIT_NULL;
24898 fra.me.REG[1] = NIT_NULL;
24899 fra.me.REG[2] = NIT_NULL;
24900 fra.me.REG[3] = NIT_NULL;
24901 fra.me.REG[0] = p0;
24902 fra.me.REG[1] = p1;
24903 fra.me.REG[2] = p2;
24904 /* ./parser//parser_prod.nit:4590 */
24905 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24906 if (UNTAG_Bool(REGB0)) {
24907 } else {
24908 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4590);
24909 }
24910 fra.me.REG[3] = ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]);
24911 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24912 if (UNTAG_Bool(REGB0)) {
24913 } else {
24914 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24915 REGB0 = REGB1;
24916 }
24917 if (UNTAG_Bool(REGB0)) {
24918 /* ./parser//parser_prod.nit:4591 */
24919 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24920 if (UNTAG_Bool(REGB0)) {
24921 } else {
24922 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24923 if (UNTAG_Bool(REGB1)) {
24924 REGB1 = TAG_Bool(false);
24925 REGB0 = REGB1;
24926 } else {
24927 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24928 REGB0 = REGB1;
24929 }
24930 }
24931 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24932 if (UNTAG_Bool(REGB0)) {
24933 /* ./parser//parser_prod.nit:4592 */
24934 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24935 if (UNTAG_Bool(REGB0)) {
24936 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4592);
24937 }
24938 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24939 /* ./parser//parser_prod.nit:4593 */
24940 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*/;
24941 if (UNTAG_Bool(REGB0)) {
24942 } else {
24943 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4593);
24944 }
24945 /* ./parser//parser_prod.nit:4594 */
24946 ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24947 } else {
24948 /* ./parser//parser_prod.nit:4596 */
24949 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4596);
24950 }
24951 /* ./parser//parser_prod.nit:4598 */
24952 goto label1;
24953 }
24954 /* ./parser//parser_prod.nit:4600 */
24955 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24956 if (UNTAG_Bool(REGB0)) {
24957 } else {
24958 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4600);
24959 }
24960 fra.me.REG[3] = ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]);
24961 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24962 if (UNTAG_Bool(REGB0)) {
24963 } else {
24964 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24965 REGB0 = REGB1;
24966 }
24967 if (UNTAG_Bool(REGB0)) {
24968 /* ./parser//parser_prod.nit:4601 */
24969 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24970 if (UNTAG_Bool(REGB0)) {
24971 } else {
24972 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24973 if (UNTAG_Bool(REGB1)) {
24974 REGB1 = TAG_Bool(false);
24975 REGB0 = REGB1;
24976 } else {
24977 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24978 REGB0 = REGB1;
24979 }
24980 }
24981 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24982 if (UNTAG_Bool(REGB0)) {
24983 /* ./parser//parser_prod.nit:4602 */
24984 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24985 if (UNTAG_Bool(REGB0)) {
24986 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4602);
24987 }
24988 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24989 /* ./parser//parser_prod.nit:4603 */
24990 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*/;
24991 if (UNTAG_Bool(REGB0)) {
24992 } else {
24993 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4603);
24994 }
24995 /* ./parser//parser_prod.nit:4604 */
24996 ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24997 } else {
24998 /* ./parser//parser_prod.nit:4606 */
24999 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4606);
25000 }
25001 /* ./parser//parser_prod.nit:4608 */
25002 goto label1;
25003 }
25004 label1: while(0);
25005 stack_frame_head = fra.me.prev;
25006 return;
25007 }
25008 void parser___parser_prod___AEeExpr___visit_all(val_t p0, val_t p1){
25009 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25010 val_t REGB0;
25011 val_t tmp;
25012 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25013 fra.me.file = LOCATE_parser___parser_prod;
25014 fra.me.line = 4612;
25015 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___visit_all;
25016 fra.me.has_broke = 0;
25017 fra.me.REG_size = 3;
25018 fra.me.nitni_local_ref_head = NULL;
25019 fra.me.REG[0] = NIT_NULL;
25020 fra.me.REG[1] = NIT_NULL;
25021 fra.me.REG[2] = NIT_NULL;
25022 fra.me.REG[0] = p0;
25023 fra.me.REG[1] = p1;
25024 /* ./parser//parser_prod.nit:4614 */
25025 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25026 if (UNTAG_Bool(REGB0)) {
25027 } else {
25028 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4614);
25029 }
25030 fra.me.REG[2] = ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]);
25031 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25032 /* ./parser//parser_prod.nit:4615 */
25033 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25034 if (UNTAG_Bool(REGB0)) {
25035 } else {
25036 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4615);
25037 }
25038 fra.me.REG[0] = ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]);
25039 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25040 stack_frame_head = fra.me.prev;
25041 return;
25042 }
25043 void parser___parser_prod___ANeExpr___empty_init(val_t p0, int* init_table){
25044 int itpos151 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeExpr].i;
25045 struct {struct stack_frame_t me;} fra;
25046 val_t tmp;
25047 if (init_table[itpos151]) return;
25048 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25049 fra.me.file = LOCATE_parser___parser_prod;
25050 fra.me.line = 4619;
25051 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___empty_init;
25052 fra.me.has_broke = 0;
25053 fra.me.REG_size = 1;
25054 fra.me.nitni_local_ref_head = NULL;
25055 fra.me.REG[0] = NIT_NULL;
25056 fra.me.REG[0] = p0;
25057 stack_frame_head = fra.me.prev;
25058 init_table[itpos151] = 1;
25059 return;
25060 }
25061 void parser___parser_prod___ANeExpr___init_aneexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25062 int itpos152 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeExpr].i;
25063 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25064 val_t REGB0;
25065 val_t tmp;
25066 if (init_table[itpos152]) return;
25067 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25068 fra.me.file = LOCATE_parser___parser_prod;
25069 fra.me.line = 4621;
25070 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___init_aneexpr;
25071 fra.me.has_broke = 0;
25072 fra.me.REG_size = 4;
25073 fra.me.nitni_local_ref_head = NULL;
25074 fra.me.REG[0] = NIT_NULL;
25075 fra.me.REG[1] = NIT_NULL;
25076 fra.me.REG[2] = NIT_NULL;
25077 fra.me.REG[3] = NIT_NULL;
25078 fra.me.REG[0] = p0;
25079 fra.me.REG[1] = p1;
25080 fra.me.REG[2] = p2;
25081 /* ./parser//parser_prod.nit:4621 */
25082 fra.me.REG[3] = fra.me.REG[0];
25083 /* ./parser//parser_prod.nit:4626 */
25084 CALL_parser___parser_prod___ANeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25085 /* ./parser//parser_prod.nit:4627 */
25086 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25087 if (UNTAG_Bool(REGB0)) {
25088 } else {
25089 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4627);
25090 }
25091 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25092 /* ./parser//parser_prod.nit:4628 */
25093 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25094 if (UNTAG_Bool(REGB0)) {
25095 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4628);
25096 }
25097 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25098 /* ./parser//parser_prod.nit:4629 */
25099 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25100 if (UNTAG_Bool(REGB0)) {
25101 } else {
25102 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4629);
25103 }
25104 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25105 /* ./parser//parser_prod.nit:4630 */
25106 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25107 if (UNTAG_Bool(REGB0)) {
25108 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4630);
25109 }
25110 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25111 stack_frame_head = fra.me.prev;
25112 init_table[itpos152] = 1;
25113 return;
25114 }
25115 void parser___parser_prod___ANeExpr___replace_child(val_t p0, val_t p1, val_t p2){
25116 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25117 val_t REGB0;
25118 val_t REGB1;
25119 val_t tmp;
25120 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25121 fra.me.file = LOCATE_parser___parser_prod;
25122 fra.me.line = 4633;
25123 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___replace_child;
25124 fra.me.has_broke = 0;
25125 fra.me.REG_size = 4;
25126 fra.me.nitni_local_ref_head = NULL;
25127 fra.me.REG[0] = NIT_NULL;
25128 fra.me.REG[1] = NIT_NULL;
25129 fra.me.REG[2] = NIT_NULL;
25130 fra.me.REG[3] = NIT_NULL;
25131 fra.me.REG[0] = p0;
25132 fra.me.REG[1] = p1;
25133 fra.me.REG[2] = p2;
25134 /* ./parser//parser_prod.nit:4635 */
25135 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25136 if (UNTAG_Bool(REGB0)) {
25137 } else {
25138 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4635);
25139 }
25140 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25141 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25142 if (UNTAG_Bool(REGB0)) {
25143 } else {
25144 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25145 REGB0 = REGB1;
25146 }
25147 if (UNTAG_Bool(REGB0)) {
25148 /* ./parser//parser_prod.nit:4636 */
25149 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25150 if (UNTAG_Bool(REGB0)) {
25151 } else {
25152 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25153 if (UNTAG_Bool(REGB1)) {
25154 REGB1 = TAG_Bool(false);
25155 REGB0 = REGB1;
25156 } else {
25157 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25158 REGB0 = REGB1;
25159 }
25160 }
25161 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25162 if (UNTAG_Bool(REGB0)) {
25163 /* ./parser//parser_prod.nit:4637 */
25164 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25165 if (UNTAG_Bool(REGB0)) {
25166 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4637);
25167 }
25168 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25169 /* ./parser//parser_prod.nit:4638 */
25170 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*/;
25171 if (UNTAG_Bool(REGB0)) {
25172 } else {
25173 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4638);
25174 }
25175 /* ./parser//parser_prod.nit:4639 */
25176 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25177 } else {
25178 /* ./parser//parser_prod.nit:4641 */
25179 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4641);
25180 }
25181 /* ./parser//parser_prod.nit:4643 */
25182 goto label1;
25183 }
25184 /* ./parser//parser_prod.nit:4645 */
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, 4645);
25189 }
25190 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25191 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25192 if (UNTAG_Bool(REGB0)) {
25193 } else {
25194 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25195 REGB0 = REGB1;
25196 }
25197 if (UNTAG_Bool(REGB0)) {
25198 /* ./parser//parser_prod.nit:4646 */
25199 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25200 if (UNTAG_Bool(REGB0)) {
25201 } else {
25202 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25203 if (UNTAG_Bool(REGB1)) {
25204 REGB1 = TAG_Bool(false);
25205 REGB0 = REGB1;
25206 } else {
25207 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25208 REGB0 = REGB1;
25209 }
25210 }
25211 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25212 if (UNTAG_Bool(REGB0)) {
25213 /* ./parser//parser_prod.nit:4647 */
25214 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25215 if (UNTAG_Bool(REGB0)) {
25216 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4647);
25217 }
25218 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25219 /* ./parser//parser_prod.nit:4648 */
25220 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*/;
25221 if (UNTAG_Bool(REGB0)) {
25222 } else {
25223 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4648);
25224 }
25225 /* ./parser//parser_prod.nit:4649 */
25226 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25227 } else {
25228 /* ./parser//parser_prod.nit:4651 */
25229 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4651);
25230 }
25231 /* ./parser//parser_prod.nit:4653 */
25232 goto label1;
25233 }
25234 label1: while(0);
25235 stack_frame_head = fra.me.prev;
25236 return;
25237 }
25238 void parser___parser_prod___ANeExpr___visit_all(val_t p0, val_t p1){
25239 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25240 val_t REGB0;
25241 val_t tmp;
25242 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25243 fra.me.file = LOCATE_parser___parser_prod;
25244 fra.me.line = 4657;
25245 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___visit_all;
25246 fra.me.has_broke = 0;
25247 fra.me.REG_size = 3;
25248 fra.me.nitni_local_ref_head = NULL;
25249 fra.me.REG[0] = NIT_NULL;
25250 fra.me.REG[1] = NIT_NULL;
25251 fra.me.REG[2] = NIT_NULL;
25252 fra.me.REG[0] = p0;
25253 fra.me.REG[1] = p1;
25254 /* ./parser//parser_prod.nit:4659 */
25255 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25256 if (UNTAG_Bool(REGB0)) {
25257 } else {
25258 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4659);
25259 }
25260 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25261 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25262 /* ./parser//parser_prod.nit:4660 */
25263 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25264 if (UNTAG_Bool(REGB0)) {
25265 } else {
25266 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4660);
25267 }
25268 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25269 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25270 stack_frame_head = fra.me.prev;
25271 return;
25272 }
25273 void parser___parser_prod___ALtExpr___empty_init(val_t p0, int* init_table){
25274 int itpos153 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtExpr].i;
25275 struct {struct stack_frame_t me;} fra;
25276 val_t tmp;
25277 if (init_table[itpos153]) return;
25278 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25279 fra.me.file = LOCATE_parser___parser_prod;
25280 fra.me.line = 4664;
25281 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___empty_init;
25282 fra.me.has_broke = 0;
25283 fra.me.REG_size = 1;
25284 fra.me.nitni_local_ref_head = NULL;
25285 fra.me.REG[0] = NIT_NULL;
25286 fra.me.REG[0] = p0;
25287 stack_frame_head = fra.me.prev;
25288 init_table[itpos153] = 1;
25289 return;
25290 }
25291 void parser___parser_prod___ALtExpr___init_altexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25292 int itpos154 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtExpr].i;
25293 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25294 val_t REGB0;
25295 val_t tmp;
25296 if (init_table[itpos154]) return;
25297 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25298 fra.me.file = LOCATE_parser___parser_prod;
25299 fra.me.line = 4666;
25300 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___init_altexpr;
25301 fra.me.has_broke = 0;
25302 fra.me.REG_size = 4;
25303 fra.me.nitni_local_ref_head = NULL;
25304 fra.me.REG[0] = NIT_NULL;
25305 fra.me.REG[1] = NIT_NULL;
25306 fra.me.REG[2] = NIT_NULL;
25307 fra.me.REG[3] = NIT_NULL;
25308 fra.me.REG[0] = p0;
25309 fra.me.REG[1] = p1;
25310 fra.me.REG[2] = p2;
25311 /* ./parser//parser_prod.nit:4666 */
25312 fra.me.REG[3] = fra.me.REG[0];
25313 /* ./parser//parser_prod.nit:4671 */
25314 CALL_parser___parser_prod___ALtExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25315 /* ./parser//parser_prod.nit:4672 */
25316 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25317 if (UNTAG_Bool(REGB0)) {
25318 } else {
25319 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4672);
25320 }
25321 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25322 /* ./parser//parser_prod.nit:4673 */
25323 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25324 if (UNTAG_Bool(REGB0)) {
25325 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4673);
25326 }
25327 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25328 /* ./parser//parser_prod.nit:4674 */
25329 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25330 if (UNTAG_Bool(REGB0)) {
25331 } else {
25332 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4674);
25333 }
25334 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25335 /* ./parser//parser_prod.nit:4675 */
25336 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25337 if (UNTAG_Bool(REGB0)) {
25338 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4675);
25339 }
25340 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25341 stack_frame_head = fra.me.prev;
25342 init_table[itpos154] = 1;
25343 return;
25344 }
25345 void parser___parser_prod___ALtExpr___replace_child(val_t p0, val_t p1, val_t p2){
25346 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25347 val_t REGB0;
25348 val_t REGB1;
25349 val_t tmp;
25350 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25351 fra.me.file = LOCATE_parser___parser_prod;
25352 fra.me.line = 4678;
25353 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___replace_child;
25354 fra.me.has_broke = 0;
25355 fra.me.REG_size = 4;
25356 fra.me.nitni_local_ref_head = NULL;
25357 fra.me.REG[0] = NIT_NULL;
25358 fra.me.REG[1] = NIT_NULL;
25359 fra.me.REG[2] = NIT_NULL;
25360 fra.me.REG[3] = NIT_NULL;
25361 fra.me.REG[0] = p0;
25362 fra.me.REG[1] = p1;
25363 fra.me.REG[2] = p2;
25364 /* ./parser//parser_prod.nit:4680 */
25365 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25366 if (UNTAG_Bool(REGB0)) {
25367 } else {
25368 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4680);
25369 }
25370 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25371 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25372 if (UNTAG_Bool(REGB0)) {
25373 } else {
25374 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25375 REGB0 = REGB1;
25376 }
25377 if (UNTAG_Bool(REGB0)) {
25378 /* ./parser//parser_prod.nit:4681 */
25379 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25380 if (UNTAG_Bool(REGB0)) {
25381 } else {
25382 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25383 if (UNTAG_Bool(REGB1)) {
25384 REGB1 = TAG_Bool(false);
25385 REGB0 = REGB1;
25386 } else {
25387 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25388 REGB0 = REGB1;
25389 }
25390 }
25391 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25392 if (UNTAG_Bool(REGB0)) {
25393 /* ./parser//parser_prod.nit:4682 */
25394 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25395 if (UNTAG_Bool(REGB0)) {
25396 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4682);
25397 }
25398 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25399 /* ./parser//parser_prod.nit:4683 */
25400 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*/;
25401 if (UNTAG_Bool(REGB0)) {
25402 } else {
25403 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4683);
25404 }
25405 /* ./parser//parser_prod.nit:4684 */
25406 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25407 } else {
25408 /* ./parser//parser_prod.nit:4686 */
25409 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4686);
25410 }
25411 /* ./parser//parser_prod.nit:4688 */
25412 goto label1;
25413 }
25414 /* ./parser//parser_prod.nit:4690 */
25415 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____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, 4690);
25419 }
25420 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25421 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25422 if (UNTAG_Bool(REGB0)) {
25423 } else {
25424 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25425 REGB0 = REGB1;
25426 }
25427 if (UNTAG_Bool(REGB0)) {
25428 /* ./parser//parser_prod.nit:4691 */
25429 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25430 if (UNTAG_Bool(REGB0)) {
25431 } else {
25432 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25433 if (UNTAG_Bool(REGB1)) {
25434 REGB1 = TAG_Bool(false);
25435 REGB0 = REGB1;
25436 } else {
25437 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25438 REGB0 = REGB1;
25439 }
25440 }
25441 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25442 if (UNTAG_Bool(REGB0)) {
25443 /* ./parser//parser_prod.nit:4692 */
25444 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25445 if (UNTAG_Bool(REGB0)) {
25446 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4692);
25447 }
25448 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25449 /* ./parser//parser_prod.nit:4693 */
25450 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*/;
25451 if (UNTAG_Bool(REGB0)) {
25452 } else {
25453 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4693);
25454 }
25455 /* ./parser//parser_prod.nit:4694 */
25456 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25457 } else {
25458 /* ./parser//parser_prod.nit:4696 */
25459 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4696);
25460 }
25461 /* ./parser//parser_prod.nit:4698 */
25462 goto label1;
25463 }
25464 label1: while(0);
25465 stack_frame_head = fra.me.prev;
25466 return;
25467 }
25468 void parser___parser_prod___ALtExpr___visit_all(val_t p0, val_t p1){
25469 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25470 val_t REGB0;
25471 val_t tmp;
25472 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25473 fra.me.file = LOCATE_parser___parser_prod;
25474 fra.me.line = 4702;
25475 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___visit_all;
25476 fra.me.has_broke = 0;
25477 fra.me.REG_size = 3;
25478 fra.me.nitni_local_ref_head = NULL;
25479 fra.me.REG[0] = NIT_NULL;
25480 fra.me.REG[1] = NIT_NULL;
25481 fra.me.REG[2] = NIT_NULL;
25482 fra.me.REG[0] = p0;
25483 fra.me.REG[1] = p1;
25484 /* ./parser//parser_prod.nit:4704 */
25485 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25486 if (UNTAG_Bool(REGB0)) {
25487 } else {
25488 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4704);
25489 }
25490 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25491 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25492 /* ./parser//parser_prod.nit:4705 */
25493 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25494 if (UNTAG_Bool(REGB0)) {
25495 } else {
25496 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4705);
25497 }
25498 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25499 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25500 stack_frame_head = fra.me.prev;
25501 return;
25502 }
25503 void parser___parser_prod___ALeExpr___empty_init(val_t p0, int* init_table){
25504 int itpos155 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeExpr].i;
25505 struct {struct stack_frame_t me;} fra;
25506 val_t tmp;
25507 if (init_table[itpos155]) return;
25508 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25509 fra.me.file = LOCATE_parser___parser_prod;
25510 fra.me.line = 4709;
25511 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___empty_init;
25512 fra.me.has_broke = 0;
25513 fra.me.REG_size = 1;
25514 fra.me.nitni_local_ref_head = NULL;
25515 fra.me.REG[0] = NIT_NULL;
25516 fra.me.REG[0] = p0;
25517 stack_frame_head = fra.me.prev;
25518 init_table[itpos155] = 1;
25519 return;
25520 }
25521 void parser___parser_prod___ALeExpr___init_aleexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25522 int itpos156 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeExpr].i;
25523 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25524 val_t REGB0;
25525 val_t tmp;
25526 if (init_table[itpos156]) return;
25527 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25528 fra.me.file = LOCATE_parser___parser_prod;
25529 fra.me.line = 4711;
25530 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___init_aleexpr;
25531 fra.me.has_broke = 0;
25532 fra.me.REG_size = 4;
25533 fra.me.nitni_local_ref_head = NULL;
25534 fra.me.REG[0] = NIT_NULL;
25535 fra.me.REG[1] = NIT_NULL;
25536 fra.me.REG[2] = NIT_NULL;
25537 fra.me.REG[3] = NIT_NULL;
25538 fra.me.REG[0] = p0;
25539 fra.me.REG[1] = p1;
25540 fra.me.REG[2] = p2;
25541 /* ./parser//parser_prod.nit:4711 */
25542 fra.me.REG[3] = fra.me.REG[0];
25543 /* ./parser//parser_prod.nit:4716 */
25544 CALL_parser___parser_prod___ALeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25545 /* ./parser//parser_prod.nit:4717 */
25546 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25547 if (UNTAG_Bool(REGB0)) {
25548 } else {
25549 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4717);
25550 }
25551 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25552 /* ./parser//parser_prod.nit:4718 */
25553 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25554 if (UNTAG_Bool(REGB0)) {
25555 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4718);
25556 }
25557 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25558 /* ./parser//parser_prod.nit:4719 */
25559 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25560 if (UNTAG_Bool(REGB0)) {
25561 } else {
25562 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4719);
25563 }
25564 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25565 /* ./parser//parser_prod.nit:4720 */
25566 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25567 if (UNTAG_Bool(REGB0)) {
25568 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4720);
25569 }
25570 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25571 stack_frame_head = fra.me.prev;
25572 init_table[itpos156] = 1;
25573 return;
25574 }
25575 void parser___parser_prod___ALeExpr___replace_child(val_t p0, val_t p1, val_t p2){
25576 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25577 val_t REGB0;
25578 val_t REGB1;
25579 val_t tmp;
25580 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25581 fra.me.file = LOCATE_parser___parser_prod;
25582 fra.me.line = 4723;
25583 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___replace_child;
25584 fra.me.has_broke = 0;
25585 fra.me.REG_size = 4;
25586 fra.me.nitni_local_ref_head = NULL;
25587 fra.me.REG[0] = NIT_NULL;
25588 fra.me.REG[1] = NIT_NULL;
25589 fra.me.REG[2] = NIT_NULL;
25590 fra.me.REG[3] = NIT_NULL;
25591 fra.me.REG[0] = p0;
25592 fra.me.REG[1] = p1;
25593 fra.me.REG[2] = p2;
25594 /* ./parser//parser_prod.nit:4725 */
25595 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25596 if (UNTAG_Bool(REGB0)) {
25597 } else {
25598 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4725);
25599 }
25600 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25601 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25602 if (UNTAG_Bool(REGB0)) {
25603 } else {
25604 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25605 REGB0 = REGB1;
25606 }
25607 if (UNTAG_Bool(REGB0)) {
25608 /* ./parser//parser_prod.nit:4726 */
25609 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25610 if (UNTAG_Bool(REGB0)) {
25611 } else {
25612 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25613 if (UNTAG_Bool(REGB1)) {
25614 REGB1 = TAG_Bool(false);
25615 REGB0 = REGB1;
25616 } else {
25617 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25618 REGB0 = REGB1;
25619 }
25620 }
25621 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25622 if (UNTAG_Bool(REGB0)) {
25623 /* ./parser//parser_prod.nit:4727 */
25624 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25625 if (UNTAG_Bool(REGB0)) {
25626 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4727);
25627 }
25628 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25629 /* ./parser//parser_prod.nit:4728 */
25630 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*/;
25631 if (UNTAG_Bool(REGB0)) {
25632 } else {
25633 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4728);
25634 }
25635 /* ./parser//parser_prod.nit:4729 */
25636 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25637 } else {
25638 /* ./parser//parser_prod.nit:4731 */
25639 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4731);
25640 }
25641 /* ./parser//parser_prod.nit:4733 */
25642 goto label1;
25643 }
25644 /* ./parser//parser_prod.nit:4735 */
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, 4735);
25649 }
25650 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25651 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25652 if (UNTAG_Bool(REGB0)) {
25653 } else {
25654 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25655 REGB0 = REGB1;
25656 }
25657 if (UNTAG_Bool(REGB0)) {
25658 /* ./parser//parser_prod.nit:4736 */
25659 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25660 if (UNTAG_Bool(REGB0)) {
25661 } else {
25662 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25663 if (UNTAG_Bool(REGB1)) {
25664 REGB1 = TAG_Bool(false);
25665 REGB0 = REGB1;
25666 } else {
25667 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25668 REGB0 = REGB1;
25669 }
25670 }
25671 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25672 if (UNTAG_Bool(REGB0)) {
25673 /* ./parser//parser_prod.nit:4737 */
25674 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25675 if (UNTAG_Bool(REGB0)) {
25676 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4737);
25677 }
25678 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25679 /* ./parser//parser_prod.nit:4738 */
25680 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*/;
25681 if (UNTAG_Bool(REGB0)) {
25682 } else {
25683 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4738);
25684 }
25685 /* ./parser//parser_prod.nit:4739 */
25686 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25687 } else {
25688 /* ./parser//parser_prod.nit:4741 */
25689 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4741);
25690 }
25691 /* ./parser//parser_prod.nit:4743 */
25692 goto label1;
25693 }
25694 label1: while(0);
25695 stack_frame_head = fra.me.prev;
25696 return;
25697 }
25698 void parser___parser_prod___ALeExpr___visit_all(val_t p0, val_t p1){
25699 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25700 val_t REGB0;
25701 val_t tmp;
25702 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25703 fra.me.file = LOCATE_parser___parser_prod;
25704 fra.me.line = 4747;
25705 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___visit_all;
25706 fra.me.has_broke = 0;
25707 fra.me.REG_size = 3;
25708 fra.me.nitni_local_ref_head = NULL;
25709 fra.me.REG[0] = NIT_NULL;
25710 fra.me.REG[1] = NIT_NULL;
25711 fra.me.REG[2] = NIT_NULL;
25712 fra.me.REG[0] = p0;
25713 fra.me.REG[1] = p1;
25714 /* ./parser//parser_prod.nit:4749 */
25715 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25716 if (UNTAG_Bool(REGB0)) {
25717 } else {
25718 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4749);
25719 }
25720 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25721 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25722 /* ./parser//parser_prod.nit:4750 */
25723 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25724 if (UNTAG_Bool(REGB0)) {
25725 } else {
25726 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4750);
25727 }
25728 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25729 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25730 stack_frame_head = fra.me.prev;
25731 return;
25732 }
25733 void parser___parser_prod___ALlExpr___empty_init(val_t p0, int* init_table){
25734 int itpos157 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlExpr].i;
25735 struct {struct stack_frame_t me;} fra;
25736 val_t tmp;
25737 if (init_table[itpos157]) return;
25738 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25739 fra.me.file = LOCATE_parser___parser_prod;
25740 fra.me.line = 4754;
25741 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___empty_init;
25742 fra.me.has_broke = 0;
25743 fra.me.REG_size = 1;
25744 fra.me.nitni_local_ref_head = NULL;
25745 fra.me.REG[0] = NIT_NULL;
25746 fra.me.REG[0] = p0;
25747 stack_frame_head = fra.me.prev;
25748 init_table[itpos157] = 1;
25749 return;
25750 }
25751 void parser___parser_prod___ALlExpr___init_allexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25752 int itpos158 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlExpr].i;
25753 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25754 val_t REGB0;
25755 val_t tmp;
25756 if (init_table[itpos158]) return;
25757 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25758 fra.me.file = LOCATE_parser___parser_prod;
25759 fra.me.line = 4756;
25760 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___init_allexpr;
25761 fra.me.has_broke = 0;
25762 fra.me.REG_size = 4;
25763 fra.me.nitni_local_ref_head = NULL;
25764 fra.me.REG[0] = NIT_NULL;
25765 fra.me.REG[1] = NIT_NULL;
25766 fra.me.REG[2] = NIT_NULL;
25767 fra.me.REG[3] = NIT_NULL;
25768 fra.me.REG[0] = p0;
25769 fra.me.REG[1] = p1;
25770 fra.me.REG[2] = p2;
25771 /* ./parser//parser_prod.nit:4756 */
25772 fra.me.REG[3] = fra.me.REG[0];
25773 /* ./parser//parser_prod.nit:4761 */
25774 CALL_parser___parser_prod___ALlExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25775 /* ./parser//parser_prod.nit:4762 */
25776 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25777 if (UNTAG_Bool(REGB0)) {
25778 } else {
25779 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4762);
25780 }
25781 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25782 /* ./parser//parser_prod.nit:4763 */
25783 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25784 if (UNTAG_Bool(REGB0)) {
25785 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4763);
25786 }
25787 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25788 /* ./parser//parser_prod.nit:4764 */
25789 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25790 if (UNTAG_Bool(REGB0)) {
25791 } else {
25792 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4764);
25793 }
25794 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25795 /* ./parser//parser_prod.nit:4765 */
25796 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25797 if (UNTAG_Bool(REGB0)) {
25798 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4765);
25799 }
25800 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25801 stack_frame_head = fra.me.prev;
25802 init_table[itpos158] = 1;
25803 return;
25804 }
25805 void parser___parser_prod___ALlExpr___replace_child(val_t p0, val_t p1, val_t p2){
25806 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25807 val_t REGB0;
25808 val_t REGB1;
25809 val_t tmp;
25810 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25811 fra.me.file = LOCATE_parser___parser_prod;
25812 fra.me.line = 4768;
25813 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___replace_child;
25814 fra.me.has_broke = 0;
25815 fra.me.REG_size = 4;
25816 fra.me.nitni_local_ref_head = NULL;
25817 fra.me.REG[0] = NIT_NULL;
25818 fra.me.REG[1] = NIT_NULL;
25819 fra.me.REG[2] = NIT_NULL;
25820 fra.me.REG[3] = NIT_NULL;
25821 fra.me.REG[0] = p0;
25822 fra.me.REG[1] = p1;
25823 fra.me.REG[2] = p2;
25824 /* ./parser//parser_prod.nit:4770 */
25825 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25826 if (UNTAG_Bool(REGB0)) {
25827 } else {
25828 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4770);
25829 }
25830 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25831 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25832 if (UNTAG_Bool(REGB0)) {
25833 } else {
25834 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25835 REGB0 = REGB1;
25836 }
25837 if (UNTAG_Bool(REGB0)) {
25838 /* ./parser//parser_prod.nit:4771 */
25839 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25840 if (UNTAG_Bool(REGB0)) {
25841 } else {
25842 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25843 if (UNTAG_Bool(REGB1)) {
25844 REGB1 = TAG_Bool(false);
25845 REGB0 = REGB1;
25846 } else {
25847 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25848 REGB0 = REGB1;
25849 }
25850 }
25851 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25852 if (UNTAG_Bool(REGB0)) {
25853 /* ./parser//parser_prod.nit:4772 */
25854 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25855 if (UNTAG_Bool(REGB0)) {
25856 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4772);
25857 }
25858 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25859 /* ./parser//parser_prod.nit:4773 */
25860 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*/;
25861 if (UNTAG_Bool(REGB0)) {
25862 } else {
25863 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4773);
25864 }
25865 /* ./parser//parser_prod.nit:4774 */
25866 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25867 } else {
25868 /* ./parser//parser_prod.nit:4776 */
25869 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4776);
25870 }
25871 /* ./parser//parser_prod.nit:4778 */
25872 goto label1;
25873 }
25874 /* ./parser//parser_prod.nit:4780 */
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, 4780);
25879 }
25880 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25881 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25882 if (UNTAG_Bool(REGB0)) {
25883 } else {
25884 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25885 REGB0 = REGB1;
25886 }
25887 if (UNTAG_Bool(REGB0)) {
25888 /* ./parser//parser_prod.nit:4781 */
25889 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25890 if (UNTAG_Bool(REGB0)) {
25891 } else {
25892 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25893 if (UNTAG_Bool(REGB1)) {
25894 REGB1 = TAG_Bool(false);
25895 REGB0 = REGB1;
25896 } else {
25897 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25898 REGB0 = REGB1;
25899 }
25900 }
25901 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25902 if (UNTAG_Bool(REGB0)) {
25903 /* ./parser//parser_prod.nit:4782 */
25904 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25905 if (UNTAG_Bool(REGB0)) {
25906 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4782);
25907 }
25908 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25909 /* ./parser//parser_prod.nit:4783 */
25910 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*/;
25911 if (UNTAG_Bool(REGB0)) {
25912 } else {
25913 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4783);
25914 }
25915 /* ./parser//parser_prod.nit:4784 */
25916 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25917 } else {
25918 /* ./parser//parser_prod.nit:4786 */
25919 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4786);
25920 }
25921 /* ./parser//parser_prod.nit:4788 */
25922 goto label1;
25923 }
25924 label1: while(0);
25925 stack_frame_head = fra.me.prev;
25926 return;
25927 }
25928 void parser___parser_prod___ALlExpr___visit_all(val_t p0, val_t p1){
25929 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25930 val_t REGB0;
25931 val_t tmp;
25932 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25933 fra.me.file = LOCATE_parser___parser_prod;
25934 fra.me.line = 4792;
25935 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___visit_all;
25936 fra.me.has_broke = 0;
25937 fra.me.REG_size = 3;
25938 fra.me.nitni_local_ref_head = NULL;
25939 fra.me.REG[0] = NIT_NULL;
25940 fra.me.REG[1] = NIT_NULL;
25941 fra.me.REG[2] = NIT_NULL;
25942 fra.me.REG[0] = p0;
25943 fra.me.REG[1] = p1;
25944 /* ./parser//parser_prod.nit:4794 */
25945 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25946 if (UNTAG_Bool(REGB0)) {
25947 } else {
25948 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4794);
25949 }
25950 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25951 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25952 /* ./parser//parser_prod.nit:4795 */
25953 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25954 if (UNTAG_Bool(REGB0)) {
25955 } else {
25956 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4795);
25957 }
25958 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25959 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25960 stack_frame_head = fra.me.prev;
25961 return;
25962 }
25963 void parser___parser_prod___AGtExpr___empty_init(val_t p0, int* init_table){
25964 int itpos159 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtExpr].i;
25965 struct {struct stack_frame_t me;} fra;
25966 val_t tmp;
25967 if (init_table[itpos159]) return;
25968 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25969 fra.me.file = LOCATE_parser___parser_prod;
25970 fra.me.line = 4799;
25971 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___empty_init;
25972 fra.me.has_broke = 0;
25973 fra.me.REG_size = 1;
25974 fra.me.nitni_local_ref_head = NULL;
25975 fra.me.REG[0] = NIT_NULL;
25976 fra.me.REG[0] = p0;
25977 stack_frame_head = fra.me.prev;
25978 init_table[itpos159] = 1;
25979 return;
25980 }
25981 void parser___parser_prod___AGtExpr___init_agtexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25982 int itpos160 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtExpr].i;
25983 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25984 val_t REGB0;
25985 val_t tmp;
25986 if (init_table[itpos160]) return;
25987 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25988 fra.me.file = LOCATE_parser___parser_prod;
25989 fra.me.line = 4801;
25990 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___init_agtexpr;
25991 fra.me.has_broke = 0;
25992 fra.me.REG_size = 4;
25993 fra.me.nitni_local_ref_head = NULL;
25994 fra.me.REG[0] = NIT_NULL;
25995 fra.me.REG[1] = NIT_NULL;
25996 fra.me.REG[2] = NIT_NULL;
25997 fra.me.REG[3] = NIT_NULL;
25998 fra.me.REG[0] = p0;
25999 fra.me.REG[1] = p1;
26000 fra.me.REG[2] = p2;
26001 /* ./parser//parser_prod.nit:4801 */
26002 fra.me.REG[3] = fra.me.REG[0];
26003 /* ./parser//parser_prod.nit:4806 */
26004 CALL_parser___parser_prod___AGtExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26005 /* ./parser//parser_prod.nit:4807 */
26006 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26007 if (UNTAG_Bool(REGB0)) {
26008 } else {
26009 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4807);
26010 }
26011 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26012 /* ./parser//parser_prod.nit:4808 */
26013 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26014 if (UNTAG_Bool(REGB0)) {
26015 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4808);
26016 }
26017 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26018 /* ./parser//parser_prod.nit:4809 */
26019 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26020 if (UNTAG_Bool(REGB0)) {
26021 } else {
26022 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4809);
26023 }
26024 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26025 /* ./parser//parser_prod.nit:4810 */
26026 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26027 if (UNTAG_Bool(REGB0)) {
26028 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4810);
26029 }
26030 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26031 stack_frame_head = fra.me.prev;
26032 init_table[itpos160] = 1;
26033 return;
26034 }
26035 void parser___parser_prod___AGtExpr___replace_child(val_t p0, val_t p1, val_t p2){
26036 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26037 val_t REGB0;
26038 val_t REGB1;
26039 val_t tmp;
26040 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26041 fra.me.file = LOCATE_parser___parser_prod;
26042 fra.me.line = 4813;
26043 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___replace_child;
26044 fra.me.has_broke = 0;
26045 fra.me.REG_size = 4;
26046 fra.me.nitni_local_ref_head = NULL;
26047 fra.me.REG[0] = NIT_NULL;
26048 fra.me.REG[1] = NIT_NULL;
26049 fra.me.REG[2] = NIT_NULL;
26050 fra.me.REG[3] = NIT_NULL;
26051 fra.me.REG[0] = p0;
26052 fra.me.REG[1] = p1;
26053 fra.me.REG[2] = p2;
26054 /* ./parser//parser_prod.nit:4815 */
26055 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26056 if (UNTAG_Bool(REGB0)) {
26057 } else {
26058 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4815);
26059 }
26060 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26061 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26062 if (UNTAG_Bool(REGB0)) {
26063 } else {
26064 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26065 REGB0 = REGB1;
26066 }
26067 if (UNTAG_Bool(REGB0)) {
26068 /* ./parser//parser_prod.nit:4816 */
26069 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26070 if (UNTAG_Bool(REGB0)) {
26071 } else {
26072 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26073 if (UNTAG_Bool(REGB1)) {
26074 REGB1 = TAG_Bool(false);
26075 REGB0 = REGB1;
26076 } else {
26077 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26078 REGB0 = REGB1;
26079 }
26080 }
26081 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26082 if (UNTAG_Bool(REGB0)) {
26083 /* ./parser//parser_prod.nit:4817 */
26084 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26085 if (UNTAG_Bool(REGB0)) {
26086 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4817);
26087 }
26088 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26089 /* ./parser//parser_prod.nit:4818 */
26090 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*/;
26091 if (UNTAG_Bool(REGB0)) {
26092 } else {
26093 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4818);
26094 }
26095 /* ./parser//parser_prod.nit:4819 */
26096 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26097 } else {
26098 /* ./parser//parser_prod.nit:4821 */
26099 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4821);
26100 }
26101 /* ./parser//parser_prod.nit:4823 */
26102 goto label1;
26103 }
26104 /* ./parser//parser_prod.nit:4825 */
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, 4825);
26109 }
26110 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26111 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26112 if (UNTAG_Bool(REGB0)) {
26113 } else {
26114 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26115 REGB0 = REGB1;
26116 }
26117 if (UNTAG_Bool(REGB0)) {
26118 /* ./parser//parser_prod.nit:4826 */
26119 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26120 if (UNTAG_Bool(REGB0)) {
26121 } else {
26122 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26123 if (UNTAG_Bool(REGB1)) {
26124 REGB1 = TAG_Bool(false);
26125 REGB0 = REGB1;
26126 } else {
26127 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26128 REGB0 = REGB1;
26129 }
26130 }
26131 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26132 if (UNTAG_Bool(REGB0)) {
26133 /* ./parser//parser_prod.nit:4827 */
26134 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26135 if (UNTAG_Bool(REGB0)) {
26136 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4827);
26137 }
26138 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26139 /* ./parser//parser_prod.nit:4828 */
26140 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*/;
26141 if (UNTAG_Bool(REGB0)) {
26142 } else {
26143 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4828);
26144 }
26145 /* ./parser//parser_prod.nit:4829 */
26146 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26147 } else {
26148 /* ./parser//parser_prod.nit:4831 */
26149 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4831);
26150 }
26151 /* ./parser//parser_prod.nit:4833 */
26152 goto label1;
26153 }
26154 label1: while(0);
26155 stack_frame_head = fra.me.prev;
26156 return;
26157 }
26158 void parser___parser_prod___AGtExpr___visit_all(val_t p0, val_t p1){
26159 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26160 val_t REGB0;
26161 val_t tmp;
26162 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26163 fra.me.file = LOCATE_parser___parser_prod;
26164 fra.me.line = 4837;
26165 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___visit_all;
26166 fra.me.has_broke = 0;
26167 fra.me.REG_size = 3;
26168 fra.me.nitni_local_ref_head = NULL;
26169 fra.me.REG[0] = NIT_NULL;
26170 fra.me.REG[1] = NIT_NULL;
26171 fra.me.REG[2] = NIT_NULL;
26172 fra.me.REG[0] = p0;
26173 fra.me.REG[1] = p1;
26174 /* ./parser//parser_prod.nit:4839 */
26175 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26176 if (UNTAG_Bool(REGB0)) {
26177 } else {
26178 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4839);
26179 }
26180 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26181 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26182 /* ./parser//parser_prod.nit:4840 */
26183 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26184 if (UNTAG_Bool(REGB0)) {
26185 } else {
26186 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4840);
26187 }
26188 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26189 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26190 stack_frame_head = fra.me.prev;
26191 return;
26192 }
26193 void parser___parser_prod___AGeExpr___empty_init(val_t p0, int* init_table){
26194 int itpos161 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeExpr].i;
26195 struct {struct stack_frame_t me;} fra;
26196 val_t tmp;
26197 if (init_table[itpos161]) return;
26198 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26199 fra.me.file = LOCATE_parser___parser_prod;
26200 fra.me.line = 4844;
26201 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___empty_init;
26202 fra.me.has_broke = 0;
26203 fra.me.REG_size = 1;
26204 fra.me.nitni_local_ref_head = NULL;
26205 fra.me.REG[0] = NIT_NULL;
26206 fra.me.REG[0] = p0;
26207 stack_frame_head = fra.me.prev;
26208 init_table[itpos161] = 1;
26209 return;
26210 }
26211 void parser___parser_prod___AGeExpr___init_ageexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26212 int itpos162 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeExpr].i;
26213 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26214 val_t REGB0;
26215 val_t tmp;
26216 if (init_table[itpos162]) return;
26217 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26218 fra.me.file = LOCATE_parser___parser_prod;
26219 fra.me.line = 4846;
26220 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___init_ageexpr;
26221 fra.me.has_broke = 0;
26222 fra.me.REG_size = 4;
26223 fra.me.nitni_local_ref_head = NULL;
26224 fra.me.REG[0] = NIT_NULL;
26225 fra.me.REG[1] = NIT_NULL;
26226 fra.me.REG[2] = NIT_NULL;
26227 fra.me.REG[3] = NIT_NULL;
26228 fra.me.REG[0] = p0;
26229 fra.me.REG[1] = p1;
26230 fra.me.REG[2] = p2;
26231 /* ./parser//parser_prod.nit:4846 */
26232 fra.me.REG[3] = fra.me.REG[0];
26233 /* ./parser//parser_prod.nit:4851 */
26234 CALL_parser___parser_prod___AGeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26235 /* ./parser//parser_prod.nit:4852 */
26236 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26237 if (UNTAG_Bool(REGB0)) {
26238 } else {
26239 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4852);
26240 }
26241 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26242 /* ./parser//parser_prod.nit:4853 */
26243 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26244 if (UNTAG_Bool(REGB0)) {
26245 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4853);
26246 }
26247 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26248 /* ./parser//parser_prod.nit:4854 */
26249 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26250 if (UNTAG_Bool(REGB0)) {
26251 } else {
26252 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4854);
26253 }
26254 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26255 /* ./parser//parser_prod.nit:4855 */
26256 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26257 if (UNTAG_Bool(REGB0)) {
26258 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4855);
26259 }
26260 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26261 stack_frame_head = fra.me.prev;
26262 init_table[itpos162] = 1;
26263 return;
26264 }
26265 void parser___parser_prod___AGeExpr___replace_child(val_t p0, val_t p1, val_t p2){
26266 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26267 val_t REGB0;
26268 val_t REGB1;
26269 val_t tmp;
26270 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26271 fra.me.file = LOCATE_parser___parser_prod;
26272 fra.me.line = 4858;
26273 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___replace_child;
26274 fra.me.has_broke = 0;
26275 fra.me.REG_size = 4;
26276 fra.me.nitni_local_ref_head = NULL;
26277 fra.me.REG[0] = NIT_NULL;
26278 fra.me.REG[1] = NIT_NULL;
26279 fra.me.REG[2] = NIT_NULL;
26280 fra.me.REG[3] = NIT_NULL;
26281 fra.me.REG[0] = p0;
26282 fra.me.REG[1] = p1;
26283 fra.me.REG[2] = p2;
26284 /* ./parser//parser_prod.nit:4860 */
26285 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26286 if (UNTAG_Bool(REGB0)) {
26287 } else {
26288 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4860);
26289 }
26290 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26291 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26292 if (UNTAG_Bool(REGB0)) {
26293 } else {
26294 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26295 REGB0 = REGB1;
26296 }
26297 if (UNTAG_Bool(REGB0)) {
26298 /* ./parser//parser_prod.nit:4861 */
26299 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26300 if (UNTAG_Bool(REGB0)) {
26301 } else {
26302 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26303 if (UNTAG_Bool(REGB1)) {
26304 REGB1 = TAG_Bool(false);
26305 REGB0 = REGB1;
26306 } else {
26307 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26308 REGB0 = REGB1;
26309 }
26310 }
26311 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26312 if (UNTAG_Bool(REGB0)) {
26313 /* ./parser//parser_prod.nit:4862 */
26314 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26315 if (UNTAG_Bool(REGB0)) {
26316 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4862);
26317 }
26318 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26319 /* ./parser//parser_prod.nit:4863 */
26320 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*/;
26321 if (UNTAG_Bool(REGB0)) {
26322 } else {
26323 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4863);
26324 }
26325 /* ./parser//parser_prod.nit:4864 */
26326 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26327 } else {
26328 /* ./parser//parser_prod.nit:4866 */
26329 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4866);
26330 }
26331 /* ./parser//parser_prod.nit:4868 */
26332 goto label1;
26333 }
26334 /* ./parser//parser_prod.nit:4870 */
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, 4870);
26339 }
26340 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26341 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26342 if (UNTAG_Bool(REGB0)) {
26343 } else {
26344 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26345 REGB0 = REGB1;
26346 }
26347 if (UNTAG_Bool(REGB0)) {
26348 /* ./parser//parser_prod.nit:4871 */
26349 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26350 if (UNTAG_Bool(REGB0)) {
26351 } else {
26352 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26353 if (UNTAG_Bool(REGB1)) {
26354 REGB1 = TAG_Bool(false);
26355 REGB0 = REGB1;
26356 } else {
26357 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26358 REGB0 = REGB1;
26359 }
26360 }
26361 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26362 if (UNTAG_Bool(REGB0)) {
26363 /* ./parser//parser_prod.nit:4872 */
26364 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26365 if (UNTAG_Bool(REGB0)) {
26366 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4872);
26367 }
26368 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26369 /* ./parser//parser_prod.nit:4873 */
26370 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*/;
26371 if (UNTAG_Bool(REGB0)) {
26372 } else {
26373 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4873);
26374 }
26375 /* ./parser//parser_prod.nit:4874 */
26376 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26377 } else {
26378 /* ./parser//parser_prod.nit:4876 */
26379 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4876);
26380 }
26381 /* ./parser//parser_prod.nit:4878 */
26382 goto label1;
26383 }
26384 label1: while(0);
26385 stack_frame_head = fra.me.prev;
26386 return;
26387 }
26388 void parser___parser_prod___AGeExpr___visit_all(val_t p0, val_t p1){
26389 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26390 val_t REGB0;
26391 val_t tmp;
26392 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26393 fra.me.file = LOCATE_parser___parser_prod;
26394 fra.me.line = 4882;
26395 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___visit_all;
26396 fra.me.has_broke = 0;
26397 fra.me.REG_size = 3;
26398 fra.me.nitni_local_ref_head = NULL;
26399 fra.me.REG[0] = NIT_NULL;
26400 fra.me.REG[1] = NIT_NULL;
26401 fra.me.REG[2] = NIT_NULL;
26402 fra.me.REG[0] = p0;
26403 fra.me.REG[1] = p1;
26404 /* ./parser//parser_prod.nit:4884 */
26405 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26406 if (UNTAG_Bool(REGB0)) {
26407 } else {
26408 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4884);
26409 }
26410 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26411 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26412 /* ./parser//parser_prod.nit:4885 */
26413 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26414 if (UNTAG_Bool(REGB0)) {
26415 } else {
26416 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4885);
26417 }
26418 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26419 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26420 stack_frame_head = fra.me.prev;
26421 return;
26422 }
26423 void parser___parser_prod___AGgExpr___empty_init(val_t p0, int* init_table){
26424 int itpos163 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgExpr].i;
26425 struct {struct stack_frame_t me;} fra;
26426 val_t tmp;
26427 if (init_table[itpos163]) return;
26428 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26429 fra.me.file = LOCATE_parser___parser_prod;
26430 fra.me.line = 4889;
26431 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___empty_init;
26432 fra.me.has_broke = 0;
26433 fra.me.REG_size = 1;
26434 fra.me.nitni_local_ref_head = NULL;
26435 fra.me.REG[0] = NIT_NULL;
26436 fra.me.REG[0] = p0;
26437 stack_frame_head = fra.me.prev;
26438 init_table[itpos163] = 1;
26439 return;
26440 }
26441 void parser___parser_prod___AGgExpr___init_aggexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26442 int itpos164 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgExpr].i;
26443 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26444 val_t REGB0;
26445 val_t tmp;
26446 if (init_table[itpos164]) return;
26447 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26448 fra.me.file = LOCATE_parser___parser_prod;
26449 fra.me.line = 4891;
26450 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___init_aggexpr;
26451 fra.me.has_broke = 0;
26452 fra.me.REG_size = 4;
26453 fra.me.nitni_local_ref_head = NULL;
26454 fra.me.REG[0] = NIT_NULL;
26455 fra.me.REG[1] = NIT_NULL;
26456 fra.me.REG[2] = NIT_NULL;
26457 fra.me.REG[3] = NIT_NULL;
26458 fra.me.REG[0] = p0;
26459 fra.me.REG[1] = p1;
26460 fra.me.REG[2] = p2;
26461 /* ./parser//parser_prod.nit:4891 */
26462 fra.me.REG[3] = fra.me.REG[0];
26463 /* ./parser//parser_prod.nit:4896 */
26464 CALL_parser___parser_prod___AGgExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26465 /* ./parser//parser_prod.nit:4897 */
26466 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26467 if (UNTAG_Bool(REGB0)) {
26468 } else {
26469 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4897);
26470 }
26471 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26472 /* ./parser//parser_prod.nit:4898 */
26473 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26474 if (UNTAG_Bool(REGB0)) {
26475 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4898);
26476 }
26477 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26478 /* ./parser//parser_prod.nit:4899 */
26479 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26480 if (UNTAG_Bool(REGB0)) {
26481 } else {
26482 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4899);
26483 }
26484 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26485 /* ./parser//parser_prod.nit:4900 */
26486 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26487 if (UNTAG_Bool(REGB0)) {
26488 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4900);
26489 }
26490 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26491 stack_frame_head = fra.me.prev;
26492 init_table[itpos164] = 1;
26493 return;
26494 }
26495 void parser___parser_prod___AGgExpr___replace_child(val_t p0, val_t p1, val_t p2){
26496 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26497 val_t REGB0;
26498 val_t REGB1;
26499 val_t tmp;
26500 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26501 fra.me.file = LOCATE_parser___parser_prod;
26502 fra.me.line = 4903;
26503 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___replace_child;
26504 fra.me.has_broke = 0;
26505 fra.me.REG_size = 4;
26506 fra.me.nitni_local_ref_head = NULL;
26507 fra.me.REG[0] = NIT_NULL;
26508 fra.me.REG[1] = NIT_NULL;
26509 fra.me.REG[2] = NIT_NULL;
26510 fra.me.REG[3] = NIT_NULL;
26511 fra.me.REG[0] = p0;
26512 fra.me.REG[1] = p1;
26513 fra.me.REG[2] = p2;
26514 /* ./parser//parser_prod.nit:4905 */
26515 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26516 if (UNTAG_Bool(REGB0)) {
26517 } else {
26518 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4905);
26519 }
26520 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26521 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26522 if (UNTAG_Bool(REGB0)) {
26523 } else {
26524 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26525 REGB0 = REGB1;
26526 }
26527 if (UNTAG_Bool(REGB0)) {
26528 /* ./parser//parser_prod.nit:4906 */
26529 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26530 if (UNTAG_Bool(REGB0)) {
26531 } else {
26532 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26533 if (UNTAG_Bool(REGB1)) {
26534 REGB1 = TAG_Bool(false);
26535 REGB0 = REGB1;
26536 } else {
26537 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26538 REGB0 = REGB1;
26539 }
26540 }
26541 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26542 if (UNTAG_Bool(REGB0)) {
26543 /* ./parser//parser_prod.nit:4907 */
26544 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26545 if (UNTAG_Bool(REGB0)) {
26546 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4907);
26547 }
26548 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26549 /* ./parser//parser_prod.nit:4908 */
26550 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*/;
26551 if (UNTAG_Bool(REGB0)) {
26552 } else {
26553 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4908);
26554 }
26555 /* ./parser//parser_prod.nit:4909 */
26556 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26557 } else {
26558 /* ./parser//parser_prod.nit:4911 */
26559 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4911);
26560 }
26561 /* ./parser//parser_prod.nit:4913 */
26562 goto label1;
26563 }
26564 /* ./parser//parser_prod.nit:4915 */
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, 4915);
26569 }
26570 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26571 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26572 if (UNTAG_Bool(REGB0)) {
26573 } else {
26574 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26575 REGB0 = REGB1;
26576 }
26577 if (UNTAG_Bool(REGB0)) {
26578 /* ./parser//parser_prod.nit:4916 */
26579 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26580 if (UNTAG_Bool(REGB0)) {
26581 } else {
26582 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26583 if (UNTAG_Bool(REGB1)) {
26584 REGB1 = TAG_Bool(false);
26585 REGB0 = REGB1;
26586 } else {
26587 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26588 REGB0 = REGB1;
26589 }
26590 }
26591 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26592 if (UNTAG_Bool(REGB0)) {
26593 /* ./parser//parser_prod.nit:4917 */
26594 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26595 if (UNTAG_Bool(REGB0)) {
26596 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4917);
26597 }
26598 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26599 /* ./parser//parser_prod.nit:4918 */
26600 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*/;
26601 if (UNTAG_Bool(REGB0)) {
26602 } else {
26603 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4918);
26604 }
26605 /* ./parser//parser_prod.nit:4919 */
26606 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26607 } else {
26608 /* ./parser//parser_prod.nit:4921 */
26609 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4921);
26610 }
26611 /* ./parser//parser_prod.nit:4923 */
26612 goto label1;
26613 }
26614 label1: while(0);
26615 stack_frame_head = fra.me.prev;
26616 return;
26617 }
26618 void parser___parser_prod___AGgExpr___visit_all(val_t p0, val_t p1){
26619 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26620 val_t REGB0;
26621 val_t tmp;
26622 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26623 fra.me.file = LOCATE_parser___parser_prod;
26624 fra.me.line = 4927;
26625 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___visit_all;
26626 fra.me.has_broke = 0;
26627 fra.me.REG_size = 3;
26628 fra.me.nitni_local_ref_head = NULL;
26629 fra.me.REG[0] = NIT_NULL;
26630 fra.me.REG[1] = NIT_NULL;
26631 fra.me.REG[2] = NIT_NULL;
26632 fra.me.REG[0] = p0;
26633 fra.me.REG[1] = p1;
26634 /* ./parser//parser_prod.nit:4929 */
26635 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26636 if (UNTAG_Bool(REGB0)) {
26637 } else {
26638 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4929);
26639 }
26640 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26641 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26642 /* ./parser//parser_prod.nit:4930 */
26643 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26644 if (UNTAG_Bool(REGB0)) {
26645 } else {
26646 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4930);
26647 }
26648 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26649 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26650 stack_frame_head = fra.me.prev;
26651 return;
26652 }
26653 void parser___parser_prod___AIsaExpr___empty_init(val_t p0, int* init_table){
26654 int itpos165 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIsaExpr].i;
26655 struct {struct stack_frame_t me;} fra;
26656 val_t tmp;
26657 if (init_table[itpos165]) return;
26658 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26659 fra.me.file = LOCATE_parser___parser_prod;
26660 fra.me.line = 4934;
26661 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___empty_init;
26662 fra.me.has_broke = 0;
26663 fra.me.REG_size = 1;
26664 fra.me.nitni_local_ref_head = NULL;
26665 fra.me.REG[0] = NIT_NULL;
26666 fra.me.REG[0] = p0;
26667 stack_frame_head = fra.me.prev;
26668 init_table[itpos165] = 1;
26669 return;
26670 }
26671 void parser___parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26672 int itpos166 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIsaExpr].i;
26673 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26674 val_t REGB0;
26675 val_t tmp;
26676 if (init_table[itpos166]) return;
26677 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26678 fra.me.file = LOCATE_parser___parser_prod;
26679 fra.me.line = 4936;
26680 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___init_aisaexpr;
26681 fra.me.has_broke = 0;
26682 fra.me.REG_size = 4;
26683 fra.me.nitni_local_ref_head = NULL;
26684 fra.me.REG[0] = NIT_NULL;
26685 fra.me.REG[1] = NIT_NULL;
26686 fra.me.REG[2] = NIT_NULL;
26687 fra.me.REG[3] = NIT_NULL;
26688 fra.me.REG[0] = p0;
26689 fra.me.REG[1] = p1;
26690 fra.me.REG[2] = p2;
26691 /* ./parser//parser_prod.nit:4936 */
26692 fra.me.REG[3] = fra.me.REG[0];
26693 /* ./parser//parser_prod.nit:4941 */
26694 CALL_parser___parser_prod___AIsaExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26695 /* ./parser//parser_prod.nit:4942 */
26696 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26697 if (UNTAG_Bool(REGB0)) {
26698 } else {
26699 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4942);
26700 }
26701 ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26702 /* ./parser//parser_prod.nit:4943 */
26703 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26704 if (UNTAG_Bool(REGB0)) {
26705 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4943);
26706 }
26707 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26708 /* ./parser//parser_prod.nit:4944 */
26709 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26710 if (UNTAG_Bool(REGB0)) {
26711 } else {
26712 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4944);
26713 }
26714 ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[3]) = fra.me.REG[2];
26715 /* ./parser//parser_prod.nit:4945 */
26716 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26717 if (UNTAG_Bool(REGB0)) {
26718 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4945);
26719 }
26720 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26721 stack_frame_head = fra.me.prev;
26722 init_table[itpos166] = 1;
26723 return;
26724 }
26725 void parser___parser_prod___AIsaExpr___replace_child(val_t p0, val_t p1, val_t p2){
26726 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26727 val_t REGB0;
26728 val_t REGB1;
26729 val_t tmp;
26730 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26731 fra.me.file = LOCATE_parser___parser_prod;
26732 fra.me.line = 4948;
26733 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___replace_child;
26734 fra.me.has_broke = 0;
26735 fra.me.REG_size = 4;
26736 fra.me.nitni_local_ref_head = NULL;
26737 fra.me.REG[0] = NIT_NULL;
26738 fra.me.REG[1] = NIT_NULL;
26739 fra.me.REG[2] = NIT_NULL;
26740 fra.me.REG[3] = NIT_NULL;
26741 fra.me.REG[0] = p0;
26742 fra.me.REG[1] = p1;
26743 fra.me.REG[2] = p2;
26744 /* ./parser//parser_prod.nit:4950 */
26745 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26746 if (UNTAG_Bool(REGB0)) {
26747 } else {
26748 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4950);
26749 }
26750 fra.me.REG[3] = ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]);
26751 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26752 if (UNTAG_Bool(REGB0)) {
26753 } else {
26754 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26755 REGB0 = REGB1;
26756 }
26757 if (UNTAG_Bool(REGB0)) {
26758 /* ./parser//parser_prod.nit:4951 */
26759 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26760 if (UNTAG_Bool(REGB0)) {
26761 } else {
26762 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26763 if (UNTAG_Bool(REGB1)) {
26764 REGB1 = TAG_Bool(false);
26765 REGB0 = REGB1;
26766 } else {
26767 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26768 REGB0 = REGB1;
26769 }
26770 }
26771 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26772 if (UNTAG_Bool(REGB0)) {
26773 /* ./parser//parser_prod.nit:4952 */
26774 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26775 if (UNTAG_Bool(REGB0)) {
26776 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4952);
26777 }
26778 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26779 /* ./parser//parser_prod.nit:4953 */
26780 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*/;
26781 if (UNTAG_Bool(REGB0)) {
26782 } else {
26783 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4953);
26784 }
26785 /* ./parser//parser_prod.nit:4954 */
26786 ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26787 } else {
26788 /* ./parser//parser_prod.nit:4956 */
26789 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4956);
26790 }
26791 /* ./parser//parser_prod.nit:4958 */
26792 goto label1;
26793 }
26794 /* ./parser//parser_prod.nit:4960 */
26795 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0])!=NIT_NULL);
26796 if (UNTAG_Bool(REGB0)) {
26797 } else {
26798 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 4960);
26799 }
26800 fra.me.REG[3] = ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]);
26801 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26802 if (UNTAG_Bool(REGB0)) {
26803 } else {
26804 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26805 REGB0 = REGB1;
26806 }
26807 if (UNTAG_Bool(REGB0)) {
26808 /* ./parser//parser_prod.nit:4961 */
26809 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26810 if (UNTAG_Bool(REGB0)) {
26811 } else {
26812 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26813 if (UNTAG_Bool(REGB1)) {
26814 REGB1 = TAG_Bool(false);
26815 REGB0 = REGB1;
26816 } else {
26817 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26818 REGB0 = REGB1;
26819 }
26820 }
26821 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26822 if (UNTAG_Bool(REGB0)) {
26823 /* ./parser//parser_prod.nit:4962 */
26824 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26825 if (UNTAG_Bool(REGB0)) {
26826 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4962);
26827 }
26828 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26829 /* ./parser//parser_prod.nit:4963 */
26830 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*/;
26831 if (UNTAG_Bool(REGB0)) {
26832 } else {
26833 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4963);
26834 }
26835 /* ./parser//parser_prod.nit:4964 */
26836 ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
26837 } else {
26838 /* ./parser//parser_prod.nit:4966 */
26839 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4966);
26840 }
26841 /* ./parser//parser_prod.nit:4968 */
26842 goto label1;
26843 }
26844 label1: while(0);
26845 stack_frame_head = fra.me.prev;
26846 return;
26847 }
26848 void parser___parser_prod___AIsaExpr___visit_all(val_t p0, val_t p1){
26849 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26850 val_t REGB0;
26851 val_t tmp;
26852 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26853 fra.me.file = LOCATE_parser___parser_prod;
26854 fra.me.line = 4972;
26855 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___visit_all;
26856 fra.me.has_broke = 0;
26857 fra.me.REG_size = 3;
26858 fra.me.nitni_local_ref_head = NULL;
26859 fra.me.REG[0] = NIT_NULL;
26860 fra.me.REG[1] = NIT_NULL;
26861 fra.me.REG[2] = NIT_NULL;
26862 fra.me.REG[0] = p0;
26863 fra.me.REG[1] = p1;
26864 /* ./parser//parser_prod.nit:4974 */
26865 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26866 if (UNTAG_Bool(REGB0)) {
26867 } else {
26868 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4974);
26869 }
26870 fra.me.REG[2] = ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]);
26871 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26872 /* ./parser//parser_prod.nit:4975 */
26873 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0])!=NIT_NULL);
26874 if (UNTAG_Bool(REGB0)) {
26875 } else {
26876 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 4975);
26877 }
26878 fra.me.REG[0] = ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]);
26879 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26880 stack_frame_head = fra.me.prev;
26881 return;
26882 }
26883 void parser___parser_prod___APlusExpr___empty_init(val_t p0, int* init_table){
26884 int itpos167 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusExpr].i;
26885 struct {struct stack_frame_t me;} fra;
26886 val_t tmp;
26887 if (init_table[itpos167]) return;
26888 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26889 fra.me.file = LOCATE_parser___parser_prod;
26890 fra.me.line = 4979;
26891 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___empty_init;
26892 fra.me.has_broke = 0;
26893 fra.me.REG_size = 1;
26894 fra.me.nitni_local_ref_head = NULL;
26895 fra.me.REG[0] = NIT_NULL;
26896 fra.me.REG[0] = p0;
26897 stack_frame_head = fra.me.prev;
26898 init_table[itpos167] = 1;
26899 return;
26900 }
26901 void parser___parser_prod___APlusExpr___init_aplusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26902 int itpos168 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusExpr].i;
26903 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26904 val_t REGB0;
26905 val_t tmp;
26906 if (init_table[itpos168]) return;
26907 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26908 fra.me.file = LOCATE_parser___parser_prod;
26909 fra.me.line = 4981;
26910 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___init_aplusexpr;
26911 fra.me.has_broke = 0;
26912 fra.me.REG_size = 4;
26913 fra.me.nitni_local_ref_head = NULL;
26914 fra.me.REG[0] = NIT_NULL;
26915 fra.me.REG[1] = NIT_NULL;
26916 fra.me.REG[2] = NIT_NULL;
26917 fra.me.REG[3] = NIT_NULL;
26918 fra.me.REG[0] = p0;
26919 fra.me.REG[1] = p1;
26920 fra.me.REG[2] = p2;
26921 /* ./parser//parser_prod.nit:4981 */
26922 fra.me.REG[3] = fra.me.REG[0];
26923 /* ./parser//parser_prod.nit:4986 */
26924 CALL_parser___parser_prod___APlusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26925 /* ./parser//parser_prod.nit:4987 */
26926 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26927 if (UNTAG_Bool(REGB0)) {
26928 } else {
26929 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4987);
26930 }
26931 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26932 /* ./parser//parser_prod.nit:4988 */
26933 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26934 if (UNTAG_Bool(REGB0)) {
26935 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4988);
26936 }
26937 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26938 /* ./parser//parser_prod.nit:4989 */
26939 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26940 if (UNTAG_Bool(REGB0)) {
26941 } else {
26942 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4989);
26943 }
26944 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26945 /* ./parser//parser_prod.nit:4990 */
26946 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26947 if (UNTAG_Bool(REGB0)) {
26948 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4990);
26949 }
26950 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26951 stack_frame_head = fra.me.prev;
26952 init_table[itpos168] = 1;
26953 return;
26954 }
26955 void parser___parser_prod___APlusExpr___replace_child(val_t p0, val_t p1, val_t p2){
26956 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26957 val_t REGB0;
26958 val_t REGB1;
26959 val_t tmp;
26960 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26961 fra.me.file = LOCATE_parser___parser_prod;
26962 fra.me.line = 4993;
26963 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___replace_child;
26964 fra.me.has_broke = 0;
26965 fra.me.REG_size = 4;
26966 fra.me.nitni_local_ref_head = NULL;
26967 fra.me.REG[0] = NIT_NULL;
26968 fra.me.REG[1] = NIT_NULL;
26969 fra.me.REG[2] = NIT_NULL;
26970 fra.me.REG[3] = NIT_NULL;
26971 fra.me.REG[0] = p0;
26972 fra.me.REG[1] = p1;
26973 fra.me.REG[2] = p2;
26974 /* ./parser//parser_prod.nit:4995 */
26975 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26976 if (UNTAG_Bool(REGB0)) {
26977 } else {
26978 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4995);
26979 }
26980 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26981 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26982 if (UNTAG_Bool(REGB0)) {
26983 } else {
26984 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26985 REGB0 = REGB1;
26986 }
26987 if (UNTAG_Bool(REGB0)) {
26988 /* ./parser//parser_prod.nit:4996 */
26989 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26990 if (UNTAG_Bool(REGB0)) {
26991 } else {
26992 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26993 if (UNTAG_Bool(REGB1)) {
26994 REGB1 = TAG_Bool(false);
26995 REGB0 = REGB1;
26996 } else {
26997 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26998 REGB0 = REGB1;
26999 }
27000 }
27001 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27002 if (UNTAG_Bool(REGB0)) {
27003 /* ./parser//parser_prod.nit:4997 */
27004 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27005 if (UNTAG_Bool(REGB0)) {
27006 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4997);
27007 }
27008 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27009 /* ./parser//parser_prod.nit:4998 */
27010 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*/;
27011 if (UNTAG_Bool(REGB0)) {
27012 } else {
27013 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4998);
27014 }
27015 /* ./parser//parser_prod.nit:4999 */
27016 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27017 } else {
27018 /* ./parser//parser_prod.nit:5001 */
27019 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5001);
27020 }
27021 /* ./parser//parser_prod.nit:5003 */
27022 goto label1;
27023 }
27024 /* ./parser//parser_prod.nit:5005 */
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, 5005);
27029 }
27030 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27031 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27032 if (UNTAG_Bool(REGB0)) {
27033 } else {
27034 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27035 REGB0 = REGB1;
27036 }
27037 if (UNTAG_Bool(REGB0)) {
27038 /* ./parser//parser_prod.nit:5006 */
27039 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27040 if (UNTAG_Bool(REGB0)) {
27041 } else {
27042 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27043 if (UNTAG_Bool(REGB1)) {
27044 REGB1 = TAG_Bool(false);
27045 REGB0 = REGB1;
27046 } else {
27047 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27048 REGB0 = REGB1;
27049 }
27050 }
27051 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27052 if (UNTAG_Bool(REGB0)) {
27053 /* ./parser//parser_prod.nit:5007 */
27054 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27055 if (UNTAG_Bool(REGB0)) {
27056 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5007);
27057 }
27058 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27059 /* ./parser//parser_prod.nit:5008 */
27060 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*/;
27061 if (UNTAG_Bool(REGB0)) {
27062 } else {
27063 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5008);
27064 }
27065 /* ./parser//parser_prod.nit:5009 */
27066 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
27067 } else {
27068 /* ./parser//parser_prod.nit:5011 */
27069 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5011);
27070 }
27071 /* ./parser//parser_prod.nit:5013 */
27072 goto label1;
27073 }
27074 label1: while(0);
27075 stack_frame_head = fra.me.prev;
27076 return;
27077 }
27078 void parser___parser_prod___APlusExpr___visit_all(val_t p0, val_t p1){
27079 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27080 val_t REGB0;
27081 val_t tmp;
27082 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27083 fra.me.file = LOCATE_parser___parser_prod;
27084 fra.me.line = 5017;
27085 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___visit_all;
27086 fra.me.has_broke = 0;
27087 fra.me.REG_size = 3;
27088 fra.me.nitni_local_ref_head = NULL;
27089 fra.me.REG[0] = NIT_NULL;
27090 fra.me.REG[1] = NIT_NULL;
27091 fra.me.REG[2] = NIT_NULL;
27092 fra.me.REG[0] = p0;
27093 fra.me.REG[1] = p1;
27094 /* ./parser//parser_prod.nit:5019 */
27095 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27096 if (UNTAG_Bool(REGB0)) {
27097 } else {
27098 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5019);
27099 }
27100 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27101 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27102 /* ./parser//parser_prod.nit:5020 */
27103 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27104 if (UNTAG_Bool(REGB0)) {
27105 } else {
27106 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5020);
27107 }
27108 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27109 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27110 stack_frame_head = fra.me.prev;
27111 return;
27112 }
27113 void parser___parser_prod___AMinusExpr___empty_init(val_t p0, int* init_table){
27114 int itpos169 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusExpr].i;
27115 struct {struct stack_frame_t me;} fra;
27116 val_t tmp;
27117 if (init_table[itpos169]) return;
27118 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27119 fra.me.file = LOCATE_parser___parser_prod;
27120 fra.me.line = 5024;
27121 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___empty_init;
27122 fra.me.has_broke = 0;
27123 fra.me.REG_size = 1;
27124 fra.me.nitni_local_ref_head = NULL;
27125 fra.me.REG[0] = NIT_NULL;
27126 fra.me.REG[0] = p0;
27127 stack_frame_head = fra.me.prev;
27128 init_table[itpos169] = 1;
27129 return;
27130 }
27131 void parser___parser_prod___AMinusExpr___init_aminusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27132 int itpos170 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusExpr].i;
27133 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27134 val_t REGB0;
27135 val_t tmp;
27136 if (init_table[itpos170]) return;
27137 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27138 fra.me.file = LOCATE_parser___parser_prod;
27139 fra.me.line = 5026;
27140 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___init_aminusexpr;
27141 fra.me.has_broke = 0;
27142 fra.me.REG_size = 4;
27143 fra.me.nitni_local_ref_head = NULL;
27144 fra.me.REG[0] = NIT_NULL;
27145 fra.me.REG[1] = NIT_NULL;
27146 fra.me.REG[2] = NIT_NULL;
27147 fra.me.REG[3] = NIT_NULL;
27148 fra.me.REG[0] = p0;
27149 fra.me.REG[1] = p1;
27150 fra.me.REG[2] = p2;
27151 /* ./parser//parser_prod.nit:5026 */
27152 fra.me.REG[3] = fra.me.REG[0];
27153 /* ./parser//parser_prod.nit:5031 */
27154 CALL_parser___parser_prod___AMinusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27155 /* ./parser//parser_prod.nit:5032 */
27156 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27157 if (UNTAG_Bool(REGB0)) {
27158 } else {
27159 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5032);
27160 }
27161 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27162 /* ./parser//parser_prod.nit:5033 */
27163 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27164 if (UNTAG_Bool(REGB0)) {
27165 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5033);
27166 }
27167 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27168 /* ./parser//parser_prod.nit:5034 */
27169 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27170 if (UNTAG_Bool(REGB0)) {
27171 } else {
27172 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5034);
27173 }
27174 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
27175 /* ./parser//parser_prod.nit:5035 */
27176 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27177 if (UNTAG_Bool(REGB0)) {
27178 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5035);
27179 }
27180 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27181 stack_frame_head = fra.me.prev;
27182 init_table[itpos170] = 1;
27183 return;
27184 }
27185 void parser___parser_prod___AMinusExpr___replace_child(val_t p0, val_t p1, val_t p2){
27186 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27187 val_t REGB0;
27188 val_t REGB1;
27189 val_t tmp;
27190 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27191 fra.me.file = LOCATE_parser___parser_prod;
27192 fra.me.line = 5038;
27193 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___replace_child;
27194 fra.me.has_broke = 0;
27195 fra.me.REG_size = 4;
27196 fra.me.nitni_local_ref_head = NULL;
27197 fra.me.REG[0] = NIT_NULL;
27198 fra.me.REG[1] = NIT_NULL;
27199 fra.me.REG[2] = NIT_NULL;
27200 fra.me.REG[3] = NIT_NULL;
27201 fra.me.REG[0] = p0;
27202 fra.me.REG[1] = p1;
27203 fra.me.REG[2] = p2;
27204 /* ./parser//parser_prod.nit:5040 */
27205 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27206 if (UNTAG_Bool(REGB0)) {
27207 } else {
27208 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5040);
27209 }
27210 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27211 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27212 if (UNTAG_Bool(REGB0)) {
27213 } else {
27214 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27215 REGB0 = REGB1;
27216 }
27217 if (UNTAG_Bool(REGB0)) {
27218 /* ./parser//parser_prod.nit:5041 */
27219 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27220 if (UNTAG_Bool(REGB0)) {
27221 } else {
27222 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27223 if (UNTAG_Bool(REGB1)) {
27224 REGB1 = TAG_Bool(false);
27225 REGB0 = REGB1;
27226 } else {
27227 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27228 REGB0 = REGB1;
27229 }
27230 }
27231 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27232 if (UNTAG_Bool(REGB0)) {
27233 /* ./parser//parser_prod.nit:5042 */
27234 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27235 if (UNTAG_Bool(REGB0)) {
27236 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5042);
27237 }
27238 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27239 /* ./parser//parser_prod.nit:5043 */
27240 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*/;
27241 if (UNTAG_Bool(REGB0)) {
27242 } else {
27243 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5043);
27244 }
27245 /* ./parser//parser_prod.nit:5044 */
27246 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27247 } else {
27248 /* ./parser//parser_prod.nit:5046 */
27249 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5046);
27250 }
27251 /* ./parser//parser_prod.nit:5048 */
27252 goto label1;
27253 }
27254 /* ./parser//parser_prod.nit:5050 */
27255 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27256 if (UNTAG_Bool(REGB0)) {
27257 } else {
27258 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5050);
27259 }
27260 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27261 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27262 if (UNTAG_Bool(REGB0)) {
27263 } else {
27264 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27265 REGB0 = REGB1;
27266 }
27267 if (UNTAG_Bool(REGB0)) {
27268 /* ./parser//parser_prod.nit:5051 */
27269 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27270 if (UNTAG_Bool(REGB0)) {
27271 } else {
27272 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27273 if (UNTAG_Bool(REGB1)) {
27274 REGB1 = TAG_Bool(false);
27275 REGB0 = REGB1;
27276 } else {
27277 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27278 REGB0 = REGB1;
27279 }
27280 }
27281 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27282 if (UNTAG_Bool(REGB0)) {
27283 /* ./parser//parser_prod.nit:5052 */
27284 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27285 if (UNTAG_Bool(REGB0)) {
27286 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5052);
27287 }
27288 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27289 /* ./parser//parser_prod.nit:5053 */
27290 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*/;
27291 if (UNTAG_Bool(REGB0)) {
27292 } else {
27293 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5053);
27294 }
27295 /* ./parser//parser_prod.nit:5054 */
27296 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
27297 } else {
27298 /* ./parser//parser_prod.nit:5056 */
27299 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5056);
27300 }
27301 /* ./parser//parser_prod.nit:5058 */
27302 goto label1;
27303 }
27304 label1: while(0);
27305 stack_frame_head = fra.me.prev;
27306 return;
27307 }
27308 void parser___parser_prod___AMinusExpr___visit_all(val_t p0, val_t p1){
27309 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27310 val_t REGB0;
27311 val_t tmp;
27312 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27313 fra.me.file = LOCATE_parser___parser_prod;
27314 fra.me.line = 5062;
27315 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___visit_all;
27316 fra.me.has_broke = 0;
27317 fra.me.REG_size = 3;
27318 fra.me.nitni_local_ref_head = NULL;
27319 fra.me.REG[0] = NIT_NULL;
27320 fra.me.REG[1] = NIT_NULL;
27321 fra.me.REG[2] = NIT_NULL;
27322 fra.me.REG[0] = p0;
27323 fra.me.REG[1] = p1;
27324 /* ./parser//parser_prod.nit:5064 */
27325 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27326 if (UNTAG_Bool(REGB0)) {
27327 } else {
27328 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5064);
27329 }
27330 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27331 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27332 /* ./parser//parser_prod.nit:5065 */
27333 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27334 if (UNTAG_Bool(REGB0)) {
27335 } else {
27336 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5065);
27337 }
27338 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27339 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27340 stack_frame_head = fra.me.prev;
27341 return;
27342 }
27343 void parser___parser_prod___AStarshipExpr___empty_init(val_t p0, int* init_table){
27344 int itpos171 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipExpr].i;
27345 struct {struct stack_frame_t me;} fra;
27346 val_t tmp;
27347 if (init_table[itpos171]) return;
27348 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27349 fra.me.file = LOCATE_parser___parser_prod;
27350 fra.me.line = 5069;
27351 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___empty_init;
27352 fra.me.has_broke = 0;
27353 fra.me.REG_size = 1;
27354 fra.me.nitni_local_ref_head = NULL;
27355 fra.me.REG[0] = NIT_NULL;
27356 fra.me.REG[0] = p0;
27357 stack_frame_head = fra.me.prev;
27358 init_table[itpos171] = 1;
27359 return;
27360 }
27361 void parser___parser_prod___AStarshipExpr___init_astarshipexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27362 int itpos172 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipExpr].i;
27363 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27364 val_t REGB0;
27365 val_t tmp;
27366 if (init_table[itpos172]) return;
27367 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27368 fra.me.file = LOCATE_parser___parser_prod;
27369 fra.me.line = 5071;
27370 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___init_astarshipexpr;
27371 fra.me.has_broke = 0;
27372 fra.me.REG_size = 4;
27373 fra.me.nitni_local_ref_head = NULL;
27374 fra.me.REG[0] = NIT_NULL;
27375 fra.me.REG[1] = NIT_NULL;
27376 fra.me.REG[2] = NIT_NULL;
27377 fra.me.REG[3] = NIT_NULL;
27378 fra.me.REG[0] = p0;
27379 fra.me.REG[1] = p1;
27380 fra.me.REG[2] = p2;
27381 /* ./parser//parser_prod.nit:5071 */
27382 fra.me.REG[3] = fra.me.REG[0];
27383 /* ./parser//parser_prod.nit:5076 */
27384 CALL_parser___parser_prod___AStarshipExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27385 /* ./parser//parser_prod.nit:5077 */
27386 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27387 if (UNTAG_Bool(REGB0)) {
27388 } else {
27389 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5077);
27390 }
27391 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27392 /* ./parser//parser_prod.nit:5078 */
27393 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27394 if (UNTAG_Bool(REGB0)) {
27395 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5078);
27396 }
27397 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27398 /* ./parser//parser_prod.nit:5079 */
27399 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27400 if (UNTAG_Bool(REGB0)) {
27401 } else {
27402 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5079);
27403 }
27404 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
27405 /* ./parser//parser_prod.nit:5080 */
27406 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27407 if (UNTAG_Bool(REGB0)) {
27408 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5080);
27409 }
27410 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27411 stack_frame_head = fra.me.prev;
27412 init_table[itpos172] = 1;
27413 return;
27414 }
27415 void parser___parser_prod___AStarshipExpr___replace_child(val_t p0, val_t p1, val_t p2){
27416 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27417 val_t REGB0;
27418 val_t REGB1;
27419 val_t tmp;
27420 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27421 fra.me.file = LOCATE_parser___parser_prod;
27422 fra.me.line = 5083;
27423 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___replace_child;
27424 fra.me.has_broke = 0;
27425 fra.me.REG_size = 4;
27426 fra.me.nitni_local_ref_head = NULL;
27427 fra.me.REG[0] = NIT_NULL;
27428 fra.me.REG[1] = NIT_NULL;
27429 fra.me.REG[2] = NIT_NULL;
27430 fra.me.REG[3] = NIT_NULL;
27431 fra.me.REG[0] = p0;
27432 fra.me.REG[1] = p1;
27433 fra.me.REG[2] = p2;
27434 /* ./parser//parser_prod.nit:5085 */
27435 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27436 if (UNTAG_Bool(REGB0)) {
27437 } else {
27438 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5085);
27439 }
27440 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27441 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27442 if (UNTAG_Bool(REGB0)) {
27443 } else {
27444 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27445 REGB0 = REGB1;
27446 }
27447 if (UNTAG_Bool(REGB0)) {
27448 /* ./parser//parser_prod.nit:5086 */
27449 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27450 if (UNTAG_Bool(REGB0)) {
27451 } else {
27452 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27453 if (UNTAG_Bool(REGB1)) {
27454 REGB1 = TAG_Bool(false);
27455 REGB0 = REGB1;
27456 } else {
27457 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27458 REGB0 = REGB1;
27459 }
27460 }
27461 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27462 if (UNTAG_Bool(REGB0)) {
27463 /* ./parser//parser_prod.nit:5087 */
27464 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27465 if (UNTAG_Bool(REGB0)) {
27466 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5087);
27467 }
27468 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27469 /* ./parser//parser_prod.nit:5088 */
27470 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*/;
27471 if (UNTAG_Bool(REGB0)) {
27472 } else {
27473 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5088);
27474 }
27475 /* ./parser//parser_prod.nit:5089 */
27476 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27477 } else {
27478 /* ./parser//parser_prod.nit:5091 */
27479 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5091);
27480 }
27481 /* ./parser//parser_prod.nit:5093 */
27482 goto label1;
27483 }
27484 /* ./parser//parser_prod.nit:5095 */
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, 5095);
27489 }
27490 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27491 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27492 if (UNTAG_Bool(REGB0)) {
27493 } else {
27494 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27495 REGB0 = REGB1;
27496 }
27497 if (UNTAG_Bool(REGB0)) {
27498 /* ./parser//parser_prod.nit:5096 */
27499 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27500 if (UNTAG_Bool(REGB0)) {
27501 } else {
27502 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27503 if (UNTAG_Bool(REGB1)) {
27504 REGB1 = TAG_Bool(false);
27505 REGB0 = REGB1;
27506 } else {
27507 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27508 REGB0 = REGB1;
27509 }
27510 }
27511 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27512 if (UNTAG_Bool(REGB0)) {
27513 /* ./parser//parser_prod.nit:5097 */
27514 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27515 if (UNTAG_Bool(REGB0)) {
27516 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5097);
27517 }
27518 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27519 /* ./parser//parser_prod.nit:5098 */
27520 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*/;
27521 if (UNTAG_Bool(REGB0)) {
27522 } else {
27523 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5098);
27524 }
27525 /* ./parser//parser_prod.nit:5099 */
27526 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
27527 } else {
27528 /* ./parser//parser_prod.nit:5101 */
27529 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5101);
27530 }
27531 /* ./parser//parser_prod.nit:5103 */
27532 goto label1;
27533 }
27534 label1: while(0);
27535 stack_frame_head = fra.me.prev;
27536 return;
27537 }
27538 void parser___parser_prod___AStarshipExpr___visit_all(val_t p0, val_t p1){
27539 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27540 val_t REGB0;
27541 val_t tmp;
27542 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27543 fra.me.file = LOCATE_parser___parser_prod;
27544 fra.me.line = 5107;
27545 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___visit_all;
27546 fra.me.has_broke = 0;
27547 fra.me.REG_size = 3;
27548 fra.me.nitni_local_ref_head = NULL;
27549 fra.me.REG[0] = NIT_NULL;
27550 fra.me.REG[1] = NIT_NULL;
27551 fra.me.REG[2] = NIT_NULL;
27552 fra.me.REG[0] = p0;
27553 fra.me.REG[1] = p1;
27554 /* ./parser//parser_prod.nit:5109 */
27555 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27556 if (UNTAG_Bool(REGB0)) {
27557 } else {
27558 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5109);
27559 }
27560 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27561 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27562 /* ./parser//parser_prod.nit:5110 */
27563 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27564 if (UNTAG_Bool(REGB0)) {
27565 } else {
27566 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5110);
27567 }
27568 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27569 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27570 stack_frame_head = fra.me.prev;
27571 return;
27572 }
27573 void parser___parser_prod___AStarExpr___empty_init(val_t p0, int* init_table){
27574 int itpos173 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarExpr].i;
27575 struct {struct stack_frame_t me;} fra;
27576 val_t tmp;
27577 if (init_table[itpos173]) return;
27578 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27579 fra.me.file = LOCATE_parser___parser_prod;
27580 fra.me.line = 5114;
27581 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___empty_init;
27582 fra.me.has_broke = 0;
27583 fra.me.REG_size = 1;
27584 fra.me.nitni_local_ref_head = NULL;
27585 fra.me.REG[0] = NIT_NULL;
27586 fra.me.REG[0] = p0;
27587 stack_frame_head = fra.me.prev;
27588 init_table[itpos173] = 1;
27589 return;
27590 }
27591 void parser___parser_prod___AStarExpr___init_astarexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27592 int itpos174 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarExpr].i;
27593 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27594 val_t REGB0;
27595 val_t tmp;
27596 if (init_table[itpos174]) return;
27597 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27598 fra.me.file = LOCATE_parser___parser_prod;
27599 fra.me.line = 5116;
27600 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___init_astarexpr;
27601 fra.me.has_broke = 0;
27602 fra.me.REG_size = 4;
27603 fra.me.nitni_local_ref_head = NULL;
27604 fra.me.REG[0] = NIT_NULL;
27605 fra.me.REG[1] = NIT_NULL;
27606 fra.me.REG[2] = NIT_NULL;
27607 fra.me.REG[3] = NIT_NULL;
27608 fra.me.REG[0] = p0;
27609 fra.me.REG[1] = p1;
27610 fra.me.REG[2] = p2;
27611 /* ./parser//parser_prod.nit:5116 */
27612 fra.me.REG[3] = fra.me.REG[0];
27613 /* ./parser//parser_prod.nit:5121 */
27614 CALL_parser___parser_prod___AStarExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27615 /* ./parser//parser_prod.nit:5122 */
27616 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27617 if (UNTAG_Bool(REGB0)) {
27618 } else {
27619 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5122);
27620 }
27621 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27622 /* ./parser//parser_prod.nit:5123 */
27623 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27624 if (UNTAG_Bool(REGB0)) {
27625 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5123);
27626 }
27627 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27628 /* ./parser//parser_prod.nit:5124 */
27629 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27630 if (UNTAG_Bool(REGB0)) {
27631 } else {
27632 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5124);
27633 }
27634 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
27635 /* ./parser//parser_prod.nit:5125 */
27636 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27637 if (UNTAG_Bool(REGB0)) {
27638 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5125);
27639 }
27640 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27641 stack_frame_head = fra.me.prev;
27642 init_table[itpos174] = 1;
27643 return;
27644 }
27645 void parser___parser_prod___AStarExpr___replace_child(val_t p0, val_t p1, val_t p2){
27646 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27647 val_t REGB0;
27648 val_t REGB1;
27649 val_t tmp;
27650 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27651 fra.me.file = LOCATE_parser___parser_prod;
27652 fra.me.line = 5128;
27653 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___replace_child;
27654 fra.me.has_broke = 0;
27655 fra.me.REG_size = 4;
27656 fra.me.nitni_local_ref_head = NULL;
27657 fra.me.REG[0] = NIT_NULL;
27658 fra.me.REG[1] = NIT_NULL;
27659 fra.me.REG[2] = NIT_NULL;
27660 fra.me.REG[3] = NIT_NULL;
27661 fra.me.REG[0] = p0;
27662 fra.me.REG[1] = p1;
27663 fra.me.REG[2] = p2;
27664 /* ./parser//parser_prod.nit:5130 */
27665 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27666 if (UNTAG_Bool(REGB0)) {
27667 } else {
27668 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5130);
27669 }
27670 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27671 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27672 if (UNTAG_Bool(REGB0)) {
27673 } else {
27674 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27675 REGB0 = REGB1;
27676 }
27677 if (UNTAG_Bool(REGB0)) {
27678 /* ./parser//parser_prod.nit:5131 */
27679 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27680 if (UNTAG_Bool(REGB0)) {
27681 } else {
27682 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27683 if (UNTAG_Bool(REGB1)) {
27684 REGB1 = TAG_Bool(false);
27685 REGB0 = REGB1;
27686 } else {
27687 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27688 REGB0 = REGB1;
27689 }
27690 }
27691 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27692 if (UNTAG_Bool(REGB0)) {
27693 /* ./parser//parser_prod.nit:5132 */
27694 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27695 if (UNTAG_Bool(REGB0)) {
27696 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5132);
27697 }
27698 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27699 /* ./parser//parser_prod.nit:5133 */
27700 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*/;
27701 if (UNTAG_Bool(REGB0)) {
27702 } else {
27703 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5133);
27704 }
27705 /* ./parser//parser_prod.nit:5134 */
27706 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27707 } else {
27708 /* ./parser//parser_prod.nit:5136 */
27709 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5136);
27710 }
27711 /* ./parser//parser_prod.nit:5138 */
27712 goto label1;
27713 }
27714 /* ./parser//parser_prod.nit:5140 */
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, 5140);
27719 }
27720 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27721 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27722 if (UNTAG_Bool(REGB0)) {
27723 } else {
27724 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27725 REGB0 = REGB1;
27726 }
27727 if (UNTAG_Bool(REGB0)) {
27728 /* ./parser//parser_prod.nit:5141 */
27729 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27730 if (UNTAG_Bool(REGB0)) {
27731 } else {
27732 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27733 if (UNTAG_Bool(REGB1)) {
27734 REGB1 = TAG_Bool(false);
27735 REGB0 = REGB1;
27736 } else {
27737 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27738 REGB0 = REGB1;
27739 }
27740 }
27741 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27742 if (UNTAG_Bool(REGB0)) {
27743 /* ./parser//parser_prod.nit:5142 */
27744 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27745 if (UNTAG_Bool(REGB0)) {
27746 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5142);
27747 }
27748 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27749 /* ./parser//parser_prod.nit:5143 */
27750 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*/;
27751 if (UNTAG_Bool(REGB0)) {
27752 } else {
27753 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5143);
27754 }
27755 /* ./parser//parser_prod.nit:5144 */
27756 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
27757 } else {
27758 /* ./parser//parser_prod.nit:5146 */
27759 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5146);
27760 }
27761 /* ./parser//parser_prod.nit:5148 */
27762 goto label1;
27763 }
27764 label1: while(0);
27765 stack_frame_head = fra.me.prev;
27766 return;
27767 }
27768 void parser___parser_prod___AStarExpr___visit_all(val_t p0, val_t p1){
27769 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27770 val_t REGB0;
27771 val_t tmp;
27772 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27773 fra.me.file = LOCATE_parser___parser_prod;
27774 fra.me.line = 5152;
27775 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___visit_all;
27776 fra.me.has_broke = 0;
27777 fra.me.REG_size = 3;
27778 fra.me.nitni_local_ref_head = NULL;
27779 fra.me.REG[0] = NIT_NULL;
27780 fra.me.REG[1] = NIT_NULL;
27781 fra.me.REG[2] = NIT_NULL;
27782 fra.me.REG[0] = p0;
27783 fra.me.REG[1] = p1;
27784 /* ./parser//parser_prod.nit:5154 */
27785 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27786 if (UNTAG_Bool(REGB0)) {
27787 } else {
27788 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5154);
27789 }
27790 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27791 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27792 /* ./parser//parser_prod.nit:5155 */
27793 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27794 if (UNTAG_Bool(REGB0)) {
27795 } else {
27796 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5155);
27797 }
27798 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27799 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27800 stack_frame_head = fra.me.prev;
27801 return;
27802 }
27803 void parser___parser_prod___ASlashExpr___empty_init(val_t p0, int* init_table){
27804 int itpos175 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashExpr].i;
27805 struct {struct stack_frame_t me;} fra;
27806 val_t tmp;
27807 if (init_table[itpos175]) return;
27808 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27809 fra.me.file = LOCATE_parser___parser_prod;
27810 fra.me.line = 5159;
27811 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___empty_init;
27812 fra.me.has_broke = 0;
27813 fra.me.REG_size = 1;
27814 fra.me.nitni_local_ref_head = NULL;
27815 fra.me.REG[0] = NIT_NULL;
27816 fra.me.REG[0] = p0;
27817 stack_frame_head = fra.me.prev;
27818 init_table[itpos175] = 1;
27819 return;
27820 }
27821 void parser___parser_prod___ASlashExpr___init_aslashexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27822 int itpos176 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashExpr].i;
27823 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27824 val_t REGB0;
27825 val_t tmp;
27826 if (init_table[itpos176]) return;
27827 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27828 fra.me.file = LOCATE_parser___parser_prod;
27829 fra.me.line = 5161;
27830 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___init_aslashexpr;
27831 fra.me.has_broke = 0;
27832 fra.me.REG_size = 4;
27833 fra.me.nitni_local_ref_head = NULL;
27834 fra.me.REG[0] = NIT_NULL;
27835 fra.me.REG[1] = NIT_NULL;
27836 fra.me.REG[2] = NIT_NULL;
27837 fra.me.REG[3] = NIT_NULL;
27838 fra.me.REG[0] = p0;
27839 fra.me.REG[1] = p1;
27840 fra.me.REG[2] = p2;
27841 /* ./parser//parser_prod.nit:5161 */
27842 fra.me.REG[3] = fra.me.REG[0];
27843 /* ./parser//parser_prod.nit:5166 */
27844 CALL_parser___parser_prod___ASlashExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27845 /* ./parser//parser_prod.nit:5167 */
27846 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27847 if (UNTAG_Bool(REGB0)) {
27848 } else {
27849 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5167);
27850 }
27851 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27852 /* ./parser//parser_prod.nit:5168 */
27853 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27854 if (UNTAG_Bool(REGB0)) {
27855 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5168);
27856 }
27857 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27858 /* ./parser//parser_prod.nit:5169 */
27859 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27860 if (UNTAG_Bool(REGB0)) {
27861 } else {
27862 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5169);
27863 }
27864 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
27865 /* ./parser//parser_prod.nit:5170 */
27866 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27867 if (UNTAG_Bool(REGB0)) {
27868 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5170);
27869 }
27870 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27871 stack_frame_head = fra.me.prev;
27872 init_table[itpos176] = 1;
27873 return;
27874 }
27875 void parser___parser_prod___ASlashExpr___replace_child(val_t p0, val_t p1, val_t p2){
27876 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27877 val_t REGB0;
27878 val_t REGB1;
27879 val_t tmp;
27880 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27881 fra.me.file = LOCATE_parser___parser_prod;
27882 fra.me.line = 5173;
27883 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___replace_child;
27884 fra.me.has_broke = 0;
27885 fra.me.REG_size = 4;
27886 fra.me.nitni_local_ref_head = NULL;
27887 fra.me.REG[0] = NIT_NULL;
27888 fra.me.REG[1] = NIT_NULL;
27889 fra.me.REG[2] = NIT_NULL;
27890 fra.me.REG[3] = NIT_NULL;
27891 fra.me.REG[0] = p0;
27892 fra.me.REG[1] = p1;
27893 fra.me.REG[2] = p2;
27894 /* ./parser//parser_prod.nit:5175 */
27895 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27896 if (UNTAG_Bool(REGB0)) {
27897 } else {
27898 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5175);
27899 }
27900 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27901 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27902 if (UNTAG_Bool(REGB0)) {
27903 } else {
27904 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27905 REGB0 = REGB1;
27906 }
27907 if (UNTAG_Bool(REGB0)) {
27908 /* ./parser//parser_prod.nit:5176 */
27909 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27910 if (UNTAG_Bool(REGB0)) {
27911 } else {
27912 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27913 if (UNTAG_Bool(REGB1)) {
27914 REGB1 = TAG_Bool(false);
27915 REGB0 = REGB1;
27916 } else {
27917 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27918 REGB0 = REGB1;
27919 }
27920 }
27921 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27922 if (UNTAG_Bool(REGB0)) {
27923 /* ./parser//parser_prod.nit:5177 */
27924 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27925 if (UNTAG_Bool(REGB0)) {
27926 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5177);
27927 }
27928 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27929 /* ./parser//parser_prod.nit:5178 */
27930 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*/;
27931 if (UNTAG_Bool(REGB0)) {
27932 } else {
27933 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5178);
27934 }
27935 /* ./parser//parser_prod.nit:5179 */
27936 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27937 } else {
27938 /* ./parser//parser_prod.nit:5181 */
27939 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5181);
27940 }
27941 /* ./parser//parser_prod.nit:5183 */
27942 goto label1;
27943 }
27944 /* ./parser//parser_prod.nit:5185 */
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, 5185);
27949 }
27950 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27951 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27952 if (UNTAG_Bool(REGB0)) {
27953 } else {
27954 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27955 REGB0 = REGB1;
27956 }
27957 if (UNTAG_Bool(REGB0)) {
27958 /* ./parser//parser_prod.nit:5186 */
27959 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27960 if (UNTAG_Bool(REGB0)) {
27961 } else {
27962 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27963 if (UNTAG_Bool(REGB1)) {
27964 REGB1 = TAG_Bool(false);
27965 REGB0 = REGB1;
27966 } else {
27967 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27968 REGB0 = REGB1;
27969 }
27970 }
27971 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27972 if (UNTAG_Bool(REGB0)) {
27973 /* ./parser//parser_prod.nit:5187 */
27974 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27975 if (UNTAG_Bool(REGB0)) {
27976 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5187);
27977 }
27978 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27979 /* ./parser//parser_prod.nit:5188 */
27980 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*/;
27981 if (UNTAG_Bool(REGB0)) {
27982 } else {
27983 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5188);
27984 }
27985 /* ./parser//parser_prod.nit:5189 */
27986 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
27987 } else {
27988 /* ./parser//parser_prod.nit:5191 */
27989 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5191);
27990 }
27991 /* ./parser//parser_prod.nit:5193 */
27992 goto label1;
27993 }
27994 label1: while(0);
27995 stack_frame_head = fra.me.prev;
27996 return;
27997 }
27998 void parser___parser_prod___ASlashExpr___visit_all(val_t p0, val_t p1){
27999 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28000 val_t REGB0;
28001 val_t tmp;
28002 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28003 fra.me.file = LOCATE_parser___parser_prod;
28004 fra.me.line = 5197;
28005 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___visit_all;
28006 fra.me.has_broke = 0;
28007 fra.me.REG_size = 3;
28008 fra.me.nitni_local_ref_head = NULL;
28009 fra.me.REG[0] = NIT_NULL;
28010 fra.me.REG[1] = NIT_NULL;
28011 fra.me.REG[2] = NIT_NULL;
28012 fra.me.REG[0] = p0;
28013 fra.me.REG[1] = p1;
28014 /* ./parser//parser_prod.nit:5199 */
28015 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28016 if (UNTAG_Bool(REGB0)) {
28017 } else {
28018 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5199);
28019 }
28020 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28021 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28022 /* ./parser//parser_prod.nit:5200 */
28023 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28024 if (UNTAG_Bool(REGB0)) {
28025 } else {
28026 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5200);
28027 }
28028 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28029 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28030 stack_frame_head = fra.me.prev;
28031 return;
28032 }
28033 void parser___parser_prod___APercentExpr___empty_init(val_t p0, int* init_table){
28034 int itpos177 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentExpr].i;
28035 struct {struct stack_frame_t me;} fra;
28036 val_t tmp;
28037 if (init_table[itpos177]) return;
28038 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28039 fra.me.file = LOCATE_parser___parser_prod;
28040 fra.me.line = 5204;
28041 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___empty_init;
28042 fra.me.has_broke = 0;
28043 fra.me.REG_size = 1;
28044 fra.me.nitni_local_ref_head = NULL;
28045 fra.me.REG[0] = NIT_NULL;
28046 fra.me.REG[0] = p0;
28047 stack_frame_head = fra.me.prev;
28048 init_table[itpos177] = 1;
28049 return;
28050 }
28051 void parser___parser_prod___APercentExpr___init_apercentexpr(val_t p0, val_t p1, val_t p2, int* init_table){
28052 int itpos178 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentExpr].i;
28053 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28054 val_t REGB0;
28055 val_t tmp;
28056 if (init_table[itpos178]) return;
28057 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28058 fra.me.file = LOCATE_parser___parser_prod;
28059 fra.me.line = 5206;
28060 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___init_apercentexpr;
28061 fra.me.has_broke = 0;
28062 fra.me.REG_size = 4;
28063 fra.me.nitni_local_ref_head = NULL;
28064 fra.me.REG[0] = NIT_NULL;
28065 fra.me.REG[1] = NIT_NULL;
28066 fra.me.REG[2] = NIT_NULL;
28067 fra.me.REG[3] = NIT_NULL;
28068 fra.me.REG[0] = p0;
28069 fra.me.REG[1] = p1;
28070 fra.me.REG[2] = p2;
28071 /* ./parser//parser_prod.nit:5206 */
28072 fra.me.REG[3] = fra.me.REG[0];
28073 /* ./parser//parser_prod.nit:5211 */
28074 CALL_parser___parser_prod___APercentExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
28075 /* ./parser//parser_prod.nit:5212 */
28076 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28077 if (UNTAG_Bool(REGB0)) {
28078 } else {
28079 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5212);
28080 }
28081 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
28082 /* ./parser//parser_prod.nit:5213 */
28083 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28084 if (UNTAG_Bool(REGB0)) {
28085 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5213);
28086 }
28087 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28088 /* ./parser//parser_prod.nit:5214 */
28089 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28090 if (UNTAG_Bool(REGB0)) {
28091 } else {
28092 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5214);
28093 }
28094 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
28095 /* ./parser//parser_prod.nit:5215 */
28096 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28097 if (UNTAG_Bool(REGB0)) {
28098 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5215);
28099 }
28100 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
28101 stack_frame_head = fra.me.prev;
28102 init_table[itpos178] = 1;
28103 return;
28104 }
28105 void parser___parser_prod___APercentExpr___replace_child(val_t p0, val_t p1, val_t p2){
28106 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28107 val_t REGB0;
28108 val_t REGB1;
28109 val_t tmp;
28110 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28111 fra.me.file = LOCATE_parser___parser_prod;
28112 fra.me.line = 5218;
28113 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___replace_child;
28114 fra.me.has_broke = 0;
28115 fra.me.REG_size = 4;
28116 fra.me.nitni_local_ref_head = NULL;
28117 fra.me.REG[0] = NIT_NULL;
28118 fra.me.REG[1] = NIT_NULL;
28119 fra.me.REG[2] = NIT_NULL;
28120 fra.me.REG[3] = NIT_NULL;
28121 fra.me.REG[0] = p0;
28122 fra.me.REG[1] = p1;
28123 fra.me.REG[2] = p2;
28124 /* ./parser//parser_prod.nit:5220 */
28125 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28126 if (UNTAG_Bool(REGB0)) {
28127 } else {
28128 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5220);
28129 }
28130 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28131 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28132 if (UNTAG_Bool(REGB0)) {
28133 } else {
28134 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28135 REGB0 = REGB1;
28136 }
28137 if (UNTAG_Bool(REGB0)) {
28138 /* ./parser//parser_prod.nit:5221 */
28139 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28140 if (UNTAG_Bool(REGB0)) {
28141 } else {
28142 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28143 if (UNTAG_Bool(REGB1)) {
28144 REGB1 = TAG_Bool(false);
28145 REGB0 = REGB1;
28146 } else {
28147 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28148 REGB0 = REGB1;
28149 }
28150 }
28151 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28152 if (UNTAG_Bool(REGB0)) {
28153 /* ./parser//parser_prod.nit:5222 */
28154 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28155 if (UNTAG_Bool(REGB0)) {
28156 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5222);
28157 }
28158 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28159 /* ./parser//parser_prod.nit:5223 */
28160 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*/;
28161 if (UNTAG_Bool(REGB0)) {
28162 } else {
28163 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5223);
28164 }
28165 /* ./parser//parser_prod.nit:5224 */
28166 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28167 } else {
28168 /* ./parser//parser_prod.nit:5226 */
28169 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5226);
28170 }
28171 /* ./parser//parser_prod.nit:5228 */
28172 goto label1;
28173 }
28174 /* ./parser//parser_prod.nit:5230 */
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, 5230);
28179 }
28180 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28181 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28182 if (UNTAG_Bool(REGB0)) {
28183 } else {
28184 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28185 REGB0 = REGB1;
28186 }
28187 if (UNTAG_Bool(REGB0)) {
28188 /* ./parser//parser_prod.nit:5231 */
28189 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28190 if (UNTAG_Bool(REGB0)) {
28191 } else {
28192 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28193 if (UNTAG_Bool(REGB1)) {
28194 REGB1 = TAG_Bool(false);
28195 REGB0 = REGB1;
28196 } else {
28197 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28198 REGB0 = REGB1;
28199 }
28200 }
28201 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28202 if (UNTAG_Bool(REGB0)) {
28203 /* ./parser//parser_prod.nit:5232 */
28204 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28205 if (UNTAG_Bool(REGB0)) {
28206 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5232);
28207 }
28208 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28209 /* ./parser//parser_prod.nit:5233 */
28210 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*/;
28211 if (UNTAG_Bool(REGB0)) {
28212 } else {
28213 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5233);
28214 }
28215 /* ./parser//parser_prod.nit:5234 */
28216 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
28217 } else {
28218 /* ./parser//parser_prod.nit:5236 */
28219 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5236);
28220 }
28221 /* ./parser//parser_prod.nit:5238 */
28222 goto label1;
28223 }
28224 label1: while(0);
28225 stack_frame_head = fra.me.prev;
28226 return;
28227 }
28228 void parser___parser_prod___APercentExpr___visit_all(val_t p0, val_t p1){
28229 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28230 val_t REGB0;
28231 val_t tmp;
28232 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28233 fra.me.file = LOCATE_parser___parser_prod;
28234 fra.me.line = 5242;
28235 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___visit_all;
28236 fra.me.has_broke = 0;
28237 fra.me.REG_size = 3;
28238 fra.me.nitni_local_ref_head = NULL;
28239 fra.me.REG[0] = NIT_NULL;
28240 fra.me.REG[1] = NIT_NULL;
28241 fra.me.REG[2] = NIT_NULL;
28242 fra.me.REG[0] = p0;
28243 fra.me.REG[1] = p1;
28244 /* ./parser//parser_prod.nit:5244 */
28245 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28246 if (UNTAG_Bool(REGB0)) {
28247 } else {
28248 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5244);
28249 }
28250 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28251 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28252 /* ./parser//parser_prod.nit:5245 */
28253 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28254 if (UNTAG_Bool(REGB0)) {
28255 } else {
28256 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5245);
28257 }
28258 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28259 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28260 stack_frame_head = fra.me.prev;
28261 return;
28262 }
28263 void parser___parser_prod___AUminusExpr___empty_init(val_t p0, int* init_table){
28264 int itpos179 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AUminusExpr].i;
28265 struct {struct stack_frame_t me;} fra;
28266 val_t tmp;
28267 if (init_table[itpos179]) return;
28268 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28269 fra.me.file = LOCATE_parser___parser_prod;
28270 fra.me.line = 5249;
28271 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___empty_init;
28272 fra.me.has_broke = 0;
28273 fra.me.REG_size = 1;
28274 fra.me.nitni_local_ref_head = NULL;
28275 fra.me.REG[0] = NIT_NULL;
28276 fra.me.REG[0] = p0;
28277 stack_frame_head = fra.me.prev;
28278 init_table[itpos179] = 1;
28279 return;
28280 }
28281 void parser___parser_prod___AUminusExpr___init_auminusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
28282 int itpos180 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AUminusExpr].i;
28283 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28284 val_t REGB0;
28285 val_t tmp;
28286 if (init_table[itpos180]) return;
28287 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28288 fra.me.file = LOCATE_parser___parser_prod;
28289 fra.me.line = 5251;
28290 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___init_auminusexpr;
28291 fra.me.has_broke = 0;
28292 fra.me.REG_size = 4;
28293 fra.me.nitni_local_ref_head = NULL;
28294 fra.me.REG[0] = NIT_NULL;
28295 fra.me.REG[1] = NIT_NULL;
28296 fra.me.REG[2] = NIT_NULL;
28297 fra.me.REG[3] = NIT_NULL;
28298 fra.me.REG[0] = p0;
28299 fra.me.REG[1] = p1;
28300 fra.me.REG[2] = p2;
28301 /* ./parser//parser_prod.nit:5251 */
28302 fra.me.REG[3] = fra.me.REG[0];
28303 /* ./parser//parser_prod.nit:5256 */
28304 CALL_parser___parser_prod___AUminusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
28305 /* ./parser//parser_prod.nit:5257 */
28306 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28307 if (UNTAG_Bool(REGB0)) {
28308 } else {
28309 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5257);
28310 }
28311 ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[3]) = fra.me.REG[1];
28312 /* ./parser//parser_prod.nit:5258 */
28313 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28314 if (UNTAG_Bool(REGB0)) {
28315 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5258);
28316 }
28317 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28318 /* ./parser//parser_prod.nit:5259 */
28319 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28320 if (UNTAG_Bool(REGB0)) {
28321 } else {
28322 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5259);
28323 }
28324 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
28325 /* ./parser//parser_prod.nit:5260 */
28326 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28327 if (UNTAG_Bool(REGB0)) {
28328 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5260);
28329 }
28330 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
28331 stack_frame_head = fra.me.prev;
28332 init_table[itpos180] = 1;
28333 return;
28334 }
28335 void parser___parser_prod___AUminusExpr___replace_child(val_t p0, val_t p1, val_t p2){
28336 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28337 val_t REGB0;
28338 val_t REGB1;
28339 val_t tmp;
28340 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28341 fra.me.file = LOCATE_parser___parser_prod;
28342 fra.me.line = 5263;
28343 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___replace_child;
28344 fra.me.has_broke = 0;
28345 fra.me.REG_size = 4;
28346 fra.me.nitni_local_ref_head = NULL;
28347 fra.me.REG[0] = NIT_NULL;
28348 fra.me.REG[1] = NIT_NULL;
28349 fra.me.REG[2] = NIT_NULL;
28350 fra.me.REG[3] = NIT_NULL;
28351 fra.me.REG[0] = p0;
28352 fra.me.REG[1] = p1;
28353 fra.me.REG[2] = p2;
28354 /* ./parser//parser_prod.nit:5265 */
28355 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0])!=NIT_NULL);
28356 if (UNTAG_Bool(REGB0)) {
28357 } else {
28358 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 5265);
28359 }
28360 fra.me.REG[3] = ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]);
28361 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28362 if (UNTAG_Bool(REGB0)) {
28363 } else {
28364 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28365 REGB0 = REGB1;
28366 }
28367 if (UNTAG_Bool(REGB0)) {
28368 /* ./parser//parser_prod.nit:5266 */
28369 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28370 if (UNTAG_Bool(REGB0)) {
28371 } else {
28372 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28373 if (UNTAG_Bool(REGB1)) {
28374 REGB1 = TAG_Bool(false);
28375 REGB0 = REGB1;
28376 } else {
28377 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28378 REGB0 = REGB1;
28379 }
28380 }
28381 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28382 if (UNTAG_Bool(REGB0)) {
28383 /* ./parser//parser_prod.nit:5267 */
28384 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28385 if (UNTAG_Bool(REGB0)) {
28386 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5267);
28387 }
28388 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28389 /* ./parser//parser_prod.nit:5268 */
28390 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*/;
28391 if (UNTAG_Bool(REGB0)) {
28392 } else {
28393 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5268);
28394 }
28395 /* ./parser//parser_prod.nit:5269 */
28396 ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]) = fra.me.REG[2];
28397 } else {
28398 /* ./parser//parser_prod.nit:5271 */
28399 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5271);
28400 }
28401 /* ./parser//parser_prod.nit:5273 */
28402 goto label1;
28403 }
28404 /* ./parser//parser_prod.nit:5275 */
28405 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28406 if (UNTAG_Bool(REGB0)) {
28407 } else {
28408 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5275);
28409 }
28410 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28411 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28412 if (UNTAG_Bool(REGB0)) {
28413 } else {
28414 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28415 REGB0 = REGB1;
28416 }
28417 if (UNTAG_Bool(REGB0)) {
28418 /* ./parser//parser_prod.nit:5276 */
28419 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28420 if (UNTAG_Bool(REGB0)) {
28421 } else {
28422 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28423 if (UNTAG_Bool(REGB1)) {
28424 REGB1 = TAG_Bool(false);
28425 REGB0 = REGB1;
28426 } else {
28427 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28428 REGB0 = REGB1;
28429 }
28430 }
28431 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28432 if (UNTAG_Bool(REGB0)) {
28433 /* ./parser//parser_prod.nit:5277 */
28434 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28435 if (UNTAG_Bool(REGB0)) {
28436 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5277);
28437 }
28438 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28439 /* ./parser//parser_prod.nit:5278 */
28440 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*/;
28441 if (UNTAG_Bool(REGB0)) {
28442 } else {
28443 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5278);
28444 }
28445 /* ./parser//parser_prod.nit:5279 */
28446 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28447 } else {
28448 /* ./parser//parser_prod.nit:5281 */
28449 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5281);
28450 }
28451 /* ./parser//parser_prod.nit:5283 */
28452 goto label1;
28453 }
28454 label1: while(0);
28455 stack_frame_head = fra.me.prev;
28456 return;
28457 }
28458 void parser___parser_prod___AUminusExpr___visit_all(val_t p0, val_t p1){
28459 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28460 val_t REGB0;
28461 val_t tmp;
28462 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28463 fra.me.file = LOCATE_parser___parser_prod;
28464 fra.me.line = 5287;
28465 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___visit_all;
28466 fra.me.has_broke = 0;
28467 fra.me.REG_size = 3;
28468 fra.me.nitni_local_ref_head = NULL;
28469 fra.me.REG[0] = NIT_NULL;
28470 fra.me.REG[1] = NIT_NULL;
28471 fra.me.REG[2] = NIT_NULL;
28472 fra.me.REG[0] = p0;
28473 fra.me.REG[1] = p1;
28474 /* ./parser//parser_prod.nit:5289 */
28475 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0])!=NIT_NULL);
28476 if (UNTAG_Bool(REGB0)) {
28477 } else {
28478 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 5289);
28479 }
28480 fra.me.REG[2] = ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]);
28481 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28482 /* ./parser//parser_prod.nit:5290 */
28483 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28484 if (UNTAG_Bool(REGB0)) {
28485 } else {
28486 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5290);
28487 }
28488 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28489 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28490 stack_frame_head = fra.me.prev;
28491 return;
28492 }
28493 void parser___parser_prod___ANewExpr___empty_init(val_t p0, int* init_table){
28494 int itpos181 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANewExpr].i;
28495 struct {struct stack_frame_t me;} fra;
28496 val_t tmp;
28497 if (init_table[itpos181]) return;
28498 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28499 fra.me.file = LOCATE_parser___parser_prod;
28500 fra.me.line = 5294;
28501 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___empty_init;
28502 fra.me.has_broke = 0;
28503 fra.me.REG_size = 1;
28504 fra.me.nitni_local_ref_head = NULL;
28505 fra.me.REG[0] = NIT_NULL;
28506 fra.me.REG[0] = p0;
28507 stack_frame_head = fra.me.prev;
28508 init_table[itpos181] = 1;
28509 return;
28510 }
28511 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){
28512 int itpos182 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANewExpr].i;
28513 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
28514 val_t REGB0;
28515 val_t REGB1;
28516 val_t tmp;
28517 if (init_table[itpos182]) return;
28518 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28519 fra.me.file = LOCATE_parser___parser_prod;
28520 fra.me.line = 5296;
28521 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___init_anewexpr;
28522 fra.me.has_broke = 0;
28523 fra.me.REG_size = 6;
28524 fra.me.nitni_local_ref_head = NULL;
28525 fra.me.REG[0] = NIT_NULL;
28526 fra.me.REG[1] = NIT_NULL;
28527 fra.me.REG[2] = NIT_NULL;
28528 fra.me.REG[3] = NIT_NULL;
28529 fra.me.REG[4] = NIT_NULL;
28530 fra.me.REG[5] = NIT_NULL;
28531 fra.me.REG[0] = p0;
28532 fra.me.REG[1] = p1;
28533 fra.me.REG[2] = p2;
28534 fra.me.REG[3] = p3;
28535 fra.me.REG[4] = p4;
28536 /* ./parser//parser_prod.nit:5296 */
28537 fra.me.REG[5] = fra.me.REG[0];
28538 /* ./parser//parser_prod.nit:5303 */
28539 CALL_parser___parser_prod___ANewExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
28540 /* ./parser//parser_prod.nit:5304 */
28541 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28542 if (UNTAG_Bool(REGB0)) {
28543 } else {
28544 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5304);
28545 }
28546 ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[5]) = fra.me.REG[1];
28547 /* ./parser//parser_prod.nit:5305 */
28548 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28549 if (UNTAG_Bool(REGB0)) {
28550 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5305);
28551 }
28552 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
28553 /* ./parser//parser_prod.nit:5306 */
28554 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28555 if (UNTAG_Bool(REGB0)) {
28556 } else {
28557 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5306);
28558 }
28559 ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[5]) = fra.me.REG[2];
28560 /* ./parser//parser_prod.nit:5307 */
28561 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28562 if (UNTAG_Bool(REGB0)) {
28563 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5307);
28564 }
28565 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
28566 /* ./parser//parser_prod.nit:5308 */
28567 ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[5]) = fra.me.REG[3];
28568 /* ./parser//parser_prod.nit:5309 */
28569 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28570 if (UNTAG_Bool(REGB0)) {
28571 } else {
28572 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28573 if (UNTAG_Bool(REGB1)) {
28574 REGB1 = TAG_Bool(false);
28575 REGB0 = REGB1;
28576 } else {
28577 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
28578 REGB0 = REGB1;
28579 }
28580 }
28581 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28582 if (UNTAG_Bool(REGB0)) {
28583 /* ./parser//parser_prod.nit:5310 */
28584 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28585 if (UNTAG_Bool(REGB0)) {
28586 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5310);
28587 }
28588 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
28589 }
28590 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ANewExpr___init_anewexpr_1));
28591 stack_frame_head = fra.me.prev;
28592 init_table[itpos182] = 1;
28593 return;
28594 }
28595 void OC_parser___parser_prod___ANewExpr___init_anewexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
28596 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28597 val_t REGB0;
28598 fun_t CREG[1];
28599 val_t tmp;
28600 /* ./parser//parser_prod.nit:5312 */
28601 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28602 fra.me.file = LOCATE_parser___parser_prod;
28603 fra.me.line = 0;
28604 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___init_anewexpr;
28605 fra.me.has_broke = 0;
28606 fra.me.REG_size = 2;
28607 fra.me.nitni_local_ref_head = NULL;
28608 fra.me.REG[0] = NIT_NULL;
28609 fra.me.REG[1] = NIT_NULL;
28610 fra.me.closure_ctx = closctx_param;
28611 fra.me.closure_funs = CREG;
28612 fra.me.REG[0] = p0;
28613 CREG[0] = clos_fun0;
28614 /* ./parser//parser_prod.nit:5313 */
28615 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28616 if (UNTAG_Bool(REGB0)) {
28617 } else {
28618 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5313);
28619 }
28620 /* ./parser//parser_prod.nit:5314 */
28621 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(closctx->REG[5])!=NIT_NULL);
28622 if (UNTAG_Bool(REGB0)) {
28623 } else {
28624 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5314);
28625 }
28626 fra.me.REG[1] = ATTR_parser___parser_nodes___ANewExpr____n_args(closctx->REG[5]);
28627 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28628 /* ./parser//parser_prod.nit:5315 */
28629 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
28630 stack_frame_head = fra.me.prev;
28631 return;
28632 }
28633 void parser___parser_prod___ANewExpr___replace_child(val_t p0, val_t p1, val_t p2){
28634 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28635 val_t REGB0;
28636 val_t REGB1;
28637 val_t REGB2;
28638 val_t REGB3;
28639 val_t REGB4;
28640 val_t tmp;
28641 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28642 fra.me.file = LOCATE_parser___parser_prod;
28643 fra.me.line = 5319;
28644 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___replace_child;
28645 fra.me.has_broke = 0;
28646 fra.me.REG_size = 4;
28647 fra.me.nitni_local_ref_head = NULL;
28648 fra.me.REG[0] = NIT_NULL;
28649 fra.me.REG[1] = NIT_NULL;
28650 fra.me.REG[2] = NIT_NULL;
28651 fra.me.REG[3] = NIT_NULL;
28652 fra.me.REG[0] = p0;
28653 fra.me.REG[1] = p1;
28654 fra.me.REG[2] = p2;
28655 /* ./parser//parser_prod.nit:5321 */
28656 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0])!=NIT_NULL);
28657 if (UNTAG_Bool(REGB0)) {
28658 } else {
28659 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 5321);
28660 }
28661 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]);
28662 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28663 if (UNTAG_Bool(REGB0)) {
28664 } else {
28665 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28666 REGB0 = REGB1;
28667 }
28668 if (UNTAG_Bool(REGB0)) {
28669 /* ./parser//parser_prod.nit:5322 */
28670 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28671 if (UNTAG_Bool(REGB0)) {
28672 } else {
28673 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28674 if (UNTAG_Bool(REGB1)) {
28675 REGB1 = TAG_Bool(false);
28676 REGB0 = REGB1;
28677 } else {
28678 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28679 REGB0 = REGB1;
28680 }
28681 }
28682 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28683 if (UNTAG_Bool(REGB0)) {
28684 /* ./parser//parser_prod.nit:5323 */
28685 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28686 if (UNTAG_Bool(REGB0)) {
28687 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5323);
28688 }
28689 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28690 /* ./parser//parser_prod.nit:5324 */
28691 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*/;
28692 if (UNTAG_Bool(REGB0)) {
28693 } else {
28694 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5324);
28695 }
28696 /* ./parser//parser_prod.nit:5325 */
28697 ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]) = fra.me.REG[2];
28698 } else {
28699 /* ./parser//parser_prod.nit:5327 */
28700 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5327);
28701 }
28702 /* ./parser//parser_prod.nit:5329 */
28703 goto label1;
28704 }
28705 /* ./parser//parser_prod.nit:5331 */
28706 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0])!=NIT_NULL);
28707 if (UNTAG_Bool(REGB0)) {
28708 } else {
28709 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5331);
28710 }
28711 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0]);
28712 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28713 if (UNTAG_Bool(REGB0)) {
28714 } else {
28715 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28716 REGB0 = REGB1;
28717 }
28718 if (UNTAG_Bool(REGB0)) {
28719 /* ./parser//parser_prod.nit:5332 */
28720 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28721 if (UNTAG_Bool(REGB0)) {
28722 } else {
28723 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28724 if (UNTAG_Bool(REGB1)) {
28725 REGB1 = TAG_Bool(false);
28726 REGB0 = REGB1;
28727 } else {
28728 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28729 REGB0 = REGB1;
28730 }
28731 }
28732 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28733 if (UNTAG_Bool(REGB0)) {
28734 /* ./parser//parser_prod.nit:5333 */
28735 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28736 if (UNTAG_Bool(REGB0)) {
28737 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5333);
28738 }
28739 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28740 /* ./parser//parser_prod.nit:5334 */
28741 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*/;
28742 if (UNTAG_Bool(REGB0)) {
28743 } else {
28744 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5334);
28745 }
28746 /* ./parser//parser_prod.nit:5335 */
28747 ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
28748 } else {
28749 /* ./parser//parser_prod.nit:5337 */
28750 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5337);
28751 }
28752 /* ./parser//parser_prod.nit:5339 */
28753 goto label1;
28754 }
28755 /* ./parser//parser_prod.nit:5341 */
28756 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]);
28757 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
28758 if (UNTAG_Bool(REGB0)) {
28759 } else {
28760 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28761 if (UNTAG_Bool(REGB1)) {
28762 REGB1 = TAG_Bool(false);
28763 REGB0 = REGB1;
28764 } else {
28765 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28766 REGB0 = REGB1;
28767 }
28768 }
28769 if (UNTAG_Bool(REGB0)) {
28770 /* ./parser//parser_prod.nit:5342 */
28771 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28772 if (UNTAG_Bool(REGB0)) {
28773 } else {
28774 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28775 if (UNTAG_Bool(REGB1)) {
28776 REGB1 = TAG_Bool(false);
28777 REGB0 = REGB1;
28778 } else {
28779 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28780 REGB0 = REGB1;
28781 }
28782 }
28783 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28784 if (UNTAG_Bool(REGB0)) {
28785 /* ./parser//parser_prod.nit:5343 */
28786 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28787 if (UNTAG_Bool(REGB0)) {
28788 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5343);
28789 }
28790 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28791 /* ./parser//parser_prod.nit:5344 */
28792 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*/;
28793 if (UNTAG_Bool(REGB0)) {
28794 } else {
28795 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5344);
28796 }
28797 /* ./parser//parser_prod.nit:5345 */
28798 ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
28799 } else {
28800 /* ./parser//parser_prod.nit:5347 */
28801 ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = NIT_NULL;
28802 }
28803 /* ./parser//parser_prod.nit:5349 */
28804 goto label1;
28805 }
28806 /* ./parser//parser_prod.nit:5351 */
28807 REGB0 = TAG_Int(0);
28808 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28809 if (UNTAG_Bool(REGB1)) {
28810 } else {
28811 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5351);
28812 }
28813 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
28814 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
28815 /* ./../lib/standard//kernel.nit:352 */
28816 while(1) {
28817 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
28818 if (UNTAG_Bool(REGB2)) {
28819 } else {
28820 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
28821 }
28822 /* ./../lib/standard//kernel.nit:232 */
28823 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
28824 /* ./../lib/standard//kernel.nit:352 */
28825 if (UNTAG_Bool(REGB2)) {
28826 /* ./parser//parser_prod.nit:5351 */
28827 REGB2 = REGB0;
28828 /* ./parser//parser_prod.nit:5352 */
28829 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28830 if (UNTAG_Bool(REGB3)) {
28831 } else {
28832 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5352);
28833 }
28834 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
28835 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
28836 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
28837 if (UNTAG_Bool(REGB3)) {
28838 } else {
28839 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28840 if (UNTAG_Bool(REGB4)) {
28841 REGB4 = TAG_Bool(false);
28842 REGB3 = REGB4;
28843 } else {
28844 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28845 REGB3 = REGB4;
28846 }
28847 }
28848 if (UNTAG_Bool(REGB3)) {
28849 /* ./parser//parser_prod.nit:5353 */
28850 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28851 if (UNTAG_Bool(REGB3)) {
28852 } else {
28853 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28854 if (UNTAG_Bool(REGB4)) {
28855 REGB4 = TAG_Bool(false);
28856 REGB3 = REGB4;
28857 } else {
28858 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28859 REGB3 = REGB4;
28860 }
28861 }
28862 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
28863 if (UNTAG_Bool(REGB3)) {
28864 /* ./parser//parser_prod.nit:5354 */
28865 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*/;
28866 if (UNTAG_Bool(REGB3)) {
28867 } else {
28868 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5354);
28869 }
28870 /* ./parser//parser_prod.nit:5355 */
28871 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28872 if (UNTAG_Bool(REGB3)) {
28873 } else {
28874 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5355);
28875 }
28876 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
28877 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
28878 /* ./parser//parser_prod.nit:5356 */
28879 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28880 if (UNTAG_Bool(REGB3)) {
28881 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5356);
28882 }
28883 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28884 } else {
28885 /* ./parser//parser_prod.nit:5358 */
28886 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28887 if (UNTAG_Bool(REGB3)) {
28888 } else {
28889 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5358);
28890 }
28891 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
28892 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
28893 }
28894 /* ./parser//parser_prod.nit:5360 */
28895 goto label1;
28896 }
28897 /* ./../lib/standard//kernel.nit:354 */
28898 REGB2 = TAG_Int(1);
28899 /* ./../lib/standard//kernel.nit:235 */
28900 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
28901 /* ./../lib/standard//kernel.nit:354 */
28902 REGB0 = REGB2;
28903 } else {
28904 /* ./../lib/standard//kernel.nit:352 */
28905 goto label2;
28906 }
28907 }
28908 label2: while(0);
28909 label1: while(0);
28910 stack_frame_head = fra.me.prev;
28911 return;
28912 }
28913 void parser___parser_prod___ANewExpr___visit_all(val_t p0, val_t p1){
28914 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28915 val_t REGB0;
28916 val_t REGB1;
28917 val_t tmp;
28918 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28919 fra.me.file = LOCATE_parser___parser_prod;
28920 fra.me.line = 5365;
28921 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___visit_all;
28922 fra.me.has_broke = 0;
28923 fra.me.REG_size = 4;
28924 fra.me.nitni_local_ref_head = NULL;
28925 fra.me.REG[0] = NIT_NULL;
28926 fra.me.REG[1] = NIT_NULL;
28927 fra.me.REG[2] = NIT_NULL;
28928 fra.me.REG[3] = NIT_NULL;
28929 fra.me.REG[0] = p0;
28930 fra.me.REG[1] = p1;
28931 /* ./parser//parser_prod.nit:5365 */
28932 fra.me.REG[2] = fra.me.REG[0];
28933 /* ./parser//parser_prod.nit:5367 */
28934 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[2])!=NIT_NULL);
28935 if (UNTAG_Bool(REGB0)) {
28936 } else {
28937 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 5367);
28938 }
28939 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[2]);
28940 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28941 /* ./parser//parser_prod.nit:5368 */
28942 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[2])!=NIT_NULL);
28943 if (UNTAG_Bool(REGB0)) {
28944 } else {
28945 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5368);
28946 }
28947 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[2]);
28948 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28949 /* ./parser//parser_prod.nit:5369 */
28950 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[2]);
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:5370 */
28966 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[2]);
28967 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*/;
28968 if (UNTAG_Bool(REGB0)) {
28969 } else {
28970 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5370);
28971 }
28972 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28973 }
28974 /* ./parser//parser_prod.nit:5372 */
28975 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[2])!=NIT_NULL);
28976 if (UNTAG_Bool(REGB0)) {
28977 } else {
28978 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5372);
28979 }
28980 fra.me.REG[2] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[2]);
28981 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ANewExpr___visit_all_1));
28982 stack_frame_head = fra.me.prev;
28983 return;
28984 }
28985 void OC_parser___parser_prod___ANewExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
28986 struct {struct stack_frame_t me;} fra;
28987 fun_t CREG[1];
28988 val_t tmp;
28989 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28990 fra.me.file = LOCATE_parser___parser_prod;
28991 fra.me.line = 0;
28992 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___visit_all;
28993 fra.me.has_broke = 0;
28994 fra.me.REG_size = 1;
28995 fra.me.nitni_local_ref_head = NULL;
28996 fra.me.REG[0] = NIT_NULL;
28997 fra.me.closure_ctx = closctx_param;
28998 fra.me.closure_funs = CREG;
28999 fra.me.REG[0] = p0;
29000 CREG[0] = clos_fun0;
29001 /* ./parser//parser_prod.nit:5373 */
29002 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
29003 stack_frame_head = fra.me.prev;
29004 return;
29005 }
29006 void parser___parser_prod___AAttrExpr___empty_init(val_t p0, int* init_table){
29007 int itpos183 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrExpr].i;
29008 struct {struct stack_frame_t me;} fra;
29009 val_t tmp;
29010 if (init_table[itpos183]) return;
29011 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29012 fra.me.file = LOCATE_parser___parser_prod;
29013 fra.me.line = 5378;
29014 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___empty_init;
29015 fra.me.has_broke = 0;
29016 fra.me.REG_size = 1;
29017 fra.me.nitni_local_ref_head = NULL;
29018 fra.me.REG[0] = NIT_NULL;
29019 fra.me.REG[0] = p0;
29020 stack_frame_head = fra.me.prev;
29021 init_table[itpos183] = 1;
29022 return;
29023 }
29024 void parser___parser_prod___AAttrExpr___init_aattrexpr(val_t p0, val_t p1, val_t p2, int* init_table){
29025 int itpos184 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrExpr].i;
29026 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29027 val_t REGB0;
29028 val_t tmp;
29029 if (init_table[itpos184]) return;
29030 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29031 fra.me.file = LOCATE_parser___parser_prod;
29032 fra.me.line = 5380;
29033 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___init_aattrexpr;
29034 fra.me.has_broke = 0;
29035 fra.me.REG_size = 4;
29036 fra.me.nitni_local_ref_head = NULL;
29037 fra.me.REG[0] = NIT_NULL;
29038 fra.me.REG[1] = NIT_NULL;
29039 fra.me.REG[2] = NIT_NULL;
29040 fra.me.REG[3] = NIT_NULL;
29041 fra.me.REG[0] = p0;
29042 fra.me.REG[1] = p1;
29043 fra.me.REG[2] = p2;
29044 /* ./parser//parser_prod.nit:5380 */
29045 fra.me.REG[3] = fra.me.REG[0];
29046 /* ./parser//parser_prod.nit:5385 */
29047 CALL_parser___parser_prod___AAttrExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
29048 /* ./parser//parser_prod.nit:5386 */
29049 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
29050 if (UNTAG_Bool(REGB0)) {
29051 } else {
29052 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5386);
29053 }
29054 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
29055 /* ./parser//parser_prod.nit:5387 */
29056 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29057 if (UNTAG_Bool(REGB0)) {
29058 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5387);
29059 }
29060 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
29061 /* ./parser//parser_prod.nit:5388 */
29062 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29063 if (UNTAG_Bool(REGB0)) {
29064 } else {
29065 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5388);
29066 }
29067 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[3]) = fra.me.REG[2];
29068 /* ./parser//parser_prod.nit:5389 */
29069 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29070 if (UNTAG_Bool(REGB0)) {
29071 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5389);
29072 }
29073 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
29074 stack_frame_head = fra.me.prev;
29075 init_table[itpos184] = 1;
29076 return;
29077 }
29078 void parser___parser_prod___AAttrExpr___replace_child(val_t p0, val_t p1, val_t p2){
29079 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29080 val_t REGB0;
29081 val_t REGB1;
29082 val_t tmp;
29083 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29084 fra.me.file = LOCATE_parser___parser_prod;
29085 fra.me.line = 5392;
29086 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___replace_child;
29087 fra.me.has_broke = 0;
29088 fra.me.REG_size = 4;
29089 fra.me.nitni_local_ref_head = NULL;
29090 fra.me.REG[0] = NIT_NULL;
29091 fra.me.REG[1] = NIT_NULL;
29092 fra.me.REG[2] = NIT_NULL;
29093 fra.me.REG[3] = NIT_NULL;
29094 fra.me.REG[0] = p0;
29095 fra.me.REG[1] = p1;
29096 fra.me.REG[2] = p2;
29097 /* ./parser//parser_prod.nit:5394 */
29098 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29099 if (UNTAG_Bool(REGB0)) {
29100 } else {
29101 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5394);
29102 }
29103 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
29104 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29105 if (UNTAG_Bool(REGB0)) {
29106 } else {
29107 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29108 REGB0 = REGB1;
29109 }
29110 if (UNTAG_Bool(REGB0)) {
29111 /* ./parser//parser_prod.nit:5395 */
29112 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29113 if (UNTAG_Bool(REGB0)) {
29114 } else {
29115 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29116 if (UNTAG_Bool(REGB1)) {
29117 REGB1 = TAG_Bool(false);
29118 REGB0 = REGB1;
29119 } else {
29120 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29121 REGB0 = REGB1;
29122 }
29123 }
29124 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29125 if (UNTAG_Bool(REGB0)) {
29126 /* ./parser//parser_prod.nit:5396 */
29127 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29128 if (UNTAG_Bool(REGB0)) {
29129 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5396);
29130 }
29131 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29132 /* ./parser//parser_prod.nit:5397 */
29133 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*/;
29134 if (UNTAG_Bool(REGB0)) {
29135 } else {
29136 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5397);
29137 }
29138 /* ./parser//parser_prod.nit:5398 */
29139 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
29140 } else {
29141 /* ./parser//parser_prod.nit:5400 */
29142 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5400);
29143 }
29144 /* ./parser//parser_prod.nit:5402 */
29145 goto label1;
29146 }
29147 /* ./parser//parser_prod.nit:5404 */
29148 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29149 if (UNTAG_Bool(REGB0)) {
29150 } else {
29151 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5404);
29152 }
29153 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
29154 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29155 if (UNTAG_Bool(REGB0)) {
29156 } else {
29157 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29158 REGB0 = REGB1;
29159 }
29160 if (UNTAG_Bool(REGB0)) {
29161 /* ./parser//parser_prod.nit:5405 */
29162 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29163 if (UNTAG_Bool(REGB0)) {
29164 } else {
29165 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29166 if (UNTAG_Bool(REGB1)) {
29167 REGB1 = TAG_Bool(false);
29168 REGB0 = REGB1;
29169 } else {
29170 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29171 REGB0 = REGB1;
29172 }
29173 }
29174 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29175 if (UNTAG_Bool(REGB0)) {
29176 /* ./parser//parser_prod.nit:5406 */
29177 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29178 if (UNTAG_Bool(REGB0)) {
29179 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5406);
29180 }
29181 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29182 /* ./parser//parser_prod.nit:5407 */
29183 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*/;
29184 if (UNTAG_Bool(REGB0)) {
29185 } else {
29186 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5407);
29187 }
29188 /* ./parser//parser_prod.nit:5408 */
29189 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
29190 } else {
29191 /* ./parser//parser_prod.nit:5410 */
29192 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5410);
29193 }
29194 /* ./parser//parser_prod.nit:5412 */
29195 goto label1;
29196 }
29197 label1: while(0);
29198 stack_frame_head = fra.me.prev;
29199 return;
29200 }
29201 void parser___parser_prod___AAttrExpr___visit_all(val_t p0, val_t p1){
29202 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
29203 val_t REGB0;
29204 val_t tmp;
29205 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29206 fra.me.file = LOCATE_parser___parser_prod;
29207 fra.me.line = 5416;
29208 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___visit_all;
29209 fra.me.has_broke = 0;
29210 fra.me.REG_size = 3;
29211 fra.me.nitni_local_ref_head = NULL;
29212 fra.me.REG[0] = NIT_NULL;
29213 fra.me.REG[1] = NIT_NULL;
29214 fra.me.REG[2] = NIT_NULL;
29215 fra.me.REG[0] = p0;
29216 fra.me.REG[1] = p1;
29217 /* ./parser//parser_prod.nit:5418 */
29218 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29219 if (UNTAG_Bool(REGB0)) {
29220 } else {
29221 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5418);
29222 }
29223 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
29224 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29225 /* ./parser//parser_prod.nit:5419 */
29226 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29227 if (UNTAG_Bool(REGB0)) {
29228 } else {
29229 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5419);
29230 }
29231 fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
29232 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29233 stack_frame_head = fra.me.prev;
29234 return;
29235 }
29236 void parser___parser_prod___AAttrAssignExpr___empty_init(val_t p0, int* init_table){
29237 int itpos185 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrAssignExpr].i;
29238 struct {struct stack_frame_t me;} fra;
29239 val_t tmp;
29240 if (init_table[itpos185]) return;
29241 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29242 fra.me.file = LOCATE_parser___parser_prod;
29243 fra.me.line = 5423;
29244 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___empty_init;
29245 fra.me.has_broke = 0;
29246 fra.me.REG_size = 1;
29247 fra.me.nitni_local_ref_head = NULL;
29248 fra.me.REG[0] = NIT_NULL;
29249 fra.me.REG[0] = p0;
29250 stack_frame_head = fra.me.prev;
29251 init_table[itpos185] = 1;
29252 return;
29253 }
29254 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){
29255 int itpos186 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrAssignExpr].i;
29256 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
29257 val_t REGB0;
29258 val_t tmp;
29259 if (init_table[itpos186]) return;
29260 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29261 fra.me.file = LOCATE_parser___parser_prod;
29262 fra.me.line = 5425;
29263 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr;
29264 fra.me.has_broke = 0;
29265 fra.me.REG_size = 6;
29266 fra.me.nitni_local_ref_head = NULL;
29267 fra.me.REG[0] = NIT_NULL;
29268 fra.me.REG[1] = NIT_NULL;
29269 fra.me.REG[2] = NIT_NULL;
29270 fra.me.REG[3] = NIT_NULL;
29271 fra.me.REG[4] = NIT_NULL;
29272 fra.me.REG[5] = NIT_NULL;
29273 fra.me.REG[0] = p0;
29274 fra.me.REG[1] = p1;
29275 fra.me.REG[2] = p2;
29276 fra.me.REG[3] = p3;
29277 fra.me.REG[4] = p4;
29278 /* ./parser//parser_prod.nit:5425 */
29279 fra.me.REG[5] = fra.me.REG[0];
29280 /* ./parser//parser_prod.nit:5432 */
29281 CALL_parser___parser_prod___AAttrAssignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
29282 /* ./parser//parser_prod.nit:5433 */
29283 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
29284 if (UNTAG_Bool(REGB0)) {
29285 } else {
29286 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5433);
29287 }
29288 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
29289 /* ./parser//parser_prod.nit:5434 */
29290 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29291 if (UNTAG_Bool(REGB0)) {
29292 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5434);
29293 }
29294 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
29295 /* ./parser//parser_prod.nit:5435 */
29296 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29297 if (UNTAG_Bool(REGB0)) {
29298 } else {
29299 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5435);
29300 }
29301 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
29302 /* ./parser//parser_prod.nit:5436 */
29303 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29304 if (UNTAG_Bool(REGB0)) {
29305 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5436);
29306 }
29307 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
29308 /* ./parser//parser_prod.nit:5437 */
29309 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
29310 if (UNTAG_Bool(REGB0)) {
29311 } else {
29312 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5437);
29313 }
29314 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[5]) = fra.me.REG[3];
29315 /* ./parser//parser_prod.nit:5438 */
29316 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29317 if (UNTAG_Bool(REGB0)) {
29318 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5438);
29319 }
29320 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
29321 /* ./parser//parser_prod.nit:5439 */
29322 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
29323 if (UNTAG_Bool(REGB0)) {
29324 } else {
29325 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5439);
29326 }
29327 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
29328 /* ./parser//parser_prod.nit:5440 */
29329 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
29330 if (UNTAG_Bool(REGB0)) {
29331 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5440);
29332 }
29333 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
29334 stack_frame_head = fra.me.prev;
29335 init_table[itpos186] = 1;
29336 return;
29337 }
29338 void parser___parser_prod___AAttrAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
29339 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29340 val_t REGB0;
29341 val_t REGB1;
29342 val_t tmp;
29343 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29344 fra.me.file = LOCATE_parser___parser_prod;
29345 fra.me.line = 5443;
29346 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___replace_child;
29347 fra.me.has_broke = 0;
29348 fra.me.REG_size = 4;
29349 fra.me.nitni_local_ref_head = NULL;
29350 fra.me.REG[0] = NIT_NULL;
29351 fra.me.REG[1] = NIT_NULL;
29352 fra.me.REG[2] = NIT_NULL;
29353 fra.me.REG[3] = NIT_NULL;
29354 fra.me.REG[0] = p0;
29355 fra.me.REG[1] = p1;
29356 fra.me.REG[2] = p2;
29357 /* ./parser//parser_prod.nit:5445 */
29358 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29359 if (UNTAG_Bool(REGB0)) {
29360 } else {
29361 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5445);
29362 }
29363 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
29364 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29365 if (UNTAG_Bool(REGB0)) {
29366 } else {
29367 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29368 REGB0 = REGB1;
29369 }
29370 if (UNTAG_Bool(REGB0)) {
29371 /* ./parser//parser_prod.nit:5446 */
29372 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29373 if (UNTAG_Bool(REGB0)) {
29374 } else {
29375 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29376 if (UNTAG_Bool(REGB1)) {
29377 REGB1 = TAG_Bool(false);
29378 REGB0 = REGB1;
29379 } else {
29380 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29381 REGB0 = REGB1;
29382 }
29383 }
29384 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29385 if (UNTAG_Bool(REGB0)) {
29386 /* ./parser//parser_prod.nit:5447 */
29387 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29388 if (UNTAG_Bool(REGB0)) {
29389 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5447);
29390 }
29391 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29392 /* ./parser//parser_prod.nit:5448 */
29393 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*/;
29394 if (UNTAG_Bool(REGB0)) {
29395 } else {
29396 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5448);
29397 }
29398 /* ./parser//parser_prod.nit:5449 */
29399 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
29400 } else {
29401 /* ./parser//parser_prod.nit:5451 */
29402 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5451);
29403 }
29404 /* ./parser//parser_prod.nit:5453 */
29405 goto label1;
29406 }
29407 /* ./parser//parser_prod.nit:5455 */
29408 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29409 if (UNTAG_Bool(REGB0)) {
29410 } else {
29411 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5455);
29412 }
29413 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
29414 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29415 if (UNTAG_Bool(REGB0)) {
29416 } else {
29417 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29418 REGB0 = REGB1;
29419 }
29420 if (UNTAG_Bool(REGB0)) {
29421 /* ./parser//parser_prod.nit:5456 */
29422 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29423 if (UNTAG_Bool(REGB0)) {
29424 } else {
29425 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29426 if (UNTAG_Bool(REGB1)) {
29427 REGB1 = TAG_Bool(false);
29428 REGB0 = REGB1;
29429 } else {
29430 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29431 REGB0 = REGB1;
29432 }
29433 }
29434 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29435 if (UNTAG_Bool(REGB0)) {
29436 /* ./parser//parser_prod.nit:5457 */
29437 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29438 if (UNTAG_Bool(REGB0)) {
29439 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5457);
29440 }
29441 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29442 /* ./parser//parser_prod.nit:5458 */
29443 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*/;
29444 if (UNTAG_Bool(REGB0)) {
29445 } else {
29446 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5458);
29447 }
29448 /* ./parser//parser_prod.nit:5459 */
29449 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
29450 } else {
29451 /* ./parser//parser_prod.nit:5461 */
29452 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5461);
29453 }
29454 /* ./parser//parser_prod.nit:5463 */
29455 goto label1;
29456 }
29457 /* ./parser//parser_prod.nit:5465 */
29458 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
29459 if (UNTAG_Bool(REGB0)) {
29460 } else {
29461 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5465);
29462 }
29463 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
29464 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29465 if (UNTAG_Bool(REGB0)) {
29466 } else {
29467 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29468 REGB0 = REGB1;
29469 }
29470 if (UNTAG_Bool(REGB0)) {
29471 /* ./parser//parser_prod.nit:5466 */
29472 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29473 if (UNTAG_Bool(REGB0)) {
29474 } else {
29475 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29476 if (UNTAG_Bool(REGB1)) {
29477 REGB1 = TAG_Bool(false);
29478 REGB0 = REGB1;
29479 } else {
29480 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29481 REGB0 = REGB1;
29482 }
29483 }
29484 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29485 if (UNTAG_Bool(REGB0)) {
29486 /* ./parser//parser_prod.nit:5467 */
29487 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29488 if (UNTAG_Bool(REGB0)) {
29489 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5467);
29490 }
29491 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29492 /* ./parser//parser_prod.nit:5468 */
29493 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*/;
29494 if (UNTAG_Bool(REGB0)) {
29495 } else {
29496 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5468);
29497 }
29498 /* ./parser//parser_prod.nit:5469 */
29499 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
29500 } else {
29501 /* ./parser//parser_prod.nit:5471 */
29502 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5471);
29503 }
29504 /* ./parser//parser_prod.nit:5473 */
29505 goto label1;
29506 }
29507 /* ./parser//parser_prod.nit:5475 */
29508 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
29509 if (UNTAG_Bool(REGB0)) {
29510 } else {
29511 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5475);
29512 }
29513 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
29514 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29515 if (UNTAG_Bool(REGB0)) {
29516 } else {
29517 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29518 REGB0 = REGB1;
29519 }
29520 if (UNTAG_Bool(REGB0)) {
29521 /* ./parser//parser_prod.nit:5476 */
29522 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29523 if (UNTAG_Bool(REGB0)) {
29524 } else {
29525 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29526 if (UNTAG_Bool(REGB1)) {
29527 REGB1 = TAG_Bool(false);
29528 REGB0 = REGB1;
29529 } else {
29530 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29531 REGB0 = REGB1;
29532 }
29533 }
29534 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29535 if (UNTAG_Bool(REGB0)) {
29536 /* ./parser//parser_prod.nit:5477 */
29537 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29538 if (UNTAG_Bool(REGB0)) {
29539 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5477);
29540 }
29541 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29542 /* ./parser//parser_prod.nit:5478 */
29543 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*/;
29544 if (UNTAG_Bool(REGB0)) {
29545 } else {
29546 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5478);
29547 }
29548 /* ./parser//parser_prod.nit:5479 */
29549 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
29550 } else {
29551 /* ./parser//parser_prod.nit:5481 */
29552 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5481);
29553 }
29554 /* ./parser//parser_prod.nit:5483 */
29555 goto label1;
29556 }
29557 label1: while(0);
29558 stack_frame_head = fra.me.prev;
29559 return;
29560 }
29561 void parser___parser_prod___AAttrAssignExpr___visit_all(val_t p0, val_t p1){
29562 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
29563 val_t REGB0;
29564 val_t tmp;
29565 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29566 fra.me.file = LOCATE_parser___parser_prod;
29567 fra.me.line = 5487;
29568 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___visit_all;
29569 fra.me.has_broke = 0;
29570 fra.me.REG_size = 3;
29571 fra.me.nitni_local_ref_head = NULL;
29572 fra.me.REG[0] = NIT_NULL;
29573 fra.me.REG[1] = NIT_NULL;
29574 fra.me.REG[2] = NIT_NULL;
29575 fra.me.REG[0] = p0;
29576 fra.me.REG[1] = p1;
29577 /* ./parser//parser_prod.nit:5489 */
29578 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29579 if (UNTAG_Bool(REGB0)) {
29580 } else {
29581 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5489);
29582 }
29583 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
29584 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29585 /* ./parser//parser_prod.nit:5490 */
29586 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29587 if (UNTAG_Bool(REGB0)) {
29588 } else {
29589 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5490);
29590 }
29591 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
29592 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29593 /* ./parser//parser_prod.nit:5491 */
29594 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
29595 if (UNTAG_Bool(REGB0)) {
29596 } else {
29597 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5491);
29598 }
29599 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
29600 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29601 /* ./parser//parser_prod.nit:5492 */
29602 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
29603 if (UNTAG_Bool(REGB0)) {
29604 } else {
29605 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5492);
29606 }
29607 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
29608 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29609 stack_frame_head = fra.me.prev;
29610 return;
29611 }
29612 void parser___parser_prod___AAttrReassignExpr___empty_init(val_t p0, int* init_table){
29613 int itpos187 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrReassignExpr].i;
29614 struct {struct stack_frame_t me;} fra;
29615 val_t tmp;
29616 if (init_table[itpos187]) return;
29617 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29618 fra.me.file = LOCATE_parser___parser_prod;
29619 fra.me.line = 5496;
29620 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___empty_init;
29621 fra.me.has_broke = 0;
29622 fra.me.REG_size = 1;
29623 fra.me.nitni_local_ref_head = NULL;
29624 fra.me.REG[0] = NIT_NULL;
29625 fra.me.REG[0] = p0;
29626 stack_frame_head = fra.me.prev;
29627 init_table[itpos187] = 1;
29628 return;
29629 }
29630 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){
29631 int itpos188 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrReassignExpr].i;
29632 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
29633 val_t REGB0;
29634 val_t tmp;
29635 if (init_table[itpos188]) return;
29636 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29637 fra.me.file = LOCATE_parser___parser_prod;
29638 fra.me.line = 5498;
29639 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr;
29640 fra.me.has_broke = 0;
29641 fra.me.REG_size = 6;
29642 fra.me.nitni_local_ref_head = NULL;
29643 fra.me.REG[0] = NIT_NULL;
29644 fra.me.REG[1] = NIT_NULL;
29645 fra.me.REG[2] = NIT_NULL;
29646 fra.me.REG[3] = NIT_NULL;
29647 fra.me.REG[4] = NIT_NULL;
29648 fra.me.REG[5] = NIT_NULL;
29649 fra.me.REG[0] = p0;
29650 fra.me.REG[1] = p1;
29651 fra.me.REG[2] = p2;
29652 fra.me.REG[3] = p3;
29653 fra.me.REG[4] = p4;
29654 /* ./parser//parser_prod.nit:5498 */
29655 fra.me.REG[5] = fra.me.REG[0];
29656 /* ./parser//parser_prod.nit:5505 */
29657 CALL_parser___parser_prod___AAttrReassignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
29658 /* ./parser//parser_prod.nit:5506 */
29659 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
29660 if (UNTAG_Bool(REGB0)) {
29661 } else {
29662 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5506);
29663 }
29664 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
29665 /* ./parser//parser_prod.nit:5507 */
29666 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29667 if (UNTAG_Bool(REGB0)) {
29668 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5507);
29669 }
29670 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
29671 /* ./parser//parser_prod.nit:5508 */
29672 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29673 if (UNTAG_Bool(REGB0)) {
29674 } else {
29675 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5508);
29676 }
29677 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
29678 /* ./parser//parser_prod.nit:5509 */
29679 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29680 if (UNTAG_Bool(REGB0)) {
29681 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5509);
29682 }
29683 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
29684 /* ./parser//parser_prod.nit:5510 */
29685 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
29686 if (UNTAG_Bool(REGB0)) {
29687 } else {
29688 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5510);
29689 }
29690 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[5]) = fra.me.REG[3];
29691 /* ./parser//parser_prod.nit:5511 */
29692 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29693 if (UNTAG_Bool(REGB0)) {
29694 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5511);
29695 }
29696 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
29697 /* ./parser//parser_prod.nit:5512 */
29698 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
29699 if (UNTAG_Bool(REGB0)) {
29700 } else {
29701 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5512);
29702 }
29703 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
29704 /* ./parser//parser_prod.nit:5513 */
29705 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
29706 if (UNTAG_Bool(REGB0)) {
29707 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5513);
29708 }
29709 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
29710 stack_frame_head = fra.me.prev;
29711 init_table[itpos188] = 1;
29712 return;
29713 }
29714 void parser___parser_prod___AAttrReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
29715 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29716 val_t REGB0;
29717 val_t REGB1;
29718 val_t tmp;
29719 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29720 fra.me.file = LOCATE_parser___parser_prod;
29721 fra.me.line = 5516;
29722 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___replace_child;
29723 fra.me.has_broke = 0;
29724 fra.me.REG_size = 4;
29725 fra.me.nitni_local_ref_head = NULL;
29726 fra.me.REG[0] = NIT_NULL;
29727 fra.me.REG[1] = NIT_NULL;
29728 fra.me.REG[2] = NIT_NULL;
29729 fra.me.REG[3] = NIT_NULL;
29730 fra.me.REG[0] = p0;
29731 fra.me.REG[1] = p1;
29732 fra.me.REG[2] = p2;
29733 /* ./parser//parser_prod.nit:5518 */
29734 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29735 if (UNTAG_Bool(REGB0)) {
29736 } else {
29737 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5518);
29738 }
29739 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
29740 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29741 if (UNTAG_Bool(REGB0)) {
29742 } else {
29743 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29744 REGB0 = REGB1;
29745 }
29746 if (UNTAG_Bool(REGB0)) {
29747 /* ./parser//parser_prod.nit:5519 */
29748 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29749 if (UNTAG_Bool(REGB0)) {
29750 } else {
29751 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29752 if (UNTAG_Bool(REGB1)) {
29753 REGB1 = TAG_Bool(false);
29754 REGB0 = REGB1;
29755 } else {
29756 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29757 REGB0 = REGB1;
29758 }
29759 }
29760 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29761 if (UNTAG_Bool(REGB0)) {
29762 /* ./parser//parser_prod.nit:5520 */
29763 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29764 if (UNTAG_Bool(REGB0)) {
29765 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5520);
29766 }
29767 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29768 /* ./parser//parser_prod.nit:5521 */
29769 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*/;
29770 if (UNTAG_Bool(REGB0)) {
29771 } else {
29772 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5521);
29773 }
29774 /* ./parser//parser_prod.nit:5522 */
29775 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
29776 } else {
29777 /* ./parser//parser_prod.nit:5524 */
29778 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5524);
29779 }
29780 /* ./parser//parser_prod.nit:5526 */
29781 goto label1;
29782 }
29783 /* ./parser//parser_prod.nit:5528 */
29784 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29785 if (UNTAG_Bool(REGB0)) {
29786 } else {
29787 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5528);
29788 }
29789 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
29790 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29791 if (UNTAG_Bool(REGB0)) {
29792 } else {
29793 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29794 REGB0 = REGB1;
29795 }
29796 if (UNTAG_Bool(REGB0)) {
29797 /* ./parser//parser_prod.nit:5529 */
29798 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29799 if (UNTAG_Bool(REGB0)) {
29800 } else {
29801 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29802 if (UNTAG_Bool(REGB1)) {
29803 REGB1 = TAG_Bool(false);
29804 REGB0 = REGB1;
29805 } else {
29806 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29807 REGB0 = REGB1;
29808 }
29809 }
29810 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29811 if (UNTAG_Bool(REGB0)) {
29812 /* ./parser//parser_prod.nit:5530 */
29813 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29814 if (UNTAG_Bool(REGB0)) {
29815 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5530);
29816 }
29817 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29818 /* ./parser//parser_prod.nit:5531 */
29819 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*/;
29820 if (UNTAG_Bool(REGB0)) {
29821 } else {
29822 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5531);
29823 }
29824 /* ./parser//parser_prod.nit:5532 */
29825 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
29826 } else {
29827 /* ./parser//parser_prod.nit:5534 */
29828 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5534);
29829 }
29830 /* ./parser//parser_prod.nit:5536 */
29831 goto label1;
29832 }
29833 /* ./parser//parser_prod.nit:5538 */
29834 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
29835 if (UNTAG_Bool(REGB0)) {
29836 } else {
29837 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5538);
29838 }
29839 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
29840 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29841 if (UNTAG_Bool(REGB0)) {
29842 } else {
29843 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29844 REGB0 = REGB1;
29845 }
29846 if (UNTAG_Bool(REGB0)) {
29847 /* ./parser//parser_prod.nit:5539 */
29848 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29849 if (UNTAG_Bool(REGB0)) {
29850 } else {
29851 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29852 if (UNTAG_Bool(REGB1)) {
29853 REGB1 = TAG_Bool(false);
29854 REGB0 = REGB1;
29855 } else {
29856 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29857 REGB0 = REGB1;
29858 }
29859 }
29860 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29861 if (UNTAG_Bool(REGB0)) {
29862 /* ./parser//parser_prod.nit:5540 */
29863 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29864 if (UNTAG_Bool(REGB0)) {
29865 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5540);
29866 }
29867 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29868 /* ./parser//parser_prod.nit:5541 */
29869 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*/;
29870 if (UNTAG_Bool(REGB0)) {
29871 } else {
29872 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5541);
29873 }
29874 /* ./parser//parser_prod.nit:5542 */
29875 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
29876 } else {
29877 /* ./parser//parser_prod.nit:5544 */
29878 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5544);
29879 }
29880 /* ./parser//parser_prod.nit:5546 */
29881 goto label1;
29882 }
29883 /* ./parser//parser_prod.nit:5548 */
29884 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
29885 if (UNTAG_Bool(REGB0)) {
29886 } else {
29887 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5548);
29888 }
29889 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
29890 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29891 if (UNTAG_Bool(REGB0)) {
29892 } else {
29893 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29894 REGB0 = REGB1;
29895 }
29896 if (UNTAG_Bool(REGB0)) {
29897 /* ./parser//parser_prod.nit:5549 */
29898 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29899 if (UNTAG_Bool(REGB0)) {
29900 } else {
29901 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29902 if (UNTAG_Bool(REGB1)) {
29903 REGB1 = TAG_Bool(false);
29904 REGB0 = REGB1;
29905 } else {
29906 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29907 REGB0 = REGB1;
29908 }
29909 }
29910 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29911 if (UNTAG_Bool(REGB0)) {
29912 /* ./parser//parser_prod.nit:5550 */
29913 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29914 if (UNTAG_Bool(REGB0)) {
29915 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5550);
29916 }
29917 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29918 /* ./parser//parser_prod.nit:5551 */
29919 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*/;
29920 if (UNTAG_Bool(REGB0)) {
29921 } else {
29922 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5551);
29923 }
29924 /* ./parser//parser_prod.nit:5552 */
29925 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
29926 } else {
29927 /* ./parser//parser_prod.nit:5554 */
29928 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5554);
29929 }
29930 /* ./parser//parser_prod.nit:5556 */
29931 goto label1;
29932 }
29933 label1: while(0);
29934 stack_frame_head = fra.me.prev;
29935 return;
29936 }
29937 void parser___parser_prod___AAttrReassignExpr___visit_all(val_t p0, val_t p1){
29938 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
29939 val_t REGB0;
29940 val_t tmp;
29941 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29942 fra.me.file = LOCATE_parser___parser_prod;
29943 fra.me.line = 5560;
29944 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___visit_all;
29945 fra.me.has_broke = 0;
29946 fra.me.REG_size = 3;
29947 fra.me.nitni_local_ref_head = NULL;
29948 fra.me.REG[0] = NIT_NULL;
29949 fra.me.REG[1] = NIT_NULL;
29950 fra.me.REG[2] = NIT_NULL;
29951 fra.me.REG[0] = p0;
29952 fra.me.REG[1] = p1;
29953 /* ./parser//parser_prod.nit:5562 */
29954 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29955 if (UNTAG_Bool(REGB0)) {
29956 } else {
29957 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5562);
29958 }
29959 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
29960 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29961 /* ./parser//parser_prod.nit:5563 */
29962 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29963 if (UNTAG_Bool(REGB0)) {
29964 } else {
29965 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5563);
29966 }
29967 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
29968 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29969 /* ./parser//parser_prod.nit:5564 */
29970 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
29971 if (UNTAG_Bool(REGB0)) {
29972 } else {
29973 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5564);
29974 }
29975 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
29976 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29977 /* ./parser//parser_prod.nit:5565 */
29978 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
29979 if (UNTAG_Bool(REGB0)) {
29980 } else {
29981 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5565);
29982 }
29983 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
29984 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29985 stack_frame_head = fra.me.prev;
29986 return;
29987 }
29988 void parser___parser_prod___ACallExpr___empty_init(val_t p0, int* init_table){
29989 int itpos189 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallExpr].i;
29990 struct {struct stack_frame_t me;} fra;
29991 val_t tmp;
29992 if (init_table[itpos189]) return;
29993 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29994 fra.me.file = LOCATE_parser___parser_prod;
29995 fra.me.line = 5569;
29996 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___empty_init;
29997 fra.me.has_broke = 0;
29998 fra.me.REG_size = 1;
29999 fra.me.nitni_local_ref_head = NULL;
30000 fra.me.REG[0] = NIT_NULL;
30001 fra.me.REG[0] = p0;
30002 stack_frame_head = fra.me.prev;
30003 init_table[itpos189] = 1;
30004 return;
30005 }
30006 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){
30007 int itpos190 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallExpr].i;
30008 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
30009 val_t REGB0;
30010 val_t tmp;
30011 if (init_table[itpos190]) return;
30012 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30013 fra.me.file = LOCATE_parser___parser_prod;
30014 fra.me.line = 5571;
30015 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___init_acallexpr;
30016 fra.me.has_broke = 0;
30017 fra.me.REG_size = 6;
30018 fra.me.nitni_local_ref_head = NULL;
30019 fra.me.REG[0] = NIT_NULL;
30020 fra.me.REG[1] = NIT_NULL;
30021 fra.me.REG[2] = NIT_NULL;
30022 fra.me.REG[3] = NIT_NULL;
30023 fra.me.REG[4] = NIT_NULL;
30024 fra.me.REG[5] = NIT_NULL;
30025 fra.me.REG[0] = p0;
30026 fra.me.REG[1] = p1;
30027 fra.me.REG[2] = p2;
30028 fra.me.REG[3] = p3;
30029 fra.me.REG[4] = p4;
30030 /* ./parser//parser_prod.nit:5571 */
30031 fra.me.REG[5] = fra.me.REG[0];
30032 /* ./parser//parser_prod.nit:5578 */
30033 CALL_parser___parser_prod___ACallExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
30034 /* ./parser//parser_prod.nit:5579 */
30035 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
30036 if (UNTAG_Bool(REGB0)) {
30037 } else {
30038 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5579);
30039 }
30040 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
30041 /* ./parser//parser_prod.nit:5580 */
30042 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30043 if (UNTAG_Bool(REGB0)) {
30044 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5580);
30045 }
30046 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
30047 /* ./parser//parser_prod.nit:5581 */
30048 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
30049 if (UNTAG_Bool(REGB0)) {
30050 } else {
30051 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5581);
30052 }
30053 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
30054 /* ./parser//parser_prod.nit:5582 */
30055 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30056 if (UNTAG_Bool(REGB0)) {
30057 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5582);
30058 }
30059 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
30060 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallExpr___init_acallexpr_1));
30061 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_2));
30062 stack_frame_head = fra.me.prev;
30063 init_table[itpos190] = 1;
30064 return;
30065 }
30066 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){
30067 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30068 val_t REGB0;
30069 fun_t CREG[1];
30070 val_t tmp;
30071 /* ./parser//parser_prod.nit:5583 */
30072 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30073 fra.me.file = LOCATE_parser___parser_prod;
30074 fra.me.line = 0;
30075 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___init_acallexpr;
30076 fra.me.has_broke = 0;
30077 fra.me.REG_size = 2;
30078 fra.me.nitni_local_ref_head = NULL;
30079 fra.me.REG[0] = NIT_NULL;
30080 fra.me.REG[1] = NIT_NULL;
30081 fra.me.closure_ctx = closctx_param;
30082 fra.me.closure_funs = CREG;
30083 fra.me.REG[0] = p0;
30084 CREG[0] = clos_fun0;
30085 /* ./parser//parser_prod.nit:5584 */
30086 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30087 if (UNTAG_Bool(REGB0)) {
30088 } else {
30089 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5584);
30090 }
30091 /* ./parser//parser_prod.nit:5585 */
30092 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[5])!=NIT_NULL);
30093 if (UNTAG_Bool(REGB0)) {
30094 } else {
30095 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5585);
30096 }
30097 fra.me.REG[1] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[5]);
30098 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30099 /* ./parser//parser_prod.nit:5586 */
30100 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
30101 stack_frame_head = fra.me.prev;
30102 return;
30103 }
30104 void OC_parser___parser_prod___ACallExpr___init_acallexpr_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
30105 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30106 val_t REGB0;
30107 fun_t CREG[1];
30108 val_t tmp;
30109 /* ./parser//parser_prod.nit:5588 */
30110 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30111 fra.me.file = LOCATE_parser___parser_prod;
30112 fra.me.line = 0;
30113 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___init_acallexpr;
30114 fra.me.has_broke = 0;
30115 fra.me.REG_size = 2;
30116 fra.me.nitni_local_ref_head = NULL;
30117 fra.me.REG[0] = NIT_NULL;
30118 fra.me.REG[1] = NIT_NULL;
30119 fra.me.closure_ctx = closctx_param;
30120 fra.me.closure_funs = CREG;
30121 fra.me.REG[0] = p0;
30122 CREG[0] = clos_fun0;
30123 /* ./parser//parser_prod.nit:5589 */
30124 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
30125 if (UNTAG_Bool(REGB0)) {
30126 } else {
30127 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5589);
30128 }
30129 /* ./parser//parser_prod.nit:5590 */
30130 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[5])!=NIT_NULL);
30131 if (UNTAG_Bool(REGB0)) {
30132 } else {
30133 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5590);
30134 }
30135 fra.me.REG[1] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[5]);
30136 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30137 /* ./parser//parser_prod.nit:5591 */
30138 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
30139 stack_frame_head = fra.me.prev;
30140 return;
30141 }
30142 void parser___parser_prod___ACallExpr___replace_child(val_t p0, val_t p1, val_t p2){
30143 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30144 val_t REGB0;
30145 val_t REGB1;
30146 val_t REGB2;
30147 val_t REGB3;
30148 val_t REGB4;
30149 val_t tmp;
30150 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30151 fra.me.file = LOCATE_parser___parser_prod;
30152 fra.me.line = 5595;
30153 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___replace_child;
30154 fra.me.has_broke = 0;
30155 fra.me.REG_size = 4;
30156 fra.me.nitni_local_ref_head = NULL;
30157 fra.me.REG[0] = NIT_NULL;
30158 fra.me.REG[1] = NIT_NULL;
30159 fra.me.REG[2] = NIT_NULL;
30160 fra.me.REG[3] = NIT_NULL;
30161 fra.me.REG[0] = p0;
30162 fra.me.REG[1] = p1;
30163 fra.me.REG[2] = p2;
30164 /* ./parser//parser_prod.nit:5597 */
30165 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30166 if (UNTAG_Bool(REGB0)) {
30167 } else {
30168 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5597);
30169 }
30170 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30171 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30172 if (UNTAG_Bool(REGB0)) {
30173 } else {
30174 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30175 REGB0 = REGB1;
30176 }
30177 if (UNTAG_Bool(REGB0)) {
30178 /* ./parser//parser_prod.nit:5598 */
30179 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30180 if (UNTAG_Bool(REGB0)) {
30181 } else {
30182 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30183 if (UNTAG_Bool(REGB1)) {
30184 REGB1 = TAG_Bool(false);
30185 REGB0 = REGB1;
30186 } else {
30187 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30188 REGB0 = REGB1;
30189 }
30190 }
30191 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30192 if (UNTAG_Bool(REGB0)) {
30193 /* ./parser//parser_prod.nit:5599 */
30194 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30195 if (UNTAG_Bool(REGB0)) {
30196 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5599);
30197 }
30198 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30199 /* ./parser//parser_prod.nit:5600 */
30200 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*/;
30201 if (UNTAG_Bool(REGB0)) {
30202 } else {
30203 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5600);
30204 }
30205 /* ./parser//parser_prod.nit:5601 */
30206 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
30207 } else {
30208 /* ./parser//parser_prod.nit:5603 */
30209 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5603);
30210 }
30211 /* ./parser//parser_prod.nit:5605 */
30212 goto label1;
30213 }
30214 /* ./parser//parser_prod.nit:5607 */
30215 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
30216 if (UNTAG_Bool(REGB0)) {
30217 } else {
30218 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5607);
30219 }
30220 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
30221 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30222 if (UNTAG_Bool(REGB0)) {
30223 } else {
30224 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30225 REGB0 = REGB1;
30226 }
30227 if (UNTAG_Bool(REGB0)) {
30228 /* ./parser//parser_prod.nit:5608 */
30229 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30230 if (UNTAG_Bool(REGB0)) {
30231 } else {
30232 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30233 if (UNTAG_Bool(REGB1)) {
30234 REGB1 = TAG_Bool(false);
30235 REGB0 = REGB1;
30236 } else {
30237 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30238 REGB0 = REGB1;
30239 }
30240 }
30241 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30242 if (UNTAG_Bool(REGB0)) {
30243 /* ./parser//parser_prod.nit:5609 */
30244 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30245 if (UNTAG_Bool(REGB0)) {
30246 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5609);
30247 }
30248 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30249 /* ./parser//parser_prod.nit:5610 */
30250 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*/;
30251 if (UNTAG_Bool(REGB0)) {
30252 } else {
30253 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5610);
30254 }
30255 /* ./parser//parser_prod.nit:5611 */
30256 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
30257 } else {
30258 /* ./parser//parser_prod.nit:5613 */
30259 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5613);
30260 }
30261 /* ./parser//parser_prod.nit:5615 */
30262 goto label1;
30263 }
30264 /* ./parser//parser_prod.nit:5617 */
30265 REGB0 = TAG_Int(0);
30266 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30267 if (UNTAG_Bool(REGB1)) {
30268 } else {
30269 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5617);
30270 }
30271 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30272 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
30273 /* ./../lib/standard//kernel.nit:352 */
30274 while(1) {
30275 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
30276 if (UNTAG_Bool(REGB2)) {
30277 } else {
30278 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
30279 }
30280 /* ./../lib/standard//kernel.nit:232 */
30281 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
30282 /* ./../lib/standard//kernel.nit:352 */
30283 if (UNTAG_Bool(REGB2)) {
30284 /* ./parser//parser_prod.nit:5617 */
30285 REGB2 = REGB0;
30286 /* ./parser//parser_prod.nit:5618 */
30287 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30288 if (UNTAG_Bool(REGB3)) {
30289 } else {
30290 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5618);
30291 }
30292 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30293 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
30294 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
30295 if (UNTAG_Bool(REGB3)) {
30296 } else {
30297 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30298 if (UNTAG_Bool(REGB4)) {
30299 REGB4 = TAG_Bool(false);
30300 REGB3 = REGB4;
30301 } else {
30302 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30303 REGB3 = REGB4;
30304 }
30305 }
30306 if (UNTAG_Bool(REGB3)) {
30307 /* ./parser//parser_prod.nit:5619 */
30308 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30309 if (UNTAG_Bool(REGB3)) {
30310 } else {
30311 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30312 if (UNTAG_Bool(REGB4)) {
30313 REGB4 = TAG_Bool(false);
30314 REGB3 = REGB4;
30315 } else {
30316 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30317 REGB3 = REGB4;
30318 }
30319 }
30320 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
30321 if (UNTAG_Bool(REGB3)) {
30322 /* ./parser//parser_prod.nit:5620 */
30323 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*/;
30324 if (UNTAG_Bool(REGB3)) {
30325 } else {
30326 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5620);
30327 }
30328 /* ./parser//parser_prod.nit:5621 */
30329 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30330 if (UNTAG_Bool(REGB3)) {
30331 } else {
30332 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5621);
30333 }
30334 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30335 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
30336 /* ./parser//parser_prod.nit:5622 */
30337 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30338 if (UNTAG_Bool(REGB3)) {
30339 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5622);
30340 }
30341 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30342 } else {
30343 /* ./parser//parser_prod.nit:5624 */
30344 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30345 if (UNTAG_Bool(REGB3)) {
30346 } else {
30347 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5624);
30348 }
30349 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30350 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
30351 }
30352 /* ./parser//parser_prod.nit:5626 */
30353 goto label1;
30354 }
30355 /* ./../lib/standard//kernel.nit:354 */
30356 REGB2 = TAG_Int(1);
30357 /* ./../lib/standard//kernel.nit:235 */
30358 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
30359 /* ./../lib/standard//kernel.nit:354 */
30360 REGB0 = REGB2;
30361 } else {
30362 /* ./../lib/standard//kernel.nit:352 */
30363 goto label2;
30364 }
30365 }
30366 label2: while(0);
30367 /* ./parser//parser_prod.nit:5629 */
30368 REGB0 = TAG_Int(0);
30369 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30370 if (UNTAG_Bool(REGB1)) {
30371 } else {
30372 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5629);
30373 }
30374 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30375 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
30376 /* ./../lib/standard//kernel.nit:352 */
30377 while(1) {
30378 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
30379 if (UNTAG_Bool(REGB2)) {
30380 } else {
30381 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
30382 }
30383 /* ./../lib/standard//kernel.nit:232 */
30384 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
30385 /* ./../lib/standard//kernel.nit:352 */
30386 if (UNTAG_Bool(REGB2)) {
30387 /* ./parser//parser_prod.nit:5629 */
30388 REGB2 = REGB0;
30389 /* ./parser//parser_prod.nit:5630 */
30390 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30391 if (UNTAG_Bool(REGB3)) {
30392 } else {
30393 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5630);
30394 }
30395 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30396 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
30397 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
30398 if (UNTAG_Bool(REGB3)) {
30399 } else {
30400 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30401 if (UNTAG_Bool(REGB4)) {
30402 REGB4 = TAG_Bool(false);
30403 REGB3 = REGB4;
30404 } else {
30405 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30406 REGB3 = REGB4;
30407 }
30408 }
30409 if (UNTAG_Bool(REGB3)) {
30410 /* ./parser//parser_prod.nit:5631 */
30411 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30412 if (UNTAG_Bool(REGB3)) {
30413 } else {
30414 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30415 if (UNTAG_Bool(REGB4)) {
30416 REGB4 = TAG_Bool(false);
30417 REGB3 = REGB4;
30418 } else {
30419 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30420 REGB3 = REGB4;
30421 }
30422 }
30423 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
30424 if (UNTAG_Bool(REGB3)) {
30425 /* ./parser//parser_prod.nit:5632 */
30426 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*/;
30427 if (UNTAG_Bool(REGB3)) {
30428 } else {
30429 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5632);
30430 }
30431 /* ./parser//parser_prod.nit:5633 */
30432 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30433 if (UNTAG_Bool(REGB3)) {
30434 } else {
30435 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5633);
30436 }
30437 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30438 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
30439 /* ./parser//parser_prod.nit:5634 */
30440 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30441 if (UNTAG_Bool(REGB3)) {
30442 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5634);
30443 }
30444 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30445 } else {
30446 /* ./parser//parser_prod.nit:5636 */
30447 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30448 if (UNTAG_Bool(REGB3)) {
30449 } else {
30450 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5636);
30451 }
30452 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30453 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
30454 }
30455 /* ./parser//parser_prod.nit:5638 */
30456 goto label1;
30457 }
30458 /* ./../lib/standard//kernel.nit:354 */
30459 REGB2 = TAG_Int(1);
30460 /* ./../lib/standard//kernel.nit:235 */
30461 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
30462 /* ./../lib/standard//kernel.nit:354 */
30463 REGB0 = REGB2;
30464 } else {
30465 /* ./../lib/standard//kernel.nit:352 */
30466 goto label3;
30467 }
30468 }
30469 label3: while(0);
30470 label1: while(0);
30471 stack_frame_head = fra.me.prev;
30472 return;
30473 }
30474 void parser___parser_prod___ACallExpr___visit_all(val_t p0, val_t p1){
30475 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
30476 val_t REGB0;
30477 val_t tmp;
30478 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30479 fra.me.file = LOCATE_parser___parser_prod;
30480 fra.me.line = 5643;
30481 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___visit_all;
30482 fra.me.has_broke = 0;
30483 fra.me.REG_size = 3;
30484 fra.me.nitni_local_ref_head = NULL;
30485 fra.me.REG[0] = NIT_NULL;
30486 fra.me.REG[1] = NIT_NULL;
30487 fra.me.REG[2] = NIT_NULL;
30488 fra.me.REG[0] = p0;
30489 fra.me.REG[1] = p1;
30490 /* ./parser//parser_prod.nit:5645 */
30491 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30492 if (UNTAG_Bool(REGB0)) {
30493 } else {
30494 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5645);
30495 }
30496 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30497 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30498 /* ./parser//parser_prod.nit:5646 */
30499 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
30500 if (UNTAG_Bool(REGB0)) {
30501 } else {
30502 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5646);
30503 }
30504 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
30505 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30506 /* ./parser//parser_prod.nit:5647 */
30507 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30508 if (UNTAG_Bool(REGB0)) {
30509 } else {
30510 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5647);
30511 }
30512 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30513 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallExpr___visit_all_1));
30514 /* ./parser//parser_prod.nit:5650 */
30515 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30516 if (UNTAG_Bool(REGB0)) {
30517 } else {
30518 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5650);
30519 }
30520 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30521 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_2));
30522 stack_frame_head = fra.me.prev;
30523 return;
30524 }
30525 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){
30526 struct {struct stack_frame_t me;} fra;
30527 fun_t CREG[1];
30528 val_t tmp;
30529 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30530 fra.me.file = LOCATE_parser___parser_prod;
30531 fra.me.line = 0;
30532 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___visit_all;
30533 fra.me.has_broke = 0;
30534 fra.me.REG_size = 1;
30535 fra.me.nitni_local_ref_head = NULL;
30536 fra.me.REG[0] = NIT_NULL;
30537 fra.me.closure_ctx = closctx_param;
30538 fra.me.closure_funs = CREG;
30539 fra.me.REG[0] = p0;
30540 CREG[0] = clos_fun0;
30541 /* ./parser//parser_prod.nit:5648 */
30542 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
30543 stack_frame_head = fra.me.prev;
30544 return;
30545 }
30546 void OC_parser___parser_prod___ACallExpr___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
30547 struct {struct stack_frame_t me;} fra;
30548 fun_t CREG[1];
30549 val_t tmp;
30550 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30551 fra.me.file = LOCATE_parser___parser_prod;
30552 fra.me.line = 0;
30553 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___visit_all;
30554 fra.me.has_broke = 0;
30555 fra.me.REG_size = 1;
30556 fra.me.nitni_local_ref_head = NULL;
30557 fra.me.REG[0] = NIT_NULL;
30558 fra.me.closure_ctx = closctx_param;
30559 fra.me.closure_funs = CREG;
30560 fra.me.REG[0] = p0;
30561 CREG[0] = clos_fun0;
30562 /* ./parser//parser_prod.nit:5651 */
30563 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
30564 stack_frame_head = fra.me.prev;
30565 return;
30566 }
30567 void parser___parser_prod___ACallAssignExpr___empty_init(val_t p0, int* init_table){
30568 int itpos191 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallAssignExpr].i;
30569 struct {struct stack_frame_t me;} fra;
30570 val_t tmp;
30571 if (init_table[itpos191]) return;
30572 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30573 fra.me.file = LOCATE_parser___parser_prod;
30574 fra.me.line = 5656;
30575 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___empty_init;
30576 fra.me.has_broke = 0;
30577 fra.me.REG_size = 1;
30578 fra.me.nitni_local_ref_head = NULL;
30579 fra.me.REG[0] = NIT_NULL;
30580 fra.me.REG[0] = p0;
30581 stack_frame_head = fra.me.prev;
30582 init_table[itpos191] = 1;
30583 return;
30584 }
30585 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){
30586 int itpos192 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallAssignExpr].i;
30587 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
30588 val_t REGB0;
30589 val_t tmp;
30590 if (init_table[itpos192]) return;
30591 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30592 fra.me.file = LOCATE_parser___parser_prod;
30593 fra.me.line = 5658;
30594 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___init_acallassignexpr;
30595 fra.me.has_broke = 0;
30596 fra.me.REG_size = 7;
30597 fra.me.nitni_local_ref_head = NULL;
30598 fra.me.REG[0] = NIT_NULL;
30599 fra.me.REG[1] = NIT_NULL;
30600 fra.me.REG[2] = NIT_NULL;
30601 fra.me.REG[3] = NIT_NULL;
30602 fra.me.REG[4] = NIT_NULL;
30603 fra.me.REG[5] = NIT_NULL;
30604 fra.me.REG[6] = NIT_NULL;
30605 fra.me.REG[0] = p0;
30606 fra.me.REG[1] = p1;
30607 fra.me.REG[2] = p2;
30608 fra.me.REG[3] = p3;
30609 fra.me.REG[4] = p4;
30610 fra.me.REG[5] = p5;
30611 /* ./parser//parser_prod.nit:5658 */
30612 fra.me.REG[6] = fra.me.REG[0];
30613 /* ./parser//parser_prod.nit:5666 */
30614 CALL_parser___parser_prod___ACallAssignExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
30615 /* ./parser//parser_prod.nit:5667 */
30616 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
30617 if (UNTAG_Bool(REGB0)) {
30618 } else {
30619 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5667);
30620 }
30621 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[6]) = fra.me.REG[1];
30622 /* ./parser//parser_prod.nit:5668 */
30623 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30624 if (UNTAG_Bool(REGB0)) {
30625 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5668);
30626 }
30627 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
30628 /* ./parser//parser_prod.nit:5669 */
30629 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
30630 if (UNTAG_Bool(REGB0)) {
30631 } else {
30632 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5669);
30633 }
30634 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[6]) = fra.me.REG[2];
30635 /* ./parser//parser_prod.nit:5670 */
30636 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30637 if (UNTAG_Bool(REGB0)) {
30638 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5670);
30639 }
30640 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
30641 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallAssignExpr___init_acallassignexpr_1));
30642 /* ./parser//parser_prod.nit:5676 */
30643 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
30644 if (UNTAG_Bool(REGB0)) {
30645 } else {
30646 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5676);
30647 }
30648 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[6]) = fra.me.REG[4];
30649 /* ./parser//parser_prod.nit:5677 */
30650 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
30651 if (UNTAG_Bool(REGB0)) {
30652 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5677);
30653 }
30654 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
30655 /* ./parser//parser_prod.nit:5678 */
30656 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
30657 if (UNTAG_Bool(REGB0)) {
30658 } else {
30659 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5678);
30660 }
30661 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[6]) = fra.me.REG[5];
30662 /* ./parser//parser_prod.nit:5679 */
30663 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
30664 if (UNTAG_Bool(REGB0)) {
30665 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5679);
30666 }
30667 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
30668 stack_frame_head = fra.me.prev;
30669 init_table[itpos192] = 1;
30670 return;
30671 }
30672 void OC_parser___parser_prod___ACallAssignExpr___init_acallassignexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
30673 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30674 val_t REGB0;
30675 fun_t CREG[1];
30676 val_t tmp;
30677 /* ./parser//parser_prod.nit:5671 */
30678 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30679 fra.me.file = LOCATE_parser___parser_prod;
30680 fra.me.line = 0;
30681 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___init_acallassignexpr;
30682 fra.me.has_broke = 0;
30683 fra.me.REG_size = 2;
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.closure_ctx = closctx_param;
30688 fra.me.closure_funs = CREG;
30689 fra.me.REG[0] = p0;
30690 CREG[0] = clos_fun0;
30691 /* ./parser//parser_prod.nit:5672 */
30692 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30693 if (UNTAG_Bool(REGB0)) {
30694 } else {
30695 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5672);
30696 }
30697 /* ./parser//parser_prod.nit:5673 */
30698 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[6])!=NIT_NULL);
30699 if (UNTAG_Bool(REGB0)) {
30700 } else {
30701 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5673);
30702 }
30703 fra.me.REG[1] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[6]);
30704 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30705 /* ./parser//parser_prod.nit:5674 */
30706 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[6]);
30707 stack_frame_head = fra.me.prev;
30708 return;
30709 }
30710 void parser___parser_prod___ACallAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
30711 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30712 val_t REGB0;
30713 val_t REGB1;
30714 val_t REGB2;
30715 val_t REGB3;
30716 val_t REGB4;
30717 val_t tmp;
30718 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30719 fra.me.file = LOCATE_parser___parser_prod;
30720 fra.me.line = 5682;
30721 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___replace_child;
30722 fra.me.has_broke = 0;
30723 fra.me.REG_size = 4;
30724 fra.me.nitni_local_ref_head = NULL;
30725 fra.me.REG[0] = NIT_NULL;
30726 fra.me.REG[1] = NIT_NULL;
30727 fra.me.REG[2] = NIT_NULL;
30728 fra.me.REG[3] = NIT_NULL;
30729 fra.me.REG[0] = p0;
30730 fra.me.REG[1] = p1;
30731 fra.me.REG[2] = p2;
30732 /* ./parser//parser_prod.nit:5684 */
30733 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30734 if (UNTAG_Bool(REGB0)) {
30735 } else {
30736 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5684);
30737 }
30738 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30739 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30740 if (UNTAG_Bool(REGB0)) {
30741 } else {
30742 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30743 REGB0 = REGB1;
30744 }
30745 if (UNTAG_Bool(REGB0)) {
30746 /* ./parser//parser_prod.nit:5685 */
30747 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30748 if (UNTAG_Bool(REGB0)) {
30749 } else {
30750 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30751 if (UNTAG_Bool(REGB1)) {
30752 REGB1 = TAG_Bool(false);
30753 REGB0 = REGB1;
30754 } else {
30755 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30756 REGB0 = REGB1;
30757 }
30758 }
30759 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30760 if (UNTAG_Bool(REGB0)) {
30761 /* ./parser//parser_prod.nit:5686 */
30762 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30763 if (UNTAG_Bool(REGB0)) {
30764 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5686);
30765 }
30766 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30767 /* ./parser//parser_prod.nit:5687 */
30768 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*/;
30769 if (UNTAG_Bool(REGB0)) {
30770 } else {
30771 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5687);
30772 }
30773 /* ./parser//parser_prod.nit:5688 */
30774 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
30775 } else {
30776 /* ./parser//parser_prod.nit:5690 */
30777 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5690);
30778 }
30779 /* ./parser//parser_prod.nit:5692 */
30780 goto label1;
30781 }
30782 /* ./parser//parser_prod.nit:5694 */
30783 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
30784 if (UNTAG_Bool(REGB0)) {
30785 } else {
30786 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5694);
30787 }
30788 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
30789 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30790 if (UNTAG_Bool(REGB0)) {
30791 } else {
30792 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30793 REGB0 = REGB1;
30794 }
30795 if (UNTAG_Bool(REGB0)) {
30796 /* ./parser//parser_prod.nit:5695 */
30797 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30798 if (UNTAG_Bool(REGB0)) {
30799 } else {
30800 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30801 if (UNTAG_Bool(REGB1)) {
30802 REGB1 = TAG_Bool(false);
30803 REGB0 = REGB1;
30804 } else {
30805 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30806 REGB0 = REGB1;
30807 }
30808 }
30809 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30810 if (UNTAG_Bool(REGB0)) {
30811 /* ./parser//parser_prod.nit:5696 */
30812 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30813 if (UNTAG_Bool(REGB0)) {
30814 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5696);
30815 }
30816 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30817 /* ./parser//parser_prod.nit:5697 */
30818 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*/;
30819 if (UNTAG_Bool(REGB0)) {
30820 } else {
30821 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5697);
30822 }
30823 /* ./parser//parser_prod.nit:5698 */
30824 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
30825 } else {
30826 /* ./parser//parser_prod.nit:5700 */
30827 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5700);
30828 }
30829 /* ./parser//parser_prod.nit:5702 */
30830 goto label1;
30831 }
30832 /* ./parser//parser_prod.nit:5704 */
30833 REGB0 = TAG_Int(0);
30834 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30835 if (UNTAG_Bool(REGB1)) {
30836 } else {
30837 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5704);
30838 }
30839 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30840 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
30841 /* ./../lib/standard//kernel.nit:352 */
30842 while(1) {
30843 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
30844 if (UNTAG_Bool(REGB2)) {
30845 } else {
30846 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
30847 }
30848 /* ./../lib/standard//kernel.nit:232 */
30849 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
30850 /* ./../lib/standard//kernel.nit:352 */
30851 if (UNTAG_Bool(REGB2)) {
30852 /* ./parser//parser_prod.nit:5704 */
30853 REGB2 = REGB0;
30854 /* ./parser//parser_prod.nit:5705 */
30855 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30856 if (UNTAG_Bool(REGB3)) {
30857 } else {
30858 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5705);
30859 }
30860 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30861 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
30862 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
30863 if (UNTAG_Bool(REGB3)) {
30864 } else {
30865 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30866 if (UNTAG_Bool(REGB4)) {
30867 REGB4 = TAG_Bool(false);
30868 REGB3 = REGB4;
30869 } else {
30870 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30871 REGB3 = REGB4;
30872 }
30873 }
30874 if (UNTAG_Bool(REGB3)) {
30875 /* ./parser//parser_prod.nit:5706 */
30876 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30877 if (UNTAG_Bool(REGB3)) {
30878 } else {
30879 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30880 if (UNTAG_Bool(REGB4)) {
30881 REGB4 = TAG_Bool(false);
30882 REGB3 = REGB4;
30883 } else {
30884 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30885 REGB3 = REGB4;
30886 }
30887 }
30888 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
30889 if (UNTAG_Bool(REGB3)) {
30890 /* ./parser//parser_prod.nit:5707 */
30891 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*/;
30892 if (UNTAG_Bool(REGB3)) {
30893 } else {
30894 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5707);
30895 }
30896 /* ./parser//parser_prod.nit:5708 */
30897 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30898 if (UNTAG_Bool(REGB3)) {
30899 } else {
30900 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5708);
30901 }
30902 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30903 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
30904 /* ./parser//parser_prod.nit:5709 */
30905 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30906 if (UNTAG_Bool(REGB3)) {
30907 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5709);
30908 }
30909 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30910 } else {
30911 /* ./parser//parser_prod.nit:5711 */
30912 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30913 if (UNTAG_Bool(REGB3)) {
30914 } else {
30915 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5711);
30916 }
30917 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30918 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
30919 }
30920 /* ./parser//parser_prod.nit:5713 */
30921 goto label1;
30922 }
30923 /* ./../lib/standard//kernel.nit:354 */
30924 REGB2 = TAG_Int(1);
30925 /* ./../lib/standard//kernel.nit:235 */
30926 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
30927 /* ./../lib/standard//kernel.nit:354 */
30928 REGB0 = REGB2;
30929 } else {
30930 /* ./../lib/standard//kernel.nit:352 */
30931 goto label2;
30932 }
30933 }
30934 label2: while(0);
30935 /* ./parser//parser_prod.nit:5716 */
30936 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
30937 if (UNTAG_Bool(REGB0)) {
30938 } else {
30939 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5716);
30940 }
30941 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
30942 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30943 if (UNTAG_Bool(REGB0)) {
30944 } else {
30945 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30946 REGB0 = REGB1;
30947 }
30948 if (UNTAG_Bool(REGB0)) {
30949 /* ./parser//parser_prod.nit:5717 */
30950 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30951 if (UNTAG_Bool(REGB0)) {
30952 } else {
30953 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30954 if (UNTAG_Bool(REGB1)) {
30955 REGB1 = TAG_Bool(false);
30956 REGB0 = REGB1;
30957 } else {
30958 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30959 REGB0 = REGB1;
30960 }
30961 }
30962 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30963 if (UNTAG_Bool(REGB0)) {
30964 /* ./parser//parser_prod.nit:5718 */
30965 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30966 if (UNTAG_Bool(REGB0)) {
30967 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5718);
30968 }
30969 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30970 /* ./parser//parser_prod.nit:5719 */
30971 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*/;
30972 if (UNTAG_Bool(REGB0)) {
30973 } else {
30974 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5719);
30975 }
30976 /* ./parser//parser_prod.nit:5720 */
30977 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
30978 } else {
30979 /* ./parser//parser_prod.nit:5722 */
30980 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5722);
30981 }
30982 /* ./parser//parser_prod.nit:5724 */
30983 goto label1;
30984 }
30985 /* ./parser//parser_prod.nit:5726 */
30986 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
30987 if (UNTAG_Bool(REGB0)) {
30988 } else {
30989 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5726);
30990 }
30991 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
30992 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30993 if (UNTAG_Bool(REGB0)) {
30994 } else {
30995 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30996 REGB0 = REGB1;
30997 }
30998 if (UNTAG_Bool(REGB0)) {
30999 /* ./parser//parser_prod.nit:5727 */
31000 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31001 if (UNTAG_Bool(REGB0)) {
31002 } else {
31003 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31004 if (UNTAG_Bool(REGB1)) {
31005 REGB1 = TAG_Bool(false);
31006 REGB0 = REGB1;
31007 } else {
31008 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31009 REGB0 = REGB1;
31010 }
31011 }
31012 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31013 if (UNTAG_Bool(REGB0)) {
31014 /* ./parser//parser_prod.nit:5728 */
31015 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31016 if (UNTAG_Bool(REGB0)) {
31017 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5728);
31018 }
31019 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31020 /* ./parser//parser_prod.nit:5729 */
31021 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*/;
31022 if (UNTAG_Bool(REGB0)) {
31023 } else {
31024 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5729);
31025 }
31026 /* ./parser//parser_prod.nit:5730 */
31027 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
31028 } else {
31029 /* ./parser//parser_prod.nit:5732 */
31030 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5732);
31031 }
31032 /* ./parser//parser_prod.nit:5734 */
31033 goto label1;
31034 }
31035 label1: while(0);
31036 stack_frame_head = fra.me.prev;
31037 return;
31038 }
31039 void parser___parser_prod___ACallAssignExpr___visit_all(val_t p0, val_t p1){
31040 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
31041 val_t REGB0;
31042 val_t tmp;
31043 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31044 fra.me.file = LOCATE_parser___parser_prod;
31045 fra.me.line = 5738;
31046 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___visit_all;
31047 fra.me.has_broke = 0;
31048 fra.me.REG_size = 3;
31049 fra.me.nitni_local_ref_head = NULL;
31050 fra.me.REG[0] = NIT_NULL;
31051 fra.me.REG[1] = NIT_NULL;
31052 fra.me.REG[2] = NIT_NULL;
31053 fra.me.REG[0] = p0;
31054 fra.me.REG[1] = p1;
31055 /* ./parser//parser_prod.nit:5740 */
31056 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31057 if (UNTAG_Bool(REGB0)) {
31058 } else {
31059 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5740);
31060 }
31061 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31062 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31063 /* ./parser//parser_prod.nit:5741 */
31064 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
31065 if (UNTAG_Bool(REGB0)) {
31066 } else {
31067 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5741);
31068 }
31069 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
31070 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31071 /* ./parser//parser_prod.nit:5742 */
31072 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31073 if (UNTAG_Bool(REGB0)) {
31074 } else {
31075 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5742);
31076 }
31077 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
31078 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallAssignExpr___visit_all_1));
31079 /* ./parser//parser_prod.nit:5745 */
31080 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
31081 if (UNTAG_Bool(REGB0)) {
31082 } else {
31083 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5745);
31084 }
31085 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
31086 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31087 /* ./parser//parser_prod.nit:5746 */
31088 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31089 if (UNTAG_Bool(REGB0)) {
31090 } else {
31091 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5746);
31092 }
31093 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
31094 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31095 stack_frame_head = fra.me.prev;
31096 return;
31097 }
31098 void OC_parser___parser_prod___ACallAssignExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
31099 struct {struct stack_frame_t me;} fra;
31100 fun_t CREG[1];
31101 val_t tmp;
31102 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31103 fra.me.file = LOCATE_parser___parser_prod;
31104 fra.me.line = 0;
31105 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___visit_all;
31106 fra.me.has_broke = 0;
31107 fra.me.REG_size = 1;
31108 fra.me.nitni_local_ref_head = NULL;
31109 fra.me.REG[0] = NIT_NULL;
31110 fra.me.closure_ctx = closctx_param;
31111 fra.me.closure_funs = CREG;
31112 fra.me.REG[0] = p0;
31113 CREG[0] = clos_fun0;
31114 /* ./parser//parser_prod.nit:5743 */
31115 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
31116 stack_frame_head = fra.me.prev;
31117 return;
31118 }
31119 void parser___parser_prod___ACallReassignExpr___empty_init(val_t p0, int* init_table){
31120 int itpos193 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallReassignExpr].i;
31121 struct {struct stack_frame_t me;} fra;
31122 val_t tmp;
31123 if (init_table[itpos193]) return;
31124 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31125 fra.me.file = LOCATE_parser___parser_prod;
31126 fra.me.line = 5750;
31127 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___empty_init;
31128 fra.me.has_broke = 0;
31129 fra.me.REG_size = 1;
31130 fra.me.nitni_local_ref_head = NULL;
31131 fra.me.REG[0] = NIT_NULL;
31132 fra.me.REG[0] = p0;
31133 stack_frame_head = fra.me.prev;
31134 init_table[itpos193] = 1;
31135 return;
31136 }
31137 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){
31138 int itpos194 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallReassignExpr].i;
31139 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
31140 val_t REGB0;
31141 val_t tmp;
31142 if (init_table[itpos194]) return;
31143 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31144 fra.me.file = LOCATE_parser___parser_prod;
31145 fra.me.line = 5752;
31146 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr;
31147 fra.me.has_broke = 0;
31148 fra.me.REG_size = 7;
31149 fra.me.nitni_local_ref_head = NULL;
31150 fra.me.REG[0] = NIT_NULL;
31151 fra.me.REG[1] = NIT_NULL;
31152 fra.me.REG[2] = NIT_NULL;
31153 fra.me.REG[3] = NIT_NULL;
31154 fra.me.REG[4] = NIT_NULL;
31155 fra.me.REG[5] = NIT_NULL;
31156 fra.me.REG[6] = NIT_NULL;
31157 fra.me.REG[0] = p0;
31158 fra.me.REG[1] = p1;
31159 fra.me.REG[2] = p2;
31160 fra.me.REG[3] = p3;
31161 fra.me.REG[4] = p4;
31162 fra.me.REG[5] = p5;
31163 /* ./parser//parser_prod.nit:5752 */
31164 fra.me.REG[6] = fra.me.REG[0];
31165 /* ./parser//parser_prod.nit:5760 */
31166 CALL_parser___parser_prod___ACallReassignExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
31167 /* ./parser//parser_prod.nit:5761 */
31168 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
31169 if (UNTAG_Bool(REGB0)) {
31170 } else {
31171 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5761);
31172 }
31173 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[6]) = fra.me.REG[1];
31174 /* ./parser//parser_prod.nit:5762 */
31175 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31176 if (UNTAG_Bool(REGB0)) {
31177 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5762);
31178 }
31179 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
31180 /* ./parser//parser_prod.nit:5763 */
31181 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
31182 if (UNTAG_Bool(REGB0)) {
31183 } else {
31184 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5763);
31185 }
31186 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[6]) = fra.me.REG[2];
31187 /* ./parser//parser_prod.nit:5764 */
31188 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31189 if (UNTAG_Bool(REGB0)) {
31190 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5764);
31191 }
31192 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
31193 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr_1));
31194 /* ./parser//parser_prod.nit:5770 */
31195 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
31196 if (UNTAG_Bool(REGB0)) {
31197 } else {
31198 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5770);
31199 }
31200 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[6]) = fra.me.REG[4];
31201 /* ./parser//parser_prod.nit:5771 */
31202 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
31203 if (UNTAG_Bool(REGB0)) {
31204 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5771);
31205 }
31206 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
31207 /* ./parser//parser_prod.nit:5772 */
31208 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
31209 if (UNTAG_Bool(REGB0)) {
31210 } else {
31211 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5772);
31212 }
31213 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[6]) = fra.me.REG[5];
31214 /* ./parser//parser_prod.nit:5773 */
31215 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
31216 if (UNTAG_Bool(REGB0)) {
31217 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5773);
31218 }
31219 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
31220 stack_frame_head = fra.me.prev;
31221 init_table[itpos194] = 1;
31222 return;
31223 }
31224 void OC_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
31225 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31226 val_t REGB0;
31227 fun_t CREG[1];
31228 val_t tmp;
31229 /* ./parser//parser_prod.nit:5765 */
31230 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31231 fra.me.file = LOCATE_parser___parser_prod;
31232 fra.me.line = 0;
31233 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr;
31234 fra.me.has_broke = 0;
31235 fra.me.REG_size = 2;
31236 fra.me.nitni_local_ref_head = NULL;
31237 fra.me.REG[0] = NIT_NULL;
31238 fra.me.REG[1] = NIT_NULL;
31239 fra.me.closure_ctx = closctx_param;
31240 fra.me.closure_funs = CREG;
31241 fra.me.REG[0] = p0;
31242 CREG[0] = clos_fun0;
31243 /* ./parser//parser_prod.nit:5766 */
31244 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31245 if (UNTAG_Bool(REGB0)) {
31246 } else {
31247 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5766);
31248 }
31249 /* ./parser//parser_prod.nit:5767 */
31250 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[6])!=NIT_NULL);
31251 if (UNTAG_Bool(REGB0)) {
31252 } else {
31253 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5767);
31254 }
31255 fra.me.REG[1] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[6]);
31256 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31257 /* ./parser//parser_prod.nit:5768 */
31258 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[6]);
31259 stack_frame_head = fra.me.prev;
31260 return;
31261 }
31262 void parser___parser_prod___ACallReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
31263 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31264 val_t REGB0;
31265 val_t REGB1;
31266 val_t REGB2;
31267 val_t REGB3;
31268 val_t REGB4;
31269 val_t tmp;
31270 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31271 fra.me.file = LOCATE_parser___parser_prod;
31272 fra.me.line = 5776;
31273 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___replace_child;
31274 fra.me.has_broke = 0;
31275 fra.me.REG_size = 4;
31276 fra.me.nitni_local_ref_head = NULL;
31277 fra.me.REG[0] = NIT_NULL;
31278 fra.me.REG[1] = NIT_NULL;
31279 fra.me.REG[2] = NIT_NULL;
31280 fra.me.REG[3] = NIT_NULL;
31281 fra.me.REG[0] = p0;
31282 fra.me.REG[1] = p1;
31283 fra.me.REG[2] = p2;
31284 /* ./parser//parser_prod.nit:5778 */
31285 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31286 if (UNTAG_Bool(REGB0)) {
31287 } else {
31288 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5778);
31289 }
31290 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31291 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31292 if (UNTAG_Bool(REGB0)) {
31293 } else {
31294 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31295 REGB0 = REGB1;
31296 }
31297 if (UNTAG_Bool(REGB0)) {
31298 /* ./parser//parser_prod.nit:5779 */
31299 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31300 if (UNTAG_Bool(REGB0)) {
31301 } else {
31302 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31303 if (UNTAG_Bool(REGB1)) {
31304 REGB1 = TAG_Bool(false);
31305 REGB0 = REGB1;
31306 } else {
31307 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31308 REGB0 = REGB1;
31309 }
31310 }
31311 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31312 if (UNTAG_Bool(REGB0)) {
31313 /* ./parser//parser_prod.nit:5780 */
31314 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31315 if (UNTAG_Bool(REGB0)) {
31316 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5780);
31317 }
31318 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31319 /* ./parser//parser_prod.nit:5781 */
31320 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*/;
31321 if (UNTAG_Bool(REGB0)) {
31322 } else {
31323 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5781);
31324 }
31325 /* ./parser//parser_prod.nit:5782 */
31326 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
31327 } else {
31328 /* ./parser//parser_prod.nit:5784 */
31329 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5784);
31330 }
31331 /* ./parser//parser_prod.nit:5786 */
31332 goto label1;
31333 }
31334 /* ./parser//parser_prod.nit:5788 */
31335 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
31336 if (UNTAG_Bool(REGB0)) {
31337 } else {
31338 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5788);
31339 }
31340 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
31341 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31342 if (UNTAG_Bool(REGB0)) {
31343 } else {
31344 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31345 REGB0 = REGB1;
31346 }
31347 if (UNTAG_Bool(REGB0)) {
31348 /* ./parser//parser_prod.nit:5789 */
31349 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31350 if (UNTAG_Bool(REGB0)) {
31351 } else {
31352 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31353 if (UNTAG_Bool(REGB1)) {
31354 REGB1 = TAG_Bool(false);
31355 REGB0 = REGB1;
31356 } else {
31357 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31358 REGB0 = REGB1;
31359 }
31360 }
31361 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31362 if (UNTAG_Bool(REGB0)) {
31363 /* ./parser//parser_prod.nit:5790 */
31364 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31365 if (UNTAG_Bool(REGB0)) {
31366 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5790);
31367 }
31368 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31369 /* ./parser//parser_prod.nit:5791 */
31370 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*/;
31371 if (UNTAG_Bool(REGB0)) {
31372 } else {
31373 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5791);
31374 }
31375 /* ./parser//parser_prod.nit:5792 */
31376 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
31377 } else {
31378 /* ./parser//parser_prod.nit:5794 */
31379 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5794);
31380 }
31381 /* ./parser//parser_prod.nit:5796 */
31382 goto label1;
31383 }
31384 /* ./parser//parser_prod.nit:5798 */
31385 REGB0 = TAG_Int(0);
31386 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31387 if (UNTAG_Bool(REGB1)) {
31388 } else {
31389 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5798);
31390 }
31391 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
31392 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
31393 /* ./../lib/standard//kernel.nit:352 */
31394 while(1) {
31395 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
31396 if (UNTAG_Bool(REGB2)) {
31397 } else {
31398 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
31399 }
31400 /* ./../lib/standard//kernel.nit:232 */
31401 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
31402 /* ./../lib/standard//kernel.nit:352 */
31403 if (UNTAG_Bool(REGB2)) {
31404 /* ./parser//parser_prod.nit:5798 */
31405 REGB2 = REGB0;
31406 /* ./parser//parser_prod.nit:5799 */
31407 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31408 if (UNTAG_Bool(REGB3)) {
31409 } else {
31410 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5799);
31411 }
31412 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
31413 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
31414 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
31415 if (UNTAG_Bool(REGB3)) {
31416 } else {
31417 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31418 if (UNTAG_Bool(REGB4)) {
31419 REGB4 = TAG_Bool(false);
31420 REGB3 = REGB4;
31421 } else {
31422 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31423 REGB3 = REGB4;
31424 }
31425 }
31426 if (UNTAG_Bool(REGB3)) {
31427 /* ./parser//parser_prod.nit:5800 */
31428 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31429 if (UNTAG_Bool(REGB3)) {
31430 } else {
31431 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31432 if (UNTAG_Bool(REGB4)) {
31433 REGB4 = TAG_Bool(false);
31434 REGB3 = REGB4;
31435 } else {
31436 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31437 REGB3 = REGB4;
31438 }
31439 }
31440 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
31441 if (UNTAG_Bool(REGB3)) {
31442 /* ./parser//parser_prod.nit:5801 */
31443 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*/;
31444 if (UNTAG_Bool(REGB3)) {
31445 } else {
31446 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5801);
31447 }
31448 /* ./parser//parser_prod.nit:5802 */
31449 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31450 if (UNTAG_Bool(REGB3)) {
31451 } else {
31452 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5802);
31453 }
31454 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
31455 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
31456 /* ./parser//parser_prod.nit:5803 */
31457 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31458 if (UNTAG_Bool(REGB3)) {
31459 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5803);
31460 }
31461 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31462 } else {
31463 /* ./parser//parser_prod.nit:5805 */
31464 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31465 if (UNTAG_Bool(REGB3)) {
31466 } else {
31467 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5805);
31468 }
31469 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
31470 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
31471 }
31472 /* ./parser//parser_prod.nit:5807 */
31473 goto label1;
31474 }
31475 /* ./../lib/standard//kernel.nit:354 */
31476 REGB2 = TAG_Int(1);
31477 /* ./../lib/standard//kernel.nit:235 */
31478 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
31479 /* ./../lib/standard//kernel.nit:354 */
31480 REGB0 = REGB2;
31481 } else {
31482 /* ./../lib/standard//kernel.nit:352 */
31483 goto label2;
31484 }
31485 }
31486 label2: while(0);
31487 /* ./parser//parser_prod.nit:5810 */
31488 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
31489 if (UNTAG_Bool(REGB0)) {
31490 } else {
31491 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5810);
31492 }
31493 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
31494 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31495 if (UNTAG_Bool(REGB0)) {
31496 } else {
31497 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31498 REGB0 = REGB1;
31499 }
31500 if (UNTAG_Bool(REGB0)) {
31501 /* ./parser//parser_prod.nit:5811 */
31502 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31503 if (UNTAG_Bool(REGB0)) {
31504 } else {
31505 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31506 if (UNTAG_Bool(REGB1)) {
31507 REGB1 = TAG_Bool(false);
31508 REGB0 = REGB1;
31509 } else {
31510 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31511 REGB0 = REGB1;
31512 }
31513 }
31514 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31515 if (UNTAG_Bool(REGB0)) {
31516 /* ./parser//parser_prod.nit:5812 */
31517 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31518 if (UNTAG_Bool(REGB0)) {
31519 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5812);
31520 }
31521 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31522 /* ./parser//parser_prod.nit:5813 */
31523 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*/;
31524 if (UNTAG_Bool(REGB0)) {
31525 } else {
31526 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5813);
31527 }
31528 /* ./parser//parser_prod.nit:5814 */
31529 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
31530 } else {
31531 /* ./parser//parser_prod.nit:5816 */
31532 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5816);
31533 }
31534 /* ./parser//parser_prod.nit:5818 */
31535 goto label1;
31536 }
31537 /* ./parser//parser_prod.nit:5820 */
31538 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31539 if (UNTAG_Bool(REGB0)) {
31540 } else {
31541 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5820);
31542 }
31543 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
31544 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31545 if (UNTAG_Bool(REGB0)) {
31546 } else {
31547 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31548 REGB0 = REGB1;
31549 }
31550 if (UNTAG_Bool(REGB0)) {
31551 /* ./parser//parser_prod.nit:5821 */
31552 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31553 if (UNTAG_Bool(REGB0)) {
31554 } else {
31555 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31556 if (UNTAG_Bool(REGB1)) {
31557 REGB1 = TAG_Bool(false);
31558 REGB0 = REGB1;
31559 } else {
31560 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31561 REGB0 = REGB1;
31562 }
31563 }
31564 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31565 if (UNTAG_Bool(REGB0)) {
31566 /* ./parser//parser_prod.nit:5822 */
31567 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31568 if (UNTAG_Bool(REGB0)) {
31569 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5822);
31570 }
31571 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31572 /* ./parser//parser_prod.nit:5823 */
31573 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*/;
31574 if (UNTAG_Bool(REGB0)) {
31575 } else {
31576 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5823);
31577 }
31578 /* ./parser//parser_prod.nit:5824 */
31579 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
31580 } else {
31581 /* ./parser//parser_prod.nit:5826 */
31582 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5826);
31583 }
31584 /* ./parser//parser_prod.nit:5828 */
31585 goto label1;
31586 }
31587 label1: while(0);
31588 stack_frame_head = fra.me.prev;
31589 return;
31590 }
31591 void parser___parser_prod___ACallReassignExpr___visit_all(val_t p0, val_t p1){
31592 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
31593 val_t REGB0;
31594 val_t tmp;
31595 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31596 fra.me.file = LOCATE_parser___parser_prod;
31597 fra.me.line = 5832;
31598 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___visit_all;
31599 fra.me.has_broke = 0;
31600 fra.me.REG_size = 3;
31601 fra.me.nitni_local_ref_head = NULL;
31602 fra.me.REG[0] = NIT_NULL;
31603 fra.me.REG[1] = NIT_NULL;
31604 fra.me.REG[2] = NIT_NULL;
31605 fra.me.REG[0] = p0;
31606 fra.me.REG[1] = p1;
31607 /* ./parser//parser_prod.nit:5834 */
31608 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31609 if (UNTAG_Bool(REGB0)) {
31610 } else {
31611 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5834);
31612 }
31613 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31614 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31615 /* ./parser//parser_prod.nit:5835 */
31616 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
31617 if (UNTAG_Bool(REGB0)) {
31618 } else {
31619 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5835);
31620 }
31621 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
31622 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31623 /* ./parser//parser_prod.nit:5836 */
31624 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31625 if (UNTAG_Bool(REGB0)) {
31626 } else {
31627 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5836);
31628 }
31629 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
31630 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallReassignExpr___visit_all_1));
31631 /* ./parser//parser_prod.nit:5839 */
31632 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
31633 if (UNTAG_Bool(REGB0)) {
31634 } else {
31635 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5839);
31636 }
31637 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
31638 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31639 /* ./parser//parser_prod.nit:5840 */
31640 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31641 if (UNTAG_Bool(REGB0)) {
31642 } else {
31643 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5840);
31644 }
31645 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
31646 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31647 stack_frame_head = fra.me.prev;
31648 return;
31649 }
31650 void OC_parser___parser_prod___ACallReassignExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
31651 struct {struct stack_frame_t me;} fra;
31652 fun_t CREG[1];
31653 val_t tmp;
31654 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31655 fra.me.file = LOCATE_parser___parser_prod;
31656 fra.me.line = 0;
31657 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___visit_all;
31658 fra.me.has_broke = 0;
31659 fra.me.REG_size = 1;
31660 fra.me.nitni_local_ref_head = NULL;
31661 fra.me.REG[0] = NIT_NULL;
31662 fra.me.closure_ctx = closctx_param;
31663 fra.me.closure_funs = CREG;
31664 fra.me.REG[0] = p0;
31665 CREG[0] = clos_fun0;
31666 /* ./parser//parser_prod.nit:5837 */
31667 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
31668 stack_frame_head = fra.me.prev;
31669 return;
31670 }
31671 void parser___parser_prod___ASuperExpr___empty_init(val_t p0, int* init_table){
31672 int itpos195 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExpr].i;
31673 struct {struct stack_frame_t me;} fra;
31674 val_t tmp;
31675 if (init_table[itpos195]) return;
31676 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31677 fra.me.file = LOCATE_parser___parser_prod;
31678 fra.me.line = 5844;
31679 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___empty_init;
31680 fra.me.has_broke = 0;
31681 fra.me.REG_size = 1;
31682 fra.me.nitni_local_ref_head = NULL;
31683 fra.me.REG[0] = NIT_NULL;
31684 fra.me.REG[0] = p0;
31685 stack_frame_head = fra.me.prev;
31686 init_table[itpos195] = 1;
31687 return;
31688 }
31689 void parser___parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
31690 int itpos196 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExpr].i;
31691 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
31692 val_t REGB0;
31693 val_t REGB1;
31694 val_t tmp;
31695 if (init_table[itpos196]) return;
31696 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31697 fra.me.file = LOCATE_parser___parser_prod;
31698 fra.me.line = 5846;
31699 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___init_asuperexpr;
31700 fra.me.has_broke = 0;
31701 fra.me.REG_size = 5;
31702 fra.me.nitni_local_ref_head = NULL;
31703 fra.me.REG[0] = NIT_NULL;
31704 fra.me.REG[1] = NIT_NULL;
31705 fra.me.REG[2] = NIT_NULL;
31706 fra.me.REG[3] = NIT_NULL;
31707 fra.me.REG[4] = NIT_NULL;
31708 fra.me.REG[0] = p0;
31709 fra.me.REG[1] = p1;
31710 fra.me.REG[2] = p2;
31711 fra.me.REG[3] = p3;
31712 /* ./parser//parser_prod.nit:5846 */
31713 fra.me.REG[4] = fra.me.REG[0];
31714 /* ./parser//parser_prod.nit:5852 */
31715 CALL_parser___parser_prod___ASuperExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
31716 /* ./parser//parser_prod.nit:5853 */
31717 ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[4]) = fra.me.REG[1];
31718 /* ./parser//parser_prod.nit:5854 */
31719 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31720 if (UNTAG_Bool(REGB0)) {
31721 } else {
31722 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31723 if (UNTAG_Bool(REGB1)) {
31724 REGB1 = TAG_Bool(false);
31725 REGB0 = REGB1;
31726 } else {
31727 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
31728 REGB0 = REGB1;
31729 }
31730 }
31731 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31732 if (UNTAG_Bool(REGB0)) {
31733 /* ./parser//parser_prod.nit:5855 */
31734 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31735 if (UNTAG_Bool(REGB0)) {
31736 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5855);
31737 }
31738 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
31739 }
31740 /* ./parser//parser_prod.nit:5857 */
31741 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
31742 if (UNTAG_Bool(REGB0)) {
31743 } else {
31744 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5857);
31745 }
31746 ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[4]) = fra.me.REG[2];
31747 /* ./parser//parser_prod.nit:5858 */
31748 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31749 if (UNTAG_Bool(REGB0)) {
31750 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5858);
31751 }
31752 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
31753 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASuperExpr___init_asuperexpr_1));
31754 stack_frame_head = fra.me.prev;
31755 init_table[itpos196] = 1;
31756 return;
31757 }
31758 void OC_parser___parser_prod___ASuperExpr___init_asuperexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
31759 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31760 val_t REGB0;
31761 fun_t CREG[1];
31762 val_t tmp;
31763 /* ./parser//parser_prod.nit:5859 */
31764 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31765 fra.me.file = LOCATE_parser___parser_prod;
31766 fra.me.line = 0;
31767 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___init_asuperexpr;
31768 fra.me.has_broke = 0;
31769 fra.me.REG_size = 2;
31770 fra.me.nitni_local_ref_head = NULL;
31771 fra.me.REG[0] = NIT_NULL;
31772 fra.me.REG[1] = NIT_NULL;
31773 fra.me.closure_ctx = closctx_param;
31774 fra.me.closure_funs = CREG;
31775 fra.me.REG[0] = p0;
31776 CREG[0] = clos_fun0;
31777 /* ./parser//parser_prod.nit:5860 */
31778 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31779 if (UNTAG_Bool(REGB0)) {
31780 } else {
31781 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5860);
31782 }
31783 /* ./parser//parser_prod.nit:5861 */
31784 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(closctx->REG[4])!=NIT_NULL);
31785 if (UNTAG_Bool(REGB0)) {
31786 } else {
31787 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5861);
31788 }
31789 fra.me.REG[1] = ATTR_parser___parser_nodes___ASuperExpr____n_args(closctx->REG[4]);
31790 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31791 /* ./parser//parser_prod.nit:5862 */
31792 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
31793 stack_frame_head = fra.me.prev;
31794 return;
31795 }
31796 void parser___parser_prod___ASuperExpr___replace_child(val_t p0, val_t p1, val_t p2){
31797 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31798 val_t REGB0;
31799 val_t REGB1;
31800 val_t REGB2;
31801 val_t REGB3;
31802 val_t REGB4;
31803 val_t tmp;
31804 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31805 fra.me.file = LOCATE_parser___parser_prod;
31806 fra.me.line = 5866;
31807 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___replace_child;
31808 fra.me.has_broke = 0;
31809 fra.me.REG_size = 4;
31810 fra.me.nitni_local_ref_head = NULL;
31811 fra.me.REG[0] = NIT_NULL;
31812 fra.me.REG[1] = NIT_NULL;
31813 fra.me.REG[2] = NIT_NULL;
31814 fra.me.REG[3] = NIT_NULL;
31815 fra.me.REG[0] = p0;
31816 fra.me.REG[1] = p1;
31817 fra.me.REG[2] = p2;
31818 /* ./parser//parser_prod.nit:5868 */
31819 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]);
31820 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
31821 if (UNTAG_Bool(REGB0)) {
31822 } else {
31823 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31824 if (UNTAG_Bool(REGB1)) {
31825 REGB1 = TAG_Bool(false);
31826 REGB0 = REGB1;
31827 } else {
31828 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31829 REGB0 = REGB1;
31830 }
31831 }
31832 if (UNTAG_Bool(REGB0)) {
31833 /* ./parser//parser_prod.nit:5869 */
31834 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31835 if (UNTAG_Bool(REGB0)) {
31836 } else {
31837 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31838 if (UNTAG_Bool(REGB1)) {
31839 REGB1 = TAG_Bool(false);
31840 REGB0 = REGB1;
31841 } else {
31842 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31843 REGB0 = REGB1;
31844 }
31845 }
31846 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31847 if (UNTAG_Bool(REGB0)) {
31848 /* ./parser//parser_prod.nit:5870 */
31849 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31850 if (UNTAG_Bool(REGB0)) {
31851 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5870);
31852 }
31853 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31854 /* ./parser//parser_prod.nit:5871 */
31855 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*/;
31856 if (UNTAG_Bool(REGB0)) {
31857 } else {
31858 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5871);
31859 }
31860 /* ./parser//parser_prod.nit:5872 */
31861 ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = fra.me.REG[2];
31862 } else {
31863 /* ./parser//parser_prod.nit:5874 */
31864 ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = NIT_NULL;
31865 }
31866 /* ./parser//parser_prod.nit:5876 */
31867 goto label1;
31868 }
31869 /* ./parser//parser_prod.nit:5878 */
31870 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
31871 if (UNTAG_Bool(REGB0)) {
31872 } else {
31873 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 5878);
31874 }
31875 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]);
31876 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31877 if (UNTAG_Bool(REGB0)) {
31878 } else {
31879 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31880 REGB0 = REGB1;
31881 }
31882 if (UNTAG_Bool(REGB0)) {
31883 /* ./parser//parser_prod.nit:5879 */
31884 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31885 if (UNTAG_Bool(REGB0)) {
31886 } else {
31887 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31888 if (UNTAG_Bool(REGB1)) {
31889 REGB1 = TAG_Bool(false);
31890 REGB0 = REGB1;
31891 } else {
31892 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31893 REGB0 = REGB1;
31894 }
31895 }
31896 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31897 if (UNTAG_Bool(REGB0)) {
31898 /* ./parser//parser_prod.nit:5880 */
31899 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31900 if (UNTAG_Bool(REGB0)) {
31901 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5880);
31902 }
31903 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31904 /* ./parser//parser_prod.nit:5881 */
31905 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*/;
31906 if (UNTAG_Bool(REGB0)) {
31907 } else {
31908 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5881);
31909 }
31910 /* ./parser//parser_prod.nit:5882 */
31911 ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
31912 } else {
31913 /* ./parser//parser_prod.nit:5884 */
31914 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5884);
31915 }
31916 /* ./parser//parser_prod.nit:5886 */
31917 goto label1;
31918 }
31919 /* ./parser//parser_prod.nit:5888 */
31920 REGB0 = TAG_Int(0);
31921 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31922 if (UNTAG_Bool(REGB1)) {
31923 } else {
31924 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5888);
31925 }
31926 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
31927 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
31928 /* ./../lib/standard//kernel.nit:352 */
31929 while(1) {
31930 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
31931 if (UNTAG_Bool(REGB2)) {
31932 } else {
31933 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
31934 }
31935 /* ./../lib/standard//kernel.nit:232 */
31936 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
31937 /* ./../lib/standard//kernel.nit:352 */
31938 if (UNTAG_Bool(REGB2)) {
31939 /* ./parser//parser_prod.nit:5888 */
31940 REGB2 = REGB0;
31941 /* ./parser//parser_prod.nit:5889 */
31942 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31943 if (UNTAG_Bool(REGB3)) {
31944 } else {
31945 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5889);
31946 }
31947 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
31948 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
31949 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
31950 if (UNTAG_Bool(REGB3)) {
31951 } else {
31952 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31953 if (UNTAG_Bool(REGB4)) {
31954 REGB4 = TAG_Bool(false);
31955 REGB3 = REGB4;
31956 } else {
31957 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31958 REGB3 = REGB4;
31959 }
31960 }
31961 if (UNTAG_Bool(REGB3)) {
31962 /* ./parser//parser_prod.nit:5890 */
31963 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31964 if (UNTAG_Bool(REGB3)) {
31965 } else {
31966 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31967 if (UNTAG_Bool(REGB4)) {
31968 REGB4 = TAG_Bool(false);
31969 REGB3 = REGB4;
31970 } else {
31971 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31972 REGB3 = REGB4;
31973 }
31974 }
31975 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
31976 if (UNTAG_Bool(REGB3)) {
31977 /* ./parser//parser_prod.nit:5891 */
31978 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*/;
31979 if (UNTAG_Bool(REGB3)) {
31980 } else {
31981 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5891);
31982 }
31983 /* ./parser//parser_prod.nit:5892 */
31984 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31985 if (UNTAG_Bool(REGB3)) {
31986 } else {
31987 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5892);
31988 }
31989 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
31990 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
31991 /* ./parser//parser_prod.nit:5893 */
31992 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31993 if (UNTAG_Bool(REGB3)) {
31994 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5893);
31995 }
31996 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31997 } else {
31998 /* ./parser//parser_prod.nit:5895 */
31999 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32000 if (UNTAG_Bool(REGB3)) {
32001 } else {
32002 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5895);
32003 }
32004 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
32005 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
32006 }
32007 /* ./parser//parser_prod.nit:5897 */
32008 goto label1;
32009 }
32010 /* ./../lib/standard//kernel.nit:354 */
32011 REGB2 = TAG_Int(1);
32012 /* ./../lib/standard//kernel.nit:235 */
32013 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
32014 /* ./../lib/standard//kernel.nit:354 */
32015 REGB0 = REGB2;
32016 } else {
32017 /* ./../lib/standard//kernel.nit:352 */
32018 goto label2;
32019 }
32020 }
32021 label2: while(0);
32022 label1: while(0);
32023 stack_frame_head = fra.me.prev;
32024 return;
32025 }
32026 void parser___parser_prod___ASuperExpr___visit_all(val_t p0, val_t p1){
32027 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32028 val_t REGB0;
32029 val_t REGB1;
32030 val_t tmp;
32031 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32032 fra.me.file = LOCATE_parser___parser_prod;
32033 fra.me.line = 5902;
32034 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___visit_all;
32035 fra.me.has_broke = 0;
32036 fra.me.REG_size = 4;
32037 fra.me.nitni_local_ref_head = NULL;
32038 fra.me.REG[0] = NIT_NULL;
32039 fra.me.REG[1] = NIT_NULL;
32040 fra.me.REG[2] = NIT_NULL;
32041 fra.me.REG[3] = NIT_NULL;
32042 fra.me.REG[0] = p0;
32043 fra.me.REG[1] = p1;
32044 /* ./parser//parser_prod.nit:5902 */
32045 fra.me.REG[2] = fra.me.REG[0];
32046 /* ./parser//parser_prod.nit:5904 */
32047 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[2]);
32048 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32049 if (UNTAG_Bool(REGB0)) {
32050 } else {
32051 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32052 if (UNTAG_Bool(REGB1)) {
32053 REGB1 = TAG_Bool(false);
32054 REGB0 = REGB1;
32055 } else {
32056 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
32057 REGB0 = REGB1;
32058 }
32059 }
32060 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32061 if (UNTAG_Bool(REGB0)) {
32062 /* ./parser//parser_prod.nit:5905 */
32063 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[2]);
32064 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*/;
32065 if (UNTAG_Bool(REGB0)) {
32066 } else {
32067 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5905);
32068 }
32069 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
32070 }
32071 /* ./parser//parser_prod.nit:5907 */
32072 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[2])!=NIT_NULL);
32073 if (UNTAG_Bool(REGB0)) {
32074 } else {
32075 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 5907);
32076 }
32077 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[2]);
32078 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
32079 /* ./parser//parser_prod.nit:5908 */
32080 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[2])!=NIT_NULL);
32081 if (UNTAG_Bool(REGB0)) {
32082 } else {
32083 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5908);
32084 }
32085 fra.me.REG[2] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[2]);
32086 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASuperExpr___visit_all_1));
32087 stack_frame_head = fra.me.prev;
32088 return;
32089 }
32090 void OC_parser___parser_prod___ASuperExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
32091 struct {struct stack_frame_t me;} fra;
32092 fun_t CREG[1];
32093 val_t tmp;
32094 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32095 fra.me.file = LOCATE_parser___parser_prod;
32096 fra.me.line = 0;
32097 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___visit_all;
32098 fra.me.has_broke = 0;
32099 fra.me.REG_size = 1;
32100 fra.me.nitni_local_ref_head = NULL;
32101 fra.me.REG[0] = NIT_NULL;
32102 fra.me.closure_ctx = closctx_param;
32103 fra.me.closure_funs = CREG;
32104 fra.me.REG[0] = p0;
32105 CREG[0] = clos_fun0;
32106 /* ./parser//parser_prod.nit:5909 */
32107 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
32108 stack_frame_head = fra.me.prev;
32109 return;
32110 }
32111 void parser___parser_prod___AInitExpr___empty_init(val_t p0, int* init_table){
32112 int itpos197 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitExpr].i;
32113 struct {struct stack_frame_t me;} fra;
32114 val_t tmp;
32115 if (init_table[itpos197]) return;
32116 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32117 fra.me.file = LOCATE_parser___parser_prod;
32118 fra.me.line = 5914;
32119 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___empty_init;
32120 fra.me.has_broke = 0;
32121 fra.me.REG_size = 1;
32122 fra.me.nitni_local_ref_head = NULL;
32123 fra.me.REG[0] = NIT_NULL;
32124 fra.me.REG[0] = p0;
32125 stack_frame_head = fra.me.prev;
32126 init_table[itpos197] = 1;
32127 return;
32128 }
32129 void parser___parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
32130 int itpos198 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitExpr].i;
32131 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32132 val_t REGB0;
32133 val_t tmp;
32134 if (init_table[itpos198]) return;
32135 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32136 fra.me.file = LOCATE_parser___parser_prod;
32137 fra.me.line = 5916;
32138 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___init_ainitexpr;
32139 fra.me.has_broke = 0;
32140 fra.me.REG_size = 5;
32141 fra.me.nitni_local_ref_head = NULL;
32142 fra.me.REG[0] = NIT_NULL;
32143 fra.me.REG[1] = NIT_NULL;
32144 fra.me.REG[2] = NIT_NULL;
32145 fra.me.REG[3] = NIT_NULL;
32146 fra.me.REG[4] = NIT_NULL;
32147 fra.me.REG[0] = p0;
32148 fra.me.REG[1] = p1;
32149 fra.me.REG[2] = p2;
32150 fra.me.REG[3] = p3;
32151 /* ./parser//parser_prod.nit:5916 */
32152 fra.me.REG[4] = fra.me.REG[0];
32153 /* ./parser//parser_prod.nit:5922 */
32154 CALL_parser___parser_prod___AInitExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
32155 /* ./parser//parser_prod.nit:5923 */
32156 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32157 if (UNTAG_Bool(REGB0)) {
32158 } else {
32159 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5923);
32160 }
32161 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[4]) = fra.me.REG[1];
32162 /* ./parser//parser_prod.nit:5924 */
32163 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32164 if (UNTAG_Bool(REGB0)) {
32165 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5924);
32166 }
32167 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
32168 /* ./parser//parser_prod.nit:5925 */
32169 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
32170 if (UNTAG_Bool(REGB0)) {
32171 } else {
32172 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5925);
32173 }
32174 ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[4]) = fra.me.REG[2];
32175 /* ./parser//parser_prod.nit:5926 */
32176 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32177 if (UNTAG_Bool(REGB0)) {
32178 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5926);
32179 }
32180 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
32181 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AInitExpr___init_ainitexpr_1));
32182 stack_frame_head = fra.me.prev;
32183 init_table[itpos198] = 1;
32184 return;
32185 }
32186 void OC_parser___parser_prod___AInitExpr___init_ainitexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
32187 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32188 val_t REGB0;
32189 fun_t CREG[1];
32190 val_t tmp;
32191 /* ./parser//parser_prod.nit:5927 */
32192 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32193 fra.me.file = LOCATE_parser___parser_prod;
32194 fra.me.line = 0;
32195 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___init_ainitexpr;
32196 fra.me.has_broke = 0;
32197 fra.me.REG_size = 2;
32198 fra.me.nitni_local_ref_head = NULL;
32199 fra.me.REG[0] = NIT_NULL;
32200 fra.me.REG[1] = NIT_NULL;
32201 fra.me.closure_ctx = closctx_param;
32202 fra.me.closure_funs = CREG;
32203 fra.me.REG[0] = p0;
32204 CREG[0] = clos_fun0;
32205 /* ./parser//parser_prod.nit:5928 */
32206 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
32207 if (UNTAG_Bool(REGB0)) {
32208 } else {
32209 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5928);
32210 }
32211 /* ./parser//parser_prod.nit:5929 */
32212 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(closctx->REG[4])!=NIT_NULL);
32213 if (UNTAG_Bool(REGB0)) {
32214 } else {
32215 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5929);
32216 }
32217 fra.me.REG[1] = ATTR_parser___parser_nodes___AInitExpr____n_args(closctx->REG[4]);
32218 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32219 /* ./parser//parser_prod.nit:5930 */
32220 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
32221 stack_frame_head = fra.me.prev;
32222 return;
32223 }
32224 void parser___parser_prod___AInitExpr___replace_child(val_t p0, val_t p1, val_t p2){
32225 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32226 val_t REGB0;
32227 val_t REGB1;
32228 val_t REGB2;
32229 val_t REGB3;
32230 val_t REGB4;
32231 val_t tmp;
32232 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32233 fra.me.file = LOCATE_parser___parser_prod;
32234 fra.me.line = 5934;
32235 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___replace_child;
32236 fra.me.has_broke = 0;
32237 fra.me.REG_size = 4;
32238 fra.me.nitni_local_ref_head = NULL;
32239 fra.me.REG[0] = NIT_NULL;
32240 fra.me.REG[1] = NIT_NULL;
32241 fra.me.REG[2] = NIT_NULL;
32242 fra.me.REG[3] = NIT_NULL;
32243 fra.me.REG[0] = p0;
32244 fra.me.REG[1] = p1;
32245 fra.me.REG[2] = p2;
32246 /* ./parser//parser_prod.nit:5936 */
32247 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32248 if (UNTAG_Bool(REGB0)) {
32249 } else {
32250 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5936);
32251 }
32252 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32253 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32254 if (UNTAG_Bool(REGB0)) {
32255 } else {
32256 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32257 REGB0 = REGB1;
32258 }
32259 if (UNTAG_Bool(REGB0)) {
32260 /* ./parser//parser_prod.nit:5937 */
32261 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32262 if (UNTAG_Bool(REGB0)) {
32263 } else {
32264 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32265 if (UNTAG_Bool(REGB1)) {
32266 REGB1 = TAG_Bool(false);
32267 REGB0 = REGB1;
32268 } else {
32269 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32270 REGB0 = REGB1;
32271 }
32272 }
32273 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32274 if (UNTAG_Bool(REGB0)) {
32275 /* ./parser//parser_prod.nit:5938 */
32276 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32277 if (UNTAG_Bool(REGB0)) {
32278 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5938);
32279 }
32280 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32281 /* ./parser//parser_prod.nit:5939 */
32282 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*/;
32283 if (UNTAG_Bool(REGB0)) {
32284 } else {
32285 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5939);
32286 }
32287 /* ./parser//parser_prod.nit:5940 */
32288 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
32289 } else {
32290 /* ./parser//parser_prod.nit:5942 */
32291 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5942);
32292 }
32293 /* ./parser//parser_prod.nit:5944 */
32294 goto label1;
32295 }
32296 /* ./parser//parser_prod.nit:5946 */
32297 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
32298 if (UNTAG_Bool(REGB0)) {
32299 } else {
32300 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 5946);
32301 }
32302 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]);
32303 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32304 if (UNTAG_Bool(REGB0)) {
32305 } else {
32306 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32307 REGB0 = REGB1;
32308 }
32309 if (UNTAG_Bool(REGB0)) {
32310 /* ./parser//parser_prod.nit:5947 */
32311 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32312 if (UNTAG_Bool(REGB0)) {
32313 } else {
32314 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32315 if (UNTAG_Bool(REGB1)) {
32316 REGB1 = TAG_Bool(false);
32317 REGB0 = REGB1;
32318 } else {
32319 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32320 REGB0 = REGB1;
32321 }
32322 }
32323 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32324 if (UNTAG_Bool(REGB0)) {
32325 /* ./parser//parser_prod.nit:5948 */
32326 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32327 if (UNTAG_Bool(REGB0)) {
32328 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5948);
32329 }
32330 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32331 /* ./parser//parser_prod.nit:5949 */
32332 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*/;
32333 if (UNTAG_Bool(REGB0)) {
32334 } else {
32335 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5949);
32336 }
32337 /* ./parser//parser_prod.nit:5950 */
32338 ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]) = fra.me.REG[2];
32339 } else {
32340 /* ./parser//parser_prod.nit:5952 */
32341 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5952);
32342 }
32343 /* ./parser//parser_prod.nit:5954 */
32344 goto label1;
32345 }
32346 /* ./parser//parser_prod.nit:5956 */
32347 REGB0 = TAG_Int(0);
32348 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32349 if (UNTAG_Bool(REGB1)) {
32350 } else {
32351 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5956);
32352 }
32353 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
32354 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
32355 /* ./../lib/standard//kernel.nit:352 */
32356 while(1) {
32357 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
32358 if (UNTAG_Bool(REGB2)) {
32359 } else {
32360 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
32361 }
32362 /* ./../lib/standard//kernel.nit:232 */
32363 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
32364 /* ./../lib/standard//kernel.nit:352 */
32365 if (UNTAG_Bool(REGB2)) {
32366 /* ./parser//parser_prod.nit:5956 */
32367 REGB2 = REGB0;
32368 /* ./parser//parser_prod.nit:5957 */
32369 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32370 if (UNTAG_Bool(REGB3)) {
32371 } else {
32372 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5957);
32373 }
32374 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
32375 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
32376 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
32377 if (UNTAG_Bool(REGB3)) {
32378 } else {
32379 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32380 if (UNTAG_Bool(REGB4)) {
32381 REGB4 = TAG_Bool(false);
32382 REGB3 = REGB4;
32383 } else {
32384 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32385 REGB3 = REGB4;
32386 }
32387 }
32388 if (UNTAG_Bool(REGB3)) {
32389 /* ./parser//parser_prod.nit:5958 */
32390 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32391 if (UNTAG_Bool(REGB3)) {
32392 } else {
32393 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32394 if (UNTAG_Bool(REGB4)) {
32395 REGB4 = TAG_Bool(false);
32396 REGB3 = REGB4;
32397 } else {
32398 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32399 REGB3 = REGB4;
32400 }
32401 }
32402 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
32403 if (UNTAG_Bool(REGB3)) {
32404 /* ./parser//parser_prod.nit:5959 */
32405 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*/;
32406 if (UNTAG_Bool(REGB3)) {
32407 } else {
32408 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5959);
32409 }
32410 /* ./parser//parser_prod.nit:5960 */
32411 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32412 if (UNTAG_Bool(REGB3)) {
32413 } else {
32414 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5960);
32415 }
32416 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
32417 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
32418 /* ./parser//parser_prod.nit:5961 */
32419 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32420 if (UNTAG_Bool(REGB3)) {
32421 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5961);
32422 }
32423 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32424 } else {
32425 /* ./parser//parser_prod.nit:5963 */
32426 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32427 if (UNTAG_Bool(REGB3)) {
32428 } else {
32429 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5963);
32430 }
32431 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
32432 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
32433 }
32434 /* ./parser//parser_prod.nit:5965 */
32435 goto label1;
32436 }
32437 /* ./../lib/standard//kernel.nit:354 */
32438 REGB2 = TAG_Int(1);
32439 /* ./../lib/standard//kernel.nit:235 */
32440 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
32441 /* ./../lib/standard//kernel.nit:354 */
32442 REGB0 = REGB2;
32443 } else {
32444 /* ./../lib/standard//kernel.nit:352 */
32445 goto label2;
32446 }
32447 }
32448 label2: while(0);
32449 label1: while(0);
32450 stack_frame_head = fra.me.prev;
32451 return;
32452 }
32453 void parser___parser_prod___AInitExpr___visit_all(val_t p0, val_t p1){
32454 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
32455 val_t REGB0;
32456 val_t tmp;
32457 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32458 fra.me.file = LOCATE_parser___parser_prod;
32459 fra.me.line = 5970;
32460 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___visit_all;
32461 fra.me.has_broke = 0;
32462 fra.me.REG_size = 3;
32463 fra.me.nitni_local_ref_head = NULL;
32464 fra.me.REG[0] = NIT_NULL;
32465 fra.me.REG[1] = NIT_NULL;
32466 fra.me.REG[2] = NIT_NULL;
32467 fra.me.REG[0] = p0;
32468 fra.me.REG[1] = p1;
32469 /* ./parser//parser_prod.nit:5972 */
32470 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32471 if (UNTAG_Bool(REGB0)) {
32472 } else {
32473 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5972);
32474 }
32475 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32476 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32477 /* ./parser//parser_prod.nit:5973 */
32478 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
32479 if (UNTAG_Bool(REGB0)) {
32480 } else {
32481 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 5973);
32482 }
32483 fra.me.REG[2] = ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]);
32484 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32485 /* ./parser//parser_prod.nit:5974 */
32486 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32487 if (UNTAG_Bool(REGB0)) {
32488 } else {
32489 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5974);
32490 }
32491 fra.me.REG[0] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
32492 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AInitExpr___visit_all_1));
32493 stack_frame_head = fra.me.prev;
32494 return;
32495 }
32496 void OC_parser___parser_prod___AInitExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
32497 struct {struct stack_frame_t me;} fra;
32498 fun_t CREG[1];
32499 val_t tmp;
32500 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32501 fra.me.file = LOCATE_parser___parser_prod;
32502 fra.me.line = 0;
32503 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___visit_all;
32504 fra.me.has_broke = 0;
32505 fra.me.REG_size = 1;
32506 fra.me.nitni_local_ref_head = NULL;
32507 fra.me.REG[0] = NIT_NULL;
32508 fra.me.closure_ctx = closctx_param;
32509 fra.me.closure_funs = CREG;
32510 fra.me.REG[0] = p0;
32511 CREG[0] = clos_fun0;
32512 /* ./parser//parser_prod.nit:5975 */
32513 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
32514 stack_frame_head = fra.me.prev;
32515 return;
32516 }
32517 void parser___parser_prod___ABraExpr___empty_init(val_t p0, int* init_table){
32518 int itpos199 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExpr].i;
32519 struct {struct stack_frame_t me;} fra;
32520 val_t tmp;
32521 if (init_table[itpos199]) return;
32522 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32523 fra.me.file = LOCATE_parser___parser_prod;
32524 fra.me.line = 5980;
32525 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___empty_init;
32526 fra.me.has_broke = 0;
32527 fra.me.REG_size = 1;
32528 fra.me.nitni_local_ref_head = NULL;
32529 fra.me.REG[0] = NIT_NULL;
32530 fra.me.REG[0] = p0;
32531 stack_frame_head = fra.me.prev;
32532 init_table[itpos199] = 1;
32533 return;
32534 }
32535 void parser___parser_prod___ABraExpr___init_abraexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
32536 int itpos200 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExpr].i;
32537 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32538 val_t REGB0;
32539 val_t tmp;
32540 if (init_table[itpos200]) return;
32541 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32542 fra.me.file = LOCATE_parser___parser_prod;
32543 fra.me.line = 5982;
32544 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___init_abraexpr;
32545 fra.me.has_broke = 0;
32546 fra.me.REG_size = 5;
32547 fra.me.nitni_local_ref_head = NULL;
32548 fra.me.REG[0] = NIT_NULL;
32549 fra.me.REG[1] = NIT_NULL;
32550 fra.me.REG[2] = NIT_NULL;
32551 fra.me.REG[3] = NIT_NULL;
32552 fra.me.REG[4] = NIT_NULL;
32553 fra.me.REG[0] = p0;
32554 fra.me.REG[1] = p1;
32555 fra.me.REG[2] = p2;
32556 fra.me.REG[3] = p3;
32557 /* ./parser//parser_prod.nit:5982 */
32558 fra.me.REG[4] = fra.me.REG[0];
32559 /* ./parser//parser_prod.nit:5988 */
32560 CALL_parser___parser_prod___ABraExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
32561 /* ./parser//parser_prod.nit:5989 */
32562 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32563 if (UNTAG_Bool(REGB0)) {
32564 } else {
32565 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5989);
32566 }
32567 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[4]) = fra.me.REG[1];
32568 /* ./parser//parser_prod.nit:5990 */
32569 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32570 if (UNTAG_Bool(REGB0)) {
32571 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5990);
32572 }
32573 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
32574 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExpr___init_abraexpr_1));
32575 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_2));
32576 stack_frame_head = fra.me.prev;
32577 init_table[itpos200] = 1;
32578 return;
32579 }
32580 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){
32581 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32582 val_t REGB0;
32583 fun_t CREG[1];
32584 val_t tmp;
32585 /* ./parser//parser_prod.nit:5991 */
32586 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32587 fra.me.file = LOCATE_parser___parser_prod;
32588 fra.me.line = 0;
32589 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___init_abraexpr;
32590 fra.me.has_broke = 0;
32591 fra.me.REG_size = 2;
32592 fra.me.nitni_local_ref_head = NULL;
32593 fra.me.REG[0] = NIT_NULL;
32594 fra.me.REG[1] = NIT_NULL;
32595 fra.me.closure_ctx = closctx_param;
32596 fra.me.closure_funs = CREG;
32597 fra.me.REG[0] = p0;
32598 CREG[0] = clos_fun0;
32599 /* ./parser//parser_prod.nit:5992 */
32600 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
32601 if (UNTAG_Bool(REGB0)) {
32602 } else {
32603 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5992);
32604 }
32605 /* ./parser//parser_prod.nit:5993 */
32606 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[4])!=NIT_NULL);
32607 if (UNTAG_Bool(REGB0)) {
32608 } else {
32609 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5993);
32610 }
32611 fra.me.REG[1] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[4]);
32612 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32613 /* ./parser//parser_prod.nit:5994 */
32614 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
32615 stack_frame_head = fra.me.prev;
32616 return;
32617 }
32618 void OC_parser___parser_prod___ABraExpr___init_abraexpr_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
32619 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32620 val_t REGB0;
32621 fun_t CREG[1];
32622 val_t tmp;
32623 /* ./parser//parser_prod.nit:5996 */
32624 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32625 fra.me.file = LOCATE_parser___parser_prod;
32626 fra.me.line = 0;
32627 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___init_abraexpr;
32628 fra.me.has_broke = 0;
32629 fra.me.REG_size = 2;
32630 fra.me.nitni_local_ref_head = NULL;
32631 fra.me.REG[0] = NIT_NULL;
32632 fra.me.REG[1] = NIT_NULL;
32633 fra.me.closure_ctx = closctx_param;
32634 fra.me.closure_funs = CREG;
32635 fra.me.REG[0] = p0;
32636 CREG[0] = clos_fun0;
32637 /* ./parser//parser_prod.nit:5997 */
32638 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
32639 if (UNTAG_Bool(REGB0)) {
32640 } else {
32641 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5997);
32642 }
32643 /* ./parser//parser_prod.nit:5998 */
32644 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[4])!=NIT_NULL);
32645 if (UNTAG_Bool(REGB0)) {
32646 } else {
32647 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5998);
32648 }
32649 fra.me.REG[1] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[4]);
32650 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32651 /* ./parser//parser_prod.nit:5999 */
32652 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
32653 stack_frame_head = fra.me.prev;
32654 return;
32655 }
32656 void parser___parser_prod___ABraExpr___replace_child(val_t p0, val_t p1, val_t p2){
32657 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32658 val_t REGB0;
32659 val_t REGB1;
32660 val_t REGB2;
32661 val_t REGB3;
32662 val_t REGB4;
32663 val_t tmp;
32664 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32665 fra.me.file = LOCATE_parser___parser_prod;
32666 fra.me.line = 6003;
32667 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___replace_child;
32668 fra.me.has_broke = 0;
32669 fra.me.REG_size = 4;
32670 fra.me.nitni_local_ref_head = NULL;
32671 fra.me.REG[0] = NIT_NULL;
32672 fra.me.REG[1] = NIT_NULL;
32673 fra.me.REG[2] = NIT_NULL;
32674 fra.me.REG[3] = NIT_NULL;
32675 fra.me.REG[0] = p0;
32676 fra.me.REG[1] = p1;
32677 fra.me.REG[2] = p2;
32678 /* ./parser//parser_prod.nit:6005 */
32679 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32680 if (UNTAG_Bool(REGB0)) {
32681 } else {
32682 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6005);
32683 }
32684 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32685 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32686 if (UNTAG_Bool(REGB0)) {
32687 } else {
32688 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32689 REGB0 = REGB1;
32690 }
32691 if (UNTAG_Bool(REGB0)) {
32692 /* ./parser//parser_prod.nit:6006 */
32693 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32694 if (UNTAG_Bool(REGB0)) {
32695 } else {
32696 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32697 if (UNTAG_Bool(REGB1)) {
32698 REGB1 = TAG_Bool(false);
32699 REGB0 = REGB1;
32700 } else {
32701 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32702 REGB0 = REGB1;
32703 }
32704 }
32705 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32706 if (UNTAG_Bool(REGB0)) {
32707 /* ./parser//parser_prod.nit:6007 */
32708 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32709 if (UNTAG_Bool(REGB0)) {
32710 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6007);
32711 }
32712 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32713 /* ./parser//parser_prod.nit:6008 */
32714 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*/;
32715 if (UNTAG_Bool(REGB0)) {
32716 } else {
32717 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6008);
32718 }
32719 /* ./parser//parser_prod.nit:6009 */
32720 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
32721 } else {
32722 /* ./parser//parser_prod.nit:6011 */
32723 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6011);
32724 }
32725 /* ./parser//parser_prod.nit:6013 */
32726 goto label1;
32727 }
32728 /* ./parser//parser_prod.nit:6015 */
32729 REGB0 = TAG_Int(0);
32730 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32731 if (UNTAG_Bool(REGB1)) {
32732 } else {
32733 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6015);
32734 }
32735 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32736 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
32737 /* ./../lib/standard//kernel.nit:352 */
32738 while(1) {
32739 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
32740 if (UNTAG_Bool(REGB2)) {
32741 } else {
32742 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
32743 }
32744 /* ./../lib/standard//kernel.nit:232 */
32745 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
32746 /* ./../lib/standard//kernel.nit:352 */
32747 if (UNTAG_Bool(REGB2)) {
32748 /* ./parser//parser_prod.nit:6015 */
32749 REGB2 = REGB0;
32750 /* ./parser//parser_prod.nit:6016 */
32751 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32752 if (UNTAG_Bool(REGB3)) {
32753 } else {
32754 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6016);
32755 }
32756 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32757 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
32758 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
32759 if (UNTAG_Bool(REGB3)) {
32760 } else {
32761 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32762 if (UNTAG_Bool(REGB4)) {
32763 REGB4 = TAG_Bool(false);
32764 REGB3 = REGB4;
32765 } else {
32766 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32767 REGB3 = REGB4;
32768 }
32769 }
32770 if (UNTAG_Bool(REGB3)) {
32771 /* ./parser//parser_prod.nit:6017 */
32772 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32773 if (UNTAG_Bool(REGB3)) {
32774 } else {
32775 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32776 if (UNTAG_Bool(REGB4)) {
32777 REGB4 = TAG_Bool(false);
32778 REGB3 = REGB4;
32779 } else {
32780 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32781 REGB3 = REGB4;
32782 }
32783 }
32784 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
32785 if (UNTAG_Bool(REGB3)) {
32786 /* ./parser//parser_prod.nit:6018 */
32787 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*/;
32788 if (UNTAG_Bool(REGB3)) {
32789 } else {
32790 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6018);
32791 }
32792 /* ./parser//parser_prod.nit:6019 */
32793 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32794 if (UNTAG_Bool(REGB3)) {
32795 } else {
32796 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6019);
32797 }
32798 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32799 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
32800 /* ./parser//parser_prod.nit:6020 */
32801 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32802 if (UNTAG_Bool(REGB3)) {
32803 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6020);
32804 }
32805 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32806 } else {
32807 /* ./parser//parser_prod.nit:6022 */
32808 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32809 if (UNTAG_Bool(REGB3)) {
32810 } else {
32811 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6022);
32812 }
32813 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32814 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
32815 }
32816 /* ./parser//parser_prod.nit:6024 */
32817 goto label1;
32818 }
32819 /* ./../lib/standard//kernel.nit:354 */
32820 REGB2 = TAG_Int(1);
32821 /* ./../lib/standard//kernel.nit:235 */
32822 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
32823 /* ./../lib/standard//kernel.nit:354 */
32824 REGB0 = REGB2;
32825 } else {
32826 /* ./../lib/standard//kernel.nit:352 */
32827 goto label2;
32828 }
32829 }
32830 label2: while(0);
32831 /* ./parser//parser_prod.nit:6027 */
32832 REGB0 = TAG_Int(0);
32833 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32834 if (UNTAG_Bool(REGB1)) {
32835 } else {
32836 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6027);
32837 }
32838 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
32839 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
32840 /* ./../lib/standard//kernel.nit:352 */
32841 while(1) {
32842 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
32843 if (UNTAG_Bool(REGB2)) {
32844 } else {
32845 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
32846 }
32847 /* ./../lib/standard//kernel.nit:232 */
32848 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
32849 /* ./../lib/standard//kernel.nit:352 */
32850 if (UNTAG_Bool(REGB2)) {
32851 /* ./parser//parser_prod.nit:6027 */
32852 REGB2 = REGB0;
32853 /* ./parser//parser_prod.nit:6028 */
32854 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32855 if (UNTAG_Bool(REGB3)) {
32856 } else {
32857 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6028);
32858 }
32859 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
32860 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
32861 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
32862 if (UNTAG_Bool(REGB3)) {
32863 } else {
32864 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32865 if (UNTAG_Bool(REGB4)) {
32866 REGB4 = TAG_Bool(false);
32867 REGB3 = REGB4;
32868 } else {
32869 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32870 REGB3 = REGB4;
32871 }
32872 }
32873 if (UNTAG_Bool(REGB3)) {
32874 /* ./parser//parser_prod.nit:6029 */
32875 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32876 if (UNTAG_Bool(REGB3)) {
32877 } else {
32878 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32879 if (UNTAG_Bool(REGB4)) {
32880 REGB4 = TAG_Bool(false);
32881 REGB3 = REGB4;
32882 } else {
32883 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32884 REGB3 = REGB4;
32885 }
32886 }
32887 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
32888 if (UNTAG_Bool(REGB3)) {
32889 /* ./parser//parser_prod.nit:6030 */
32890 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*/;
32891 if (UNTAG_Bool(REGB3)) {
32892 } else {
32893 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6030);
32894 }
32895 /* ./parser//parser_prod.nit:6031 */
32896 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32897 if (UNTAG_Bool(REGB3)) {
32898 } else {
32899 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6031);
32900 }
32901 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
32902 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
32903 /* ./parser//parser_prod.nit:6032 */
32904 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32905 if (UNTAG_Bool(REGB3)) {
32906 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6032);
32907 }
32908 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32909 } else {
32910 /* ./parser//parser_prod.nit:6034 */
32911 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32912 if (UNTAG_Bool(REGB3)) {
32913 } else {
32914 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6034);
32915 }
32916 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
32917 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
32918 }
32919 /* ./parser//parser_prod.nit:6036 */
32920 goto label1;
32921 }
32922 /* ./../lib/standard//kernel.nit:354 */
32923 REGB2 = TAG_Int(1);
32924 /* ./../lib/standard//kernel.nit:235 */
32925 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
32926 /* ./../lib/standard//kernel.nit:354 */
32927 REGB0 = REGB2;
32928 } else {
32929 /* ./../lib/standard//kernel.nit:352 */
32930 goto label3;
32931 }
32932 }
32933 label3: while(0);
32934 label1: while(0);
32935 stack_frame_head = fra.me.prev;
32936 return;
32937 }
32938 void parser___parser_prod___ABraExpr___visit_all(val_t p0, val_t p1){
32939 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
32940 val_t REGB0;
32941 val_t tmp;
32942 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32943 fra.me.file = LOCATE_parser___parser_prod;
32944 fra.me.line = 6041;
32945 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___visit_all;
32946 fra.me.has_broke = 0;
32947 fra.me.REG_size = 3;
32948 fra.me.nitni_local_ref_head = NULL;
32949 fra.me.REG[0] = NIT_NULL;
32950 fra.me.REG[1] = NIT_NULL;
32951 fra.me.REG[2] = NIT_NULL;
32952 fra.me.REG[0] = p0;
32953 fra.me.REG[1] = p1;
32954 /* ./parser//parser_prod.nit:6043 */
32955 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32956 if (UNTAG_Bool(REGB0)) {
32957 } else {
32958 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6043);
32959 }
32960 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32961 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32962 /* ./parser//parser_prod.nit:6044 */
32963 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32964 if (UNTAG_Bool(REGB0)) {
32965 } else {
32966 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6044);
32967 }
32968 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32969 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExpr___visit_all_1));
32970 /* ./parser//parser_prod.nit:6047 */
32971 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32972 if (UNTAG_Bool(REGB0)) {
32973 } else {
32974 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6047);
32975 }
32976 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
32977 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_2));
32978 stack_frame_head = fra.me.prev;
32979 return;
32980 }
32981 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){
32982 struct {struct stack_frame_t me;} fra;
32983 fun_t CREG[1];
32984 val_t tmp;
32985 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32986 fra.me.file = LOCATE_parser___parser_prod;
32987 fra.me.line = 0;
32988 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___visit_all;
32989 fra.me.has_broke = 0;
32990 fra.me.REG_size = 1;
32991 fra.me.nitni_local_ref_head = NULL;
32992 fra.me.REG[0] = NIT_NULL;
32993 fra.me.closure_ctx = closctx_param;
32994 fra.me.closure_funs = CREG;
32995 fra.me.REG[0] = p0;
32996 CREG[0] = clos_fun0;
32997 /* ./parser//parser_prod.nit:6045 */
32998 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
32999 stack_frame_head = fra.me.prev;
33000 return;
33001 }
33002 void OC_parser___parser_prod___ABraExpr___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
33003 struct {struct stack_frame_t me;} fra;
33004 fun_t CREG[1];
33005 val_t tmp;
33006 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33007 fra.me.file = LOCATE_parser___parser_prod;
33008 fra.me.line = 0;
33009 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___visit_all;
33010 fra.me.has_broke = 0;
33011 fra.me.REG_size = 1;
33012 fra.me.nitni_local_ref_head = NULL;
33013 fra.me.REG[0] = NIT_NULL;
33014 fra.me.closure_ctx = closctx_param;
33015 fra.me.closure_funs = CREG;
33016 fra.me.REG[0] = p0;
33017 CREG[0] = clos_fun0;
33018 /* ./parser//parser_prod.nit:6048 */
33019 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
33020 stack_frame_head = fra.me.prev;
33021 return;
33022 }
33023 void parser___parser_prod___ABraAssignExpr___empty_init(val_t p0, int* init_table){
33024 int itpos201 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraAssignExpr].i;
33025 struct {struct stack_frame_t me;} fra;
33026 val_t tmp;
33027 if (init_table[itpos201]) return;
33028 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33029 fra.me.file = LOCATE_parser___parser_prod;
33030 fra.me.line = 6053;
33031 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___empty_init;
33032 fra.me.has_broke = 0;
33033 fra.me.REG_size = 1;
33034 fra.me.nitni_local_ref_head = NULL;
33035 fra.me.REG[0] = NIT_NULL;
33036 fra.me.REG[0] = p0;
33037 stack_frame_head = fra.me.prev;
33038 init_table[itpos201] = 1;
33039 return;
33040 }
33041 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){
33042 int itpos202 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraAssignExpr].i;
33043 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
33044 val_t REGB0;
33045 val_t tmp;
33046 if (init_table[itpos202]) return;
33047 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33048 fra.me.file = LOCATE_parser___parser_prod;
33049 fra.me.line = 6055;
33050 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___init_abraassignexpr;
33051 fra.me.has_broke = 0;
33052 fra.me.REG_size = 6;
33053 fra.me.nitni_local_ref_head = NULL;
33054 fra.me.REG[0] = NIT_NULL;
33055 fra.me.REG[1] = NIT_NULL;
33056 fra.me.REG[2] = NIT_NULL;
33057 fra.me.REG[3] = NIT_NULL;
33058 fra.me.REG[4] = NIT_NULL;
33059 fra.me.REG[5] = NIT_NULL;
33060 fra.me.REG[0] = p0;
33061 fra.me.REG[1] = p1;
33062 fra.me.REG[2] = p2;
33063 fra.me.REG[3] = p3;
33064 fra.me.REG[4] = p4;
33065 /* ./parser//parser_prod.nit:6055 */
33066 fra.me.REG[5] = fra.me.REG[0];
33067 /* ./parser//parser_prod.nit:6062 */
33068 CALL_parser___parser_prod___ABraAssignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
33069 /* ./parser//parser_prod.nit:6063 */
33070 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
33071 if (UNTAG_Bool(REGB0)) {
33072 } else {
33073 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6063);
33074 }
33075 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
33076 /* ./parser//parser_prod.nit:6064 */
33077 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33078 if (UNTAG_Bool(REGB0)) {
33079 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6064);
33080 }
33081 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
33082 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraAssignExpr___init_abraassignexpr_1));
33083 /* ./parser//parser_prod.nit:6070 */
33084 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
33085 if (UNTAG_Bool(REGB0)) {
33086 } else {
33087 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6070);
33088 }
33089 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[5]) = fra.me.REG[3];
33090 /* ./parser//parser_prod.nit:6071 */
33091 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
33092 if (UNTAG_Bool(REGB0)) {
33093 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6071);
33094 }
33095 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
33096 /* ./parser//parser_prod.nit:6072 */
33097 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
33098 if (UNTAG_Bool(REGB0)) {
33099 } else {
33100 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6072);
33101 }
33102 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
33103 /* ./parser//parser_prod.nit:6073 */
33104 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
33105 if (UNTAG_Bool(REGB0)) {
33106 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6073);
33107 }
33108 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
33109 stack_frame_head = fra.me.prev;
33110 init_table[itpos202] = 1;
33111 return;
33112 }
33113 void OC_parser___parser_prod___ABraAssignExpr___init_abraassignexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
33114 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33115 val_t REGB0;
33116 fun_t CREG[1];
33117 val_t tmp;
33118 /* ./parser//parser_prod.nit:6065 */
33119 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33120 fra.me.file = LOCATE_parser___parser_prod;
33121 fra.me.line = 0;
33122 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___init_abraassignexpr;
33123 fra.me.has_broke = 0;
33124 fra.me.REG_size = 2;
33125 fra.me.nitni_local_ref_head = NULL;
33126 fra.me.REG[0] = NIT_NULL;
33127 fra.me.REG[1] = NIT_NULL;
33128 fra.me.closure_ctx = closctx_param;
33129 fra.me.closure_funs = CREG;
33130 fra.me.REG[0] = p0;
33131 CREG[0] = clos_fun0;
33132 /* ./parser//parser_prod.nit:6066 */
33133 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
33134 if (UNTAG_Bool(REGB0)) {
33135 } else {
33136 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6066);
33137 }
33138 /* ./parser//parser_prod.nit:6067 */
33139 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[5])!=NIT_NULL);
33140 if (UNTAG_Bool(REGB0)) {
33141 } else {
33142 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6067);
33143 }
33144 fra.me.REG[1] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[5]);
33145 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33146 /* ./parser//parser_prod.nit:6068 */
33147 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
33148 stack_frame_head = fra.me.prev;
33149 return;
33150 }
33151 void parser___parser_prod___ABraAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
33152 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33153 val_t REGB0;
33154 val_t REGB1;
33155 val_t REGB2;
33156 val_t REGB3;
33157 val_t REGB4;
33158 val_t tmp;
33159 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33160 fra.me.file = LOCATE_parser___parser_prod;
33161 fra.me.line = 6076;
33162 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___replace_child;
33163 fra.me.has_broke = 0;
33164 fra.me.REG_size = 4;
33165 fra.me.nitni_local_ref_head = NULL;
33166 fra.me.REG[0] = NIT_NULL;
33167 fra.me.REG[1] = NIT_NULL;
33168 fra.me.REG[2] = NIT_NULL;
33169 fra.me.REG[3] = NIT_NULL;
33170 fra.me.REG[0] = p0;
33171 fra.me.REG[1] = p1;
33172 fra.me.REG[2] = p2;
33173 /* ./parser//parser_prod.nit:6078 */
33174 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33175 if (UNTAG_Bool(REGB0)) {
33176 } else {
33177 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6078);
33178 }
33179 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
33180 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33181 if (UNTAG_Bool(REGB0)) {
33182 } else {
33183 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33184 REGB0 = REGB1;
33185 }
33186 if (UNTAG_Bool(REGB0)) {
33187 /* ./parser//parser_prod.nit:6079 */
33188 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33189 if (UNTAG_Bool(REGB0)) {
33190 } else {
33191 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33192 if (UNTAG_Bool(REGB1)) {
33193 REGB1 = TAG_Bool(false);
33194 REGB0 = REGB1;
33195 } else {
33196 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33197 REGB0 = REGB1;
33198 }
33199 }
33200 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33201 if (UNTAG_Bool(REGB0)) {
33202 /* ./parser//parser_prod.nit:6080 */
33203 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33204 if (UNTAG_Bool(REGB0)) {
33205 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6080);
33206 }
33207 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33208 /* ./parser//parser_prod.nit:6081 */
33209 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*/;
33210 if (UNTAG_Bool(REGB0)) {
33211 } else {
33212 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6081);
33213 }
33214 /* ./parser//parser_prod.nit:6082 */
33215 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
33216 } else {
33217 /* ./parser//parser_prod.nit:6084 */
33218 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6084);
33219 }
33220 /* ./parser//parser_prod.nit:6086 */
33221 goto label1;
33222 }
33223 /* ./parser//parser_prod.nit:6088 */
33224 REGB0 = TAG_Int(0);
33225 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33226 if (UNTAG_Bool(REGB1)) {
33227 } else {
33228 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6088);
33229 }
33230 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33231 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
33232 /* ./../lib/standard//kernel.nit:352 */
33233 while(1) {
33234 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
33235 if (UNTAG_Bool(REGB2)) {
33236 } else {
33237 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
33238 }
33239 /* ./../lib/standard//kernel.nit:232 */
33240 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
33241 /* ./../lib/standard//kernel.nit:352 */
33242 if (UNTAG_Bool(REGB2)) {
33243 /* ./parser//parser_prod.nit:6088 */
33244 REGB2 = REGB0;
33245 /* ./parser//parser_prod.nit:6089 */
33246 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33247 if (UNTAG_Bool(REGB3)) {
33248 } else {
33249 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6089);
33250 }
33251 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33252 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
33253 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
33254 if (UNTAG_Bool(REGB3)) {
33255 } else {
33256 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
33257 if (UNTAG_Bool(REGB4)) {
33258 REGB4 = TAG_Bool(false);
33259 REGB3 = REGB4;
33260 } else {
33261 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33262 REGB3 = REGB4;
33263 }
33264 }
33265 if (UNTAG_Bool(REGB3)) {
33266 /* ./parser//parser_prod.nit:6090 */
33267 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33268 if (UNTAG_Bool(REGB3)) {
33269 } else {
33270 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33271 if (UNTAG_Bool(REGB4)) {
33272 REGB4 = TAG_Bool(false);
33273 REGB3 = REGB4;
33274 } else {
33275 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33276 REGB3 = REGB4;
33277 }
33278 }
33279 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
33280 if (UNTAG_Bool(REGB3)) {
33281 /* ./parser//parser_prod.nit:6091 */
33282 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*/;
33283 if (UNTAG_Bool(REGB3)) {
33284 } else {
33285 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6091);
33286 }
33287 /* ./parser//parser_prod.nit:6092 */
33288 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33289 if (UNTAG_Bool(REGB3)) {
33290 } else {
33291 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6092);
33292 }
33293 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33294 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
33295 /* ./parser//parser_prod.nit:6093 */
33296 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33297 if (UNTAG_Bool(REGB3)) {
33298 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6093);
33299 }
33300 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33301 } else {
33302 /* ./parser//parser_prod.nit:6095 */
33303 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33304 if (UNTAG_Bool(REGB3)) {
33305 } else {
33306 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6095);
33307 }
33308 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33309 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
33310 }
33311 /* ./parser//parser_prod.nit:6097 */
33312 goto label1;
33313 }
33314 /* ./../lib/standard//kernel.nit:354 */
33315 REGB2 = TAG_Int(1);
33316 /* ./../lib/standard//kernel.nit:235 */
33317 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
33318 /* ./../lib/standard//kernel.nit:354 */
33319 REGB0 = REGB2;
33320 } else {
33321 /* ./../lib/standard//kernel.nit:352 */
33322 goto label2;
33323 }
33324 }
33325 label2: while(0);
33326 /* ./parser//parser_prod.nit:6100 */
33327 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
33328 if (UNTAG_Bool(REGB0)) {
33329 } else {
33330 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6100);
33331 }
33332 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
33333 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33334 if (UNTAG_Bool(REGB0)) {
33335 } else {
33336 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33337 REGB0 = REGB1;
33338 }
33339 if (UNTAG_Bool(REGB0)) {
33340 /* ./parser//parser_prod.nit:6101 */
33341 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33342 if (UNTAG_Bool(REGB0)) {
33343 } else {
33344 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33345 if (UNTAG_Bool(REGB1)) {
33346 REGB1 = TAG_Bool(false);
33347 REGB0 = REGB1;
33348 } else {
33349 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33350 REGB0 = REGB1;
33351 }
33352 }
33353 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33354 if (UNTAG_Bool(REGB0)) {
33355 /* ./parser//parser_prod.nit:6102 */
33356 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33357 if (UNTAG_Bool(REGB0)) {
33358 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6102);
33359 }
33360 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33361 /* ./parser//parser_prod.nit:6103 */
33362 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*/;
33363 if (UNTAG_Bool(REGB0)) {
33364 } else {
33365 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6103);
33366 }
33367 /* ./parser//parser_prod.nit:6104 */
33368 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
33369 } else {
33370 /* ./parser//parser_prod.nit:6106 */
33371 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6106);
33372 }
33373 /* ./parser//parser_prod.nit:6108 */
33374 goto label1;
33375 }
33376 /* ./parser//parser_prod.nit:6110 */
33377 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33378 if (UNTAG_Bool(REGB0)) {
33379 } else {
33380 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6110);
33381 }
33382 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
33383 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33384 if (UNTAG_Bool(REGB0)) {
33385 } else {
33386 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33387 REGB0 = REGB1;
33388 }
33389 if (UNTAG_Bool(REGB0)) {
33390 /* ./parser//parser_prod.nit:6111 */
33391 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33392 if (UNTAG_Bool(REGB0)) {
33393 } else {
33394 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33395 if (UNTAG_Bool(REGB1)) {
33396 REGB1 = TAG_Bool(false);
33397 REGB0 = REGB1;
33398 } else {
33399 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33400 REGB0 = REGB1;
33401 }
33402 }
33403 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33404 if (UNTAG_Bool(REGB0)) {
33405 /* ./parser//parser_prod.nit:6112 */
33406 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33407 if (UNTAG_Bool(REGB0)) {
33408 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6112);
33409 }
33410 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33411 /* ./parser//parser_prod.nit:6113 */
33412 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*/;
33413 if (UNTAG_Bool(REGB0)) {
33414 } else {
33415 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6113);
33416 }
33417 /* ./parser//parser_prod.nit:6114 */
33418 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
33419 } else {
33420 /* ./parser//parser_prod.nit:6116 */
33421 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6116);
33422 }
33423 /* ./parser//parser_prod.nit:6118 */
33424 goto label1;
33425 }
33426 label1: while(0);
33427 stack_frame_head = fra.me.prev;
33428 return;
33429 }
33430 void parser___parser_prod___ABraAssignExpr___visit_all(val_t p0, val_t p1){
33431 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33432 val_t REGB0;
33433 val_t tmp;
33434 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33435 fra.me.file = LOCATE_parser___parser_prod;
33436 fra.me.line = 6122;
33437 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___visit_all;
33438 fra.me.has_broke = 0;
33439 fra.me.REG_size = 3;
33440 fra.me.nitni_local_ref_head = NULL;
33441 fra.me.REG[0] = NIT_NULL;
33442 fra.me.REG[1] = NIT_NULL;
33443 fra.me.REG[2] = NIT_NULL;
33444 fra.me.REG[0] = p0;
33445 fra.me.REG[1] = p1;
33446 /* ./parser//parser_prod.nit:6124 */
33447 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33448 if (UNTAG_Bool(REGB0)) {
33449 } else {
33450 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6124);
33451 }
33452 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
33453 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33454 /* ./parser//parser_prod.nit:6125 */
33455 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33456 if (UNTAG_Bool(REGB0)) {
33457 } else {
33458 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6125);
33459 }
33460 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33461 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraAssignExpr___visit_all_1));
33462 /* ./parser//parser_prod.nit:6128 */
33463 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
33464 if (UNTAG_Bool(REGB0)) {
33465 } else {
33466 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6128);
33467 }
33468 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
33469 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33470 /* ./parser//parser_prod.nit:6129 */
33471 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33472 if (UNTAG_Bool(REGB0)) {
33473 } else {
33474 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6129);
33475 }
33476 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
33477 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33478 stack_frame_head = fra.me.prev;
33479 return;
33480 }
33481 void OC_parser___parser_prod___ABraAssignExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
33482 struct {struct stack_frame_t me;} fra;
33483 fun_t CREG[1];
33484 val_t tmp;
33485 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33486 fra.me.file = LOCATE_parser___parser_prod;
33487 fra.me.line = 0;
33488 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___visit_all;
33489 fra.me.has_broke = 0;
33490 fra.me.REG_size = 1;
33491 fra.me.nitni_local_ref_head = NULL;
33492 fra.me.REG[0] = NIT_NULL;
33493 fra.me.closure_ctx = closctx_param;
33494 fra.me.closure_funs = CREG;
33495 fra.me.REG[0] = p0;
33496 CREG[0] = clos_fun0;
33497 /* ./parser//parser_prod.nit:6126 */
33498 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
33499 stack_frame_head = fra.me.prev;
33500 return;
33501 }
33502 void parser___parser_prod___ABraReassignExpr___empty_init(val_t p0, int* init_table){
33503 int itpos203 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraReassignExpr].i;
33504 struct {struct stack_frame_t me;} fra;
33505 val_t tmp;
33506 if (init_table[itpos203]) return;
33507 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33508 fra.me.file = LOCATE_parser___parser_prod;
33509 fra.me.line = 6133;
33510 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___empty_init;
33511 fra.me.has_broke = 0;
33512 fra.me.REG_size = 1;
33513 fra.me.nitni_local_ref_head = NULL;
33514 fra.me.REG[0] = NIT_NULL;
33515 fra.me.REG[0] = p0;
33516 stack_frame_head = fra.me.prev;
33517 init_table[itpos203] = 1;
33518 return;
33519 }
33520 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){
33521 int itpos204 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraReassignExpr].i;
33522 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
33523 val_t REGB0;
33524 val_t tmp;
33525 if (init_table[itpos204]) return;
33526 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33527 fra.me.file = LOCATE_parser___parser_prod;
33528 fra.me.line = 6135;
33529 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr;
33530 fra.me.has_broke = 0;
33531 fra.me.REG_size = 6;
33532 fra.me.nitni_local_ref_head = NULL;
33533 fra.me.REG[0] = NIT_NULL;
33534 fra.me.REG[1] = NIT_NULL;
33535 fra.me.REG[2] = NIT_NULL;
33536 fra.me.REG[3] = NIT_NULL;
33537 fra.me.REG[4] = NIT_NULL;
33538 fra.me.REG[5] = NIT_NULL;
33539 fra.me.REG[0] = p0;
33540 fra.me.REG[1] = p1;
33541 fra.me.REG[2] = p2;
33542 fra.me.REG[3] = p3;
33543 fra.me.REG[4] = p4;
33544 /* ./parser//parser_prod.nit:6135 */
33545 fra.me.REG[5] = fra.me.REG[0];
33546 /* ./parser//parser_prod.nit:6142 */
33547 CALL_parser___parser_prod___ABraReassignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
33548 /* ./parser//parser_prod.nit:6143 */
33549 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
33550 if (UNTAG_Bool(REGB0)) {
33551 } else {
33552 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6143);
33553 }
33554 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
33555 /* ./parser//parser_prod.nit:6144 */
33556 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33557 if (UNTAG_Bool(REGB0)) {
33558 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6144);
33559 }
33560 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
33561 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr_1));
33562 /* ./parser//parser_prod.nit:6150 */
33563 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
33564 if (UNTAG_Bool(REGB0)) {
33565 } else {
33566 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6150);
33567 }
33568 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[5]) = fra.me.REG[3];
33569 /* ./parser//parser_prod.nit:6151 */
33570 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
33571 if (UNTAG_Bool(REGB0)) {
33572 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6151);
33573 }
33574 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
33575 /* ./parser//parser_prod.nit:6152 */
33576 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
33577 if (UNTAG_Bool(REGB0)) {
33578 } else {
33579 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6152);
33580 }
33581 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
33582 /* ./parser//parser_prod.nit:6153 */
33583 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
33584 if (UNTAG_Bool(REGB0)) {
33585 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6153);
33586 }
33587 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
33588 stack_frame_head = fra.me.prev;
33589 init_table[itpos204] = 1;
33590 return;
33591 }
33592 void OC_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
33593 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33594 val_t REGB0;
33595 fun_t CREG[1];
33596 val_t tmp;
33597 /* ./parser//parser_prod.nit:6145 */
33598 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33599 fra.me.file = LOCATE_parser___parser_prod;
33600 fra.me.line = 0;
33601 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr;
33602 fra.me.has_broke = 0;
33603 fra.me.REG_size = 2;
33604 fra.me.nitni_local_ref_head = NULL;
33605 fra.me.REG[0] = NIT_NULL;
33606 fra.me.REG[1] = NIT_NULL;
33607 fra.me.closure_ctx = closctx_param;
33608 fra.me.closure_funs = CREG;
33609 fra.me.REG[0] = p0;
33610 CREG[0] = clos_fun0;
33611 /* ./parser//parser_prod.nit:6146 */
33612 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
33613 if (UNTAG_Bool(REGB0)) {
33614 } else {
33615 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6146);
33616 }
33617 /* ./parser//parser_prod.nit:6147 */
33618 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[5])!=NIT_NULL);
33619 if (UNTAG_Bool(REGB0)) {
33620 } else {
33621 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6147);
33622 }
33623 fra.me.REG[1] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[5]);
33624 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33625 /* ./parser//parser_prod.nit:6148 */
33626 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
33627 stack_frame_head = fra.me.prev;
33628 return;
33629 }
33630 void parser___parser_prod___ABraReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
33631 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33632 val_t REGB0;
33633 val_t REGB1;
33634 val_t REGB2;
33635 val_t REGB3;
33636 val_t REGB4;
33637 val_t tmp;
33638 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33639 fra.me.file = LOCATE_parser___parser_prod;
33640 fra.me.line = 6156;
33641 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___replace_child;
33642 fra.me.has_broke = 0;
33643 fra.me.REG_size = 4;
33644 fra.me.nitni_local_ref_head = NULL;
33645 fra.me.REG[0] = NIT_NULL;
33646 fra.me.REG[1] = NIT_NULL;
33647 fra.me.REG[2] = NIT_NULL;
33648 fra.me.REG[3] = NIT_NULL;
33649 fra.me.REG[0] = p0;
33650 fra.me.REG[1] = p1;
33651 fra.me.REG[2] = p2;
33652 /* ./parser//parser_prod.nit:6158 */
33653 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33654 if (UNTAG_Bool(REGB0)) {
33655 } else {
33656 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6158);
33657 }
33658 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
33659 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33660 if (UNTAG_Bool(REGB0)) {
33661 } else {
33662 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33663 REGB0 = REGB1;
33664 }
33665 if (UNTAG_Bool(REGB0)) {
33666 /* ./parser//parser_prod.nit:6159 */
33667 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33668 if (UNTAG_Bool(REGB0)) {
33669 } else {
33670 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33671 if (UNTAG_Bool(REGB1)) {
33672 REGB1 = TAG_Bool(false);
33673 REGB0 = REGB1;
33674 } else {
33675 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33676 REGB0 = REGB1;
33677 }
33678 }
33679 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33680 if (UNTAG_Bool(REGB0)) {
33681 /* ./parser//parser_prod.nit:6160 */
33682 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33683 if (UNTAG_Bool(REGB0)) {
33684 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6160);
33685 }
33686 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33687 /* ./parser//parser_prod.nit:6161 */
33688 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*/;
33689 if (UNTAG_Bool(REGB0)) {
33690 } else {
33691 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6161);
33692 }
33693 /* ./parser//parser_prod.nit:6162 */
33694 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
33695 } else {
33696 /* ./parser//parser_prod.nit:6164 */
33697 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6164);
33698 }
33699 /* ./parser//parser_prod.nit:6166 */
33700 goto label1;
33701 }
33702 /* ./parser//parser_prod.nit:6168 */
33703 REGB0 = TAG_Int(0);
33704 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33705 if (UNTAG_Bool(REGB1)) {
33706 } else {
33707 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6168);
33708 }
33709 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33710 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
33711 /* ./../lib/standard//kernel.nit:352 */
33712 while(1) {
33713 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
33714 if (UNTAG_Bool(REGB2)) {
33715 } else {
33716 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
33717 }
33718 /* ./../lib/standard//kernel.nit:232 */
33719 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
33720 /* ./../lib/standard//kernel.nit:352 */
33721 if (UNTAG_Bool(REGB2)) {
33722 /* ./parser//parser_prod.nit:6168 */
33723 REGB2 = REGB0;
33724 /* ./parser//parser_prod.nit:6169 */
33725 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33726 if (UNTAG_Bool(REGB3)) {
33727 } else {
33728 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6169);
33729 }
33730 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33731 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
33732 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
33733 if (UNTAG_Bool(REGB3)) {
33734 } else {
33735 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
33736 if (UNTAG_Bool(REGB4)) {
33737 REGB4 = TAG_Bool(false);
33738 REGB3 = REGB4;
33739 } else {
33740 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33741 REGB3 = REGB4;
33742 }
33743 }
33744 if (UNTAG_Bool(REGB3)) {
33745 /* ./parser//parser_prod.nit:6170 */
33746 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33747 if (UNTAG_Bool(REGB3)) {
33748 } else {
33749 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33750 if (UNTAG_Bool(REGB4)) {
33751 REGB4 = TAG_Bool(false);
33752 REGB3 = REGB4;
33753 } else {
33754 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33755 REGB3 = REGB4;
33756 }
33757 }
33758 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
33759 if (UNTAG_Bool(REGB3)) {
33760 /* ./parser//parser_prod.nit:6171 */
33761 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*/;
33762 if (UNTAG_Bool(REGB3)) {
33763 } else {
33764 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6171);
33765 }
33766 /* ./parser//parser_prod.nit:6172 */
33767 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33768 if (UNTAG_Bool(REGB3)) {
33769 } else {
33770 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6172);
33771 }
33772 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33773 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
33774 /* ./parser//parser_prod.nit:6173 */
33775 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33776 if (UNTAG_Bool(REGB3)) {
33777 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6173);
33778 }
33779 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33780 } else {
33781 /* ./parser//parser_prod.nit:6175 */
33782 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33783 if (UNTAG_Bool(REGB3)) {
33784 } else {
33785 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6175);
33786 }
33787 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33788 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
33789 }
33790 /* ./parser//parser_prod.nit:6177 */
33791 goto label1;
33792 }
33793 /* ./../lib/standard//kernel.nit:354 */
33794 REGB2 = TAG_Int(1);
33795 /* ./../lib/standard//kernel.nit:235 */
33796 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
33797 /* ./../lib/standard//kernel.nit:354 */
33798 REGB0 = REGB2;
33799 } else {
33800 /* ./../lib/standard//kernel.nit:352 */
33801 goto label2;
33802 }
33803 }
33804 label2: while(0);
33805 /* ./parser//parser_prod.nit:6180 */
33806 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
33807 if (UNTAG_Bool(REGB0)) {
33808 } else {
33809 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6180);
33810 }
33811 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
33812 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33813 if (UNTAG_Bool(REGB0)) {
33814 } else {
33815 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33816 REGB0 = REGB1;
33817 }
33818 if (UNTAG_Bool(REGB0)) {
33819 /* ./parser//parser_prod.nit:6181 */
33820 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33821 if (UNTAG_Bool(REGB0)) {
33822 } else {
33823 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33824 if (UNTAG_Bool(REGB1)) {
33825 REGB1 = TAG_Bool(false);
33826 REGB0 = REGB1;
33827 } else {
33828 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33829 REGB0 = REGB1;
33830 }
33831 }
33832 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33833 if (UNTAG_Bool(REGB0)) {
33834 /* ./parser//parser_prod.nit:6182 */
33835 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33836 if (UNTAG_Bool(REGB0)) {
33837 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6182);
33838 }
33839 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33840 /* ./parser//parser_prod.nit:6183 */
33841 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*/;
33842 if (UNTAG_Bool(REGB0)) {
33843 } else {
33844 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6183);
33845 }
33846 /* ./parser//parser_prod.nit:6184 */
33847 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
33848 } else {
33849 /* ./parser//parser_prod.nit:6186 */
33850 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6186);
33851 }
33852 /* ./parser//parser_prod.nit:6188 */
33853 goto label1;
33854 }
33855 /* ./parser//parser_prod.nit:6190 */
33856 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33857 if (UNTAG_Bool(REGB0)) {
33858 } else {
33859 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6190);
33860 }
33861 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
33862 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33863 if (UNTAG_Bool(REGB0)) {
33864 } else {
33865 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33866 REGB0 = REGB1;
33867 }
33868 if (UNTAG_Bool(REGB0)) {
33869 /* ./parser//parser_prod.nit:6191 */
33870 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33871 if (UNTAG_Bool(REGB0)) {
33872 } else {
33873 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33874 if (UNTAG_Bool(REGB1)) {
33875 REGB1 = TAG_Bool(false);
33876 REGB0 = REGB1;
33877 } else {
33878 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33879 REGB0 = REGB1;
33880 }
33881 }
33882 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33883 if (UNTAG_Bool(REGB0)) {
33884 /* ./parser//parser_prod.nit:6192 */
33885 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33886 if (UNTAG_Bool(REGB0)) {
33887 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6192);
33888 }
33889 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33890 /* ./parser//parser_prod.nit:6193 */
33891 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*/;
33892 if (UNTAG_Bool(REGB0)) {
33893 } else {
33894 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6193);
33895 }
33896 /* ./parser//parser_prod.nit:6194 */
33897 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
33898 } else {
33899 /* ./parser//parser_prod.nit:6196 */
33900 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6196);
33901 }
33902 /* ./parser//parser_prod.nit:6198 */
33903 goto label1;
33904 }
33905 label1: while(0);
33906 stack_frame_head = fra.me.prev;
33907 return;
33908 }
33909 void parser___parser_prod___ABraReassignExpr___visit_all(val_t p0, val_t p1){
33910 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33911 val_t REGB0;
33912 val_t tmp;
33913 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33914 fra.me.file = LOCATE_parser___parser_prod;
33915 fra.me.line = 6202;
33916 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___visit_all;
33917 fra.me.has_broke = 0;
33918 fra.me.REG_size = 3;
33919 fra.me.nitni_local_ref_head = NULL;
33920 fra.me.REG[0] = NIT_NULL;
33921 fra.me.REG[1] = NIT_NULL;
33922 fra.me.REG[2] = NIT_NULL;
33923 fra.me.REG[0] = p0;
33924 fra.me.REG[1] = p1;
33925 /* ./parser//parser_prod.nit:6204 */
33926 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33927 if (UNTAG_Bool(REGB0)) {
33928 } else {
33929 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6204);
33930 }
33931 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
33932 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33933 /* ./parser//parser_prod.nit:6205 */
33934 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33935 if (UNTAG_Bool(REGB0)) {
33936 } else {
33937 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6205);
33938 }
33939 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33940 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraReassignExpr___visit_all_1));
33941 /* ./parser//parser_prod.nit:6208 */
33942 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
33943 if (UNTAG_Bool(REGB0)) {
33944 } else {
33945 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6208);
33946 }
33947 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
33948 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33949 /* ./parser//parser_prod.nit:6209 */
33950 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33951 if (UNTAG_Bool(REGB0)) {
33952 } else {
33953 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6209);
33954 }
33955 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
33956 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33957 stack_frame_head = fra.me.prev;
33958 return;
33959 }
33960 void OC_parser___parser_prod___ABraReassignExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
33961 struct {struct stack_frame_t me;} fra;
33962 fun_t CREG[1];
33963 val_t tmp;
33964 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33965 fra.me.file = LOCATE_parser___parser_prod;
33966 fra.me.line = 0;
33967 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___visit_all;
33968 fra.me.has_broke = 0;
33969 fra.me.REG_size = 1;
33970 fra.me.nitni_local_ref_head = NULL;
33971 fra.me.REG[0] = NIT_NULL;
33972 fra.me.closure_ctx = closctx_param;
33973 fra.me.closure_funs = CREG;
33974 fra.me.REG[0] = p0;
33975 CREG[0] = clos_fun0;
33976 /* ./parser//parser_prod.nit:6206 */
33977 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
33978 stack_frame_head = fra.me.prev;
33979 return;
33980 }
33981 void parser___parser_prod___AClosureCallExpr___empty_init(val_t p0, int* init_table){
33982 int itpos205 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureCallExpr].i;
33983 struct {struct stack_frame_t me;} fra;
33984 val_t tmp;
33985 if (init_table[itpos205]) return;
33986 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33987 fra.me.file = LOCATE_parser___parser_prod;
33988 fra.me.line = 6213;
33989 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___empty_init;
33990 fra.me.has_broke = 0;
33991 fra.me.REG_size = 1;
33992 fra.me.nitni_local_ref_head = NULL;
33993 fra.me.REG[0] = NIT_NULL;
33994 fra.me.REG[0] = p0;
33995 stack_frame_head = fra.me.prev;
33996 init_table[itpos205] = 1;
33997 return;
33998 }
33999 void parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
34000 int itpos206 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureCallExpr].i;
34001 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
34002 val_t REGB0;
34003 val_t tmp;
34004 if (init_table[itpos206]) return;
34005 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34006 fra.me.file = LOCATE_parser___parser_prod;
34007 fra.me.line = 6215;
34008 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr;
34009 fra.me.has_broke = 0;
34010 fra.me.REG_size = 5;
34011 fra.me.nitni_local_ref_head = NULL;
34012 fra.me.REG[0] = NIT_NULL;
34013 fra.me.REG[1] = NIT_NULL;
34014 fra.me.REG[2] = NIT_NULL;
34015 fra.me.REG[3] = NIT_NULL;
34016 fra.me.REG[4] = NIT_NULL;
34017 fra.me.REG[0] = p0;
34018 fra.me.REG[1] = p1;
34019 fra.me.REG[2] = p2;
34020 fra.me.REG[3] = p3;
34021 /* ./parser//parser_prod.nit:6215 */
34022 fra.me.REG[4] = fra.me.REG[0];
34023 /* ./parser//parser_prod.nit:6221 */
34024 CALL_parser___parser_prod___AClosureCallExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
34025 /* ./parser//parser_prod.nit:6222 */
34026 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34027 if (UNTAG_Bool(REGB0)) {
34028 } else {
34029 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6222);
34030 }
34031 ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
34032 /* ./parser//parser_prod.nit:6223 */
34033 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34034 if (UNTAG_Bool(REGB0)) {
34035 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6223);
34036 }
34037 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
34038 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr_1));
34039 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_2));
34040 stack_frame_head = fra.me.prev;
34041 init_table[itpos206] = 1;
34042 return;
34043 }
34044 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){
34045 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34046 val_t REGB0;
34047 fun_t CREG[1];
34048 val_t tmp;
34049 /* ./parser//parser_prod.nit:6224 */
34050 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34051 fra.me.file = LOCATE_parser___parser_prod;
34052 fra.me.line = 0;
34053 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr;
34054 fra.me.has_broke = 0;
34055 fra.me.REG_size = 2;
34056 fra.me.nitni_local_ref_head = NULL;
34057 fra.me.REG[0] = NIT_NULL;
34058 fra.me.REG[1] = NIT_NULL;
34059 fra.me.closure_ctx = closctx_param;
34060 fra.me.closure_funs = CREG;
34061 fra.me.REG[0] = p0;
34062 CREG[0] = clos_fun0;
34063 /* ./parser//parser_prod.nit:6225 */
34064 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
34065 if (UNTAG_Bool(REGB0)) {
34066 } else {
34067 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6225);
34068 }
34069 /* ./parser//parser_prod.nit:6226 */
34070 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(closctx->REG[4])!=NIT_NULL);
34071 if (UNTAG_Bool(REGB0)) {
34072 } else {
34073 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6226);
34074 }
34075 fra.me.REG[1] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(closctx->REG[4]);
34076 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34077 /* ./parser//parser_prod.nit:6227 */
34078 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
34079 stack_frame_head = fra.me.prev;
34080 return;
34081 }
34082 void OC_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
34083 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34084 val_t REGB0;
34085 fun_t CREG[1];
34086 val_t tmp;
34087 /* ./parser//parser_prod.nit:6229 */
34088 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34089 fra.me.file = LOCATE_parser___parser_prod;
34090 fra.me.line = 0;
34091 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr;
34092 fra.me.has_broke = 0;
34093 fra.me.REG_size = 2;
34094 fra.me.nitni_local_ref_head = NULL;
34095 fra.me.REG[0] = NIT_NULL;
34096 fra.me.REG[1] = NIT_NULL;
34097 fra.me.closure_ctx = closctx_param;
34098 fra.me.closure_funs = CREG;
34099 fra.me.REG[0] = p0;
34100 CREG[0] = clos_fun0;
34101 /* ./parser//parser_prod.nit:6230 */
34102 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
34103 if (UNTAG_Bool(REGB0)) {
34104 } else {
34105 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6230);
34106 }
34107 /* ./parser//parser_prod.nit:6231 */
34108 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(closctx->REG[4])!=NIT_NULL);
34109 if (UNTAG_Bool(REGB0)) {
34110 } else {
34111 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6231);
34112 }
34113 fra.me.REG[1] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(closctx->REG[4]);
34114 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34115 /* ./parser//parser_prod.nit:6232 */
34116 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
34117 stack_frame_head = fra.me.prev;
34118 return;
34119 }
34120 void parser___parser_prod___AClosureCallExpr___replace_child(val_t p0, val_t p1, val_t p2){
34121 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34122 val_t REGB0;
34123 val_t REGB1;
34124 val_t REGB2;
34125 val_t REGB3;
34126 val_t REGB4;
34127 val_t tmp;
34128 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34129 fra.me.file = LOCATE_parser___parser_prod;
34130 fra.me.line = 6236;
34131 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___replace_child;
34132 fra.me.has_broke = 0;
34133 fra.me.REG_size = 4;
34134 fra.me.nitni_local_ref_head = NULL;
34135 fra.me.REG[0] = NIT_NULL;
34136 fra.me.REG[1] = NIT_NULL;
34137 fra.me.REG[2] = NIT_NULL;
34138 fra.me.REG[3] = NIT_NULL;
34139 fra.me.REG[0] = p0;
34140 fra.me.REG[1] = p1;
34141 fra.me.REG[2] = p2;
34142 /* ./parser//parser_prod.nit:6238 */
34143 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0])!=NIT_NULL);
34144 if (UNTAG_Bool(REGB0)) {
34145 } else {
34146 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6238);
34147 }
34148 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]);
34149 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34150 if (UNTAG_Bool(REGB0)) {
34151 } else {
34152 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34153 REGB0 = REGB1;
34154 }
34155 if (UNTAG_Bool(REGB0)) {
34156 /* ./parser//parser_prod.nit:6239 */
34157 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34158 if (UNTAG_Bool(REGB0)) {
34159 } else {
34160 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34161 if (UNTAG_Bool(REGB1)) {
34162 REGB1 = TAG_Bool(false);
34163 REGB0 = REGB1;
34164 } else {
34165 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34166 REGB0 = REGB1;
34167 }
34168 }
34169 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34170 if (UNTAG_Bool(REGB0)) {
34171 /* ./parser//parser_prod.nit:6240 */
34172 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34173 if (UNTAG_Bool(REGB0)) {
34174 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6240);
34175 }
34176 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34177 /* ./parser//parser_prod.nit:6241 */
34178 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*/;
34179 if (UNTAG_Bool(REGB0)) {
34180 } else {
34181 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6241);
34182 }
34183 /* ./parser//parser_prod.nit:6242 */
34184 ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
34185 } else {
34186 /* ./parser//parser_prod.nit:6244 */
34187 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6244);
34188 }
34189 /* ./parser//parser_prod.nit:6246 */
34190 goto label1;
34191 }
34192 /* ./parser//parser_prod.nit:6248 */
34193 REGB0 = TAG_Int(0);
34194 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
34195 if (UNTAG_Bool(REGB1)) {
34196 } else {
34197 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6248);
34198 }
34199 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
34200 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
34201 /* ./../lib/standard//kernel.nit:352 */
34202 while(1) {
34203 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
34204 if (UNTAG_Bool(REGB2)) {
34205 } else {
34206 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
34207 }
34208 /* ./../lib/standard//kernel.nit:232 */
34209 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
34210 /* ./../lib/standard//kernel.nit:352 */
34211 if (UNTAG_Bool(REGB2)) {
34212 /* ./parser//parser_prod.nit:6248 */
34213 REGB2 = REGB0;
34214 /* ./parser//parser_prod.nit:6249 */
34215 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
34216 if (UNTAG_Bool(REGB3)) {
34217 } else {
34218 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6249);
34219 }
34220 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
34221 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
34222 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
34223 if (UNTAG_Bool(REGB3)) {
34224 } else {
34225 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34226 if (UNTAG_Bool(REGB4)) {
34227 REGB4 = TAG_Bool(false);
34228 REGB3 = REGB4;
34229 } else {
34230 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34231 REGB3 = REGB4;
34232 }
34233 }
34234 if (UNTAG_Bool(REGB3)) {
34235 /* ./parser//parser_prod.nit:6250 */
34236 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34237 if (UNTAG_Bool(REGB3)) {
34238 } else {
34239 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34240 if (UNTAG_Bool(REGB4)) {
34241 REGB4 = TAG_Bool(false);
34242 REGB3 = REGB4;
34243 } else {
34244 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34245 REGB3 = REGB4;
34246 }
34247 }
34248 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
34249 if (UNTAG_Bool(REGB3)) {
34250 /* ./parser//parser_prod.nit:6251 */
34251 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*/;
34252 if (UNTAG_Bool(REGB3)) {
34253 } else {
34254 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6251);
34255 }
34256 /* ./parser//parser_prod.nit:6252 */
34257 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
34258 if (UNTAG_Bool(REGB3)) {
34259 } else {
34260 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6252);
34261 }
34262 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
34263 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
34264 /* ./parser//parser_prod.nit:6253 */
34265 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34266 if (UNTAG_Bool(REGB3)) {
34267 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6253);
34268 }
34269 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34270 } else {
34271 /* ./parser//parser_prod.nit:6255 */
34272 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
34273 if (UNTAG_Bool(REGB3)) {
34274 } else {
34275 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6255);
34276 }
34277 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
34278 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
34279 }
34280 /* ./parser//parser_prod.nit:6257 */
34281 goto label1;
34282 }
34283 /* ./../lib/standard//kernel.nit:354 */
34284 REGB2 = TAG_Int(1);
34285 /* ./../lib/standard//kernel.nit:235 */
34286 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
34287 /* ./../lib/standard//kernel.nit:354 */
34288 REGB0 = REGB2;
34289 } else {
34290 /* ./../lib/standard//kernel.nit:352 */
34291 goto label2;
34292 }
34293 }
34294 label2: while(0);
34295 /* ./parser//parser_prod.nit:6260 */
34296 REGB0 = TAG_Int(0);
34297 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
34298 if (UNTAG_Bool(REGB1)) {
34299 } else {
34300 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6260);
34301 }
34302 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
34303 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
34304 /* ./../lib/standard//kernel.nit:352 */
34305 while(1) {
34306 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
34307 if (UNTAG_Bool(REGB2)) {
34308 } else {
34309 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
34310 }
34311 /* ./../lib/standard//kernel.nit:232 */
34312 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
34313 /* ./../lib/standard//kernel.nit:352 */
34314 if (UNTAG_Bool(REGB2)) {
34315 /* ./parser//parser_prod.nit:6260 */
34316 REGB2 = REGB0;
34317 /* ./parser//parser_prod.nit:6261 */
34318 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
34319 if (UNTAG_Bool(REGB3)) {
34320 } else {
34321 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6261);
34322 }
34323 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
34324 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
34325 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
34326 if (UNTAG_Bool(REGB3)) {
34327 } else {
34328 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34329 if (UNTAG_Bool(REGB4)) {
34330 REGB4 = TAG_Bool(false);
34331 REGB3 = REGB4;
34332 } else {
34333 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34334 REGB3 = REGB4;
34335 }
34336 }
34337 if (UNTAG_Bool(REGB3)) {
34338 /* ./parser//parser_prod.nit:6262 */
34339 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34340 if (UNTAG_Bool(REGB3)) {
34341 } else {
34342 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34343 if (UNTAG_Bool(REGB4)) {
34344 REGB4 = TAG_Bool(false);
34345 REGB3 = REGB4;
34346 } else {
34347 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34348 REGB3 = REGB4;
34349 }
34350 }
34351 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
34352 if (UNTAG_Bool(REGB3)) {
34353 /* ./parser//parser_prod.nit:6263 */
34354 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*/;
34355 if (UNTAG_Bool(REGB3)) {
34356 } else {
34357 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6263);
34358 }
34359 /* ./parser//parser_prod.nit:6264 */
34360 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
34361 if (UNTAG_Bool(REGB3)) {
34362 } else {
34363 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6264);
34364 }
34365 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
34366 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
34367 /* ./parser//parser_prod.nit:6265 */
34368 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34369 if (UNTAG_Bool(REGB3)) {
34370 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6265);
34371 }
34372 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34373 } else {
34374 /* ./parser//parser_prod.nit:6267 */
34375 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
34376 if (UNTAG_Bool(REGB3)) {
34377 } else {
34378 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6267);
34379 }
34380 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
34381 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
34382 }
34383 /* ./parser//parser_prod.nit:6269 */
34384 goto label1;
34385 }
34386 /* ./../lib/standard//kernel.nit:354 */
34387 REGB2 = TAG_Int(1);
34388 /* ./../lib/standard//kernel.nit:235 */
34389 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
34390 /* ./../lib/standard//kernel.nit:354 */
34391 REGB0 = REGB2;
34392 } else {
34393 /* ./../lib/standard//kernel.nit:352 */
34394 goto label3;
34395 }
34396 }
34397 label3: while(0);
34398 label1: while(0);
34399 stack_frame_head = fra.me.prev;
34400 return;
34401 }
34402 void parser___parser_prod___AClosureCallExpr___visit_all(val_t p0, val_t p1){
34403 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34404 val_t REGB0;
34405 val_t tmp;
34406 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34407 fra.me.file = LOCATE_parser___parser_prod;
34408 fra.me.line = 6274;
34409 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___visit_all;
34410 fra.me.has_broke = 0;
34411 fra.me.REG_size = 3;
34412 fra.me.nitni_local_ref_head = NULL;
34413 fra.me.REG[0] = NIT_NULL;
34414 fra.me.REG[1] = NIT_NULL;
34415 fra.me.REG[2] = NIT_NULL;
34416 fra.me.REG[0] = p0;
34417 fra.me.REG[1] = p1;
34418 /* ./parser//parser_prod.nit:6276 */
34419 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0])!=NIT_NULL);
34420 if (UNTAG_Bool(REGB0)) {
34421 } else {
34422 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6276);
34423 }
34424 fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]);
34425 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34426 /* ./parser//parser_prod.nit:6277 */
34427 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
34428 if (UNTAG_Bool(REGB0)) {
34429 } else {
34430 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6277);
34431 }
34432 fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
34433 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AClosureCallExpr___visit_all_1));
34434 /* ./parser//parser_prod.nit:6280 */
34435 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
34436 if (UNTAG_Bool(REGB0)) {
34437 } else {
34438 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6280);
34439 }
34440 fra.me.REG[0] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
34441 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_2));
34442 stack_frame_head = fra.me.prev;
34443 return;
34444 }
34445 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){
34446 struct {struct stack_frame_t me;} fra;
34447 fun_t CREG[1];
34448 val_t tmp;
34449 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34450 fra.me.file = LOCATE_parser___parser_prod;
34451 fra.me.line = 0;
34452 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___visit_all;
34453 fra.me.has_broke = 0;
34454 fra.me.REG_size = 1;
34455 fra.me.nitni_local_ref_head = NULL;
34456 fra.me.REG[0] = NIT_NULL;
34457 fra.me.closure_ctx = closctx_param;
34458 fra.me.closure_funs = CREG;
34459 fra.me.REG[0] = p0;
34460 CREG[0] = clos_fun0;
34461 /* ./parser//parser_prod.nit:6278 */
34462 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
34463 stack_frame_head = fra.me.prev;
34464 return;
34465 }
34466 void OC_parser___parser_prod___AClosureCallExpr___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
34467 struct {struct stack_frame_t me;} fra;
34468 fun_t CREG[1];
34469 val_t tmp;
34470 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34471 fra.me.file = LOCATE_parser___parser_prod;
34472 fra.me.line = 0;
34473 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___visit_all;
34474 fra.me.has_broke = 0;
34475 fra.me.REG_size = 1;
34476 fra.me.nitni_local_ref_head = NULL;
34477 fra.me.REG[0] = NIT_NULL;
34478 fra.me.closure_ctx = closctx_param;
34479 fra.me.closure_funs = CREG;
34480 fra.me.REG[0] = p0;
34481 CREG[0] = clos_fun0;
34482 /* ./parser//parser_prod.nit:6281 */
34483 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
34484 stack_frame_head = fra.me.prev;
34485 return;
34486 }
34487 void parser___parser_prod___AVarExpr___empty_init(val_t p0, int* init_table){
34488 int itpos207 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarExpr].i;
34489 struct {struct stack_frame_t me;} fra;
34490 val_t tmp;
34491 if (init_table[itpos207]) return;
34492 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34493 fra.me.file = LOCATE_parser___parser_prod;
34494 fra.me.line = 6286;
34495 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___empty_init;
34496 fra.me.has_broke = 0;
34497 fra.me.REG_size = 1;
34498 fra.me.nitni_local_ref_head = NULL;
34499 fra.me.REG[0] = NIT_NULL;
34500 fra.me.REG[0] = p0;
34501 stack_frame_head = fra.me.prev;
34502 init_table[itpos207] = 1;
34503 return;
34504 }
34505 void parser___parser_prod___AVarExpr___init_avarexpr(val_t p0, val_t p1, int* init_table){
34506 int itpos208 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarExpr].i;
34507 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34508 val_t REGB0;
34509 val_t tmp;
34510 if (init_table[itpos208]) return;
34511 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34512 fra.me.file = LOCATE_parser___parser_prod;
34513 fra.me.line = 6288;
34514 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___init_avarexpr;
34515 fra.me.has_broke = 0;
34516 fra.me.REG_size = 3;
34517 fra.me.nitni_local_ref_head = NULL;
34518 fra.me.REG[0] = NIT_NULL;
34519 fra.me.REG[1] = NIT_NULL;
34520 fra.me.REG[2] = NIT_NULL;
34521 fra.me.REG[0] = p0;
34522 fra.me.REG[1] = p1;
34523 /* ./parser//parser_prod.nit:6288 */
34524 fra.me.REG[2] = fra.me.REG[0];
34525 /* ./parser//parser_prod.nit:6292 */
34526 CALL_parser___parser_prod___AVarExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
34527 /* ./parser//parser_prod.nit:6293 */
34528 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34529 if (UNTAG_Bool(REGB0)) {
34530 } else {
34531 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6293);
34532 }
34533 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[2]) = fra.me.REG[1];
34534 /* ./parser//parser_prod.nit:6294 */
34535 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34536 if (UNTAG_Bool(REGB0)) {
34537 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6294);
34538 }
34539 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34540 stack_frame_head = fra.me.prev;
34541 init_table[itpos208] = 1;
34542 return;
34543 }
34544 void parser___parser_prod___AVarExpr___replace_child(val_t p0, val_t p1, val_t p2){
34545 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34546 val_t REGB0;
34547 val_t REGB1;
34548 val_t tmp;
34549 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34550 fra.me.file = LOCATE_parser___parser_prod;
34551 fra.me.line = 6297;
34552 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___replace_child;
34553 fra.me.has_broke = 0;
34554 fra.me.REG_size = 4;
34555 fra.me.nitni_local_ref_head = NULL;
34556 fra.me.REG[0] = NIT_NULL;
34557 fra.me.REG[1] = NIT_NULL;
34558 fra.me.REG[2] = NIT_NULL;
34559 fra.me.REG[3] = NIT_NULL;
34560 fra.me.REG[0] = p0;
34561 fra.me.REG[1] = p1;
34562 fra.me.REG[2] = p2;
34563 /* ./parser//parser_prod.nit:6299 */
34564 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
34565 if (UNTAG_Bool(REGB0)) {
34566 } else {
34567 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6299);
34568 }
34569 fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
34570 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34571 if (UNTAG_Bool(REGB0)) {
34572 } else {
34573 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34574 REGB0 = REGB1;
34575 }
34576 if (UNTAG_Bool(REGB0)) {
34577 /* ./parser//parser_prod.nit:6300 */
34578 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34579 if (UNTAG_Bool(REGB0)) {
34580 } else {
34581 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34582 if (UNTAG_Bool(REGB1)) {
34583 REGB1 = TAG_Bool(false);
34584 REGB0 = REGB1;
34585 } else {
34586 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34587 REGB0 = REGB1;
34588 }
34589 }
34590 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34591 if (UNTAG_Bool(REGB0)) {
34592 /* ./parser//parser_prod.nit:6301 */
34593 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34594 if (UNTAG_Bool(REGB0)) {
34595 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6301);
34596 }
34597 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34598 /* ./parser//parser_prod.nit:6302 */
34599 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*/;
34600 if (UNTAG_Bool(REGB0)) {
34601 } else {
34602 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6302);
34603 }
34604 /* ./parser//parser_prod.nit:6303 */
34605 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
34606 } else {
34607 /* ./parser//parser_prod.nit:6305 */
34608 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6305);
34609 }
34610 /* ./parser//parser_prod.nit:6307 */
34611 goto label1;
34612 }
34613 label1: while(0);
34614 stack_frame_head = fra.me.prev;
34615 return;
34616 }
34617 void parser___parser_prod___AVarExpr___visit_all(val_t p0, val_t p1){
34618 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34619 val_t REGB0;
34620 val_t tmp;
34621 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34622 fra.me.file = LOCATE_parser___parser_prod;
34623 fra.me.line = 6311;
34624 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___visit_all;
34625 fra.me.has_broke = 0;
34626 fra.me.REG_size = 2;
34627 fra.me.nitni_local_ref_head = NULL;
34628 fra.me.REG[0] = NIT_NULL;
34629 fra.me.REG[1] = NIT_NULL;
34630 fra.me.REG[0] = p0;
34631 fra.me.REG[1] = p1;
34632 /* ./parser//parser_prod.nit:6313 */
34633 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
34634 if (UNTAG_Bool(REGB0)) {
34635 } else {
34636 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6313);
34637 }
34638 fra.me.REG[0] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
34639 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34640 stack_frame_head = fra.me.prev;
34641 return;
34642 }
34643 void parser___parser_prod___AVarAssignExpr___empty_init(val_t p0, int* init_table){
34644 int itpos209 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarAssignExpr].i;
34645 struct {struct stack_frame_t me;} fra;
34646 val_t tmp;
34647 if (init_table[itpos209]) return;
34648 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34649 fra.me.file = LOCATE_parser___parser_prod;
34650 fra.me.line = 6317;
34651 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___empty_init;
34652 fra.me.has_broke = 0;
34653 fra.me.REG_size = 1;
34654 fra.me.nitni_local_ref_head = NULL;
34655 fra.me.REG[0] = NIT_NULL;
34656 fra.me.REG[0] = p0;
34657 stack_frame_head = fra.me.prev;
34658 init_table[itpos209] = 1;
34659 return;
34660 }
34661 void parser___parser_prod___AVarAssignExpr___init_avarassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
34662 int itpos210 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarAssignExpr].i;
34663 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
34664 val_t REGB0;
34665 val_t tmp;
34666 if (init_table[itpos210]) return;
34667 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34668 fra.me.file = LOCATE_parser___parser_prod;
34669 fra.me.line = 6319;
34670 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___init_avarassignexpr;
34671 fra.me.has_broke = 0;
34672 fra.me.REG_size = 5;
34673 fra.me.nitni_local_ref_head = NULL;
34674 fra.me.REG[0] = NIT_NULL;
34675 fra.me.REG[1] = NIT_NULL;
34676 fra.me.REG[2] = NIT_NULL;
34677 fra.me.REG[3] = NIT_NULL;
34678 fra.me.REG[4] = NIT_NULL;
34679 fra.me.REG[0] = p0;
34680 fra.me.REG[1] = p1;
34681 fra.me.REG[2] = p2;
34682 fra.me.REG[3] = p3;
34683 /* ./parser//parser_prod.nit:6319 */
34684 fra.me.REG[4] = fra.me.REG[0];
34685 /* ./parser//parser_prod.nit:6325 */
34686 CALL_parser___parser_prod___AVarAssignExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
34687 /* ./parser//parser_prod.nit:6326 */
34688 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34689 if (UNTAG_Bool(REGB0)) {
34690 } else {
34691 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6326);
34692 }
34693 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
34694 /* ./parser//parser_prod.nit:6327 */
34695 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34696 if (UNTAG_Bool(REGB0)) {
34697 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6327);
34698 }
34699 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
34700 /* ./parser//parser_prod.nit:6328 */
34701 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
34702 if (UNTAG_Bool(REGB0)) {
34703 } else {
34704 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6328);
34705 }
34706 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[4]) = fra.me.REG[2];
34707 /* ./parser//parser_prod.nit:6329 */
34708 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34709 if (UNTAG_Bool(REGB0)) {
34710 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6329);
34711 }
34712 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
34713 /* ./parser//parser_prod.nit:6330 */
34714 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
34715 if (UNTAG_Bool(REGB0)) {
34716 } else {
34717 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6330);
34718 }
34719 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[4]) = fra.me.REG[3];
34720 /* ./parser//parser_prod.nit:6331 */
34721 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34722 if (UNTAG_Bool(REGB0)) {
34723 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6331);
34724 }
34725 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
34726 stack_frame_head = fra.me.prev;
34727 init_table[itpos210] = 1;
34728 return;
34729 }
34730 void parser___parser_prod___AVarAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
34731 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34732 val_t REGB0;
34733 val_t REGB1;
34734 val_t tmp;
34735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34736 fra.me.file = LOCATE_parser___parser_prod;
34737 fra.me.line = 6334;
34738 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___replace_child;
34739 fra.me.has_broke = 0;
34740 fra.me.REG_size = 4;
34741 fra.me.nitni_local_ref_head = NULL;
34742 fra.me.REG[0] = NIT_NULL;
34743 fra.me.REG[1] = NIT_NULL;
34744 fra.me.REG[2] = NIT_NULL;
34745 fra.me.REG[3] = NIT_NULL;
34746 fra.me.REG[0] = p0;
34747 fra.me.REG[1] = p1;
34748 fra.me.REG[2] = p2;
34749 /* ./parser//parser_prod.nit:6336 */
34750 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
34751 if (UNTAG_Bool(REGB0)) {
34752 } else {
34753 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6336);
34754 }
34755 fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
34756 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34757 if (UNTAG_Bool(REGB0)) {
34758 } else {
34759 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34760 REGB0 = REGB1;
34761 }
34762 if (UNTAG_Bool(REGB0)) {
34763 /* ./parser//parser_prod.nit:6337 */
34764 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34765 if (UNTAG_Bool(REGB0)) {
34766 } else {
34767 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34768 if (UNTAG_Bool(REGB1)) {
34769 REGB1 = TAG_Bool(false);
34770 REGB0 = REGB1;
34771 } else {
34772 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34773 REGB0 = REGB1;
34774 }
34775 }
34776 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34777 if (UNTAG_Bool(REGB0)) {
34778 /* ./parser//parser_prod.nit:6338 */
34779 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34780 if (UNTAG_Bool(REGB0)) {
34781 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6338);
34782 }
34783 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34784 /* ./parser//parser_prod.nit:6339 */
34785 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*/;
34786 if (UNTAG_Bool(REGB0)) {
34787 } else {
34788 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6339);
34789 }
34790 /* ./parser//parser_prod.nit:6340 */
34791 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
34792 } else {
34793 /* ./parser//parser_prod.nit:6342 */
34794 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6342);
34795 }
34796 /* ./parser//parser_prod.nit:6344 */
34797 goto label1;
34798 }
34799 /* ./parser//parser_prod.nit:6346 */
34800 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
34801 if (UNTAG_Bool(REGB0)) {
34802 } else {
34803 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6346);
34804 }
34805 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
34806 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34807 if (UNTAG_Bool(REGB0)) {
34808 } else {
34809 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34810 REGB0 = REGB1;
34811 }
34812 if (UNTAG_Bool(REGB0)) {
34813 /* ./parser//parser_prod.nit:6347 */
34814 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34815 if (UNTAG_Bool(REGB0)) {
34816 } else {
34817 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34818 if (UNTAG_Bool(REGB1)) {
34819 REGB1 = TAG_Bool(false);
34820 REGB0 = REGB1;
34821 } else {
34822 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34823 REGB0 = REGB1;
34824 }
34825 }
34826 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34827 if (UNTAG_Bool(REGB0)) {
34828 /* ./parser//parser_prod.nit:6348 */
34829 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34830 if (UNTAG_Bool(REGB0)) {
34831 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6348);
34832 }
34833 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34834 /* ./parser//parser_prod.nit:6349 */
34835 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*/;
34836 if (UNTAG_Bool(REGB0)) {
34837 } else {
34838 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6349);
34839 }
34840 /* ./parser//parser_prod.nit:6350 */
34841 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
34842 } else {
34843 /* ./parser//parser_prod.nit:6352 */
34844 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6352);
34845 }
34846 /* ./parser//parser_prod.nit:6354 */
34847 goto label1;
34848 }
34849 /* ./parser//parser_prod.nit:6356 */
34850 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
34851 if (UNTAG_Bool(REGB0)) {
34852 } else {
34853 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6356);
34854 }
34855 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
34856 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34857 if (UNTAG_Bool(REGB0)) {
34858 } else {
34859 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34860 REGB0 = REGB1;
34861 }
34862 if (UNTAG_Bool(REGB0)) {
34863 /* ./parser//parser_prod.nit:6357 */
34864 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34865 if (UNTAG_Bool(REGB0)) {
34866 } else {
34867 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34868 if (UNTAG_Bool(REGB1)) {
34869 REGB1 = TAG_Bool(false);
34870 REGB0 = REGB1;
34871 } else {
34872 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34873 REGB0 = REGB1;
34874 }
34875 }
34876 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34877 if (UNTAG_Bool(REGB0)) {
34878 /* ./parser//parser_prod.nit:6358 */
34879 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34880 if (UNTAG_Bool(REGB0)) {
34881 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6358);
34882 }
34883 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34884 /* ./parser//parser_prod.nit:6359 */
34885 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*/;
34886 if (UNTAG_Bool(REGB0)) {
34887 } else {
34888 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6359);
34889 }
34890 /* ./parser//parser_prod.nit:6360 */
34891 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
34892 } else {
34893 /* ./parser//parser_prod.nit:6362 */
34894 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6362);
34895 }
34896 /* ./parser//parser_prod.nit:6364 */
34897 goto label1;
34898 }
34899 label1: while(0);
34900 stack_frame_head = fra.me.prev;
34901 return;
34902 }
34903 void parser___parser_prod___AVarAssignExpr___visit_all(val_t p0, val_t p1){
34904 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34905 val_t REGB0;
34906 val_t tmp;
34907 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34908 fra.me.file = LOCATE_parser___parser_prod;
34909 fra.me.line = 6368;
34910 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___visit_all;
34911 fra.me.has_broke = 0;
34912 fra.me.REG_size = 3;
34913 fra.me.nitni_local_ref_head = NULL;
34914 fra.me.REG[0] = NIT_NULL;
34915 fra.me.REG[1] = NIT_NULL;
34916 fra.me.REG[2] = NIT_NULL;
34917 fra.me.REG[0] = p0;
34918 fra.me.REG[1] = p1;
34919 /* ./parser//parser_prod.nit:6370 */
34920 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
34921 if (UNTAG_Bool(REGB0)) {
34922 } else {
34923 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6370);
34924 }
34925 fra.me.REG[2] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
34926 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34927 /* ./parser//parser_prod.nit:6371 */
34928 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
34929 if (UNTAG_Bool(REGB0)) {
34930 } else {
34931 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6371);
34932 }
34933 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
34934 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34935 /* ./parser//parser_prod.nit:6372 */
34936 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
34937 if (UNTAG_Bool(REGB0)) {
34938 } else {
34939 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6372);
34940 }
34941 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
34942 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34943 stack_frame_head = fra.me.prev;
34944 return;
34945 }
34946 void parser___parser_prod___AVarReassignExpr___empty_init(val_t p0, int* init_table){
34947 int itpos211 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarReassignExpr].i;
34948 struct {struct stack_frame_t me;} fra;
34949 val_t tmp;
34950 if (init_table[itpos211]) return;
34951 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34952 fra.me.file = LOCATE_parser___parser_prod;
34953 fra.me.line = 6376;
34954 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___empty_init;
34955 fra.me.has_broke = 0;
34956 fra.me.REG_size = 1;
34957 fra.me.nitni_local_ref_head = NULL;
34958 fra.me.REG[0] = NIT_NULL;
34959 fra.me.REG[0] = p0;
34960 stack_frame_head = fra.me.prev;
34961 init_table[itpos211] = 1;
34962 return;
34963 }
34964 void parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
34965 int itpos212 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarReassignExpr].i;
34966 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
34967 val_t REGB0;
34968 val_t tmp;
34969 if (init_table[itpos212]) return;
34970 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34971 fra.me.file = LOCATE_parser___parser_prod;
34972 fra.me.line = 6378;
34973 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr;
34974 fra.me.has_broke = 0;
34975 fra.me.REG_size = 5;
34976 fra.me.nitni_local_ref_head = NULL;
34977 fra.me.REG[0] = NIT_NULL;
34978 fra.me.REG[1] = NIT_NULL;
34979 fra.me.REG[2] = NIT_NULL;
34980 fra.me.REG[3] = NIT_NULL;
34981 fra.me.REG[4] = NIT_NULL;
34982 fra.me.REG[0] = p0;
34983 fra.me.REG[1] = p1;
34984 fra.me.REG[2] = p2;
34985 fra.me.REG[3] = p3;
34986 /* ./parser//parser_prod.nit:6378 */
34987 fra.me.REG[4] = fra.me.REG[0];
34988 /* ./parser//parser_prod.nit:6384 */
34989 CALL_parser___parser_prod___AVarReassignExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
34990 /* ./parser//parser_prod.nit:6385 */
34991 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34992 if (UNTAG_Bool(REGB0)) {
34993 } else {
34994 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6385);
34995 }
34996 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
34997 /* ./parser//parser_prod.nit:6386 */
34998 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34999 if (UNTAG_Bool(REGB0)) {
35000 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6386);
35001 }
35002 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
35003 /* ./parser//parser_prod.nit:6387 */
35004 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
35005 if (UNTAG_Bool(REGB0)) {
35006 } else {
35007 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6387);
35008 }
35009 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[4]) = fra.me.REG[2];
35010 /* ./parser//parser_prod.nit:6388 */
35011 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35012 if (UNTAG_Bool(REGB0)) {
35013 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6388);
35014 }
35015 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
35016 /* ./parser//parser_prod.nit:6389 */
35017 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
35018 if (UNTAG_Bool(REGB0)) {
35019 } else {
35020 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6389);
35021 }
35022 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[4]) = fra.me.REG[3];
35023 /* ./parser//parser_prod.nit:6390 */
35024 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35025 if (UNTAG_Bool(REGB0)) {
35026 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6390);
35027 }
35028 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
35029 stack_frame_head = fra.me.prev;
35030 init_table[itpos212] = 1;
35031 return;
35032 }
35033 void parser___parser_prod___AVarReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
35034 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35035 val_t REGB0;
35036 val_t REGB1;
35037 val_t tmp;
35038 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35039 fra.me.file = LOCATE_parser___parser_prod;
35040 fra.me.line = 6393;
35041 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___replace_child;
35042 fra.me.has_broke = 0;
35043 fra.me.REG_size = 4;
35044 fra.me.nitni_local_ref_head = NULL;
35045 fra.me.REG[0] = NIT_NULL;
35046 fra.me.REG[1] = NIT_NULL;
35047 fra.me.REG[2] = NIT_NULL;
35048 fra.me.REG[3] = NIT_NULL;
35049 fra.me.REG[0] = p0;
35050 fra.me.REG[1] = p1;
35051 fra.me.REG[2] = p2;
35052 /* ./parser//parser_prod.nit:6395 */
35053 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
35054 if (UNTAG_Bool(REGB0)) {
35055 } else {
35056 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6395);
35057 }
35058 fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
35059 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35060 if (UNTAG_Bool(REGB0)) {
35061 } else {
35062 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35063 REGB0 = REGB1;
35064 }
35065 if (UNTAG_Bool(REGB0)) {
35066 /* ./parser//parser_prod.nit:6396 */
35067 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35068 if (UNTAG_Bool(REGB0)) {
35069 } else {
35070 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35071 if (UNTAG_Bool(REGB1)) {
35072 REGB1 = TAG_Bool(false);
35073 REGB0 = REGB1;
35074 } else {
35075 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35076 REGB0 = REGB1;
35077 }
35078 }
35079 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35080 if (UNTAG_Bool(REGB0)) {
35081 /* ./parser//parser_prod.nit:6397 */
35082 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35083 if (UNTAG_Bool(REGB0)) {
35084 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6397);
35085 }
35086 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35087 /* ./parser//parser_prod.nit:6398 */
35088 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*/;
35089 if (UNTAG_Bool(REGB0)) {
35090 } else {
35091 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6398);
35092 }
35093 /* ./parser//parser_prod.nit:6399 */
35094 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
35095 } else {
35096 /* ./parser//parser_prod.nit:6401 */
35097 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6401);
35098 }
35099 /* ./parser//parser_prod.nit:6403 */
35100 goto label1;
35101 }
35102 /* ./parser//parser_prod.nit:6405 */
35103 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
35104 if (UNTAG_Bool(REGB0)) {
35105 } else {
35106 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6405);
35107 }
35108 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
35109 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35110 if (UNTAG_Bool(REGB0)) {
35111 } else {
35112 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35113 REGB0 = REGB1;
35114 }
35115 if (UNTAG_Bool(REGB0)) {
35116 /* ./parser//parser_prod.nit:6406 */
35117 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35118 if (UNTAG_Bool(REGB0)) {
35119 } else {
35120 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35121 if (UNTAG_Bool(REGB1)) {
35122 REGB1 = TAG_Bool(false);
35123 REGB0 = REGB1;
35124 } else {
35125 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35126 REGB0 = REGB1;
35127 }
35128 }
35129 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35130 if (UNTAG_Bool(REGB0)) {
35131 /* ./parser//parser_prod.nit:6407 */
35132 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35133 if (UNTAG_Bool(REGB0)) {
35134 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6407);
35135 }
35136 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35137 /* ./parser//parser_prod.nit:6408 */
35138 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*/;
35139 if (UNTAG_Bool(REGB0)) {
35140 } else {
35141 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6408);
35142 }
35143 /* ./parser//parser_prod.nit:6409 */
35144 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
35145 } else {
35146 /* ./parser//parser_prod.nit:6411 */
35147 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6411);
35148 }
35149 /* ./parser//parser_prod.nit:6413 */
35150 goto label1;
35151 }
35152 /* ./parser//parser_prod.nit:6415 */
35153 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
35154 if (UNTAG_Bool(REGB0)) {
35155 } else {
35156 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6415);
35157 }
35158 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
35159 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35160 if (UNTAG_Bool(REGB0)) {
35161 } else {
35162 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35163 REGB0 = REGB1;
35164 }
35165 if (UNTAG_Bool(REGB0)) {
35166 /* ./parser//parser_prod.nit:6416 */
35167 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35168 if (UNTAG_Bool(REGB0)) {
35169 } else {
35170 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35171 if (UNTAG_Bool(REGB1)) {
35172 REGB1 = TAG_Bool(false);
35173 REGB0 = REGB1;
35174 } else {
35175 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35176 REGB0 = REGB1;
35177 }
35178 }
35179 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35180 if (UNTAG_Bool(REGB0)) {
35181 /* ./parser//parser_prod.nit:6417 */
35182 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35183 if (UNTAG_Bool(REGB0)) {
35184 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6417);
35185 }
35186 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35187 /* ./parser//parser_prod.nit:6418 */
35188 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*/;
35189 if (UNTAG_Bool(REGB0)) {
35190 } else {
35191 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6418);
35192 }
35193 /* ./parser//parser_prod.nit:6419 */
35194 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
35195 } else {
35196 /* ./parser//parser_prod.nit:6421 */
35197 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6421);
35198 }
35199 /* ./parser//parser_prod.nit:6423 */
35200 goto label1;
35201 }
35202 label1: while(0);
35203 stack_frame_head = fra.me.prev;
35204 return;
35205 }
35206 void parser___parser_prod___AVarReassignExpr___visit_all(val_t p0, val_t p1){
35207 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35208 val_t REGB0;
35209 val_t tmp;
35210 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35211 fra.me.file = LOCATE_parser___parser_prod;
35212 fra.me.line = 6427;
35213 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___visit_all;
35214 fra.me.has_broke = 0;
35215 fra.me.REG_size = 3;
35216 fra.me.nitni_local_ref_head = NULL;
35217 fra.me.REG[0] = NIT_NULL;
35218 fra.me.REG[1] = NIT_NULL;
35219 fra.me.REG[2] = NIT_NULL;
35220 fra.me.REG[0] = p0;
35221 fra.me.REG[1] = p1;
35222 /* ./parser//parser_prod.nit:6429 */
35223 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
35224 if (UNTAG_Bool(REGB0)) {
35225 } else {
35226 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6429);
35227 }
35228 fra.me.REG[2] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
35229 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35230 /* ./parser//parser_prod.nit:6430 */
35231 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
35232 if (UNTAG_Bool(REGB0)) {
35233 } else {
35234 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6430);
35235 }
35236 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
35237 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35238 /* ./parser//parser_prod.nit:6431 */
35239 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
35240 if (UNTAG_Bool(REGB0)) {
35241 } else {
35242 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6431);
35243 }
35244 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
35245 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35246 stack_frame_head = fra.me.prev;
35247 return;
35248 }
35249 void parser___parser_prod___ARangeExpr___empty_init(val_t p0, int* init_table){
35250 int itpos213 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ARangeExpr].i;
35251 struct {struct stack_frame_t me;} fra;
35252 val_t tmp;
35253 if (init_table[itpos213]) return;
35254 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35255 fra.me.file = LOCATE_parser___parser_prod;
35256 fra.me.line = 6435;
35257 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___empty_init;
35258 fra.me.has_broke = 0;
35259 fra.me.REG_size = 1;
35260 fra.me.nitni_local_ref_head = NULL;
35261 fra.me.REG[0] = NIT_NULL;
35262 fra.me.REG[0] = p0;
35263 stack_frame_head = fra.me.prev;
35264 init_table[itpos213] = 1;
35265 return;
35266 }
35267 void parser___parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
35268 int itpos214 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ARangeExpr].i;
35269 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35270 val_t REGB0;
35271 val_t tmp;
35272 if (init_table[itpos214]) return;
35273 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35274 fra.me.file = LOCATE_parser___parser_prod;
35275 fra.me.line = 6437;
35276 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___init_arangeexpr;
35277 fra.me.has_broke = 0;
35278 fra.me.REG_size = 4;
35279 fra.me.nitni_local_ref_head = NULL;
35280 fra.me.REG[0] = NIT_NULL;
35281 fra.me.REG[1] = NIT_NULL;
35282 fra.me.REG[2] = NIT_NULL;
35283 fra.me.REG[3] = NIT_NULL;
35284 fra.me.REG[0] = p0;
35285 fra.me.REG[1] = p1;
35286 fra.me.REG[2] = p2;
35287 /* ./parser//parser_prod.nit:6437 */
35288 fra.me.REG[3] = fra.me.REG[0];
35289 /* ./parser//parser_prod.nit:6442 */
35290 CALL_parser___parser_prod___ARangeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
35291 /* ./parser//parser_prod.nit:6443 */
35292 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35293 if (UNTAG_Bool(REGB0)) {
35294 } else {
35295 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6443);
35296 }
35297 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
35298 /* ./parser//parser_prod.nit:6444 */
35299 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35300 if (UNTAG_Bool(REGB0)) {
35301 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6444);
35302 }
35303 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
35304 /* ./parser//parser_prod.nit:6445 */
35305 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
35306 if (UNTAG_Bool(REGB0)) {
35307 } else {
35308 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6445);
35309 }
35310 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
35311 /* ./parser//parser_prod.nit:6446 */
35312 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35313 if (UNTAG_Bool(REGB0)) {
35314 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6446);
35315 }
35316 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
35317 stack_frame_head = fra.me.prev;
35318 init_table[itpos214] = 1;
35319 return;
35320 }
35321 void parser___parser_prod___ARangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
35322 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35323 val_t REGB0;
35324 val_t REGB1;
35325 val_t tmp;
35326 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35327 fra.me.file = LOCATE_parser___parser_prod;
35328 fra.me.line = 6449;
35329 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___replace_child;
35330 fra.me.has_broke = 0;
35331 fra.me.REG_size = 4;
35332 fra.me.nitni_local_ref_head = NULL;
35333 fra.me.REG[0] = NIT_NULL;
35334 fra.me.REG[1] = NIT_NULL;
35335 fra.me.REG[2] = NIT_NULL;
35336 fra.me.REG[3] = NIT_NULL;
35337 fra.me.REG[0] = p0;
35338 fra.me.REG[1] = p1;
35339 fra.me.REG[2] = p2;
35340 /* ./parser//parser_prod.nit:6451 */
35341 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35342 if (UNTAG_Bool(REGB0)) {
35343 } else {
35344 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6451);
35345 }
35346 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
35347 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35348 if (UNTAG_Bool(REGB0)) {
35349 } else {
35350 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35351 REGB0 = REGB1;
35352 }
35353 if (UNTAG_Bool(REGB0)) {
35354 /* ./parser//parser_prod.nit:6452 */
35355 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35356 if (UNTAG_Bool(REGB0)) {
35357 } else {
35358 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35359 if (UNTAG_Bool(REGB1)) {
35360 REGB1 = TAG_Bool(false);
35361 REGB0 = REGB1;
35362 } else {
35363 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35364 REGB0 = REGB1;
35365 }
35366 }
35367 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35368 if (UNTAG_Bool(REGB0)) {
35369 /* ./parser//parser_prod.nit:6453 */
35370 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35371 if (UNTAG_Bool(REGB0)) {
35372 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6453);
35373 }
35374 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35375 /* ./parser//parser_prod.nit:6454 */
35376 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*/;
35377 if (UNTAG_Bool(REGB0)) {
35378 } else {
35379 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6454);
35380 }
35381 /* ./parser//parser_prod.nit:6455 */
35382 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
35383 } else {
35384 /* ./parser//parser_prod.nit:6457 */
35385 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6457);
35386 }
35387 /* ./parser//parser_prod.nit:6459 */
35388 goto label1;
35389 }
35390 /* ./parser//parser_prod.nit:6461 */
35391 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
35392 if (UNTAG_Bool(REGB0)) {
35393 } else {
35394 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6461);
35395 }
35396 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
35397 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35398 if (UNTAG_Bool(REGB0)) {
35399 } else {
35400 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35401 REGB0 = REGB1;
35402 }
35403 if (UNTAG_Bool(REGB0)) {
35404 /* ./parser//parser_prod.nit:6462 */
35405 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35406 if (UNTAG_Bool(REGB0)) {
35407 } else {
35408 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35409 if (UNTAG_Bool(REGB1)) {
35410 REGB1 = TAG_Bool(false);
35411 REGB0 = REGB1;
35412 } else {
35413 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35414 REGB0 = REGB1;
35415 }
35416 }
35417 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35418 if (UNTAG_Bool(REGB0)) {
35419 /* ./parser//parser_prod.nit:6463 */
35420 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35421 if (UNTAG_Bool(REGB0)) {
35422 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6463);
35423 }
35424 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35425 /* ./parser//parser_prod.nit:6464 */
35426 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*/;
35427 if (UNTAG_Bool(REGB0)) {
35428 } else {
35429 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6464);
35430 }
35431 /* ./parser//parser_prod.nit:6465 */
35432 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
35433 } else {
35434 /* ./parser//parser_prod.nit:6467 */
35435 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6467);
35436 }
35437 /* ./parser//parser_prod.nit:6469 */
35438 goto label1;
35439 }
35440 label1: while(0);
35441 stack_frame_head = fra.me.prev;
35442 return;
35443 }
35444 void parser___parser_prod___ARangeExpr___visit_all(val_t p0, val_t p1){
35445 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35446 val_t REGB0;
35447 val_t tmp;
35448 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35449 fra.me.file = LOCATE_parser___parser_prod;
35450 fra.me.line = 6473;
35451 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___visit_all;
35452 fra.me.has_broke = 0;
35453 fra.me.REG_size = 3;
35454 fra.me.nitni_local_ref_head = NULL;
35455 fra.me.REG[0] = NIT_NULL;
35456 fra.me.REG[1] = NIT_NULL;
35457 fra.me.REG[2] = NIT_NULL;
35458 fra.me.REG[0] = p0;
35459 fra.me.REG[1] = p1;
35460 /* ./parser//parser_prod.nit:6475 */
35461 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35462 if (UNTAG_Bool(REGB0)) {
35463 } else {
35464 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6475);
35465 }
35466 fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
35467 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35468 /* ./parser//parser_prod.nit:6476 */
35469 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
35470 if (UNTAG_Bool(REGB0)) {
35471 } else {
35472 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6476);
35473 }
35474 fra.me.REG[0] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
35475 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35476 stack_frame_head = fra.me.prev;
35477 return;
35478 }
35479 void parser___parser_prod___ACrangeExpr___empty_init(val_t p0, int* init_table){
35480 int itpos215 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACrangeExpr].i;
35481 struct {struct stack_frame_t me;} fra;
35482 val_t tmp;
35483 if (init_table[itpos215]) return;
35484 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35485 fra.me.file = LOCATE_parser___parser_prod;
35486 fra.me.line = 6480;
35487 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___empty_init;
35488 fra.me.has_broke = 0;
35489 fra.me.REG_size = 1;
35490 fra.me.nitni_local_ref_head = NULL;
35491 fra.me.REG[0] = NIT_NULL;
35492 fra.me.REG[0] = p0;
35493 stack_frame_head = fra.me.prev;
35494 init_table[itpos215] = 1;
35495 return;
35496 }
35497 void parser___parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
35498 int itpos216 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACrangeExpr].i;
35499 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35500 val_t REGB0;
35501 val_t tmp;
35502 if (init_table[itpos216]) return;
35503 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35504 fra.me.file = LOCATE_parser___parser_prod;
35505 fra.me.line = 6482;
35506 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___init_acrangeexpr;
35507 fra.me.has_broke = 0;
35508 fra.me.REG_size = 4;
35509 fra.me.nitni_local_ref_head = NULL;
35510 fra.me.REG[0] = NIT_NULL;
35511 fra.me.REG[1] = NIT_NULL;
35512 fra.me.REG[2] = NIT_NULL;
35513 fra.me.REG[3] = NIT_NULL;
35514 fra.me.REG[0] = p0;
35515 fra.me.REG[1] = p1;
35516 fra.me.REG[2] = p2;
35517 /* ./parser//parser_prod.nit:6482 */
35518 fra.me.REG[3] = fra.me.REG[0];
35519 /* ./parser//parser_prod.nit:6487 */
35520 CALL_parser___parser_prod___ACrangeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
35521 /* ./parser//parser_prod.nit:6488 */
35522 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35523 if (UNTAG_Bool(REGB0)) {
35524 } else {
35525 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6488);
35526 }
35527 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
35528 /* ./parser//parser_prod.nit:6489 */
35529 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35530 if (UNTAG_Bool(REGB0)) {
35531 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6489);
35532 }
35533 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
35534 /* ./parser//parser_prod.nit:6490 */
35535 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
35536 if (UNTAG_Bool(REGB0)) {
35537 } else {
35538 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6490);
35539 }
35540 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
35541 /* ./parser//parser_prod.nit:6491 */
35542 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35543 if (UNTAG_Bool(REGB0)) {
35544 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6491);
35545 }
35546 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
35547 stack_frame_head = fra.me.prev;
35548 init_table[itpos216] = 1;
35549 return;
35550 }
35551 void parser___parser_prod___ACrangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
35552 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35553 val_t REGB0;
35554 val_t REGB1;
35555 val_t tmp;
35556 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35557 fra.me.file = LOCATE_parser___parser_prod;
35558 fra.me.line = 6494;
35559 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___replace_child;
35560 fra.me.has_broke = 0;
35561 fra.me.REG_size = 4;
35562 fra.me.nitni_local_ref_head = NULL;
35563 fra.me.REG[0] = NIT_NULL;
35564 fra.me.REG[1] = NIT_NULL;
35565 fra.me.REG[2] = NIT_NULL;
35566 fra.me.REG[3] = NIT_NULL;
35567 fra.me.REG[0] = p0;
35568 fra.me.REG[1] = p1;
35569 fra.me.REG[2] = p2;
35570 /* ./parser//parser_prod.nit:6496 */
35571 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35572 if (UNTAG_Bool(REGB0)) {
35573 } else {
35574 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6496);
35575 }
35576 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
35577 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35578 if (UNTAG_Bool(REGB0)) {
35579 } else {
35580 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35581 REGB0 = REGB1;
35582 }
35583 if (UNTAG_Bool(REGB0)) {
35584 /* ./parser//parser_prod.nit:6497 */
35585 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35586 if (UNTAG_Bool(REGB0)) {
35587 } else {
35588 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35589 if (UNTAG_Bool(REGB1)) {
35590 REGB1 = TAG_Bool(false);
35591 REGB0 = REGB1;
35592 } else {
35593 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35594 REGB0 = REGB1;
35595 }
35596 }
35597 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35598 if (UNTAG_Bool(REGB0)) {
35599 /* ./parser//parser_prod.nit:6498 */
35600 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35601 if (UNTAG_Bool(REGB0)) {
35602 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6498);
35603 }
35604 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35605 /* ./parser//parser_prod.nit:6499 */
35606 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*/;
35607 if (UNTAG_Bool(REGB0)) {
35608 } else {
35609 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6499);
35610 }
35611 /* ./parser//parser_prod.nit:6500 */
35612 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
35613 } else {
35614 /* ./parser//parser_prod.nit:6502 */
35615 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6502);
35616 }
35617 /* ./parser//parser_prod.nit:6504 */
35618 goto label1;
35619 }
35620 /* ./parser//parser_prod.nit:6506 */
35621 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
35622 if (UNTAG_Bool(REGB0)) {
35623 } else {
35624 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6506);
35625 }
35626 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
35627 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35628 if (UNTAG_Bool(REGB0)) {
35629 } else {
35630 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35631 REGB0 = REGB1;
35632 }
35633 if (UNTAG_Bool(REGB0)) {
35634 /* ./parser//parser_prod.nit:6507 */
35635 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35636 if (UNTAG_Bool(REGB0)) {
35637 } else {
35638 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35639 if (UNTAG_Bool(REGB1)) {
35640 REGB1 = TAG_Bool(false);
35641 REGB0 = REGB1;
35642 } else {
35643 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35644 REGB0 = REGB1;
35645 }
35646 }
35647 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35648 if (UNTAG_Bool(REGB0)) {
35649 /* ./parser//parser_prod.nit:6508 */
35650 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35651 if (UNTAG_Bool(REGB0)) {
35652 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6508);
35653 }
35654 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35655 /* ./parser//parser_prod.nit:6509 */
35656 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*/;
35657 if (UNTAG_Bool(REGB0)) {
35658 } else {
35659 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6509);
35660 }
35661 /* ./parser//parser_prod.nit:6510 */
35662 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
35663 } else {
35664 /* ./parser//parser_prod.nit:6512 */
35665 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6512);
35666 }
35667 /* ./parser//parser_prod.nit:6514 */
35668 goto label1;
35669 }
35670 label1: while(0);
35671 stack_frame_head = fra.me.prev;
35672 return;
35673 }
35674 void parser___parser_prod___ACrangeExpr___visit_all(val_t p0, val_t p1){
35675 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35676 val_t REGB0;
35677 val_t tmp;
35678 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35679 fra.me.file = LOCATE_parser___parser_prod;
35680 fra.me.line = 6518;
35681 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___visit_all;
35682 fra.me.has_broke = 0;
35683 fra.me.REG_size = 3;
35684 fra.me.nitni_local_ref_head = NULL;
35685 fra.me.REG[0] = NIT_NULL;
35686 fra.me.REG[1] = NIT_NULL;
35687 fra.me.REG[2] = NIT_NULL;
35688 fra.me.REG[0] = p0;
35689 fra.me.REG[1] = p1;
35690 /* ./parser//parser_prod.nit:6520 */
35691 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35692 if (UNTAG_Bool(REGB0)) {
35693 } else {
35694 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6520);
35695 }
35696 fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
35697 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35698 /* ./parser//parser_prod.nit:6521 */
35699 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
35700 if (UNTAG_Bool(REGB0)) {
35701 } else {
35702 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6521);
35703 }
35704 fra.me.REG[0] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
35705 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35706 stack_frame_head = fra.me.prev;
35707 return;
35708 }
35709 void parser___parser_prod___AOrangeExpr___empty_init(val_t p0, int* init_table){
35710 int itpos217 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrangeExpr].i;
35711 struct {struct stack_frame_t me;} fra;
35712 val_t tmp;
35713 if (init_table[itpos217]) return;
35714 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35715 fra.me.file = LOCATE_parser___parser_prod;
35716 fra.me.line = 6525;
35717 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___empty_init;
35718 fra.me.has_broke = 0;
35719 fra.me.REG_size = 1;
35720 fra.me.nitni_local_ref_head = NULL;
35721 fra.me.REG[0] = NIT_NULL;
35722 fra.me.REG[0] = p0;
35723 stack_frame_head = fra.me.prev;
35724 init_table[itpos217] = 1;
35725 return;
35726 }
35727 void parser___parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
35728 int itpos218 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrangeExpr].i;
35729 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35730 val_t REGB0;
35731 val_t tmp;
35732 if (init_table[itpos218]) return;
35733 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35734 fra.me.file = LOCATE_parser___parser_prod;
35735 fra.me.line = 6527;
35736 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___init_aorangeexpr;
35737 fra.me.has_broke = 0;
35738 fra.me.REG_size = 4;
35739 fra.me.nitni_local_ref_head = NULL;
35740 fra.me.REG[0] = NIT_NULL;
35741 fra.me.REG[1] = NIT_NULL;
35742 fra.me.REG[2] = NIT_NULL;
35743 fra.me.REG[3] = NIT_NULL;
35744 fra.me.REG[0] = p0;
35745 fra.me.REG[1] = p1;
35746 fra.me.REG[2] = p2;
35747 /* ./parser//parser_prod.nit:6527 */
35748 fra.me.REG[3] = fra.me.REG[0];
35749 /* ./parser//parser_prod.nit:6532 */
35750 CALL_parser___parser_prod___AOrangeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
35751 /* ./parser//parser_prod.nit:6533 */
35752 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35753 if (UNTAG_Bool(REGB0)) {
35754 } else {
35755 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6533);
35756 }
35757 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
35758 /* ./parser//parser_prod.nit:6534 */
35759 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35760 if (UNTAG_Bool(REGB0)) {
35761 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6534);
35762 }
35763 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
35764 /* ./parser//parser_prod.nit:6535 */
35765 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
35766 if (UNTAG_Bool(REGB0)) {
35767 } else {
35768 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6535);
35769 }
35770 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
35771 /* ./parser//parser_prod.nit:6536 */
35772 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35773 if (UNTAG_Bool(REGB0)) {
35774 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6536);
35775 }
35776 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
35777 stack_frame_head = fra.me.prev;
35778 init_table[itpos218] = 1;
35779 return;
35780 }
35781 void parser___parser_prod___AOrangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
35782 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35783 val_t REGB0;
35784 val_t REGB1;
35785 val_t tmp;
35786 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35787 fra.me.file = LOCATE_parser___parser_prod;
35788 fra.me.line = 6539;
35789 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___replace_child;
35790 fra.me.has_broke = 0;
35791 fra.me.REG_size = 4;
35792 fra.me.nitni_local_ref_head = NULL;
35793 fra.me.REG[0] = NIT_NULL;
35794 fra.me.REG[1] = NIT_NULL;
35795 fra.me.REG[2] = NIT_NULL;
35796 fra.me.REG[3] = NIT_NULL;
35797 fra.me.REG[0] = p0;
35798 fra.me.REG[1] = p1;
35799 fra.me.REG[2] = p2;
35800 /* ./parser//parser_prod.nit:6541 */
35801 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35802 if (UNTAG_Bool(REGB0)) {
35803 } else {
35804 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6541);
35805 }
35806 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
35807 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35808 if (UNTAG_Bool(REGB0)) {
35809 } else {
35810 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35811 REGB0 = REGB1;
35812 }
35813 if (UNTAG_Bool(REGB0)) {
35814 /* ./parser//parser_prod.nit:6542 */
35815 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35816 if (UNTAG_Bool(REGB0)) {
35817 } else {
35818 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35819 if (UNTAG_Bool(REGB1)) {
35820 REGB1 = TAG_Bool(false);
35821 REGB0 = REGB1;
35822 } else {
35823 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35824 REGB0 = REGB1;
35825 }
35826 }
35827 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35828 if (UNTAG_Bool(REGB0)) {
35829 /* ./parser//parser_prod.nit:6543 */
35830 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35831 if (UNTAG_Bool(REGB0)) {
35832 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6543);
35833 }
35834 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35835 /* ./parser//parser_prod.nit:6544 */
35836 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*/;
35837 if (UNTAG_Bool(REGB0)) {
35838 } else {
35839 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6544);
35840 }
35841 /* ./parser//parser_prod.nit:6545 */
35842 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
35843 } else {
35844 /* ./parser//parser_prod.nit:6547 */
35845 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6547);
35846 }
35847 /* ./parser//parser_prod.nit:6549 */
35848 goto label1;
35849 }
35850 /* ./parser//parser_prod.nit:6551 */
35851 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
35852 if (UNTAG_Bool(REGB0)) {
35853 } else {
35854 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6551);
35855 }
35856 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
35857 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35858 if (UNTAG_Bool(REGB0)) {
35859 } else {
35860 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35861 REGB0 = REGB1;
35862 }
35863 if (UNTAG_Bool(REGB0)) {
35864 /* ./parser//parser_prod.nit:6552 */
35865 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35866 if (UNTAG_Bool(REGB0)) {
35867 } else {
35868 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35869 if (UNTAG_Bool(REGB1)) {
35870 REGB1 = TAG_Bool(false);
35871 REGB0 = REGB1;
35872 } else {
35873 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35874 REGB0 = REGB1;
35875 }
35876 }
35877 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35878 if (UNTAG_Bool(REGB0)) {
35879 /* ./parser//parser_prod.nit:6553 */
35880 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35881 if (UNTAG_Bool(REGB0)) {
35882 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6553);
35883 }
35884 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35885 /* ./parser//parser_prod.nit:6554 */
35886 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*/;
35887 if (UNTAG_Bool(REGB0)) {
35888 } else {
35889 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6554);
35890 }
35891 /* ./parser//parser_prod.nit:6555 */
35892 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
35893 } else {
35894 /* ./parser//parser_prod.nit:6557 */
35895 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6557);
35896 }
35897 /* ./parser//parser_prod.nit:6559 */
35898 goto label1;
35899 }
35900 label1: while(0);
35901 stack_frame_head = fra.me.prev;
35902 return;
35903 }
35904 void parser___parser_prod___AOrangeExpr___visit_all(val_t p0, val_t p1){
35905 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35906 val_t REGB0;
35907 val_t tmp;
35908 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35909 fra.me.file = LOCATE_parser___parser_prod;
35910 fra.me.line = 6563;
35911 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___visit_all;
35912 fra.me.has_broke = 0;
35913 fra.me.REG_size = 3;
35914 fra.me.nitni_local_ref_head = NULL;
35915 fra.me.REG[0] = NIT_NULL;
35916 fra.me.REG[1] = NIT_NULL;
35917 fra.me.REG[2] = NIT_NULL;
35918 fra.me.REG[0] = p0;
35919 fra.me.REG[1] = p1;
35920 /* ./parser//parser_prod.nit:6565 */
35921 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35922 if (UNTAG_Bool(REGB0)) {
35923 } else {
35924 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6565);
35925 }
35926 fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
35927 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35928 /* ./parser//parser_prod.nit:6566 */
35929 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
35930 if (UNTAG_Bool(REGB0)) {
35931 } else {
35932 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6566);
35933 }
35934 fra.me.REG[0] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
35935 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35936 stack_frame_head = fra.me.prev;
35937 return;
35938 }
35939 void parser___parser_prod___AArrayExpr___empty_init(val_t p0, int* init_table){
35940 int itpos219 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AArrayExpr].i;
35941 struct {struct stack_frame_t me;} fra;
35942 val_t tmp;
35943 if (init_table[itpos219]) return;
35944 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35945 fra.me.file = LOCATE_parser___parser_prod;
35946 fra.me.line = 6570;
35947 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___empty_init;
35948 fra.me.has_broke = 0;
35949 fra.me.REG_size = 1;
35950 fra.me.nitni_local_ref_head = NULL;
35951 fra.me.REG[0] = NIT_NULL;
35952 fra.me.REG[0] = p0;
35953 stack_frame_head = fra.me.prev;
35954 init_table[itpos219] = 1;
35955 return;
35956 }
35957 void parser___parser_prod___AArrayExpr___init_aarrayexpr(val_t p0, val_t p1, int* init_table){
35958 int itpos220 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AArrayExpr].i;
35959 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35960 val_t tmp;
35961 if (init_table[itpos220]) return;
35962 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35963 fra.me.file = LOCATE_parser___parser_prod;
35964 fra.me.line = 6572;
35965 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___init_aarrayexpr;
35966 fra.me.has_broke = 0;
35967 fra.me.REG_size = 2;
35968 fra.me.nitni_local_ref_head = NULL;
35969 fra.me.REG[0] = NIT_NULL;
35970 fra.me.REG[1] = NIT_NULL;
35971 fra.me.REG[0] = p0;
35972 fra.me.REG[1] = p1;
35973 /* ./parser//parser_prod.nit:6576 */
35974 CALL_parser___parser_prod___AArrayExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
35975 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AArrayExpr___init_aarrayexpr_1));
35976 stack_frame_head = fra.me.prev;
35977 init_table[itpos220] = 1;
35978 return;
35979 }
35980 void OC_parser___parser_prod___AArrayExpr___init_aarrayexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
35981 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35982 val_t REGB0;
35983 fun_t CREG[1];
35984 val_t tmp;
35985 /* ./parser//parser_prod.nit:6577 */
35986 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35987 fra.me.file = LOCATE_parser___parser_prod;
35988 fra.me.line = 0;
35989 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___init_aarrayexpr;
35990 fra.me.has_broke = 0;
35991 fra.me.REG_size = 2;
35992 fra.me.nitni_local_ref_head = NULL;
35993 fra.me.REG[0] = NIT_NULL;
35994 fra.me.REG[1] = NIT_NULL;
35995 fra.me.closure_ctx = closctx_param;
35996 fra.me.closure_funs = CREG;
35997 fra.me.REG[0] = p0;
35998 CREG[0] = clos_fun0;
35999 /* ./parser//parser_prod.nit:6578 */
36000 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
36001 if (UNTAG_Bool(REGB0)) {
36002 } else {
36003 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6578);
36004 }
36005 /* ./parser//parser_prod.nit:6579 */
36006 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(closctx->REG[0])!=NIT_NULL);
36007 if (UNTAG_Bool(REGB0)) {
36008 } else {
36009 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6579);
36010 }
36011 fra.me.REG[1] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(closctx->REG[0]);
36012 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36013 /* ./parser//parser_prod.nit:6580 */
36014 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
36015 stack_frame_head = fra.me.prev;
36016 return;
36017 }
36018 void parser___parser_prod___AArrayExpr___replace_child(val_t p0, val_t p1, val_t p2){
36019 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36020 val_t REGB0;
36021 val_t REGB1;
36022 val_t REGB2;
36023 val_t REGB3;
36024 val_t REGB4;
36025 val_t tmp;
36026 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36027 fra.me.file = LOCATE_parser___parser_prod;
36028 fra.me.line = 6584;
36029 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___replace_child;
36030 fra.me.has_broke = 0;
36031 fra.me.REG_size = 4;
36032 fra.me.nitni_local_ref_head = NULL;
36033 fra.me.REG[0] = NIT_NULL;
36034 fra.me.REG[1] = NIT_NULL;
36035 fra.me.REG[2] = NIT_NULL;
36036 fra.me.REG[3] = NIT_NULL;
36037 fra.me.REG[0] = p0;
36038 fra.me.REG[1] = p1;
36039 fra.me.REG[2] = p2;
36040 /* ./parser//parser_prod.nit:6586 */
36041 REGB0 = TAG_Int(0);
36042 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
36043 if (UNTAG_Bool(REGB1)) {
36044 } else {
36045 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6586);
36046 }
36047 fra.me.REG[3] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
36048 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
36049 /* ./../lib/standard//kernel.nit:352 */
36050 while(1) {
36051 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
36052 if (UNTAG_Bool(REGB2)) {
36053 } else {
36054 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
36055 }
36056 /* ./../lib/standard//kernel.nit:232 */
36057 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
36058 /* ./../lib/standard//kernel.nit:352 */
36059 if (UNTAG_Bool(REGB2)) {
36060 /* ./parser//parser_prod.nit:6586 */
36061 REGB2 = REGB0;
36062 /* ./parser//parser_prod.nit:6587 */
36063 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
36064 if (UNTAG_Bool(REGB3)) {
36065 } else {
36066 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6587);
36067 }
36068 fra.me.REG[3] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
36069 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
36070 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
36071 if (UNTAG_Bool(REGB3)) {
36072 } else {
36073 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36074 if (UNTAG_Bool(REGB4)) {
36075 REGB4 = TAG_Bool(false);
36076 REGB3 = REGB4;
36077 } else {
36078 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36079 REGB3 = REGB4;
36080 }
36081 }
36082 if (UNTAG_Bool(REGB3)) {
36083 /* ./parser//parser_prod.nit:6588 */
36084 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36085 if (UNTAG_Bool(REGB3)) {
36086 } else {
36087 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36088 if (UNTAG_Bool(REGB4)) {
36089 REGB4 = TAG_Bool(false);
36090 REGB3 = REGB4;
36091 } else {
36092 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36093 REGB3 = REGB4;
36094 }
36095 }
36096 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
36097 if (UNTAG_Bool(REGB3)) {
36098 /* ./parser//parser_prod.nit:6589 */
36099 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*/;
36100 if (UNTAG_Bool(REGB3)) {
36101 } else {
36102 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6589);
36103 }
36104 /* ./parser//parser_prod.nit:6590 */
36105 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
36106 if (UNTAG_Bool(REGB3)) {
36107 } else {
36108 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6590);
36109 }
36110 fra.me.REG[3] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
36111 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
36112 /* ./parser//parser_prod.nit:6591 */
36113 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36114 if (UNTAG_Bool(REGB3)) {
36115 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6591);
36116 }
36117 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36118 } else {
36119 /* ./parser//parser_prod.nit:6593 */
36120 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
36121 if (UNTAG_Bool(REGB3)) {
36122 } else {
36123 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6593);
36124 }
36125 fra.me.REG[3] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
36126 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
36127 }
36128 /* ./parser//parser_prod.nit:6595 */
36129 goto label1;
36130 }
36131 /* ./../lib/standard//kernel.nit:354 */
36132 REGB2 = TAG_Int(1);
36133 /* ./../lib/standard//kernel.nit:235 */
36134 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
36135 /* ./../lib/standard//kernel.nit:354 */
36136 REGB0 = REGB2;
36137 } else {
36138 /* ./../lib/standard//kernel.nit:352 */
36139 goto label2;
36140 }
36141 }
36142 label2: while(0);
36143 label1: while(0);
36144 stack_frame_head = fra.me.prev;
36145 return;
36146 }
36147 void parser___parser_prod___AArrayExpr___visit_all(val_t p0, val_t p1){
36148 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36149 val_t REGB0;
36150 val_t tmp;
36151 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36152 fra.me.file = LOCATE_parser___parser_prod;
36153 fra.me.line = 6600;
36154 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___visit_all;
36155 fra.me.has_broke = 0;
36156 fra.me.REG_size = 2;
36157 fra.me.nitni_local_ref_head = NULL;
36158 fra.me.REG[0] = NIT_NULL;
36159 fra.me.REG[1] = NIT_NULL;
36160 fra.me.REG[0] = p0;
36161 fra.me.REG[1] = p1;
36162 /* ./parser//parser_prod.nit:6602 */
36163 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
36164 if (UNTAG_Bool(REGB0)) {
36165 } else {
36166 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6602);
36167 }
36168 fra.me.REG[0] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
36169 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AArrayExpr___visit_all_1));
36170 stack_frame_head = fra.me.prev;
36171 return;
36172 }
36173 void OC_parser___parser_prod___AArrayExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
36174 struct {struct stack_frame_t me;} fra;
36175 fun_t CREG[1];
36176 val_t tmp;
36177 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36178 fra.me.file = LOCATE_parser___parser_prod;
36179 fra.me.line = 0;
36180 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___visit_all;
36181 fra.me.has_broke = 0;
36182 fra.me.REG_size = 1;
36183 fra.me.nitni_local_ref_head = NULL;
36184 fra.me.REG[0] = NIT_NULL;
36185 fra.me.closure_ctx = closctx_param;
36186 fra.me.closure_funs = CREG;
36187 fra.me.REG[0] = p0;
36188 CREG[0] = clos_fun0;
36189 /* ./parser//parser_prod.nit:6603 */
36190 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
36191 stack_frame_head = fra.me.prev;
36192 return;
36193 }
36194 void parser___parser_prod___ASelfExpr___empty_init(val_t p0, int* init_table){
36195 int itpos221 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASelfExpr].i;
36196 struct {struct stack_frame_t me;} fra;
36197 val_t tmp;
36198 if (init_table[itpos221]) return;
36199 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36200 fra.me.file = LOCATE_parser___parser_prod;
36201 fra.me.line = 6608;
36202 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___empty_init;
36203 fra.me.has_broke = 0;
36204 fra.me.REG_size = 1;
36205 fra.me.nitni_local_ref_head = NULL;
36206 fra.me.REG[0] = NIT_NULL;
36207 fra.me.REG[0] = p0;
36208 stack_frame_head = fra.me.prev;
36209 init_table[itpos221] = 1;
36210 return;
36211 }
36212 void parser___parser_prod___ASelfExpr___init_aselfexpr(val_t p0, val_t p1, int* init_table){
36213 int itpos222 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASelfExpr].i;
36214 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36215 val_t REGB0;
36216 val_t tmp;
36217 if (init_table[itpos222]) return;
36218 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36219 fra.me.file = LOCATE_parser___parser_prod;
36220 fra.me.line = 6610;
36221 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___init_aselfexpr;
36222 fra.me.has_broke = 0;
36223 fra.me.REG_size = 3;
36224 fra.me.nitni_local_ref_head = NULL;
36225 fra.me.REG[0] = NIT_NULL;
36226 fra.me.REG[1] = NIT_NULL;
36227 fra.me.REG[2] = NIT_NULL;
36228 fra.me.REG[0] = p0;
36229 fra.me.REG[1] = p1;
36230 /* ./parser//parser_prod.nit:6610 */
36231 fra.me.REG[2] = fra.me.REG[0];
36232 /* ./parser//parser_prod.nit:6614 */
36233 CALL_parser___parser_prod___ASelfExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36234 /* ./parser//parser_prod.nit:6615 */
36235 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36236 if (UNTAG_Bool(REGB0)) {
36237 } else {
36238 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6615);
36239 }
36240 ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[2]) = fra.me.REG[1];
36241 /* ./parser//parser_prod.nit:6616 */
36242 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36243 if (UNTAG_Bool(REGB0)) {
36244 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6616);
36245 }
36246 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36247 stack_frame_head = fra.me.prev;
36248 init_table[itpos222] = 1;
36249 return;
36250 }
36251 void parser___parser_prod___ASelfExpr___replace_child(val_t p0, val_t p1, val_t p2){
36252 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36253 val_t REGB0;
36254 val_t REGB1;
36255 val_t tmp;
36256 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36257 fra.me.file = LOCATE_parser___parser_prod;
36258 fra.me.line = 6619;
36259 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___replace_child;
36260 fra.me.has_broke = 0;
36261 fra.me.REG_size = 4;
36262 fra.me.nitni_local_ref_head = NULL;
36263 fra.me.REG[0] = NIT_NULL;
36264 fra.me.REG[1] = NIT_NULL;
36265 fra.me.REG[2] = NIT_NULL;
36266 fra.me.REG[3] = NIT_NULL;
36267 fra.me.REG[0] = p0;
36268 fra.me.REG[1] = p1;
36269 fra.me.REG[2] = p2;
36270 /* ./parser//parser_prod.nit:6621 */
36271 fra.me.REG[3] = ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]);
36272 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
36273 if (UNTAG_Bool(REGB0)) {
36274 } else {
36275 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36276 if (UNTAG_Bool(REGB1)) {
36277 REGB1 = TAG_Bool(false);
36278 REGB0 = REGB1;
36279 } else {
36280 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36281 REGB0 = REGB1;
36282 }
36283 }
36284 if (UNTAG_Bool(REGB0)) {
36285 /* ./parser//parser_prod.nit:6622 */
36286 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36287 if (UNTAG_Bool(REGB0)) {
36288 } else {
36289 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36290 if (UNTAG_Bool(REGB1)) {
36291 REGB1 = TAG_Bool(false);
36292 REGB0 = REGB1;
36293 } else {
36294 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36295 REGB0 = REGB1;
36296 }
36297 }
36298 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36299 if (UNTAG_Bool(REGB0)) {
36300 /* ./parser//parser_prod.nit:6623 */
36301 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36302 if (UNTAG_Bool(REGB0)) {
36303 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6623);
36304 }
36305 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36306 /* ./parser//parser_prod.nit:6624 */
36307 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*/;
36308 if (UNTAG_Bool(REGB0)) {
36309 } else {
36310 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6624);
36311 }
36312 /* ./parser//parser_prod.nit:6625 */
36313 ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]) = fra.me.REG[2];
36314 } else {
36315 /* ./parser//parser_prod.nit:6627 */
36316 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6627);
36317 }
36318 /* ./parser//parser_prod.nit:6629 */
36319 goto label1;
36320 }
36321 label1: while(0);
36322 stack_frame_head = fra.me.prev;
36323 return;
36324 }
36325 void parser___parser_prod___ASelfExpr___visit_all(val_t p0, val_t p1){
36326 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36327 val_t tmp;
36328 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36329 fra.me.file = LOCATE_parser___parser_prod;
36330 fra.me.line = 6633;
36331 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___visit_all;
36332 fra.me.has_broke = 0;
36333 fra.me.REG_size = 2;
36334 fra.me.nitni_local_ref_head = NULL;
36335 fra.me.REG[0] = NIT_NULL;
36336 fra.me.REG[1] = NIT_NULL;
36337 fra.me.REG[0] = p0;
36338 fra.me.REG[1] = p1;
36339 /* ./parser//parser_prod.nit:6635 */
36340 fra.me.REG[0] = ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]);
36341 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36342 stack_frame_head = fra.me.prev;
36343 return;
36344 }
36345 void parser___parser_prod___AImplicitSelfExpr___empty_init(val_t p0, int* init_table){
36346 int itpos223 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AImplicitSelfExpr].i;
36347 struct {struct stack_frame_t me;} fra;
36348 val_t tmp;
36349 if (init_table[itpos223]) return;
36350 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36351 fra.me.file = LOCATE_parser___parser_prod;
36352 fra.me.line = 6639;
36353 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___empty_init;
36354 fra.me.has_broke = 0;
36355 fra.me.REG_size = 1;
36356 fra.me.nitni_local_ref_head = NULL;
36357 fra.me.REG[0] = NIT_NULL;
36358 fra.me.REG[0] = p0;
36359 stack_frame_head = fra.me.prev;
36360 init_table[itpos223] = 1;
36361 return;
36362 }
36363 void parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(val_t p0, int* init_table){
36364 int itpos224 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AImplicitSelfExpr].i;
36365 struct {struct stack_frame_t me;} fra;
36366 val_t tmp;
36367 if (init_table[itpos224]) return;
36368 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36369 fra.me.file = LOCATE_parser___parser_prod;
36370 fra.me.line = 6641;
36371 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr;
36372 fra.me.has_broke = 0;
36373 fra.me.REG_size = 1;
36374 fra.me.nitni_local_ref_head = NULL;
36375 fra.me.REG[0] = NIT_NULL;
36376 fra.me.REG[0] = p0;
36377 /* ./parser//parser_prod.nit:6643 */
36378 CALL_parser___parser_prod___AImplicitSelfExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
36379 stack_frame_head = fra.me.prev;
36380 init_table[itpos224] = 1;
36381 return;
36382 }
36383 void parser___parser_prod___AImplicitSelfExpr___replace_child(val_t p0, val_t p1, val_t p2){
36384 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36385 val_t tmp;
36386 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36387 fra.me.file = LOCATE_parser___parser_prod;
36388 fra.me.line = 6646;
36389 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___replace_child;
36390 fra.me.has_broke = 0;
36391 fra.me.REG_size = 3;
36392 fra.me.nitni_local_ref_head = NULL;
36393 fra.me.REG[0] = NIT_NULL;
36394 fra.me.REG[1] = NIT_NULL;
36395 fra.me.REG[2] = NIT_NULL;
36396 fra.me.REG[0] = p0;
36397 fra.me.REG[1] = p1;
36398 fra.me.REG[2] = p2;
36399 stack_frame_head = fra.me.prev;
36400 return;
36401 }
36402 void parser___parser_prod___AImplicitSelfExpr___visit_all(val_t p0, val_t p1){
36403 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36404 val_t tmp;
36405 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36406 fra.me.file = LOCATE_parser___parser_prod;
36407 fra.me.line = 6650;
36408 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___visit_all;
36409 fra.me.has_broke = 0;
36410 fra.me.REG_size = 2;
36411 fra.me.nitni_local_ref_head = NULL;
36412 fra.me.REG[0] = NIT_NULL;
36413 fra.me.REG[1] = NIT_NULL;
36414 fra.me.REG[0] = p0;
36415 fra.me.REG[1] = p1;
36416 stack_frame_head = fra.me.prev;
36417 return;
36418 }
36419 void parser___parser_prod___ATrueExpr___empty_init(val_t p0, int* init_table){
36420 int itpos225 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATrueExpr].i;
36421 struct {struct stack_frame_t me;} fra;
36422 val_t tmp;
36423 if (init_table[itpos225]) return;
36424 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36425 fra.me.file = LOCATE_parser___parser_prod;
36426 fra.me.line = 6655;
36427 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___empty_init;
36428 fra.me.has_broke = 0;
36429 fra.me.REG_size = 1;
36430 fra.me.nitni_local_ref_head = NULL;
36431 fra.me.REG[0] = NIT_NULL;
36432 fra.me.REG[0] = p0;
36433 stack_frame_head = fra.me.prev;
36434 init_table[itpos225] = 1;
36435 return;
36436 }
36437 void parser___parser_prod___ATrueExpr___init_atrueexpr(val_t p0, val_t p1, int* init_table){
36438 int itpos226 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATrueExpr].i;
36439 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36440 val_t REGB0;
36441 val_t tmp;
36442 if (init_table[itpos226]) return;
36443 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36444 fra.me.file = LOCATE_parser___parser_prod;
36445 fra.me.line = 6657;
36446 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___init_atrueexpr;
36447 fra.me.has_broke = 0;
36448 fra.me.REG_size = 3;
36449 fra.me.nitni_local_ref_head = NULL;
36450 fra.me.REG[0] = NIT_NULL;
36451 fra.me.REG[1] = NIT_NULL;
36452 fra.me.REG[2] = NIT_NULL;
36453 fra.me.REG[0] = p0;
36454 fra.me.REG[1] = p1;
36455 /* ./parser//parser_prod.nit:6657 */
36456 fra.me.REG[2] = fra.me.REG[0];
36457 /* ./parser//parser_prod.nit:6661 */
36458 CALL_parser___parser_prod___ATrueExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36459 /* ./parser//parser_prod.nit:6662 */
36460 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36461 if (UNTAG_Bool(REGB0)) {
36462 } else {
36463 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6662);
36464 }
36465 ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[2]) = fra.me.REG[1];
36466 /* ./parser//parser_prod.nit:6663 */
36467 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36468 if (UNTAG_Bool(REGB0)) {
36469 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6663);
36470 }
36471 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36472 stack_frame_head = fra.me.prev;
36473 init_table[itpos226] = 1;
36474 return;
36475 }
36476 void parser___parser_prod___ATrueExpr___replace_child(val_t p0, val_t p1, val_t p2){
36477 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36478 val_t REGB0;
36479 val_t REGB1;
36480 val_t tmp;
36481 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36482 fra.me.file = LOCATE_parser___parser_prod;
36483 fra.me.line = 6666;
36484 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___replace_child;
36485 fra.me.has_broke = 0;
36486 fra.me.REG_size = 4;
36487 fra.me.nitni_local_ref_head = NULL;
36488 fra.me.REG[0] = NIT_NULL;
36489 fra.me.REG[1] = NIT_NULL;
36490 fra.me.REG[2] = NIT_NULL;
36491 fra.me.REG[3] = NIT_NULL;
36492 fra.me.REG[0] = p0;
36493 fra.me.REG[1] = p1;
36494 fra.me.REG[2] = p2;
36495 /* ./parser//parser_prod.nit:6668 */
36496 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0])!=NIT_NULL);
36497 if (UNTAG_Bool(REGB0)) {
36498 } else {
36499 nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser___parser_prod, 6668);
36500 }
36501 fra.me.REG[3] = ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]);
36502 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36503 if (UNTAG_Bool(REGB0)) {
36504 } else {
36505 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36506 REGB0 = REGB1;
36507 }
36508 if (UNTAG_Bool(REGB0)) {
36509 /* ./parser//parser_prod.nit:6669 */
36510 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36511 if (UNTAG_Bool(REGB0)) {
36512 } else {
36513 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36514 if (UNTAG_Bool(REGB1)) {
36515 REGB1 = TAG_Bool(false);
36516 REGB0 = REGB1;
36517 } else {
36518 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36519 REGB0 = REGB1;
36520 }
36521 }
36522 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36523 if (UNTAG_Bool(REGB0)) {
36524 /* ./parser//parser_prod.nit:6670 */
36525 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36526 if (UNTAG_Bool(REGB0)) {
36527 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6670);
36528 }
36529 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36530 /* ./parser//parser_prod.nit:6671 */
36531 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*/;
36532 if (UNTAG_Bool(REGB0)) {
36533 } else {
36534 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6671);
36535 }
36536 /* ./parser//parser_prod.nit:6672 */
36537 ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]) = fra.me.REG[2];
36538 } else {
36539 /* ./parser//parser_prod.nit:6674 */
36540 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6674);
36541 }
36542 /* ./parser//parser_prod.nit:6676 */
36543 goto label1;
36544 }
36545 label1: while(0);
36546 stack_frame_head = fra.me.prev;
36547 return;
36548 }
36549 void parser___parser_prod___ATrueExpr___visit_all(val_t p0, val_t p1){
36550 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36551 val_t REGB0;
36552 val_t tmp;
36553 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36554 fra.me.file = LOCATE_parser___parser_prod;
36555 fra.me.line = 6680;
36556 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___visit_all;
36557 fra.me.has_broke = 0;
36558 fra.me.REG_size = 2;
36559 fra.me.nitni_local_ref_head = NULL;
36560 fra.me.REG[0] = NIT_NULL;
36561 fra.me.REG[1] = NIT_NULL;
36562 fra.me.REG[0] = p0;
36563 fra.me.REG[1] = p1;
36564 /* ./parser//parser_prod.nit:6682 */
36565 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0])!=NIT_NULL);
36566 if (UNTAG_Bool(REGB0)) {
36567 } else {
36568 nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser___parser_prod, 6682);
36569 }
36570 fra.me.REG[0] = ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]);
36571 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36572 stack_frame_head = fra.me.prev;
36573 return;
36574 }
36575 void parser___parser_prod___AFalseExpr___empty_init(val_t p0, int* init_table){
36576 int itpos227 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFalseExpr].i;
36577 struct {struct stack_frame_t me;} fra;
36578 val_t tmp;
36579 if (init_table[itpos227]) return;
36580 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36581 fra.me.file = LOCATE_parser___parser_prod;
36582 fra.me.line = 6686;
36583 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___empty_init;
36584 fra.me.has_broke = 0;
36585 fra.me.REG_size = 1;
36586 fra.me.nitni_local_ref_head = NULL;
36587 fra.me.REG[0] = NIT_NULL;
36588 fra.me.REG[0] = p0;
36589 stack_frame_head = fra.me.prev;
36590 init_table[itpos227] = 1;
36591 return;
36592 }
36593 void parser___parser_prod___AFalseExpr___init_afalseexpr(val_t p0, val_t p1, int* init_table){
36594 int itpos228 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFalseExpr].i;
36595 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36596 val_t REGB0;
36597 val_t tmp;
36598 if (init_table[itpos228]) return;
36599 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36600 fra.me.file = LOCATE_parser___parser_prod;
36601 fra.me.line = 6688;
36602 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___init_afalseexpr;
36603 fra.me.has_broke = 0;
36604 fra.me.REG_size = 3;
36605 fra.me.nitni_local_ref_head = NULL;
36606 fra.me.REG[0] = NIT_NULL;
36607 fra.me.REG[1] = NIT_NULL;
36608 fra.me.REG[2] = NIT_NULL;
36609 fra.me.REG[0] = p0;
36610 fra.me.REG[1] = p1;
36611 /* ./parser//parser_prod.nit:6688 */
36612 fra.me.REG[2] = fra.me.REG[0];
36613 /* ./parser//parser_prod.nit:6692 */
36614 CALL_parser___parser_prod___AFalseExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36615 /* ./parser//parser_prod.nit:6693 */
36616 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36617 if (UNTAG_Bool(REGB0)) {
36618 } else {
36619 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6693);
36620 }
36621 ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[2]) = fra.me.REG[1];
36622 /* ./parser//parser_prod.nit:6694 */
36623 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36624 if (UNTAG_Bool(REGB0)) {
36625 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6694);
36626 }
36627 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36628 stack_frame_head = fra.me.prev;
36629 init_table[itpos228] = 1;
36630 return;
36631 }
36632 void parser___parser_prod___AFalseExpr___replace_child(val_t p0, val_t p1, val_t p2){
36633 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36634 val_t REGB0;
36635 val_t REGB1;
36636 val_t tmp;
36637 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36638 fra.me.file = LOCATE_parser___parser_prod;
36639 fra.me.line = 6697;
36640 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___replace_child;
36641 fra.me.has_broke = 0;
36642 fra.me.REG_size = 4;
36643 fra.me.nitni_local_ref_head = NULL;
36644 fra.me.REG[0] = NIT_NULL;
36645 fra.me.REG[1] = NIT_NULL;
36646 fra.me.REG[2] = NIT_NULL;
36647 fra.me.REG[3] = NIT_NULL;
36648 fra.me.REG[0] = p0;
36649 fra.me.REG[1] = p1;
36650 fra.me.REG[2] = p2;
36651 /* ./parser//parser_prod.nit:6699 */
36652 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0])!=NIT_NULL);
36653 if (UNTAG_Bool(REGB0)) {
36654 } else {
36655 nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser___parser_prod, 6699);
36656 }
36657 fra.me.REG[3] = ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]);
36658 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36659 if (UNTAG_Bool(REGB0)) {
36660 } else {
36661 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36662 REGB0 = REGB1;
36663 }
36664 if (UNTAG_Bool(REGB0)) {
36665 /* ./parser//parser_prod.nit:6700 */
36666 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36667 if (UNTAG_Bool(REGB0)) {
36668 } else {
36669 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36670 if (UNTAG_Bool(REGB1)) {
36671 REGB1 = TAG_Bool(false);
36672 REGB0 = REGB1;
36673 } else {
36674 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36675 REGB0 = REGB1;
36676 }
36677 }
36678 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36679 if (UNTAG_Bool(REGB0)) {
36680 /* ./parser//parser_prod.nit:6701 */
36681 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36682 if (UNTAG_Bool(REGB0)) {
36683 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6701);
36684 }
36685 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36686 /* ./parser//parser_prod.nit:6702 */
36687 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*/;
36688 if (UNTAG_Bool(REGB0)) {
36689 } else {
36690 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6702);
36691 }
36692 /* ./parser//parser_prod.nit:6703 */
36693 ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]) = fra.me.REG[2];
36694 } else {
36695 /* ./parser//parser_prod.nit:6705 */
36696 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6705);
36697 }
36698 /* ./parser//parser_prod.nit:6707 */
36699 goto label1;
36700 }
36701 label1: while(0);
36702 stack_frame_head = fra.me.prev;
36703 return;
36704 }
36705 void parser___parser_prod___AFalseExpr___visit_all(val_t p0, val_t p1){
36706 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36707 val_t REGB0;
36708 val_t tmp;
36709 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36710 fra.me.file = LOCATE_parser___parser_prod;
36711 fra.me.line = 6711;
36712 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___visit_all;
36713 fra.me.has_broke = 0;
36714 fra.me.REG_size = 2;
36715 fra.me.nitni_local_ref_head = NULL;
36716 fra.me.REG[0] = NIT_NULL;
36717 fra.me.REG[1] = NIT_NULL;
36718 fra.me.REG[0] = p0;
36719 fra.me.REG[1] = p1;
36720 /* ./parser//parser_prod.nit:6713 */
36721 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0])!=NIT_NULL);
36722 if (UNTAG_Bool(REGB0)) {
36723 } else {
36724 nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser___parser_prod, 6713);
36725 }
36726 fra.me.REG[0] = ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]);
36727 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36728 stack_frame_head = fra.me.prev;
36729 return;
36730 }
36731 void parser___parser_prod___ANullExpr___empty_init(val_t p0, int* init_table){
36732 int itpos229 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANullExpr].i;
36733 struct {struct stack_frame_t me;} fra;
36734 val_t tmp;
36735 if (init_table[itpos229]) return;
36736 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36737 fra.me.file = LOCATE_parser___parser_prod;
36738 fra.me.line = 6717;
36739 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___empty_init;
36740 fra.me.has_broke = 0;
36741 fra.me.REG_size = 1;
36742 fra.me.nitni_local_ref_head = NULL;
36743 fra.me.REG[0] = NIT_NULL;
36744 fra.me.REG[0] = p0;
36745 stack_frame_head = fra.me.prev;
36746 init_table[itpos229] = 1;
36747 return;
36748 }
36749 void parser___parser_prod___ANullExpr___init_anullexpr(val_t p0, val_t p1, int* init_table){
36750 int itpos230 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANullExpr].i;
36751 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36752 val_t REGB0;
36753 val_t tmp;
36754 if (init_table[itpos230]) return;
36755 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36756 fra.me.file = LOCATE_parser___parser_prod;
36757 fra.me.line = 6719;
36758 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___init_anullexpr;
36759 fra.me.has_broke = 0;
36760 fra.me.REG_size = 3;
36761 fra.me.nitni_local_ref_head = NULL;
36762 fra.me.REG[0] = NIT_NULL;
36763 fra.me.REG[1] = NIT_NULL;
36764 fra.me.REG[2] = NIT_NULL;
36765 fra.me.REG[0] = p0;
36766 fra.me.REG[1] = p1;
36767 /* ./parser//parser_prod.nit:6719 */
36768 fra.me.REG[2] = fra.me.REG[0];
36769 /* ./parser//parser_prod.nit:6723 */
36770 CALL_parser___parser_prod___ANullExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36771 /* ./parser//parser_prod.nit:6724 */
36772 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36773 if (UNTAG_Bool(REGB0)) {
36774 } else {
36775 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6724);
36776 }
36777 ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[2]) = fra.me.REG[1];
36778 /* ./parser//parser_prod.nit:6725 */
36779 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36780 if (UNTAG_Bool(REGB0)) {
36781 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6725);
36782 }
36783 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36784 stack_frame_head = fra.me.prev;
36785 init_table[itpos230] = 1;
36786 return;
36787 }
36788 void parser___parser_prod___ANullExpr___replace_child(val_t p0, val_t p1, val_t p2){
36789 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36790 val_t REGB0;
36791 val_t REGB1;
36792 val_t tmp;
36793 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36794 fra.me.file = LOCATE_parser___parser_prod;
36795 fra.me.line = 6728;
36796 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___replace_child;
36797 fra.me.has_broke = 0;
36798 fra.me.REG_size = 4;
36799 fra.me.nitni_local_ref_head = NULL;
36800 fra.me.REG[0] = NIT_NULL;
36801 fra.me.REG[1] = NIT_NULL;
36802 fra.me.REG[2] = NIT_NULL;
36803 fra.me.REG[3] = NIT_NULL;
36804 fra.me.REG[0] = p0;
36805 fra.me.REG[1] = p1;
36806 fra.me.REG[2] = p2;
36807 /* ./parser//parser_prod.nit:6730 */
36808 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
36809 if (UNTAG_Bool(REGB0)) {
36810 } else {
36811 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 6730);
36812 }
36813 fra.me.REG[3] = ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]);
36814 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36815 if (UNTAG_Bool(REGB0)) {
36816 } else {
36817 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36818 REGB0 = REGB1;
36819 }
36820 if (UNTAG_Bool(REGB0)) {
36821 /* ./parser//parser_prod.nit:6731 */
36822 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36823 if (UNTAG_Bool(REGB0)) {
36824 } else {
36825 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36826 if (UNTAG_Bool(REGB1)) {
36827 REGB1 = TAG_Bool(false);
36828 REGB0 = REGB1;
36829 } else {
36830 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36831 REGB0 = REGB1;
36832 }
36833 }
36834 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36835 if (UNTAG_Bool(REGB0)) {
36836 /* ./parser//parser_prod.nit:6732 */
36837 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36838 if (UNTAG_Bool(REGB0)) {
36839 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6732);
36840 }
36841 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36842 /* ./parser//parser_prod.nit:6733 */
36843 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*/;
36844 if (UNTAG_Bool(REGB0)) {
36845 } else {
36846 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6733);
36847 }
36848 /* ./parser//parser_prod.nit:6734 */
36849 ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[2];
36850 } else {
36851 /* ./parser//parser_prod.nit:6736 */
36852 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6736);
36853 }
36854 /* ./parser//parser_prod.nit:6738 */
36855 goto label1;
36856 }
36857 label1: while(0);
36858 stack_frame_head = fra.me.prev;
36859 return;
36860 }
36861 void parser___parser_prod___ANullExpr___visit_all(val_t p0, val_t p1){
36862 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36863 val_t REGB0;
36864 val_t tmp;
36865 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36866 fra.me.file = LOCATE_parser___parser_prod;
36867 fra.me.line = 6742;
36868 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___visit_all;
36869 fra.me.has_broke = 0;
36870 fra.me.REG_size = 2;
36871 fra.me.nitni_local_ref_head = NULL;
36872 fra.me.REG[0] = NIT_NULL;
36873 fra.me.REG[1] = NIT_NULL;
36874 fra.me.REG[0] = p0;
36875 fra.me.REG[1] = p1;
36876 /* ./parser//parser_prod.nit:6744 */
36877 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
36878 if (UNTAG_Bool(REGB0)) {
36879 } else {
36880 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 6744);
36881 }
36882 fra.me.REG[0] = ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]);
36883 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36884 stack_frame_head = fra.me.prev;
36885 return;
36886 }
36887 void parser___parser_prod___AIntExpr___empty_init(val_t p0, int* init_table){
36888 int itpos231 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIntExpr].i;
36889 struct {struct stack_frame_t me;} fra;
36890 val_t tmp;
36891 if (init_table[itpos231]) return;
36892 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36893 fra.me.file = LOCATE_parser___parser_prod;
36894 fra.me.line = 6748;
36895 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___empty_init;
36896 fra.me.has_broke = 0;
36897 fra.me.REG_size = 1;
36898 fra.me.nitni_local_ref_head = NULL;
36899 fra.me.REG[0] = NIT_NULL;
36900 fra.me.REG[0] = p0;
36901 stack_frame_head = fra.me.prev;
36902 init_table[itpos231] = 1;
36903 return;
36904 }
36905 void parser___parser_prod___AIntExpr___init_aintexpr(val_t p0, val_t p1, int* init_table){
36906 int itpos232 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIntExpr].i;
36907 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36908 val_t REGB0;
36909 val_t tmp;
36910 if (init_table[itpos232]) return;
36911 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36912 fra.me.file = LOCATE_parser___parser_prod;
36913 fra.me.line = 6750;
36914 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___init_aintexpr;
36915 fra.me.has_broke = 0;
36916 fra.me.REG_size = 3;
36917 fra.me.nitni_local_ref_head = NULL;
36918 fra.me.REG[0] = NIT_NULL;
36919 fra.me.REG[1] = NIT_NULL;
36920 fra.me.REG[2] = NIT_NULL;
36921 fra.me.REG[0] = p0;
36922 fra.me.REG[1] = p1;
36923 /* ./parser//parser_prod.nit:6750 */
36924 fra.me.REG[2] = fra.me.REG[0];
36925 /* ./parser//parser_prod.nit:6754 */
36926 CALL_parser___parser_prod___AIntExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36927 /* ./parser//parser_prod.nit:6755 */
36928 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36929 if (UNTAG_Bool(REGB0)) {
36930 } else {
36931 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6755);
36932 }
36933 ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[2]) = fra.me.REG[1];
36934 /* ./parser//parser_prod.nit:6756 */
36935 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36936 if (UNTAG_Bool(REGB0)) {
36937 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6756);
36938 }
36939 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36940 stack_frame_head = fra.me.prev;
36941 init_table[itpos232] = 1;
36942 return;
36943 }
36944 void parser___parser_prod___AIntExpr___replace_child(val_t p0, val_t p1, val_t p2){
36945 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36946 val_t REGB0;
36947 val_t REGB1;
36948 val_t tmp;
36949 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36950 fra.me.file = LOCATE_parser___parser_prod;
36951 fra.me.line = 6759;
36952 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___replace_child;
36953 fra.me.has_broke = 0;
36954 fra.me.REG_size = 4;
36955 fra.me.nitni_local_ref_head = NULL;
36956 fra.me.REG[0] = NIT_NULL;
36957 fra.me.REG[1] = NIT_NULL;
36958 fra.me.REG[2] = NIT_NULL;
36959 fra.me.REG[3] = NIT_NULL;
36960 fra.me.REG[0] = p0;
36961 fra.me.REG[1] = p1;
36962 fra.me.REG[2] = p2;
36963 /* ./parser//parser_prod.nit:6761 */
36964 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
36965 if (UNTAG_Bool(REGB0)) {
36966 } else {
36967 nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser___parser_prod, 6761);
36968 }
36969 fra.me.REG[3] = ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]);
36970 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36971 if (UNTAG_Bool(REGB0)) {
36972 } else {
36973 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36974 REGB0 = REGB1;
36975 }
36976 if (UNTAG_Bool(REGB0)) {
36977 /* ./parser//parser_prod.nit:6762 */
36978 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36979 if (UNTAG_Bool(REGB0)) {
36980 } else {
36981 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36982 if (UNTAG_Bool(REGB1)) {
36983 REGB1 = TAG_Bool(false);
36984 REGB0 = REGB1;
36985 } else {
36986 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36987 REGB0 = REGB1;
36988 }
36989 }
36990 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36991 if (UNTAG_Bool(REGB0)) {
36992 /* ./parser//parser_prod.nit:6763 */
36993 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36994 if (UNTAG_Bool(REGB0)) {
36995 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6763);
36996 }
36997 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36998 /* ./parser//parser_prod.nit:6764 */
36999 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*/;
37000 if (UNTAG_Bool(REGB0)) {
37001 } else {
37002 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6764);
37003 }
37004 /* ./parser//parser_prod.nit:6765 */
37005 ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]) = fra.me.REG[2];
37006 } else {
37007 /* ./parser//parser_prod.nit:6767 */
37008 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6767);
37009 }
37010 /* ./parser//parser_prod.nit:6769 */
37011 goto label1;
37012 }
37013 label1: while(0);
37014 stack_frame_head = fra.me.prev;
37015 return;
37016 }
37017 void parser___parser_prod___AIntExpr___visit_all(val_t p0, val_t p1){
37018 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37019 val_t REGB0;
37020 val_t tmp;
37021 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37022 fra.me.file = LOCATE_parser___parser_prod;
37023 fra.me.line = 6773;
37024 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___visit_all;
37025 fra.me.has_broke = 0;
37026 fra.me.REG_size = 2;
37027 fra.me.nitni_local_ref_head = NULL;
37028 fra.me.REG[0] = NIT_NULL;
37029 fra.me.REG[1] = NIT_NULL;
37030 fra.me.REG[0] = p0;
37031 fra.me.REG[1] = p1;
37032 /* ./parser//parser_prod.nit:6775 */
37033 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
37034 if (UNTAG_Bool(REGB0)) {
37035 } else {
37036 nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser___parser_prod, 6775);
37037 }
37038 fra.me.REG[0] = ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]);
37039 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37040 stack_frame_head = fra.me.prev;
37041 return;
37042 }
37043 void parser___parser_prod___AFloatExpr___empty_init(val_t p0, int* init_table){
37044 int itpos233 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFloatExpr].i;
37045 struct {struct stack_frame_t me;} fra;
37046 val_t tmp;
37047 if (init_table[itpos233]) return;
37048 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37049 fra.me.file = LOCATE_parser___parser_prod;
37050 fra.me.line = 6779;
37051 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___empty_init;
37052 fra.me.has_broke = 0;
37053 fra.me.REG_size = 1;
37054 fra.me.nitni_local_ref_head = NULL;
37055 fra.me.REG[0] = NIT_NULL;
37056 fra.me.REG[0] = p0;
37057 stack_frame_head = fra.me.prev;
37058 init_table[itpos233] = 1;
37059 return;
37060 }
37061 void parser___parser_prod___AFloatExpr___init_afloatexpr(val_t p0, val_t p1, int* init_table){
37062 int itpos234 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFloatExpr].i;
37063 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37064 val_t REGB0;
37065 val_t tmp;
37066 if (init_table[itpos234]) return;
37067 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37068 fra.me.file = LOCATE_parser___parser_prod;
37069 fra.me.line = 6781;
37070 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___init_afloatexpr;
37071 fra.me.has_broke = 0;
37072 fra.me.REG_size = 3;
37073 fra.me.nitni_local_ref_head = NULL;
37074 fra.me.REG[0] = NIT_NULL;
37075 fra.me.REG[1] = NIT_NULL;
37076 fra.me.REG[2] = NIT_NULL;
37077 fra.me.REG[0] = p0;
37078 fra.me.REG[1] = p1;
37079 /* ./parser//parser_prod.nit:6781 */
37080 fra.me.REG[2] = fra.me.REG[0];
37081 /* ./parser//parser_prod.nit:6785 */
37082 CALL_parser___parser_prod___AFloatExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37083 /* ./parser//parser_prod.nit:6786 */
37084 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37085 if (UNTAG_Bool(REGB0)) {
37086 } else {
37087 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6786);
37088 }
37089 ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[2]) = fra.me.REG[1];
37090 /* ./parser//parser_prod.nit:6787 */
37091 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37092 if (UNTAG_Bool(REGB0)) {
37093 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6787);
37094 }
37095 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37096 stack_frame_head = fra.me.prev;
37097 init_table[itpos234] = 1;
37098 return;
37099 }
37100 void parser___parser_prod___AFloatExpr___replace_child(val_t p0, val_t p1, val_t p2){
37101 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37102 val_t REGB0;
37103 val_t REGB1;
37104 val_t tmp;
37105 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37106 fra.me.file = LOCATE_parser___parser_prod;
37107 fra.me.line = 6790;
37108 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___replace_child;
37109 fra.me.has_broke = 0;
37110 fra.me.REG_size = 4;
37111 fra.me.nitni_local_ref_head = NULL;
37112 fra.me.REG[0] = NIT_NULL;
37113 fra.me.REG[1] = NIT_NULL;
37114 fra.me.REG[2] = NIT_NULL;
37115 fra.me.REG[3] = NIT_NULL;
37116 fra.me.REG[0] = p0;
37117 fra.me.REG[1] = p1;
37118 fra.me.REG[2] = p2;
37119 /* ./parser//parser_prod.nit:6792 */
37120 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
37121 if (UNTAG_Bool(REGB0)) {
37122 } else {
37123 nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser___parser_prod, 6792);
37124 }
37125 fra.me.REG[3] = ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]);
37126 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37127 if (UNTAG_Bool(REGB0)) {
37128 } else {
37129 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37130 REGB0 = REGB1;
37131 }
37132 if (UNTAG_Bool(REGB0)) {
37133 /* ./parser//parser_prod.nit:6793 */
37134 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37135 if (UNTAG_Bool(REGB0)) {
37136 } else {
37137 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37138 if (UNTAG_Bool(REGB1)) {
37139 REGB1 = TAG_Bool(false);
37140 REGB0 = REGB1;
37141 } else {
37142 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37143 REGB0 = REGB1;
37144 }
37145 }
37146 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37147 if (UNTAG_Bool(REGB0)) {
37148 /* ./parser//parser_prod.nit:6794 */
37149 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37150 if (UNTAG_Bool(REGB0)) {
37151 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6794);
37152 }
37153 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37154 /* ./parser//parser_prod.nit:6795 */
37155 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*/;
37156 if (UNTAG_Bool(REGB0)) {
37157 } else {
37158 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6795);
37159 }
37160 /* ./parser//parser_prod.nit:6796 */
37161 ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]) = fra.me.REG[2];
37162 } else {
37163 /* ./parser//parser_prod.nit:6798 */
37164 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6798);
37165 }
37166 /* ./parser//parser_prod.nit:6800 */
37167 goto label1;
37168 }
37169 label1: while(0);
37170 stack_frame_head = fra.me.prev;
37171 return;
37172 }
37173 void parser___parser_prod___AFloatExpr___visit_all(val_t p0, val_t p1){
37174 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37175 val_t REGB0;
37176 val_t tmp;
37177 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37178 fra.me.file = LOCATE_parser___parser_prod;
37179 fra.me.line = 6804;
37180 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___visit_all;
37181 fra.me.has_broke = 0;
37182 fra.me.REG_size = 2;
37183 fra.me.nitni_local_ref_head = NULL;
37184 fra.me.REG[0] = NIT_NULL;
37185 fra.me.REG[1] = NIT_NULL;
37186 fra.me.REG[0] = p0;
37187 fra.me.REG[1] = p1;
37188 /* ./parser//parser_prod.nit:6806 */
37189 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
37190 if (UNTAG_Bool(REGB0)) {
37191 } else {
37192 nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser___parser_prod, 6806);
37193 }
37194 fra.me.REG[0] = ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]);
37195 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37196 stack_frame_head = fra.me.prev;
37197 return;
37198 }
37199 void parser___parser_prod___ACharExpr___empty_init(val_t p0, int* init_table){
37200 int itpos235 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACharExpr].i;
37201 struct {struct stack_frame_t me;} fra;
37202 val_t tmp;
37203 if (init_table[itpos235]) return;
37204 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37205 fra.me.file = LOCATE_parser___parser_prod;
37206 fra.me.line = 6810;
37207 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___empty_init;
37208 fra.me.has_broke = 0;
37209 fra.me.REG_size = 1;
37210 fra.me.nitni_local_ref_head = NULL;
37211 fra.me.REG[0] = NIT_NULL;
37212 fra.me.REG[0] = p0;
37213 stack_frame_head = fra.me.prev;
37214 init_table[itpos235] = 1;
37215 return;
37216 }
37217 void parser___parser_prod___ACharExpr___init_acharexpr(val_t p0, val_t p1, int* init_table){
37218 int itpos236 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACharExpr].i;
37219 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37220 val_t REGB0;
37221 val_t tmp;
37222 if (init_table[itpos236]) return;
37223 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37224 fra.me.file = LOCATE_parser___parser_prod;
37225 fra.me.line = 6812;
37226 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___init_acharexpr;
37227 fra.me.has_broke = 0;
37228 fra.me.REG_size = 3;
37229 fra.me.nitni_local_ref_head = NULL;
37230 fra.me.REG[0] = NIT_NULL;
37231 fra.me.REG[1] = NIT_NULL;
37232 fra.me.REG[2] = NIT_NULL;
37233 fra.me.REG[0] = p0;
37234 fra.me.REG[1] = p1;
37235 /* ./parser//parser_prod.nit:6812 */
37236 fra.me.REG[2] = fra.me.REG[0];
37237 /* ./parser//parser_prod.nit:6816 */
37238 CALL_parser___parser_prod___ACharExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37239 /* ./parser//parser_prod.nit:6817 */
37240 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37241 if (UNTAG_Bool(REGB0)) {
37242 } else {
37243 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6817);
37244 }
37245 ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[2]) = fra.me.REG[1];
37246 /* ./parser//parser_prod.nit:6818 */
37247 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37248 if (UNTAG_Bool(REGB0)) {
37249 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6818);
37250 }
37251 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37252 stack_frame_head = fra.me.prev;
37253 init_table[itpos236] = 1;
37254 return;
37255 }
37256 void parser___parser_prod___ACharExpr___replace_child(val_t p0, val_t p1, val_t p2){
37257 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37258 val_t REGB0;
37259 val_t REGB1;
37260 val_t tmp;
37261 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37262 fra.me.file = LOCATE_parser___parser_prod;
37263 fra.me.line = 6821;
37264 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___replace_child;
37265 fra.me.has_broke = 0;
37266 fra.me.REG_size = 4;
37267 fra.me.nitni_local_ref_head = NULL;
37268 fra.me.REG[0] = NIT_NULL;
37269 fra.me.REG[1] = NIT_NULL;
37270 fra.me.REG[2] = NIT_NULL;
37271 fra.me.REG[3] = NIT_NULL;
37272 fra.me.REG[0] = p0;
37273 fra.me.REG[1] = p1;
37274 fra.me.REG[2] = p2;
37275 /* ./parser//parser_prod.nit:6823 */
37276 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
37277 if (UNTAG_Bool(REGB0)) {
37278 } else {
37279 nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser___parser_prod, 6823);
37280 }
37281 fra.me.REG[3] = ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]);
37282 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37283 if (UNTAG_Bool(REGB0)) {
37284 } else {
37285 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37286 REGB0 = REGB1;
37287 }
37288 if (UNTAG_Bool(REGB0)) {
37289 /* ./parser//parser_prod.nit:6824 */
37290 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37291 if (UNTAG_Bool(REGB0)) {
37292 } else {
37293 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37294 if (UNTAG_Bool(REGB1)) {
37295 REGB1 = TAG_Bool(false);
37296 REGB0 = REGB1;
37297 } else {
37298 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37299 REGB0 = REGB1;
37300 }
37301 }
37302 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37303 if (UNTAG_Bool(REGB0)) {
37304 /* ./parser//parser_prod.nit:6825 */
37305 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37306 if (UNTAG_Bool(REGB0)) {
37307 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6825);
37308 }
37309 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37310 /* ./parser//parser_prod.nit:6826 */
37311 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*/;
37312 if (UNTAG_Bool(REGB0)) {
37313 } else {
37314 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6826);
37315 }
37316 /* ./parser//parser_prod.nit:6827 */
37317 ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]) = fra.me.REG[2];
37318 } else {
37319 /* ./parser//parser_prod.nit:6829 */
37320 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6829);
37321 }
37322 /* ./parser//parser_prod.nit:6831 */
37323 goto label1;
37324 }
37325 label1: while(0);
37326 stack_frame_head = fra.me.prev;
37327 return;
37328 }
37329 void parser___parser_prod___ACharExpr___visit_all(val_t p0, val_t p1){
37330 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37331 val_t REGB0;
37332 val_t tmp;
37333 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37334 fra.me.file = LOCATE_parser___parser_prod;
37335 fra.me.line = 6835;
37336 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___visit_all;
37337 fra.me.has_broke = 0;
37338 fra.me.REG_size = 2;
37339 fra.me.nitni_local_ref_head = NULL;
37340 fra.me.REG[0] = NIT_NULL;
37341 fra.me.REG[1] = NIT_NULL;
37342 fra.me.REG[0] = p0;
37343 fra.me.REG[1] = p1;
37344 /* ./parser//parser_prod.nit:6837 */
37345 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
37346 if (UNTAG_Bool(REGB0)) {
37347 } else {
37348 nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser___parser_prod, 6837);
37349 }
37350 fra.me.REG[0] = ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]);
37351 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37352 stack_frame_head = fra.me.prev;
37353 return;
37354 }
37355 void parser___parser_prod___AStringExpr___empty_init(val_t p0, int* init_table){
37356 int itpos237 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStringExpr].i;
37357 struct {struct stack_frame_t me;} fra;
37358 val_t tmp;
37359 if (init_table[itpos237]) return;
37360 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37361 fra.me.file = LOCATE_parser___parser_prod;
37362 fra.me.line = 6841;
37363 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___empty_init;
37364 fra.me.has_broke = 0;
37365 fra.me.REG_size = 1;
37366 fra.me.nitni_local_ref_head = NULL;
37367 fra.me.REG[0] = NIT_NULL;
37368 fra.me.REG[0] = p0;
37369 stack_frame_head = fra.me.prev;
37370 init_table[itpos237] = 1;
37371 return;
37372 }
37373 void parser___parser_prod___AStringExpr___init_astringexpr(val_t p0, val_t p1, int* init_table){
37374 int itpos238 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStringExpr].i;
37375 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37376 val_t REGB0;
37377 val_t tmp;
37378 if (init_table[itpos238]) return;
37379 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37380 fra.me.file = LOCATE_parser___parser_prod;
37381 fra.me.line = 6843;
37382 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___init_astringexpr;
37383 fra.me.has_broke = 0;
37384 fra.me.REG_size = 3;
37385 fra.me.nitni_local_ref_head = NULL;
37386 fra.me.REG[0] = NIT_NULL;
37387 fra.me.REG[1] = NIT_NULL;
37388 fra.me.REG[2] = NIT_NULL;
37389 fra.me.REG[0] = p0;
37390 fra.me.REG[1] = p1;
37391 /* ./parser//parser_prod.nit:6843 */
37392 fra.me.REG[2] = fra.me.REG[0];
37393 /* ./parser//parser_prod.nit:6847 */
37394 CALL_parser___parser_prod___AStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37395 /* ./parser//parser_prod.nit:6848 */
37396 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37397 if (UNTAG_Bool(REGB0)) {
37398 } else {
37399 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6848);
37400 }
37401 ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
37402 /* ./parser//parser_prod.nit:6849 */
37403 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37404 if (UNTAG_Bool(REGB0)) {
37405 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6849);
37406 }
37407 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37408 stack_frame_head = fra.me.prev;
37409 init_table[itpos238] = 1;
37410 return;
37411 }
37412 void parser___parser_prod___AStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
37413 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37414 val_t REGB0;
37415 val_t REGB1;
37416 val_t tmp;
37417 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37418 fra.me.file = LOCATE_parser___parser_prod;
37419 fra.me.line = 6852;
37420 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___replace_child;
37421 fra.me.has_broke = 0;
37422 fra.me.REG_size = 4;
37423 fra.me.nitni_local_ref_head = NULL;
37424 fra.me.REG[0] = NIT_NULL;
37425 fra.me.REG[1] = NIT_NULL;
37426 fra.me.REG[2] = NIT_NULL;
37427 fra.me.REG[3] = NIT_NULL;
37428 fra.me.REG[0] = p0;
37429 fra.me.REG[1] = p1;
37430 fra.me.REG[2] = p2;
37431 /* ./parser//parser_prod.nit:6854 */
37432 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37433 if (UNTAG_Bool(REGB0)) {
37434 } else {
37435 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6854);
37436 }
37437 fra.me.REG[3] = ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0]);
37438 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37439 if (UNTAG_Bool(REGB0)) {
37440 } else {
37441 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37442 REGB0 = REGB1;
37443 }
37444 if (UNTAG_Bool(REGB0)) {
37445 /* ./parser//parser_prod.nit:6855 */
37446 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37447 if (UNTAG_Bool(REGB0)) {
37448 } else {
37449 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37450 if (UNTAG_Bool(REGB1)) {
37451 REGB1 = TAG_Bool(false);
37452 REGB0 = REGB1;
37453 } else {
37454 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37455 REGB0 = REGB1;
37456 }
37457 }
37458 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37459 if (UNTAG_Bool(REGB0)) {
37460 /* ./parser//parser_prod.nit:6856 */
37461 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37462 if (UNTAG_Bool(REGB0)) {
37463 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6856);
37464 }
37465 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37466 /* ./parser//parser_prod.nit:6857 */
37467 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*/;
37468 if (UNTAG_Bool(REGB0)) {
37469 } else {
37470 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6857);
37471 }
37472 /* ./parser//parser_prod.nit:6858 */
37473 ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
37474 } else {
37475 /* ./parser//parser_prod.nit:6860 */
37476 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6860);
37477 }
37478 /* ./parser//parser_prod.nit:6862 */
37479 goto label1;
37480 }
37481 label1: while(0);
37482 stack_frame_head = fra.me.prev;
37483 return;
37484 }
37485 void parser___parser_prod___AStringExpr___visit_all(val_t p0, val_t p1){
37486 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37487 val_t REGB0;
37488 val_t tmp;
37489 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37490 fra.me.file = LOCATE_parser___parser_prod;
37491 fra.me.line = 6866;
37492 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___visit_all;
37493 fra.me.has_broke = 0;
37494 fra.me.REG_size = 2;
37495 fra.me.nitni_local_ref_head = NULL;
37496 fra.me.REG[0] = NIT_NULL;
37497 fra.me.REG[1] = NIT_NULL;
37498 fra.me.REG[0] = p0;
37499 fra.me.REG[1] = p1;
37500 /* ./parser//parser_prod.nit:6868 */
37501 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37502 if (UNTAG_Bool(REGB0)) {
37503 } else {
37504 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6868);
37505 }
37506 fra.me.REG[0] = ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0]);
37507 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37508 stack_frame_head = fra.me.prev;
37509 return;
37510 }
37511 void parser___parser_prod___AStartStringExpr___empty_init(val_t p0, int* init_table){
37512 int itpos239 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStartStringExpr].i;
37513 struct {struct stack_frame_t me;} fra;
37514 val_t tmp;
37515 if (init_table[itpos239]) return;
37516 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37517 fra.me.file = LOCATE_parser___parser_prod;
37518 fra.me.line = 6872;
37519 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___empty_init;
37520 fra.me.has_broke = 0;
37521 fra.me.REG_size = 1;
37522 fra.me.nitni_local_ref_head = NULL;
37523 fra.me.REG[0] = NIT_NULL;
37524 fra.me.REG[0] = p0;
37525 stack_frame_head = fra.me.prev;
37526 init_table[itpos239] = 1;
37527 return;
37528 }
37529 void parser___parser_prod___AStartStringExpr___init_astartstringexpr(val_t p0, val_t p1, int* init_table){
37530 int itpos240 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStartStringExpr].i;
37531 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37532 val_t REGB0;
37533 val_t tmp;
37534 if (init_table[itpos240]) return;
37535 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37536 fra.me.file = LOCATE_parser___parser_prod;
37537 fra.me.line = 6874;
37538 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___init_astartstringexpr;
37539 fra.me.has_broke = 0;
37540 fra.me.REG_size = 3;
37541 fra.me.nitni_local_ref_head = NULL;
37542 fra.me.REG[0] = NIT_NULL;
37543 fra.me.REG[1] = NIT_NULL;
37544 fra.me.REG[2] = NIT_NULL;
37545 fra.me.REG[0] = p0;
37546 fra.me.REG[1] = p1;
37547 /* ./parser//parser_prod.nit:6874 */
37548 fra.me.REG[2] = fra.me.REG[0];
37549 /* ./parser//parser_prod.nit:6878 */
37550 CALL_parser___parser_prod___AStartStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37551 /* ./parser//parser_prod.nit:6879 */
37552 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37553 if (UNTAG_Bool(REGB0)) {
37554 } else {
37555 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6879);
37556 }
37557 ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
37558 /* ./parser//parser_prod.nit:6880 */
37559 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37560 if (UNTAG_Bool(REGB0)) {
37561 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6880);
37562 }
37563 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37564 stack_frame_head = fra.me.prev;
37565 init_table[itpos240] = 1;
37566 return;
37567 }
37568 void parser___parser_prod___AStartStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
37569 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37570 val_t REGB0;
37571 val_t REGB1;
37572 val_t tmp;
37573 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37574 fra.me.file = LOCATE_parser___parser_prod;
37575 fra.me.line = 6883;
37576 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___replace_child;
37577 fra.me.has_broke = 0;
37578 fra.me.REG_size = 4;
37579 fra.me.nitni_local_ref_head = NULL;
37580 fra.me.REG[0] = NIT_NULL;
37581 fra.me.REG[1] = NIT_NULL;
37582 fra.me.REG[2] = NIT_NULL;
37583 fra.me.REG[3] = NIT_NULL;
37584 fra.me.REG[0] = p0;
37585 fra.me.REG[1] = p1;
37586 fra.me.REG[2] = p2;
37587 /* ./parser//parser_prod.nit:6885 */
37588 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37589 if (UNTAG_Bool(REGB0)) {
37590 } else {
37591 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6885);
37592 }
37593 fra.me.REG[3] = ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]);
37594 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37595 if (UNTAG_Bool(REGB0)) {
37596 } else {
37597 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37598 REGB0 = REGB1;
37599 }
37600 if (UNTAG_Bool(REGB0)) {
37601 /* ./parser//parser_prod.nit:6886 */
37602 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37603 if (UNTAG_Bool(REGB0)) {
37604 } else {
37605 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37606 if (UNTAG_Bool(REGB1)) {
37607 REGB1 = TAG_Bool(false);
37608 REGB0 = REGB1;
37609 } else {
37610 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37611 REGB0 = REGB1;
37612 }
37613 }
37614 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37615 if (UNTAG_Bool(REGB0)) {
37616 /* ./parser//parser_prod.nit:6887 */
37617 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37618 if (UNTAG_Bool(REGB0)) {
37619 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6887);
37620 }
37621 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37622 /* ./parser//parser_prod.nit:6888 */
37623 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*/;
37624 if (UNTAG_Bool(REGB0)) {
37625 } else {
37626 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6888);
37627 }
37628 /* ./parser//parser_prod.nit:6889 */
37629 ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
37630 } else {
37631 /* ./parser//parser_prod.nit:6891 */
37632 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6891);
37633 }
37634 /* ./parser//parser_prod.nit:6893 */
37635 goto label1;
37636 }
37637 label1: while(0);
37638 stack_frame_head = fra.me.prev;
37639 return;
37640 }
37641 void parser___parser_prod___AStartStringExpr___visit_all(val_t p0, val_t p1){
37642 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37643 val_t REGB0;
37644 val_t tmp;
37645 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37646 fra.me.file = LOCATE_parser___parser_prod;
37647 fra.me.line = 6897;
37648 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___visit_all;
37649 fra.me.has_broke = 0;
37650 fra.me.REG_size = 2;
37651 fra.me.nitni_local_ref_head = NULL;
37652 fra.me.REG[0] = NIT_NULL;
37653 fra.me.REG[1] = NIT_NULL;
37654 fra.me.REG[0] = p0;
37655 fra.me.REG[1] = p1;
37656 /* ./parser//parser_prod.nit:6899 */
37657 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37658 if (UNTAG_Bool(REGB0)) {
37659 } else {
37660 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6899);
37661 }
37662 fra.me.REG[0] = ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]);
37663 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37664 stack_frame_head = fra.me.prev;
37665 return;
37666 }
37667 void parser___parser_prod___AMidStringExpr___empty_init(val_t p0, int* init_table){
37668 int itpos241 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMidStringExpr].i;
37669 struct {struct stack_frame_t me;} fra;
37670 val_t tmp;
37671 if (init_table[itpos241]) return;
37672 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37673 fra.me.file = LOCATE_parser___parser_prod;
37674 fra.me.line = 6903;
37675 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___empty_init;
37676 fra.me.has_broke = 0;
37677 fra.me.REG_size = 1;
37678 fra.me.nitni_local_ref_head = NULL;
37679 fra.me.REG[0] = NIT_NULL;
37680 fra.me.REG[0] = p0;
37681 stack_frame_head = fra.me.prev;
37682 init_table[itpos241] = 1;
37683 return;
37684 }
37685 void parser___parser_prod___AMidStringExpr___init_amidstringexpr(val_t p0, val_t p1, int* init_table){
37686 int itpos242 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMidStringExpr].i;
37687 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37688 val_t REGB0;
37689 val_t tmp;
37690 if (init_table[itpos242]) return;
37691 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37692 fra.me.file = LOCATE_parser___parser_prod;
37693 fra.me.line = 6905;
37694 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___init_amidstringexpr;
37695 fra.me.has_broke = 0;
37696 fra.me.REG_size = 3;
37697 fra.me.nitni_local_ref_head = NULL;
37698 fra.me.REG[0] = NIT_NULL;
37699 fra.me.REG[1] = NIT_NULL;
37700 fra.me.REG[2] = NIT_NULL;
37701 fra.me.REG[0] = p0;
37702 fra.me.REG[1] = p1;
37703 /* ./parser//parser_prod.nit:6905 */
37704 fra.me.REG[2] = fra.me.REG[0];
37705 /* ./parser//parser_prod.nit:6909 */
37706 CALL_parser___parser_prod___AMidStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37707 /* ./parser//parser_prod.nit:6910 */
37708 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37709 if (UNTAG_Bool(REGB0)) {
37710 } else {
37711 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6910);
37712 }
37713 ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
37714 /* ./parser//parser_prod.nit:6911 */
37715 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37716 if (UNTAG_Bool(REGB0)) {
37717 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6911);
37718 }
37719 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37720 stack_frame_head = fra.me.prev;
37721 init_table[itpos242] = 1;
37722 return;
37723 }
37724 void parser___parser_prod___AMidStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
37725 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37726 val_t REGB0;
37727 val_t REGB1;
37728 val_t tmp;
37729 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37730 fra.me.file = LOCATE_parser___parser_prod;
37731 fra.me.line = 6914;
37732 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___replace_child;
37733 fra.me.has_broke = 0;
37734 fra.me.REG_size = 4;
37735 fra.me.nitni_local_ref_head = NULL;
37736 fra.me.REG[0] = NIT_NULL;
37737 fra.me.REG[1] = NIT_NULL;
37738 fra.me.REG[2] = NIT_NULL;
37739 fra.me.REG[3] = NIT_NULL;
37740 fra.me.REG[0] = p0;
37741 fra.me.REG[1] = p1;
37742 fra.me.REG[2] = p2;
37743 /* ./parser//parser_prod.nit:6916 */
37744 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37745 if (UNTAG_Bool(REGB0)) {
37746 } else {
37747 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6916);
37748 }
37749 fra.me.REG[3] = ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]);
37750 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37751 if (UNTAG_Bool(REGB0)) {
37752 } else {
37753 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37754 REGB0 = REGB1;
37755 }
37756 if (UNTAG_Bool(REGB0)) {
37757 /* ./parser//parser_prod.nit:6917 */
37758 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37759 if (UNTAG_Bool(REGB0)) {
37760 } else {
37761 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37762 if (UNTAG_Bool(REGB1)) {
37763 REGB1 = TAG_Bool(false);
37764 REGB0 = REGB1;
37765 } else {
37766 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37767 REGB0 = REGB1;
37768 }
37769 }
37770 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37771 if (UNTAG_Bool(REGB0)) {
37772 /* ./parser//parser_prod.nit:6918 */
37773 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37774 if (UNTAG_Bool(REGB0)) {
37775 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6918);
37776 }
37777 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37778 /* ./parser//parser_prod.nit:6919 */
37779 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*/;
37780 if (UNTAG_Bool(REGB0)) {
37781 } else {
37782 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6919);
37783 }
37784 /* ./parser//parser_prod.nit:6920 */
37785 ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
37786 } else {
37787 /* ./parser//parser_prod.nit:6922 */
37788 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6922);
37789 }
37790 /* ./parser//parser_prod.nit:6924 */
37791 goto label1;
37792 }
37793 label1: while(0);
37794 stack_frame_head = fra.me.prev;
37795 return;
37796 }
37797 void parser___parser_prod___AMidStringExpr___visit_all(val_t p0, val_t p1){
37798 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37799 val_t REGB0;
37800 val_t tmp;
37801 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37802 fra.me.file = LOCATE_parser___parser_prod;
37803 fra.me.line = 6928;
37804 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___visit_all;
37805 fra.me.has_broke = 0;
37806 fra.me.REG_size = 2;
37807 fra.me.nitni_local_ref_head = NULL;
37808 fra.me.REG[0] = NIT_NULL;
37809 fra.me.REG[1] = NIT_NULL;
37810 fra.me.REG[0] = p0;
37811 fra.me.REG[1] = p1;
37812 /* ./parser//parser_prod.nit:6930 */
37813 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37814 if (UNTAG_Bool(REGB0)) {
37815 } else {
37816 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6930);
37817 }
37818 fra.me.REG[0] = ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]);
37819 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37820 stack_frame_head = fra.me.prev;
37821 return;
37822 }
37823 void parser___parser_prod___AEndStringExpr___empty_init(val_t p0, int* init_table){
37824 int itpos243 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEndStringExpr].i;
37825 struct {struct stack_frame_t me;} fra;
37826 val_t tmp;
37827 if (init_table[itpos243]) return;
37828 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37829 fra.me.file = LOCATE_parser___parser_prod;
37830 fra.me.line = 6934;
37831 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___empty_init;
37832 fra.me.has_broke = 0;
37833 fra.me.REG_size = 1;
37834 fra.me.nitni_local_ref_head = NULL;
37835 fra.me.REG[0] = NIT_NULL;
37836 fra.me.REG[0] = p0;
37837 stack_frame_head = fra.me.prev;
37838 init_table[itpos243] = 1;
37839 return;
37840 }
37841 void parser___parser_prod___AEndStringExpr___init_aendstringexpr(val_t p0, val_t p1, int* init_table){
37842 int itpos244 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEndStringExpr].i;
37843 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37844 val_t REGB0;
37845 val_t tmp;
37846 if (init_table[itpos244]) return;
37847 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37848 fra.me.file = LOCATE_parser___parser_prod;
37849 fra.me.line = 6936;
37850 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___init_aendstringexpr;
37851 fra.me.has_broke = 0;
37852 fra.me.REG_size = 3;
37853 fra.me.nitni_local_ref_head = NULL;
37854 fra.me.REG[0] = NIT_NULL;
37855 fra.me.REG[1] = NIT_NULL;
37856 fra.me.REG[2] = NIT_NULL;
37857 fra.me.REG[0] = p0;
37858 fra.me.REG[1] = p1;
37859 /* ./parser//parser_prod.nit:6936 */
37860 fra.me.REG[2] = fra.me.REG[0];
37861 /* ./parser//parser_prod.nit:6940 */
37862 CALL_parser___parser_prod___AEndStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37863 /* ./parser//parser_prod.nit:6941 */
37864 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37865 if (UNTAG_Bool(REGB0)) {
37866 } else {
37867 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6941);
37868 }
37869 ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
37870 /* ./parser//parser_prod.nit:6942 */
37871 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37872 if (UNTAG_Bool(REGB0)) {
37873 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6942);
37874 }
37875 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37876 stack_frame_head = fra.me.prev;
37877 init_table[itpos244] = 1;
37878 return;
37879 }
37880 void parser___parser_prod___AEndStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
37881 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37882 val_t REGB0;
37883 val_t REGB1;
37884 val_t tmp;
37885 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37886 fra.me.file = LOCATE_parser___parser_prod;
37887 fra.me.line = 6945;
37888 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___replace_child;
37889 fra.me.has_broke = 0;
37890 fra.me.REG_size = 4;
37891 fra.me.nitni_local_ref_head = NULL;
37892 fra.me.REG[0] = NIT_NULL;
37893 fra.me.REG[1] = NIT_NULL;
37894 fra.me.REG[2] = NIT_NULL;
37895 fra.me.REG[3] = NIT_NULL;
37896 fra.me.REG[0] = p0;
37897 fra.me.REG[1] = p1;
37898 fra.me.REG[2] = p2;
37899 /* ./parser//parser_prod.nit:6947 */
37900 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37901 if (UNTAG_Bool(REGB0)) {
37902 } else {
37903 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6947);
37904 }
37905 fra.me.REG[3] = ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]);
37906 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37907 if (UNTAG_Bool(REGB0)) {
37908 } else {
37909 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37910 REGB0 = REGB1;
37911 }
37912 if (UNTAG_Bool(REGB0)) {
37913 /* ./parser//parser_prod.nit:6948 */
37914 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37915 if (UNTAG_Bool(REGB0)) {
37916 } else {
37917 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37918 if (UNTAG_Bool(REGB1)) {
37919 REGB1 = TAG_Bool(false);
37920 REGB0 = REGB1;
37921 } else {
37922 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37923 REGB0 = REGB1;
37924 }
37925 }
37926 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37927 if (UNTAG_Bool(REGB0)) {
37928 /* ./parser//parser_prod.nit:6949 */
37929 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37930 if (UNTAG_Bool(REGB0)) {
37931 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6949);
37932 }
37933 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37934 /* ./parser//parser_prod.nit:6950 */
37935 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*/;
37936 if (UNTAG_Bool(REGB0)) {
37937 } else {
37938 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6950);
37939 }
37940 /* ./parser//parser_prod.nit:6951 */
37941 ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
37942 } else {
37943 /* ./parser//parser_prod.nit:6953 */
37944 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6953);
37945 }
37946 /* ./parser//parser_prod.nit:6955 */
37947 goto label1;
37948 }
37949 label1: while(0);
37950 stack_frame_head = fra.me.prev;
37951 return;
37952 }
37953 void parser___parser_prod___AEndStringExpr___visit_all(val_t p0, val_t p1){
37954 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37955 val_t REGB0;
37956 val_t tmp;
37957 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37958 fra.me.file = LOCATE_parser___parser_prod;
37959 fra.me.line = 6959;
37960 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___visit_all;
37961 fra.me.has_broke = 0;
37962 fra.me.REG_size = 2;
37963 fra.me.nitni_local_ref_head = NULL;
37964 fra.me.REG[0] = NIT_NULL;
37965 fra.me.REG[1] = NIT_NULL;
37966 fra.me.REG[0] = p0;
37967 fra.me.REG[1] = p1;
37968 /* ./parser//parser_prod.nit:6961 */
37969 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37970 if (UNTAG_Bool(REGB0)) {
37971 } else {
37972 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6961);
37973 }
37974 fra.me.REG[0] = ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]);
37975 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37976 stack_frame_head = fra.me.prev;
37977 return;
37978 }
37979 void parser___parser_prod___ASuperstringExpr___empty_init(val_t p0, int* init_table){
37980 int itpos245 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperstringExpr].i;
37981 struct {struct stack_frame_t me;} fra;
37982 val_t tmp;
37983 if (init_table[itpos245]) return;
37984 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37985 fra.me.file = LOCATE_parser___parser_prod;
37986 fra.me.line = 6965;
37987 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___empty_init;
37988 fra.me.has_broke = 0;
37989 fra.me.REG_size = 1;
37990 fra.me.nitni_local_ref_head = NULL;
37991 fra.me.REG[0] = NIT_NULL;
37992 fra.me.REG[0] = p0;
37993 stack_frame_head = fra.me.prev;
37994 init_table[itpos245] = 1;
37995 return;
37996 }
37997 void parser___parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0, val_t p1, int* init_table){
37998 int itpos246 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperstringExpr].i;
37999 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38000 val_t tmp;
38001 if (init_table[itpos246]) return;
38002 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38003 fra.me.file = LOCATE_parser___parser_prod;
38004 fra.me.line = 6967;
38005 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr;
38006 fra.me.has_broke = 0;
38007 fra.me.REG_size = 2;
38008 fra.me.nitni_local_ref_head = NULL;
38009 fra.me.REG[0] = NIT_NULL;
38010 fra.me.REG[1] = NIT_NULL;
38011 fra.me.REG[0] = p0;
38012 fra.me.REG[1] = p1;
38013 /* ./parser//parser_prod.nit:6971 */
38014 CALL_parser___parser_prod___ASuperstringExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
38015 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));
38016 stack_frame_head = fra.me.prev;
38017 init_table[itpos246] = 1;
38018 return;
38019 }
38020 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){
38021 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38022 val_t REGB0;
38023 fun_t CREG[1];
38024 val_t tmp;
38025 /* ./parser//parser_prod.nit:6972 */
38026 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38027 fra.me.file = LOCATE_parser___parser_prod;
38028 fra.me.line = 0;
38029 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr;
38030 fra.me.has_broke = 0;
38031 fra.me.REG_size = 2;
38032 fra.me.nitni_local_ref_head = NULL;
38033 fra.me.REG[0] = NIT_NULL;
38034 fra.me.REG[1] = NIT_NULL;
38035 fra.me.closure_ctx = closctx_param;
38036 fra.me.closure_funs = CREG;
38037 fra.me.REG[0] = p0;
38038 CREG[0] = clos_fun0;
38039 /* ./parser//parser_prod.nit:6973 */
38040 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
38041 if (UNTAG_Bool(REGB0)) {
38042 } else {
38043 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6973);
38044 }
38045 /* ./parser//parser_prod.nit:6974 */
38046 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(closctx->REG[0])!=NIT_NULL);
38047 if (UNTAG_Bool(REGB0)) {
38048 } else {
38049 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6974);
38050 }
38051 fra.me.REG[1] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(closctx->REG[0]);
38052 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38053 /* ./parser//parser_prod.nit:6975 */
38054 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
38055 stack_frame_head = fra.me.prev;
38056 return;
38057 }
38058 void parser___parser_prod___ASuperstringExpr___replace_child(val_t p0, val_t p1, val_t p2){
38059 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38060 val_t REGB0;
38061 val_t REGB1;
38062 val_t REGB2;
38063 val_t REGB3;
38064 val_t REGB4;
38065 val_t tmp;
38066 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38067 fra.me.file = LOCATE_parser___parser_prod;
38068 fra.me.line = 6979;
38069 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___replace_child;
38070 fra.me.has_broke = 0;
38071 fra.me.REG_size = 4;
38072 fra.me.nitni_local_ref_head = NULL;
38073 fra.me.REG[0] = NIT_NULL;
38074 fra.me.REG[1] = NIT_NULL;
38075 fra.me.REG[2] = NIT_NULL;
38076 fra.me.REG[3] = NIT_NULL;
38077 fra.me.REG[0] = p0;
38078 fra.me.REG[1] = p1;
38079 fra.me.REG[2] = p2;
38080 /* ./parser//parser_prod.nit:6981 */
38081 REGB0 = TAG_Int(0);
38082 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
38083 if (UNTAG_Bool(REGB1)) {
38084 } else {
38085 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6981);
38086 }
38087 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
38088 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
38089 /* ./../lib/standard//kernel.nit:352 */
38090 while(1) {
38091 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
38092 if (UNTAG_Bool(REGB2)) {
38093 } else {
38094 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
38095 }
38096 /* ./../lib/standard//kernel.nit:232 */
38097 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
38098 /* ./../lib/standard//kernel.nit:352 */
38099 if (UNTAG_Bool(REGB2)) {
38100 /* ./parser//parser_prod.nit:6981 */
38101 REGB2 = REGB0;
38102 /* ./parser//parser_prod.nit:6982 */
38103 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
38104 if (UNTAG_Bool(REGB3)) {
38105 } else {
38106 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6982);
38107 }
38108 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
38109 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
38110 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
38111 if (UNTAG_Bool(REGB3)) {
38112 } else {
38113 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38114 if (UNTAG_Bool(REGB4)) {
38115 REGB4 = TAG_Bool(false);
38116 REGB3 = REGB4;
38117 } else {
38118 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38119 REGB3 = REGB4;
38120 }
38121 }
38122 if (UNTAG_Bool(REGB3)) {
38123 /* ./parser//parser_prod.nit:6983 */
38124 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38125 if (UNTAG_Bool(REGB3)) {
38126 } else {
38127 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38128 if (UNTAG_Bool(REGB4)) {
38129 REGB4 = TAG_Bool(false);
38130 REGB3 = REGB4;
38131 } else {
38132 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38133 REGB3 = REGB4;
38134 }
38135 }
38136 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
38137 if (UNTAG_Bool(REGB3)) {
38138 /* ./parser//parser_prod.nit:6984 */
38139 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*/;
38140 if (UNTAG_Bool(REGB3)) {
38141 } else {
38142 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6984);
38143 }
38144 /* ./parser//parser_prod.nit:6985 */
38145 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
38146 if (UNTAG_Bool(REGB3)) {
38147 } else {
38148 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6985);
38149 }
38150 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
38151 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
38152 /* ./parser//parser_prod.nit:6986 */
38153 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38154 if (UNTAG_Bool(REGB3)) {
38155 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6986);
38156 }
38157 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38158 } else {
38159 /* ./parser//parser_prod.nit:6988 */
38160 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
38161 if (UNTAG_Bool(REGB3)) {
38162 } else {
38163 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6988);
38164 }
38165 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
38166 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
38167 }
38168 /* ./parser//parser_prod.nit:6990 */
38169 goto label1;
38170 }
38171 /* ./../lib/standard//kernel.nit:354 */
38172 REGB2 = TAG_Int(1);
38173 /* ./../lib/standard//kernel.nit:235 */
38174 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
38175 /* ./../lib/standard//kernel.nit:354 */
38176 REGB0 = REGB2;
38177 } else {
38178 /* ./../lib/standard//kernel.nit:352 */
38179 goto label2;
38180 }
38181 }
38182 label2: while(0);
38183 label1: while(0);
38184 stack_frame_head = fra.me.prev;
38185 return;
38186 }
38187 void parser___parser_prod___ASuperstringExpr___visit_all(val_t p0, val_t p1){
38188 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38189 val_t REGB0;
38190 val_t tmp;
38191 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38192 fra.me.file = LOCATE_parser___parser_prod;
38193 fra.me.line = 6995;
38194 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___visit_all;
38195 fra.me.has_broke = 0;
38196 fra.me.REG_size = 2;
38197 fra.me.nitni_local_ref_head = NULL;
38198 fra.me.REG[0] = NIT_NULL;
38199 fra.me.REG[1] = NIT_NULL;
38200 fra.me.REG[0] = p0;
38201 fra.me.REG[1] = p1;
38202 /* ./parser//parser_prod.nit:6997 */
38203 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
38204 if (UNTAG_Bool(REGB0)) {
38205 } else {
38206 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6997);
38207 }
38208 fra.me.REG[0] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
38209 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));
38210 stack_frame_head = fra.me.prev;
38211 return;
38212 }
38213 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){
38214 struct {struct stack_frame_t me;} fra;
38215 fun_t CREG[1];
38216 val_t tmp;
38217 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38218 fra.me.file = LOCATE_parser___parser_prod;
38219 fra.me.line = 0;
38220 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___visit_all;
38221 fra.me.has_broke = 0;
38222 fra.me.REG_size = 1;
38223 fra.me.nitni_local_ref_head = NULL;
38224 fra.me.REG[0] = NIT_NULL;
38225 fra.me.closure_ctx = closctx_param;
38226 fra.me.closure_funs = CREG;
38227 fra.me.REG[0] = p0;
38228 CREG[0] = clos_fun0;
38229 /* ./parser//parser_prod.nit:6998 */
38230 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
38231 stack_frame_head = fra.me.prev;
38232 return;
38233 }
38234 void parser___parser_prod___AParExpr___empty_init(val_t p0, int* init_table){
38235 int itpos247 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExpr].i;
38236 struct {struct stack_frame_t me;} fra;
38237 val_t tmp;
38238 if (init_table[itpos247]) return;
38239 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38240 fra.me.file = LOCATE_parser___parser_prod;
38241 fra.me.line = 7003;
38242 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___empty_init;
38243 fra.me.has_broke = 0;
38244 fra.me.REG_size = 1;
38245 fra.me.nitni_local_ref_head = NULL;
38246 fra.me.REG[0] = NIT_NULL;
38247 fra.me.REG[0] = p0;
38248 stack_frame_head = fra.me.prev;
38249 init_table[itpos247] = 1;
38250 return;
38251 }
38252 void parser___parser_prod___AParExpr___init_aparexpr(val_t p0, val_t p1, int* init_table){
38253 int itpos248 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExpr].i;
38254 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38255 val_t REGB0;
38256 val_t tmp;
38257 if (init_table[itpos248]) return;
38258 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38259 fra.me.file = LOCATE_parser___parser_prod;
38260 fra.me.line = 7005;
38261 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___init_aparexpr;
38262 fra.me.has_broke = 0;
38263 fra.me.REG_size = 3;
38264 fra.me.nitni_local_ref_head = NULL;
38265 fra.me.REG[0] = NIT_NULL;
38266 fra.me.REG[1] = NIT_NULL;
38267 fra.me.REG[2] = NIT_NULL;
38268 fra.me.REG[0] = p0;
38269 fra.me.REG[1] = p1;
38270 /* ./parser//parser_prod.nit:7005 */
38271 fra.me.REG[2] = fra.me.REG[0];
38272 /* ./parser//parser_prod.nit:7009 */
38273 CALL_parser___parser_prod___AParExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
38274 /* ./parser//parser_prod.nit:7010 */
38275 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38276 if (UNTAG_Bool(REGB0)) {
38277 } else {
38278 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7010);
38279 }
38280 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[2]) = fra.me.REG[1];
38281 /* ./parser//parser_prod.nit:7011 */
38282 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38283 if (UNTAG_Bool(REGB0)) {
38284 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7011);
38285 }
38286 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38287 stack_frame_head = fra.me.prev;
38288 init_table[itpos248] = 1;
38289 return;
38290 }
38291 void parser___parser_prod___AParExpr___replace_child(val_t p0, val_t p1, val_t p2){
38292 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38293 val_t REGB0;
38294 val_t REGB1;
38295 val_t tmp;
38296 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38297 fra.me.file = LOCATE_parser___parser_prod;
38298 fra.me.line = 7014;
38299 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___replace_child;
38300 fra.me.has_broke = 0;
38301 fra.me.REG_size = 4;
38302 fra.me.nitni_local_ref_head = NULL;
38303 fra.me.REG[0] = NIT_NULL;
38304 fra.me.REG[1] = NIT_NULL;
38305 fra.me.REG[2] = NIT_NULL;
38306 fra.me.REG[3] = NIT_NULL;
38307 fra.me.REG[0] = p0;
38308 fra.me.REG[1] = p1;
38309 fra.me.REG[2] = p2;
38310 /* ./parser//parser_prod.nit:7016 */
38311 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
38312 if (UNTAG_Bool(REGB0)) {
38313 } else {
38314 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7016);
38315 }
38316 fra.me.REG[3] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
38317 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38318 if (UNTAG_Bool(REGB0)) {
38319 } else {
38320 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38321 REGB0 = REGB1;
38322 }
38323 if (UNTAG_Bool(REGB0)) {
38324 /* ./parser//parser_prod.nit:7017 */
38325 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38326 if (UNTAG_Bool(REGB0)) {
38327 } else {
38328 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38329 if (UNTAG_Bool(REGB1)) {
38330 REGB1 = TAG_Bool(false);
38331 REGB0 = REGB1;
38332 } else {
38333 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38334 REGB0 = REGB1;
38335 }
38336 }
38337 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38338 if (UNTAG_Bool(REGB0)) {
38339 /* ./parser//parser_prod.nit:7018 */
38340 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38341 if (UNTAG_Bool(REGB0)) {
38342 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7018);
38343 }
38344 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38345 /* ./parser//parser_prod.nit:7019 */
38346 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*/;
38347 if (UNTAG_Bool(REGB0)) {
38348 } else {
38349 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7019);
38350 }
38351 /* ./parser//parser_prod.nit:7020 */
38352 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
38353 } else {
38354 /* ./parser//parser_prod.nit:7022 */
38355 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7022);
38356 }
38357 /* ./parser//parser_prod.nit:7024 */
38358 goto label1;
38359 }
38360 label1: while(0);
38361 stack_frame_head = fra.me.prev;
38362 return;
38363 }
38364 void parser___parser_prod___AParExpr___visit_all(val_t p0, val_t p1){
38365 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38366 val_t REGB0;
38367 val_t tmp;
38368 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38369 fra.me.file = LOCATE_parser___parser_prod;
38370 fra.me.line = 7028;
38371 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___visit_all;
38372 fra.me.has_broke = 0;
38373 fra.me.REG_size = 2;
38374 fra.me.nitni_local_ref_head = NULL;
38375 fra.me.REG[0] = NIT_NULL;
38376 fra.me.REG[1] = NIT_NULL;
38377 fra.me.REG[0] = p0;
38378 fra.me.REG[1] = p1;
38379 /* ./parser//parser_prod.nit:7030 */
38380 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
38381 if (UNTAG_Bool(REGB0)) {
38382 } else {
38383 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7030);
38384 }
38385 fra.me.REG[0] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
38386 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38387 stack_frame_head = fra.me.prev;
38388 return;
38389 }
38390 void parser___parser_prod___AAsCastExpr___empty_init(val_t p0, int* init_table){
38391 int itpos249 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsCastExpr].i;
38392 struct {struct stack_frame_t me;} fra;
38393 val_t tmp;
38394 if (init_table[itpos249]) return;
38395 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38396 fra.me.file = LOCATE_parser___parser_prod;
38397 fra.me.line = 7034;
38398 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___empty_init;
38399 fra.me.has_broke = 0;
38400 fra.me.REG_size = 1;
38401 fra.me.nitni_local_ref_head = NULL;
38402 fra.me.REG[0] = NIT_NULL;
38403 fra.me.REG[0] = p0;
38404 stack_frame_head = fra.me.prev;
38405 init_table[itpos249] = 1;
38406 return;
38407 }
38408 void parser___parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
38409 int itpos250 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsCastExpr].i;
38410 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
38411 val_t REGB0;
38412 val_t tmp;
38413 if (init_table[itpos250]) return;
38414 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38415 fra.me.file = LOCATE_parser___parser_prod;
38416 fra.me.line = 7036;
38417 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___init_aascastexpr;
38418 fra.me.has_broke = 0;
38419 fra.me.REG_size = 5;
38420 fra.me.nitni_local_ref_head = NULL;
38421 fra.me.REG[0] = NIT_NULL;
38422 fra.me.REG[1] = NIT_NULL;
38423 fra.me.REG[2] = NIT_NULL;
38424 fra.me.REG[3] = NIT_NULL;
38425 fra.me.REG[4] = NIT_NULL;
38426 fra.me.REG[0] = p0;
38427 fra.me.REG[1] = p1;
38428 fra.me.REG[2] = p2;
38429 fra.me.REG[3] = p3;
38430 /* ./parser//parser_prod.nit:7036 */
38431 fra.me.REG[4] = fra.me.REG[0];
38432 /* ./parser//parser_prod.nit:7042 */
38433 CALL_parser___parser_prod___AAsCastExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
38434 /* ./parser//parser_prod.nit:7043 */
38435 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38436 if (UNTAG_Bool(REGB0)) {
38437 } else {
38438 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7043);
38439 }
38440 ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[4]) = fra.me.REG[1];
38441 /* ./parser//parser_prod.nit:7044 */
38442 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38443 if (UNTAG_Bool(REGB0)) {
38444 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7044);
38445 }
38446 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
38447 /* ./parser//parser_prod.nit:7045 */
38448 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
38449 if (UNTAG_Bool(REGB0)) {
38450 } else {
38451 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7045);
38452 }
38453 ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[4]) = fra.me.REG[2];
38454 /* ./parser//parser_prod.nit:7046 */
38455 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38456 if (UNTAG_Bool(REGB0)) {
38457 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7046);
38458 }
38459 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
38460 /* ./parser//parser_prod.nit:7047 */
38461 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
38462 if (UNTAG_Bool(REGB0)) {
38463 } else {
38464 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7047);
38465 }
38466 ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[4]) = fra.me.REG[3];
38467 /* ./parser//parser_prod.nit:7048 */
38468 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38469 if (UNTAG_Bool(REGB0)) {
38470 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7048);
38471 }
38472 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
38473 stack_frame_head = fra.me.prev;
38474 init_table[itpos250] = 1;
38475 return;
38476 }
38477 void parser___parser_prod___AAsCastExpr___replace_child(val_t p0, val_t p1, val_t p2){
38478 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38479 val_t REGB0;
38480 val_t REGB1;
38481 val_t tmp;
38482 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38483 fra.me.file = LOCATE_parser___parser_prod;
38484 fra.me.line = 7051;
38485 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___replace_child;
38486 fra.me.has_broke = 0;
38487 fra.me.REG_size = 4;
38488 fra.me.nitni_local_ref_head = NULL;
38489 fra.me.REG[0] = NIT_NULL;
38490 fra.me.REG[1] = NIT_NULL;
38491 fra.me.REG[2] = NIT_NULL;
38492 fra.me.REG[3] = NIT_NULL;
38493 fra.me.REG[0] = p0;
38494 fra.me.REG[1] = p1;
38495 fra.me.REG[2] = p2;
38496 /* ./parser//parser_prod.nit:7053 */
38497 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
38498 if (UNTAG_Bool(REGB0)) {
38499 } else {
38500 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7053);
38501 }
38502 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]);
38503 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38504 if (UNTAG_Bool(REGB0)) {
38505 } else {
38506 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38507 REGB0 = REGB1;
38508 }
38509 if (UNTAG_Bool(REGB0)) {
38510 /* ./parser//parser_prod.nit:7054 */
38511 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38512 if (UNTAG_Bool(REGB0)) {
38513 } else {
38514 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38515 if (UNTAG_Bool(REGB1)) {
38516 REGB1 = TAG_Bool(false);
38517 REGB0 = REGB1;
38518 } else {
38519 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38520 REGB0 = REGB1;
38521 }
38522 }
38523 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38524 if (UNTAG_Bool(REGB0)) {
38525 /* ./parser//parser_prod.nit:7055 */
38526 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38527 if (UNTAG_Bool(REGB0)) {
38528 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7055);
38529 }
38530 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38531 /* ./parser//parser_prod.nit:7056 */
38532 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*/;
38533 if (UNTAG_Bool(REGB0)) {
38534 } else {
38535 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7056);
38536 }
38537 /* ./parser//parser_prod.nit:7057 */
38538 ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
38539 } else {
38540 /* ./parser//parser_prod.nit:7059 */
38541 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7059);
38542 }
38543 /* ./parser//parser_prod.nit:7061 */
38544 goto label1;
38545 }
38546 /* ./parser//parser_prod.nit:7063 */
38547 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
38548 if (UNTAG_Bool(REGB0)) {
38549 } else {
38550 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7063);
38551 }
38552 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]);
38553 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38554 if (UNTAG_Bool(REGB0)) {
38555 } else {
38556 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38557 REGB0 = REGB1;
38558 }
38559 if (UNTAG_Bool(REGB0)) {
38560 /* ./parser//parser_prod.nit:7064 */
38561 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38562 if (UNTAG_Bool(REGB0)) {
38563 } else {
38564 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38565 if (UNTAG_Bool(REGB1)) {
38566 REGB1 = TAG_Bool(false);
38567 REGB0 = REGB1;
38568 } else {
38569 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38570 REGB0 = REGB1;
38571 }
38572 }
38573 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38574 if (UNTAG_Bool(REGB0)) {
38575 /* ./parser//parser_prod.nit:7065 */
38576 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38577 if (UNTAG_Bool(REGB0)) {
38578 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7065);
38579 }
38580 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38581 /* ./parser//parser_prod.nit:7066 */
38582 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*/;
38583 if (UNTAG_Bool(REGB0)) {
38584 } else {
38585 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7066);
38586 }
38587 /* ./parser//parser_prod.nit:7067 */
38588 ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
38589 } else {
38590 /* ./parser//parser_prod.nit:7069 */
38591 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7069);
38592 }
38593 /* ./parser//parser_prod.nit:7071 */
38594 goto label1;
38595 }
38596 /* ./parser//parser_prod.nit:7073 */
38597 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
38598 if (UNTAG_Bool(REGB0)) {
38599 } else {
38600 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7073);
38601 }
38602 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]);
38603 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38604 if (UNTAG_Bool(REGB0)) {
38605 } else {
38606 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38607 REGB0 = REGB1;
38608 }
38609 if (UNTAG_Bool(REGB0)) {
38610 /* ./parser//parser_prod.nit:7074 */
38611 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38612 if (UNTAG_Bool(REGB0)) {
38613 } else {
38614 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38615 if (UNTAG_Bool(REGB1)) {
38616 REGB1 = TAG_Bool(false);
38617 REGB0 = REGB1;
38618 } else {
38619 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38620 REGB0 = REGB1;
38621 }
38622 }
38623 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38624 if (UNTAG_Bool(REGB0)) {
38625 /* ./parser//parser_prod.nit:7075 */
38626 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38627 if (UNTAG_Bool(REGB0)) {
38628 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7075);
38629 }
38630 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38631 /* ./parser//parser_prod.nit:7076 */
38632 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*/;
38633 if (UNTAG_Bool(REGB0)) {
38634 } else {
38635 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7076);
38636 }
38637 /* ./parser//parser_prod.nit:7077 */
38638 ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
38639 } else {
38640 /* ./parser//parser_prod.nit:7079 */
38641 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7079);
38642 }
38643 /* ./parser//parser_prod.nit:7081 */
38644 goto label1;
38645 }
38646 label1: while(0);
38647 stack_frame_head = fra.me.prev;
38648 return;
38649 }
38650 void parser___parser_prod___AAsCastExpr___visit_all(val_t p0, val_t p1){
38651 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38652 val_t REGB0;
38653 val_t tmp;
38654 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38655 fra.me.file = LOCATE_parser___parser_prod;
38656 fra.me.line = 7085;
38657 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___visit_all;
38658 fra.me.has_broke = 0;
38659 fra.me.REG_size = 3;
38660 fra.me.nitni_local_ref_head = NULL;
38661 fra.me.REG[0] = NIT_NULL;
38662 fra.me.REG[1] = NIT_NULL;
38663 fra.me.REG[2] = NIT_NULL;
38664 fra.me.REG[0] = p0;
38665 fra.me.REG[1] = p1;
38666 /* ./parser//parser_prod.nit:7087 */
38667 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
38668 if (UNTAG_Bool(REGB0)) {
38669 } else {
38670 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7087);
38671 }
38672 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]);
38673 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38674 /* ./parser//parser_prod.nit:7088 */
38675 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
38676 if (UNTAG_Bool(REGB0)) {
38677 } else {
38678 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7088);
38679 }
38680 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]);
38681 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38682 /* ./parser//parser_prod.nit:7089 */
38683 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
38684 if (UNTAG_Bool(REGB0)) {
38685 } else {
38686 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7089);
38687 }
38688 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]);
38689 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38690 stack_frame_head = fra.me.prev;
38691 return;
38692 }
38693 void parser___parser_prod___AAsNotnullExpr___empty_init(val_t p0, int* init_table){
38694 int itpos251 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotnullExpr].i;
38695 struct {struct stack_frame_t me;} fra;
38696 val_t tmp;
38697 if (init_table[itpos251]) return;
38698 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38699 fra.me.file = LOCATE_parser___parser_prod;
38700 fra.me.line = 7093;
38701 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___empty_init;
38702 fra.me.has_broke = 0;
38703 fra.me.REG_size = 1;
38704 fra.me.nitni_local_ref_head = NULL;
38705 fra.me.REG[0] = NIT_NULL;
38706 fra.me.REG[0] = p0;
38707 stack_frame_head = fra.me.prev;
38708 init_table[itpos251] = 1;
38709 return;
38710 }
38711 void parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
38712 int itpos252 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotnullExpr].i;
38713 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
38714 val_t REGB0;
38715 val_t tmp;
38716 if (init_table[itpos252]) return;
38717 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38718 fra.me.file = LOCATE_parser___parser_prod;
38719 fra.me.line = 7095;
38720 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr;
38721 fra.me.has_broke = 0;
38722 fra.me.REG_size = 6;
38723 fra.me.nitni_local_ref_head = NULL;
38724 fra.me.REG[0] = NIT_NULL;
38725 fra.me.REG[1] = NIT_NULL;
38726 fra.me.REG[2] = NIT_NULL;
38727 fra.me.REG[3] = NIT_NULL;
38728 fra.me.REG[4] = NIT_NULL;
38729 fra.me.REG[5] = NIT_NULL;
38730 fra.me.REG[0] = p0;
38731 fra.me.REG[1] = p1;
38732 fra.me.REG[2] = p2;
38733 fra.me.REG[3] = p3;
38734 fra.me.REG[4] = p4;
38735 /* ./parser//parser_prod.nit:7095 */
38736 fra.me.REG[5] = fra.me.REG[0];
38737 /* ./parser//parser_prod.nit:7102 */
38738 CALL_parser___parser_prod___AAsNotnullExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
38739 /* ./parser//parser_prod.nit:7103 */
38740 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38741 if (UNTAG_Bool(REGB0)) {
38742 } else {
38743 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7103);
38744 }
38745 ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
38746 /* ./parser//parser_prod.nit:7104 */
38747 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38748 if (UNTAG_Bool(REGB0)) {
38749 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7104);
38750 }
38751 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
38752 /* ./parser//parser_prod.nit:7105 */
38753 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
38754 if (UNTAG_Bool(REGB0)) {
38755 } else {
38756 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7105);
38757 }
38758 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[5]) = fra.me.REG[2];
38759 /* ./parser//parser_prod.nit:7106 */
38760 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38761 if (UNTAG_Bool(REGB0)) {
38762 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7106);
38763 }
38764 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
38765 /* ./parser//parser_prod.nit:7107 */
38766 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
38767 if (UNTAG_Bool(REGB0)) {
38768 } else {
38769 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7107);
38770 }
38771 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[5]) = fra.me.REG[3];
38772 /* ./parser//parser_prod.nit:7108 */
38773 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38774 if (UNTAG_Bool(REGB0)) {
38775 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7108);
38776 }
38777 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
38778 /* ./parser//parser_prod.nit:7109 */
38779 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
38780 if (UNTAG_Bool(REGB0)) {
38781 } else {
38782 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7109);
38783 }
38784 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[5]) = fra.me.REG[4];
38785 /* ./parser//parser_prod.nit:7110 */
38786 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
38787 if (UNTAG_Bool(REGB0)) {
38788 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7110);
38789 }
38790 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
38791 stack_frame_head = fra.me.prev;
38792 init_table[itpos252] = 1;
38793 return;
38794 }
38795 void parser___parser_prod___AAsNotnullExpr___replace_child(val_t p0, val_t p1, val_t p2){
38796 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38797 val_t REGB0;
38798 val_t REGB1;
38799 val_t tmp;
38800 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38801 fra.me.file = LOCATE_parser___parser_prod;
38802 fra.me.line = 7113;
38803 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___replace_child;
38804 fra.me.has_broke = 0;
38805 fra.me.REG_size = 4;
38806 fra.me.nitni_local_ref_head = NULL;
38807 fra.me.REG[0] = NIT_NULL;
38808 fra.me.REG[1] = NIT_NULL;
38809 fra.me.REG[2] = NIT_NULL;
38810 fra.me.REG[3] = NIT_NULL;
38811 fra.me.REG[0] = p0;
38812 fra.me.REG[1] = p1;
38813 fra.me.REG[2] = p2;
38814 /* ./parser//parser_prod.nit:7115 */
38815 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
38816 if (UNTAG_Bool(REGB0)) {
38817 } else {
38818 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7115);
38819 }
38820 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]);
38821 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38822 if (UNTAG_Bool(REGB0)) {
38823 } else {
38824 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38825 REGB0 = REGB1;
38826 }
38827 if (UNTAG_Bool(REGB0)) {
38828 /* ./parser//parser_prod.nit:7116 */
38829 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38830 if (UNTAG_Bool(REGB0)) {
38831 } else {
38832 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38833 if (UNTAG_Bool(REGB1)) {
38834 REGB1 = TAG_Bool(false);
38835 REGB0 = REGB1;
38836 } else {
38837 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38838 REGB0 = REGB1;
38839 }
38840 }
38841 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38842 if (UNTAG_Bool(REGB0)) {
38843 /* ./parser//parser_prod.nit:7117 */
38844 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38845 if (UNTAG_Bool(REGB0)) {
38846 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7117);
38847 }
38848 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38849 /* ./parser//parser_prod.nit:7118 */
38850 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*/;
38851 if (UNTAG_Bool(REGB0)) {
38852 } else {
38853 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7118);
38854 }
38855 /* ./parser//parser_prod.nit:7119 */
38856 ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
38857 } else {
38858 /* ./parser//parser_prod.nit:7121 */
38859 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7121);
38860 }
38861 /* ./parser//parser_prod.nit:7123 */
38862 goto label1;
38863 }
38864 /* ./parser//parser_prod.nit:7125 */
38865 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
38866 if (UNTAG_Bool(REGB0)) {
38867 } else {
38868 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7125);
38869 }
38870 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]);
38871 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38872 if (UNTAG_Bool(REGB0)) {
38873 } else {
38874 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38875 REGB0 = REGB1;
38876 }
38877 if (UNTAG_Bool(REGB0)) {
38878 /* ./parser//parser_prod.nit:7126 */
38879 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38880 if (UNTAG_Bool(REGB0)) {
38881 } else {
38882 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38883 if (UNTAG_Bool(REGB1)) {
38884 REGB1 = TAG_Bool(false);
38885 REGB0 = REGB1;
38886 } else {
38887 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38888 REGB0 = REGB1;
38889 }
38890 }
38891 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38892 if (UNTAG_Bool(REGB0)) {
38893 /* ./parser//parser_prod.nit:7127 */
38894 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38895 if (UNTAG_Bool(REGB0)) {
38896 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7127);
38897 }
38898 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38899 /* ./parser//parser_prod.nit:7128 */
38900 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*/;
38901 if (UNTAG_Bool(REGB0)) {
38902 } else {
38903 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7128);
38904 }
38905 /* ./parser//parser_prod.nit:7129 */
38906 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
38907 } else {
38908 /* ./parser//parser_prod.nit:7131 */
38909 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7131);
38910 }
38911 /* ./parser//parser_prod.nit:7133 */
38912 goto label1;
38913 }
38914 /* ./parser//parser_prod.nit:7135 */
38915 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
38916 if (UNTAG_Bool(REGB0)) {
38917 } else {
38918 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 7135);
38919 }
38920 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]);
38921 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38922 if (UNTAG_Bool(REGB0)) {
38923 } else {
38924 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38925 REGB0 = REGB1;
38926 }
38927 if (UNTAG_Bool(REGB0)) {
38928 /* ./parser//parser_prod.nit:7136 */
38929 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38930 if (UNTAG_Bool(REGB0)) {
38931 } else {
38932 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38933 if (UNTAG_Bool(REGB1)) {
38934 REGB1 = TAG_Bool(false);
38935 REGB0 = REGB1;
38936 } else {
38937 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38938 REGB0 = REGB1;
38939 }
38940 }
38941 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38942 if (UNTAG_Bool(REGB0)) {
38943 /* ./parser//parser_prod.nit:7137 */
38944 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38945 if (UNTAG_Bool(REGB0)) {
38946 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7137);
38947 }
38948 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38949 /* ./parser//parser_prod.nit:7138 */
38950 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*/;
38951 if (UNTAG_Bool(REGB0)) {
38952 } else {
38953 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7138);
38954 }
38955 /* ./parser//parser_prod.nit:7139 */
38956 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
38957 } else {
38958 /* ./parser//parser_prod.nit:7141 */
38959 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7141);
38960 }
38961 /* ./parser//parser_prod.nit:7143 */
38962 goto label1;
38963 }
38964 /* ./parser//parser_prod.nit:7145 */
38965 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
38966 if (UNTAG_Bool(REGB0)) {
38967 } else {
38968 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 7145);
38969 }
38970 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]);
38971 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38972 if (UNTAG_Bool(REGB0)) {
38973 } else {
38974 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38975 REGB0 = REGB1;
38976 }
38977 if (UNTAG_Bool(REGB0)) {
38978 /* ./parser//parser_prod.nit:7146 */
38979 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38980 if (UNTAG_Bool(REGB0)) {
38981 } else {
38982 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38983 if (UNTAG_Bool(REGB1)) {
38984 REGB1 = TAG_Bool(false);
38985 REGB0 = REGB1;
38986 } else {
38987 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38988 REGB0 = REGB1;
38989 }
38990 }
38991 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38992 if (UNTAG_Bool(REGB0)) {
38993 /* ./parser//parser_prod.nit:7147 */
38994 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38995 if (UNTAG_Bool(REGB0)) {
38996 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7147);
38997 }
38998 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38999 /* ./parser//parser_prod.nit:7148 */
39000 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*/;
39001 if (UNTAG_Bool(REGB0)) {
39002 } else {
39003 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7148);
39004 }
39005 /* ./parser//parser_prod.nit:7149 */
39006 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[2];
39007 } else {
39008 /* ./parser//parser_prod.nit:7151 */
39009 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7151);
39010 }
39011 /* ./parser//parser_prod.nit:7153 */
39012 goto label1;
39013 }
39014 label1: while(0);
39015 stack_frame_head = fra.me.prev;
39016 return;
39017 }
39018 void parser___parser_prod___AAsNotnullExpr___visit_all(val_t p0, val_t p1){
39019 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
39020 val_t REGB0;
39021 val_t tmp;
39022 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39023 fra.me.file = LOCATE_parser___parser_prod;
39024 fra.me.line = 7157;
39025 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___visit_all;
39026 fra.me.has_broke = 0;
39027 fra.me.REG_size = 3;
39028 fra.me.nitni_local_ref_head = NULL;
39029 fra.me.REG[0] = NIT_NULL;
39030 fra.me.REG[1] = NIT_NULL;
39031 fra.me.REG[2] = NIT_NULL;
39032 fra.me.REG[0] = p0;
39033 fra.me.REG[1] = p1;
39034 /* ./parser//parser_prod.nit:7159 */
39035 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
39036 if (UNTAG_Bool(REGB0)) {
39037 } else {
39038 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7159);
39039 }
39040 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]);
39041 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39042 /* ./parser//parser_prod.nit:7160 */
39043 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
39044 if (UNTAG_Bool(REGB0)) {
39045 } else {
39046 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7160);
39047 }
39048 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]);
39049 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39050 /* ./parser//parser_prod.nit:7161 */
39051 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
39052 if (UNTAG_Bool(REGB0)) {
39053 } else {
39054 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 7161);
39055 }
39056 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]);
39057 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39058 /* ./parser//parser_prod.nit:7162 */
39059 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
39060 if (UNTAG_Bool(REGB0)) {
39061 } else {
39062 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 7162);
39063 }
39064 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]);
39065 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39066 stack_frame_head = fra.me.prev;
39067 return;
39068 }
39069 void parser___parser_prod___AIssetAttrExpr___empty_init(val_t p0, int* init_table){
39070 int itpos253 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIssetAttrExpr].i;
39071 struct {struct stack_frame_t me;} fra;
39072 val_t tmp;
39073 if (init_table[itpos253]) return;
39074 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39075 fra.me.file = LOCATE_parser___parser_prod;
39076 fra.me.line = 7166;
39077 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___empty_init;
39078 fra.me.has_broke = 0;
39079 fra.me.REG_size = 1;
39080 fra.me.nitni_local_ref_head = NULL;
39081 fra.me.REG[0] = NIT_NULL;
39082 fra.me.REG[0] = p0;
39083 stack_frame_head = fra.me.prev;
39084 init_table[itpos253] = 1;
39085 return;
39086 }
39087 void parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
39088 int itpos254 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIssetAttrExpr].i;
39089 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
39090 val_t REGB0;
39091 val_t tmp;
39092 if (init_table[itpos254]) return;
39093 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39094 fra.me.file = LOCATE_parser___parser_prod;
39095 fra.me.line = 7168;
39096 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr;
39097 fra.me.has_broke = 0;
39098 fra.me.REG_size = 5;
39099 fra.me.nitni_local_ref_head = NULL;
39100 fra.me.REG[0] = NIT_NULL;
39101 fra.me.REG[1] = NIT_NULL;
39102 fra.me.REG[2] = NIT_NULL;
39103 fra.me.REG[3] = NIT_NULL;
39104 fra.me.REG[4] = NIT_NULL;
39105 fra.me.REG[0] = p0;
39106 fra.me.REG[1] = p1;
39107 fra.me.REG[2] = p2;
39108 fra.me.REG[3] = p3;
39109 /* ./parser//parser_prod.nit:7168 */
39110 fra.me.REG[4] = fra.me.REG[0];
39111 /* ./parser//parser_prod.nit:7174 */
39112 CALL_parser___parser_prod___AIssetAttrExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
39113 /* ./parser//parser_prod.nit:7175 */
39114 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
39115 if (UNTAG_Bool(REGB0)) {
39116 } else {
39117 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7175);
39118 }
39119 ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[4]) = fra.me.REG[1];
39120 /* ./parser//parser_prod.nit:7176 */
39121 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39122 if (UNTAG_Bool(REGB0)) {
39123 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7176);
39124 }
39125 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
39126 /* ./parser//parser_prod.nit:7177 */
39127 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
39128 if (UNTAG_Bool(REGB0)) {
39129 } else {
39130 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7177);
39131 }
39132 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[4]) = fra.me.REG[2];
39133 /* ./parser//parser_prod.nit:7178 */
39134 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39135 if (UNTAG_Bool(REGB0)) {
39136 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7178);
39137 }
39138 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
39139 /* ./parser//parser_prod.nit:7179 */
39140 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
39141 if (UNTAG_Bool(REGB0)) {
39142 } else {
39143 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7179);
39144 }
39145 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[3];
39146 /* ./parser//parser_prod.nit:7180 */
39147 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39148 if (UNTAG_Bool(REGB0)) {
39149 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7180);
39150 }
39151 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
39152 stack_frame_head = fra.me.prev;
39153 init_table[itpos254] = 1;
39154 return;
39155 }
39156 void parser___parser_prod___AIssetAttrExpr___replace_child(val_t p0, val_t p1, val_t p2){
39157 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39158 val_t REGB0;
39159 val_t REGB1;
39160 val_t tmp;
39161 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39162 fra.me.file = LOCATE_parser___parser_prod;
39163 fra.me.line = 7183;
39164 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___replace_child;
39165 fra.me.has_broke = 0;
39166 fra.me.REG_size = 4;
39167 fra.me.nitni_local_ref_head = NULL;
39168 fra.me.REG[0] = NIT_NULL;
39169 fra.me.REG[1] = NIT_NULL;
39170 fra.me.REG[2] = NIT_NULL;
39171 fra.me.REG[3] = NIT_NULL;
39172 fra.me.REG[0] = p0;
39173 fra.me.REG[1] = p1;
39174 fra.me.REG[2] = p2;
39175 /* ./parser//parser_prod.nit:7185 */
39176 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
39177 if (UNTAG_Bool(REGB0)) {
39178 } else {
39179 nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser___parser_prod, 7185);
39180 }
39181 fra.me.REG[3] = ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]);
39182 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39183 if (UNTAG_Bool(REGB0)) {
39184 } else {
39185 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39186 REGB0 = REGB1;
39187 }
39188 if (UNTAG_Bool(REGB0)) {
39189 /* ./parser//parser_prod.nit:7186 */
39190 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39191 if (UNTAG_Bool(REGB0)) {
39192 } else {
39193 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39194 if (UNTAG_Bool(REGB1)) {
39195 REGB1 = TAG_Bool(false);
39196 REGB0 = REGB1;
39197 } else {
39198 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39199 REGB0 = REGB1;
39200 }
39201 }
39202 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39203 if (UNTAG_Bool(REGB0)) {
39204 /* ./parser//parser_prod.nit:7187 */
39205 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39206 if (UNTAG_Bool(REGB0)) {
39207 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7187);
39208 }
39209 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39210 /* ./parser//parser_prod.nit:7188 */
39211 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*/;
39212 if (UNTAG_Bool(REGB0)) {
39213 } else {
39214 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7188);
39215 }
39216 /* ./parser//parser_prod.nit:7189 */
39217 ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]) = fra.me.REG[2];
39218 } else {
39219 /* ./parser//parser_prod.nit:7191 */
39220 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7191);
39221 }
39222 /* ./parser//parser_prod.nit:7193 */
39223 goto label1;
39224 }
39225 /* ./parser//parser_prod.nit:7195 */
39226 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
39227 if (UNTAG_Bool(REGB0)) {
39228 } else {
39229 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7195);
39230 }
39231 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
39232 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39233 if (UNTAG_Bool(REGB0)) {
39234 } else {
39235 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39236 REGB0 = REGB1;
39237 }
39238 if (UNTAG_Bool(REGB0)) {
39239 /* ./parser//parser_prod.nit:7196 */
39240 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39241 if (UNTAG_Bool(REGB0)) {
39242 } else {
39243 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39244 if (UNTAG_Bool(REGB1)) {
39245 REGB1 = TAG_Bool(false);
39246 REGB0 = REGB1;
39247 } else {
39248 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39249 REGB0 = REGB1;
39250 }
39251 }
39252 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39253 if (UNTAG_Bool(REGB0)) {
39254 /* ./parser//parser_prod.nit:7197 */
39255 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39256 if (UNTAG_Bool(REGB0)) {
39257 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7197);
39258 }
39259 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39260 /* ./parser//parser_prod.nit:7198 */
39261 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*/;
39262 if (UNTAG_Bool(REGB0)) {
39263 } else {
39264 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7198);
39265 }
39266 /* ./parser//parser_prod.nit:7199 */
39267 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
39268 } else {
39269 /* ./parser//parser_prod.nit:7201 */
39270 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7201);
39271 }
39272 /* ./parser//parser_prod.nit:7203 */
39273 goto label1;
39274 }
39275 /* ./parser//parser_prod.nit:7205 */
39276 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
39277 if (UNTAG_Bool(REGB0)) {
39278 } else {
39279 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7205);
39280 }
39281 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
39282 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39283 if (UNTAG_Bool(REGB0)) {
39284 } else {
39285 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39286 REGB0 = REGB1;
39287 }
39288 if (UNTAG_Bool(REGB0)) {
39289 /* ./parser//parser_prod.nit:7206 */
39290 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39291 if (UNTAG_Bool(REGB0)) {
39292 } else {
39293 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39294 if (UNTAG_Bool(REGB1)) {
39295 REGB1 = TAG_Bool(false);
39296 REGB0 = REGB1;
39297 } else {
39298 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39299 REGB0 = REGB1;
39300 }
39301 }
39302 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39303 if (UNTAG_Bool(REGB0)) {
39304 /* ./parser//parser_prod.nit:7207 */
39305 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39306 if (UNTAG_Bool(REGB0)) {
39307 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7207);
39308 }
39309 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39310 /* ./parser//parser_prod.nit:7208 */
39311 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*/;
39312 if (UNTAG_Bool(REGB0)) {
39313 } else {
39314 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7208);
39315 }
39316 /* ./parser//parser_prod.nit:7209 */
39317 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
39318 } else {
39319 /* ./parser//parser_prod.nit:7211 */
39320 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7211);
39321 }
39322 /* ./parser//parser_prod.nit:7213 */
39323 goto label1;
39324 }
39325 label1: while(0);
39326 stack_frame_head = fra.me.prev;
39327 return;
39328 }
39329 void parser___parser_prod___AIssetAttrExpr___visit_all(val_t p0, val_t p1){
39330 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
39331 val_t REGB0;
39332 val_t tmp;
39333 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39334 fra.me.file = LOCATE_parser___parser_prod;
39335 fra.me.line = 7217;
39336 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___visit_all;
39337 fra.me.has_broke = 0;
39338 fra.me.REG_size = 3;
39339 fra.me.nitni_local_ref_head = NULL;
39340 fra.me.REG[0] = NIT_NULL;
39341 fra.me.REG[1] = NIT_NULL;
39342 fra.me.REG[2] = NIT_NULL;
39343 fra.me.REG[0] = p0;
39344 fra.me.REG[1] = p1;
39345 /* ./parser//parser_prod.nit:7219 */
39346 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
39347 if (UNTAG_Bool(REGB0)) {
39348 } else {
39349 nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser___parser_prod, 7219);
39350 }
39351 fra.me.REG[2] = ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]);
39352 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39353 /* ./parser//parser_prod.nit:7220 */
39354 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
39355 if (UNTAG_Bool(REGB0)) {
39356 } else {
39357 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7220);
39358 }
39359 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
39360 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39361 /* ./parser//parser_prod.nit:7221 */
39362 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
39363 if (UNTAG_Bool(REGB0)) {
39364 } else {
39365 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7221);
39366 }
39367 fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
39368 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39369 stack_frame_head = fra.me.prev;
39370 return;
39371 }
39372 void parser___parser_prod___APlusAssignOp___empty_init(val_t p0, int* init_table){
39373 int itpos255 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusAssignOp].i;
39374 struct {struct stack_frame_t me;} fra;
39375 val_t tmp;
39376 if (init_table[itpos255]) return;
39377 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39378 fra.me.file = LOCATE_parser___parser_prod;
39379 fra.me.line = 7225;
39380 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___empty_init;
39381 fra.me.has_broke = 0;
39382 fra.me.REG_size = 1;
39383 fra.me.nitni_local_ref_head = NULL;
39384 fra.me.REG[0] = NIT_NULL;
39385 fra.me.REG[0] = p0;
39386 stack_frame_head = fra.me.prev;
39387 init_table[itpos255] = 1;
39388 return;
39389 }
39390 void parser___parser_prod___APlusAssignOp___init_aplusassignop(val_t p0, val_t p1, int* init_table){
39391 int itpos256 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusAssignOp].i;
39392 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
39393 val_t REGB0;
39394 val_t tmp;
39395 if (init_table[itpos256]) return;
39396 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39397 fra.me.file = LOCATE_parser___parser_prod;
39398 fra.me.line = 7227;
39399 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___init_aplusassignop;
39400 fra.me.has_broke = 0;
39401 fra.me.REG_size = 3;
39402 fra.me.nitni_local_ref_head = NULL;
39403 fra.me.REG[0] = NIT_NULL;
39404 fra.me.REG[1] = NIT_NULL;
39405 fra.me.REG[2] = NIT_NULL;
39406 fra.me.REG[0] = p0;
39407 fra.me.REG[1] = p1;
39408 /* ./parser//parser_prod.nit:7227 */
39409 fra.me.REG[2] = fra.me.REG[0];
39410 /* ./parser//parser_prod.nit:7231 */
39411 CALL_parser___parser_prod___APlusAssignOp___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
39412 /* ./parser//parser_prod.nit:7232 */
39413 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
39414 if (UNTAG_Bool(REGB0)) {
39415 } else {
39416 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7232);
39417 }
39418 ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[2]) = fra.me.REG[1];
39419 /* ./parser//parser_prod.nit:7233 */
39420 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39421 if (UNTAG_Bool(REGB0)) {
39422 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7233);
39423 }
39424 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39425 stack_frame_head = fra.me.prev;
39426 init_table[itpos256] = 1;
39427 return;
39428 }
39429 void parser___parser_prod___APlusAssignOp___replace_child(val_t p0, val_t p1, val_t p2){
39430 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39431 val_t REGB0;
39432 val_t REGB1;
39433 val_t tmp;
39434 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39435 fra.me.file = LOCATE_parser___parser_prod;
39436 fra.me.line = 7236;
39437 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___replace_child;
39438 fra.me.has_broke = 0;
39439 fra.me.REG_size = 4;
39440 fra.me.nitni_local_ref_head = NULL;
39441 fra.me.REG[0] = NIT_NULL;
39442 fra.me.REG[1] = NIT_NULL;
39443 fra.me.REG[2] = NIT_NULL;
39444 fra.me.REG[3] = NIT_NULL;
39445 fra.me.REG[0] = p0;
39446 fra.me.REG[1] = p1;
39447 fra.me.REG[2] = p2;
39448 /* ./parser//parser_prod.nit:7238 */
39449 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0])!=NIT_NULL);
39450 if (UNTAG_Bool(REGB0)) {
39451 } else {
39452 nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser___parser_prod, 7238);
39453 }
39454 fra.me.REG[3] = ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]);
39455 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39456 if (UNTAG_Bool(REGB0)) {
39457 } else {
39458 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39459 REGB0 = REGB1;
39460 }
39461 if (UNTAG_Bool(REGB0)) {
39462 /* ./parser//parser_prod.nit:7239 */
39463 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39464 if (UNTAG_Bool(REGB0)) {
39465 } else {
39466 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39467 if (UNTAG_Bool(REGB1)) {
39468 REGB1 = TAG_Bool(false);
39469 REGB0 = REGB1;
39470 } else {
39471 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39472 REGB0 = REGB1;
39473 }
39474 }
39475 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39476 if (UNTAG_Bool(REGB0)) {
39477 /* ./parser//parser_prod.nit:7240 */
39478 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39479 if (UNTAG_Bool(REGB0)) {
39480 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7240);
39481 }
39482 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39483 /* ./parser//parser_prod.nit:7241 */
39484 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*/;
39485 if (UNTAG_Bool(REGB0)) {
39486 } else {
39487 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7241);
39488 }
39489 /* ./parser//parser_prod.nit:7242 */
39490 ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]) = fra.me.REG[2];
39491 } else {
39492 /* ./parser//parser_prod.nit:7244 */
39493 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7244);
39494 }
39495 /* ./parser//parser_prod.nit:7246 */
39496 goto label1;
39497 }
39498 label1: while(0);
39499 stack_frame_head = fra.me.prev;
39500 return;
39501 }
39502 void parser___parser_prod___APlusAssignOp___visit_all(val_t p0, val_t p1){
39503 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39504 val_t REGB0;
39505 val_t tmp;
39506 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39507 fra.me.file = LOCATE_parser___parser_prod;
39508 fra.me.line = 7250;
39509 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___visit_all;
39510 fra.me.has_broke = 0;
39511 fra.me.REG_size = 2;
39512 fra.me.nitni_local_ref_head = NULL;
39513 fra.me.REG[0] = NIT_NULL;
39514 fra.me.REG[1] = NIT_NULL;
39515 fra.me.REG[0] = p0;
39516 fra.me.REG[1] = p1;
39517 /* ./parser//parser_prod.nit:7252 */
39518 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0])!=NIT_NULL);
39519 if (UNTAG_Bool(REGB0)) {
39520 } else {
39521 nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser___parser_prod, 7252);
39522 }
39523 fra.me.REG[0] = ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]);
39524 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39525 stack_frame_head = fra.me.prev;
39526 return;
39527 }
39528 void parser___parser_prod___AMinusAssignOp___empty_init(val_t p0, int* init_table){
39529 int itpos257 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusAssignOp].i;
39530 struct {struct stack_frame_t me;} fra;
39531 val_t tmp;
39532 if (init_table[itpos257]) return;
39533 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39534 fra.me.file = LOCATE_parser___parser_prod;
39535 fra.me.line = 7256;
39536 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___empty_init;
39537 fra.me.has_broke = 0;
39538 fra.me.REG_size = 1;
39539 fra.me.nitni_local_ref_head = NULL;
39540 fra.me.REG[0] = NIT_NULL;
39541 fra.me.REG[0] = p0;
39542 stack_frame_head = fra.me.prev;
39543 init_table[itpos257] = 1;
39544 return;
39545 }
39546 void parser___parser_prod___AMinusAssignOp___init_aminusassignop(val_t p0, val_t p1, int* init_table){
39547 int itpos258 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusAssignOp].i;
39548 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
39549 val_t REGB0;
39550 val_t tmp;
39551 if (init_table[itpos258]) return;
39552 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39553 fra.me.file = LOCATE_parser___parser_prod;
39554 fra.me.line = 7258;
39555 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___init_aminusassignop;
39556 fra.me.has_broke = 0;
39557 fra.me.REG_size = 3;
39558 fra.me.nitni_local_ref_head = NULL;
39559 fra.me.REG[0] = NIT_NULL;
39560 fra.me.REG[1] = NIT_NULL;
39561 fra.me.REG[2] = NIT_NULL;
39562 fra.me.REG[0] = p0;
39563 fra.me.REG[1] = p1;
39564 /* ./parser//parser_prod.nit:7258 */
39565 fra.me.REG[2] = fra.me.REG[0];
39566 /* ./parser//parser_prod.nit:7262 */
39567 CALL_parser___parser_prod___AMinusAssignOp___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
39568 /* ./parser//parser_prod.nit:7263 */
39569 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
39570 if (UNTAG_Bool(REGB0)) {
39571 } else {
39572 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7263);
39573 }
39574 ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[2]) = fra.me.REG[1];
39575 /* ./parser//parser_prod.nit:7264 */
39576 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39577 if (UNTAG_Bool(REGB0)) {
39578 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7264);
39579 }
39580 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39581 stack_frame_head = fra.me.prev;
39582 init_table[itpos258] = 1;
39583 return;
39584 }
39585 void parser___parser_prod___AMinusAssignOp___replace_child(val_t p0, val_t p1, val_t p2){
39586 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39587 val_t REGB0;
39588 val_t REGB1;
39589 val_t tmp;
39590 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39591 fra.me.file = LOCATE_parser___parser_prod;
39592 fra.me.line = 7267;
39593 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___replace_child;
39594 fra.me.has_broke = 0;
39595 fra.me.REG_size = 4;
39596 fra.me.nitni_local_ref_head = NULL;
39597 fra.me.REG[0] = NIT_NULL;
39598 fra.me.REG[1] = NIT_NULL;
39599 fra.me.REG[2] = NIT_NULL;
39600 fra.me.REG[3] = NIT_NULL;
39601 fra.me.REG[0] = p0;
39602 fra.me.REG[1] = p1;
39603 fra.me.REG[2] = p2;
39604 /* ./parser//parser_prod.nit:7269 */
39605 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0])!=NIT_NULL);
39606 if (UNTAG_Bool(REGB0)) {
39607 } else {
39608 nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser___parser_prod, 7269);
39609 }
39610 fra.me.REG[3] = ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]);
39611 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39612 if (UNTAG_Bool(REGB0)) {
39613 } else {
39614 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39615 REGB0 = REGB1;
39616 }
39617 if (UNTAG_Bool(REGB0)) {
39618 /* ./parser//parser_prod.nit:7270 */
39619 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39620 if (UNTAG_Bool(REGB0)) {
39621 } else {
39622 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39623 if (UNTAG_Bool(REGB1)) {
39624 REGB1 = TAG_Bool(false);
39625 REGB0 = REGB1;
39626 } else {
39627 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39628 REGB0 = REGB1;
39629 }
39630 }
39631 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39632 if (UNTAG_Bool(REGB0)) {
39633 /* ./parser//parser_prod.nit:7271 */
39634 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39635 if (UNTAG_Bool(REGB0)) {
39636 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7271);
39637 }
39638 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39639 /* ./parser//parser_prod.nit:7272 */
39640 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*/;
39641 if (UNTAG_Bool(REGB0)) {
39642 } else {
39643 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7272);
39644 }
39645 /* ./parser//parser_prod.nit:7273 */
39646 ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]) = fra.me.REG[2];
39647 } else {
39648 /* ./parser//parser_prod.nit:7275 */
39649 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7275);
39650 }
39651 /* ./parser//parser_prod.nit:7277 */
39652 goto label1;
39653 }
39654 label1: while(0);
39655 stack_frame_head = fra.me.prev;
39656 return;
39657 }
39658 void parser___parser_prod___AMinusAssignOp___visit_all(val_t p0, val_t p1){
39659 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39660 val_t REGB0;
39661 val_t tmp;
39662 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39663 fra.me.file = LOCATE_parser___parser_prod;
39664 fra.me.line = 7281;
39665 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___visit_all;
39666 fra.me.has_broke = 0;
39667 fra.me.REG_size = 2;
39668 fra.me.nitni_local_ref_head = NULL;
39669 fra.me.REG[0] = NIT_NULL;
39670 fra.me.REG[1] = NIT_NULL;
39671 fra.me.REG[0] = p0;
39672 fra.me.REG[1] = p1;
39673 /* ./parser//parser_prod.nit:7283 */
39674 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0])!=NIT_NULL);
39675 if (UNTAG_Bool(REGB0)) {
39676 } else {
39677 nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser___parser_prod, 7283);
39678 }
39679 fra.me.REG[0] = ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]);
39680 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39681 stack_frame_head = fra.me.prev;
39682 return;
39683 }
39684 void parser___parser_prod___AClosureDef___empty_init(val_t p0, int* init_table){
39685 int itpos259 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDef].i;
39686 struct {struct stack_frame_t me;} fra;
39687 val_t tmp;
39688 if (init_table[itpos259]) return;
39689 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39690 fra.me.file = LOCATE_parser___parser_prod;
39691 fra.me.line = 7287;
39692 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___empty_init;
39693 fra.me.has_broke = 0;
39694 fra.me.REG_size = 1;
39695 fra.me.nitni_local_ref_head = NULL;
39696 fra.me.REG[0] = NIT_NULL;
39697 fra.me.REG[0] = p0;
39698 stack_frame_head = fra.me.prev;
39699 init_table[itpos259] = 1;
39700 return;
39701 }
39702 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){
39703 int itpos260 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDef].i;
39704 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
39705 val_t REGB0;
39706 val_t REGB1;
39707 val_t tmp;
39708 if (init_table[itpos260]) return;
39709 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39710 fra.me.file = LOCATE_parser___parser_prod;
39711 fra.me.line = 7289;
39712 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___init_aclosuredef;
39713 fra.me.has_broke = 0;
39714 fra.me.REG_size = 8;
39715 fra.me.nitni_local_ref_head = NULL;
39716 fra.me.REG[0] = NIT_NULL;
39717 fra.me.REG[1] = NIT_NULL;
39718 fra.me.REG[2] = NIT_NULL;
39719 fra.me.REG[3] = NIT_NULL;
39720 fra.me.REG[4] = NIT_NULL;
39721 fra.me.REG[5] = NIT_NULL;
39722 fra.me.REG[6] = NIT_NULL;
39723 fra.me.REG[7] = NIT_NULL;
39724 fra.me.REG[0] = p0;
39725 fra.me.REG[1] = p1;
39726 fra.me.REG[2] = p2;
39727 fra.me.REG[3] = p3;
39728 fra.me.REG[4] = p4;
39729 fra.me.REG[5] = p5;
39730 fra.me.REG[6] = p6;
39731 /* ./parser//parser_prod.nit:7289 */
39732 fra.me.REG[7] = fra.me.REG[0];
39733 /* ./parser//parser_prod.nit:7298 */
39734 CALL_parser___parser_prod___AClosureDef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
39735 /* ./parser//parser_prod.nit:7299 */
39736 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
39737 if (UNTAG_Bool(REGB0)) {
39738 } else {
39739 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7299);
39740 }
39741 ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[7]) = fra.me.REG[1];
39742 /* ./parser//parser_prod.nit:7300 */
39743 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39744 if (UNTAG_Bool(REGB0)) {
39745 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7300);
39746 }
39747 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
39748 /* ./parser//parser_prod.nit:7301 */
39749 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
39750 if (UNTAG_Bool(REGB0)) {
39751 } else {
39752 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7301);
39753 }
39754 ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[7]) = fra.me.REG[2];
39755 /* ./parser//parser_prod.nit:7302 */
39756 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39757 if (UNTAG_Bool(REGB0)) {
39758 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7302);
39759 }
39760 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
39761 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));
39762 /* ./parser//parser_prod.nit:7308 */
39763 ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[7]) = fra.me.REG[4];
39764 /* ./parser//parser_prod.nit:7309 */
39765 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
39766 if (UNTAG_Bool(REGB0)) {
39767 } else {
39768 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
39769 if (UNTAG_Bool(REGB1)) {
39770 REGB1 = TAG_Bool(false);
39771 REGB0 = REGB1;
39772 } else {
39773 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
39774 REGB0 = REGB1;
39775 }
39776 }
39777 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39778 if (UNTAG_Bool(REGB0)) {
39779 /* ./parser//parser_prod.nit:7310 */
39780 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
39781 if (UNTAG_Bool(REGB0)) {
39782 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7310);
39783 }
39784 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
39785 }
39786 /* ./parser//parser_prod.nit:7312 */
39787 ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[7]) = fra.me.REG[5];
39788 /* ./parser//parser_prod.nit:7313 */
39789 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
39790 if (UNTAG_Bool(REGB0)) {
39791 } else {
39792 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
39793 if (UNTAG_Bool(REGB1)) {
39794 REGB1 = TAG_Bool(false);
39795 REGB0 = REGB1;
39796 } else {
39797 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
39798 REGB0 = REGB1;
39799 }
39800 }
39801 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39802 if (UNTAG_Bool(REGB0)) {
39803 /* ./parser//parser_prod.nit:7314 */
39804 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
39805 if (UNTAG_Bool(REGB0)) {
39806 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7314);
39807 }
39808 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
39809 }
39810 /* ./parser//parser_prod.nit:7316 */
39811 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[7]) = fra.me.REG[6];
39812 /* ./parser//parser_prod.nit:7317 */
39813 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
39814 if (UNTAG_Bool(REGB0)) {
39815 } else {
39816 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
39817 if (UNTAG_Bool(REGB1)) {
39818 REGB1 = TAG_Bool(false);
39819 REGB0 = REGB1;
39820 } else {
39821 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
39822 REGB0 = REGB1;
39823 }
39824 }
39825 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39826 if (UNTAG_Bool(REGB0)) {
39827 /* ./parser//parser_prod.nit:7318 */
39828 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
39829 if (UNTAG_Bool(REGB0)) {
39830 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7318);
39831 }
39832 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
39833 }
39834 stack_frame_head = fra.me.prev;
39835 init_table[itpos260] = 1;
39836 return;
39837 }
39838 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){
39839 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39840 val_t REGB0;
39841 fun_t CREG[1];
39842 val_t tmp;
39843 /* ./parser//parser_prod.nit:7303 */
39844 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39845 fra.me.file = LOCATE_parser___parser_prod;
39846 fra.me.line = 0;
39847 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___init_aclosuredef;
39848 fra.me.has_broke = 0;
39849 fra.me.REG_size = 2;
39850 fra.me.nitni_local_ref_head = NULL;
39851 fra.me.REG[0] = NIT_NULL;
39852 fra.me.REG[1] = NIT_NULL;
39853 fra.me.closure_ctx = closctx_param;
39854 fra.me.closure_funs = CREG;
39855 fra.me.REG[0] = p0;
39856 CREG[0] = clos_fun0;
39857 /* ./parser//parser_prod.nit:7304 */
39858 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
39859 if (UNTAG_Bool(REGB0)) {
39860 } else {
39861 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7304);
39862 }
39863 /* ./parser//parser_prod.nit:7305 */
39864 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(closctx->REG[7])!=NIT_NULL);
39865 if (UNTAG_Bool(REGB0)) {
39866 } else {
39867 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7305);
39868 }
39869 fra.me.REG[1] = ATTR_parser___parser_nodes___AClosureDef____n_ids(closctx->REG[7]);
39870 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39871 /* ./parser//parser_prod.nit:7306 */
39872 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[7]);
39873 stack_frame_head = fra.me.prev;
39874 return;
39875 }
39876 void parser___parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_t p2){
39877 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39878 val_t REGB0;
39879 val_t REGB1;
39880 val_t REGB2;
39881 val_t REGB3;
39882 val_t REGB4;
39883 val_t tmp;
39884 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39885 fra.me.file = LOCATE_parser___parser_prod;
39886 fra.me.line = 7322;
39887 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___replace_child;
39888 fra.me.has_broke = 0;
39889 fra.me.REG_size = 4;
39890 fra.me.nitni_local_ref_head = NULL;
39891 fra.me.REG[0] = NIT_NULL;
39892 fra.me.REG[1] = NIT_NULL;
39893 fra.me.REG[2] = NIT_NULL;
39894 fra.me.REG[3] = NIT_NULL;
39895 fra.me.REG[0] = p0;
39896 fra.me.REG[1] = p1;
39897 fra.me.REG[2] = p2;
39898 /* ./parser//parser_prod.nit:7324 */
39899 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0])!=NIT_NULL);
39900 if (UNTAG_Bool(REGB0)) {
39901 } else {
39902 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 7324);
39903 }
39904 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0]);
39905 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39906 if (UNTAG_Bool(REGB0)) {
39907 } else {
39908 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39909 REGB0 = REGB1;
39910 }
39911 if (UNTAG_Bool(REGB0)) {
39912 /* ./parser//parser_prod.nit:7325 */
39913 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39914 if (UNTAG_Bool(REGB0)) {
39915 } else {
39916 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39917 if (UNTAG_Bool(REGB1)) {
39918 REGB1 = TAG_Bool(false);
39919 REGB0 = REGB1;
39920 } else {
39921 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39922 REGB0 = REGB1;
39923 }
39924 }
39925 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39926 if (UNTAG_Bool(REGB0)) {
39927 /* ./parser//parser_prod.nit:7326 */
39928 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39929 if (UNTAG_Bool(REGB0)) {
39930 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7326);
39931 }
39932 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39933 /* ./parser//parser_prod.nit:7327 */
39934 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*/;
39935 if (UNTAG_Bool(REGB0)) {
39936 } else {
39937 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7327);
39938 }
39939 /* ./parser//parser_prod.nit:7328 */
39940 ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0]) = fra.me.REG[2];
39941 } else {
39942 /* ./parser//parser_prod.nit:7330 */
39943 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7330);
39944 }
39945 /* ./parser//parser_prod.nit:7332 */
39946 goto label1;
39947 }
39948 /* ./parser//parser_prod.nit:7334 */
39949 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0])!=NIT_NULL);
39950 if (UNTAG_Bool(REGB0)) {
39951 } else {
39952 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7334);
39953 }
39954 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0]);
39955 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39956 if (UNTAG_Bool(REGB0)) {
39957 } else {
39958 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39959 REGB0 = REGB1;
39960 }
39961 if (UNTAG_Bool(REGB0)) {
39962 /* ./parser//parser_prod.nit:7335 */
39963 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39964 if (UNTAG_Bool(REGB0)) {
39965 } else {
39966 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39967 if (UNTAG_Bool(REGB1)) {
39968 REGB1 = TAG_Bool(false);
39969 REGB0 = REGB1;
39970 } else {
39971 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39972 REGB0 = REGB1;
39973 }
39974 }
39975 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39976 if (UNTAG_Bool(REGB0)) {
39977 /* ./parser//parser_prod.nit:7336 */
39978 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39979 if (UNTAG_Bool(REGB0)) {
39980 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7336);
39981 }
39982 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39983 /* ./parser//parser_prod.nit:7337 */
39984 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*/;
39985 if (UNTAG_Bool(REGB0)) {
39986 } else {
39987 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7337);
39988 }
39989 /* ./parser//parser_prod.nit:7338 */
39990 ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0]) = fra.me.REG[2];
39991 } else {
39992 /* ./parser//parser_prod.nit:7340 */
39993 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7340);
39994 }
39995 /* ./parser//parser_prod.nit:7342 */
39996 goto label1;
39997 }
39998 /* ./parser//parser_prod.nit:7344 */
39999 REGB0 = TAG_Int(0);
40000 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
40001 if (UNTAG_Bool(REGB1)) {
40002 } else {
40003 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7344);
40004 }
40005 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
40006 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
40007 /* ./../lib/standard//kernel.nit:352 */
40008 while(1) {
40009 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
40010 if (UNTAG_Bool(REGB2)) {
40011 } else {
40012 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
40013 }
40014 /* ./../lib/standard//kernel.nit:232 */
40015 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
40016 /* ./../lib/standard//kernel.nit:352 */
40017 if (UNTAG_Bool(REGB2)) {
40018 /* ./parser//parser_prod.nit:7344 */
40019 REGB2 = REGB0;
40020 /* ./parser//parser_prod.nit:7345 */
40021 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
40022 if (UNTAG_Bool(REGB3)) {
40023 } else {
40024 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7345);
40025 }
40026 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
40027 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
40028 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
40029 if (UNTAG_Bool(REGB3)) {
40030 } else {
40031 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40032 if (UNTAG_Bool(REGB4)) {
40033 REGB4 = TAG_Bool(false);
40034 REGB3 = REGB4;
40035 } else {
40036 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40037 REGB3 = REGB4;
40038 }
40039 }
40040 if (UNTAG_Bool(REGB3)) {
40041 /* ./parser//parser_prod.nit:7346 */
40042 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40043 if (UNTAG_Bool(REGB3)) {
40044 } else {
40045 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40046 if (UNTAG_Bool(REGB4)) {
40047 REGB4 = TAG_Bool(false);
40048 REGB3 = REGB4;
40049 } else {
40050 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40051 REGB3 = REGB4;
40052 }
40053 }
40054 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
40055 if (UNTAG_Bool(REGB3)) {
40056 /* ./parser//parser_prod.nit:7347 */
40057 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*/;
40058 if (UNTAG_Bool(REGB3)) {
40059 } else {
40060 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7347);
40061 }
40062 /* ./parser//parser_prod.nit:7348 */
40063 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
40064 if (UNTAG_Bool(REGB3)) {
40065 } else {
40066 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7348);
40067 }
40068 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
40069 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
40070 /* ./parser//parser_prod.nit:7349 */
40071 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40072 if (UNTAG_Bool(REGB3)) {
40073 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7349);
40074 }
40075 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40076 } else {
40077 /* ./parser//parser_prod.nit:7351 */
40078 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
40079 if (UNTAG_Bool(REGB3)) {
40080 } else {
40081 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7351);
40082 }
40083 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
40084 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
40085 }
40086 /* ./parser//parser_prod.nit:7353 */
40087 goto label1;
40088 }
40089 /* ./../lib/standard//kernel.nit:354 */
40090 REGB2 = TAG_Int(1);
40091 /* ./../lib/standard//kernel.nit:235 */
40092 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
40093 /* ./../lib/standard//kernel.nit:354 */
40094 REGB0 = REGB2;
40095 } else {
40096 /* ./../lib/standard//kernel.nit:352 */
40097 goto label2;
40098 }
40099 }
40100 label2: while(0);
40101 /* ./parser//parser_prod.nit:7356 */
40102 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]);
40103 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
40104 if (UNTAG_Bool(REGB0)) {
40105 } else {
40106 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40107 if (UNTAG_Bool(REGB1)) {
40108 REGB1 = TAG_Bool(false);
40109 REGB0 = REGB1;
40110 } else {
40111 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40112 REGB0 = REGB1;
40113 }
40114 }
40115 if (UNTAG_Bool(REGB0)) {
40116 /* ./parser//parser_prod.nit:7357 */
40117 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40118 if (UNTAG_Bool(REGB0)) {
40119 } else {
40120 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40121 if (UNTAG_Bool(REGB1)) {
40122 REGB1 = TAG_Bool(false);
40123 REGB0 = REGB1;
40124 } else {
40125 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40126 REGB0 = REGB1;
40127 }
40128 }
40129 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40130 if (UNTAG_Bool(REGB0)) {
40131 /* ./parser//parser_prod.nit:7358 */
40132 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40133 if (UNTAG_Bool(REGB0)) {
40134 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7358);
40135 }
40136 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40137 /* ./parser//parser_prod.nit:7359 */
40138 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*/;
40139 if (UNTAG_Bool(REGB0)) {
40140 } else {
40141 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7359);
40142 }
40143 /* ./parser//parser_prod.nit:7360 */
40144 ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
40145 } else {
40146 /* ./parser//parser_prod.nit:7362 */
40147 ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = NIT_NULL;
40148 }
40149 /* ./parser//parser_prod.nit:7364 */
40150 goto label1;
40151 }
40152 /* ./parser//parser_prod.nit:7366 */
40153 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]);
40154 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
40155 if (UNTAG_Bool(REGB0)) {
40156 } else {
40157 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40158 if (UNTAG_Bool(REGB1)) {
40159 REGB1 = TAG_Bool(false);
40160 REGB0 = REGB1;
40161 } else {
40162 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40163 REGB0 = REGB1;
40164 }
40165 }
40166 if (UNTAG_Bool(REGB0)) {
40167 /* ./parser//parser_prod.nit:7367 */
40168 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40169 if (UNTAG_Bool(REGB0)) {
40170 } else {
40171 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40172 if (UNTAG_Bool(REGB1)) {
40173 REGB1 = TAG_Bool(false);
40174 REGB0 = REGB1;
40175 } else {
40176 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40177 REGB0 = REGB1;
40178 }
40179 }
40180 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40181 if (UNTAG_Bool(REGB0)) {
40182 /* ./parser//parser_prod.nit:7368 */
40183 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40184 if (UNTAG_Bool(REGB0)) {
40185 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7368);
40186 }
40187 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40188 /* ./parser//parser_prod.nit:7369 */
40189 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*/;
40190 if (UNTAG_Bool(REGB0)) {
40191 } else {
40192 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7369);
40193 }
40194 /* ./parser//parser_prod.nit:7370 */
40195 ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = fra.me.REG[2];
40196 } else {
40197 /* ./parser//parser_prod.nit:7372 */
40198 ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = NIT_NULL;
40199 }
40200 /* ./parser//parser_prod.nit:7374 */
40201 goto label1;
40202 }
40203 /* ./parser//parser_prod.nit:7376 */
40204 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
40205 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
40206 if (UNTAG_Bool(REGB0)) {
40207 } else {
40208 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40209 if (UNTAG_Bool(REGB1)) {
40210 REGB1 = TAG_Bool(false);
40211 REGB0 = REGB1;
40212 } else {
40213 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40214 REGB0 = REGB1;
40215 }
40216 }
40217 if (UNTAG_Bool(REGB0)) {
40218 /* ./parser//parser_prod.nit:7377 */
40219 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40220 if (UNTAG_Bool(REGB0)) {
40221 } else {
40222 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40223 if (UNTAG_Bool(REGB1)) {
40224 REGB1 = TAG_Bool(false);
40225 REGB0 = REGB1;
40226 } else {
40227 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40228 REGB0 = REGB1;
40229 }
40230 }
40231 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40232 if (UNTAG_Bool(REGB0)) {
40233 /* ./parser//parser_prod.nit:7378 */
40234 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40235 if (UNTAG_Bool(REGB0)) {
40236 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7378);
40237 }
40238 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40239 /* ./parser//parser_prod.nit:7379 */
40240 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*/;
40241 if (UNTAG_Bool(REGB0)) {
40242 } else {
40243 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7379);
40244 }
40245 /* ./parser//parser_prod.nit:7380 */
40246 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
40247 } else {
40248 /* ./parser//parser_prod.nit:7382 */
40249 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
40250 }
40251 /* ./parser//parser_prod.nit:7384 */
40252 goto label1;
40253 }
40254 label1: while(0);
40255 stack_frame_head = fra.me.prev;
40256 return;
40257 }
40258 void parser___parser_prod___AClosureDef___visit_all(val_t p0, val_t p1){
40259 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40260 val_t REGB0;
40261 val_t REGB1;
40262 val_t tmp;
40263 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40264 fra.me.file = LOCATE_parser___parser_prod;
40265 fra.me.line = 7388;
40266 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___visit_all;
40267 fra.me.has_broke = 0;
40268 fra.me.REG_size = 4;
40269 fra.me.nitni_local_ref_head = NULL;
40270 fra.me.REG[0] = NIT_NULL;
40271 fra.me.REG[1] = NIT_NULL;
40272 fra.me.REG[2] = NIT_NULL;
40273 fra.me.REG[3] = NIT_NULL;
40274 fra.me.REG[0] = p0;
40275 fra.me.REG[1] = p1;
40276 /* ./parser//parser_prod.nit:7388 */
40277 fra.me.REG[2] = fra.me.REG[0];
40278 /* ./parser//parser_prod.nit:7390 */
40279 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[2])!=NIT_NULL);
40280 if (UNTAG_Bool(REGB0)) {
40281 } else {
40282 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 7390);
40283 }
40284 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[2]);
40285 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
40286 /* ./parser//parser_prod.nit:7391 */
40287 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[2])!=NIT_NULL);
40288 if (UNTAG_Bool(REGB0)) {
40289 } else {
40290 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7391);
40291 }
40292 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[2]);
40293 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
40294 /* ./parser//parser_prod.nit:7392 */
40295 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[2])!=NIT_NULL);
40296 if (UNTAG_Bool(REGB0)) {
40297 } else {
40298 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7392);
40299 }
40300 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[2]);
40301 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));
40302 /* ./parser//parser_prod.nit:7395 */
40303 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[2]);
40304 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40305 if (UNTAG_Bool(REGB0)) {
40306 } else {
40307 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40308 if (UNTAG_Bool(REGB1)) {
40309 REGB1 = TAG_Bool(false);
40310 REGB0 = REGB1;
40311 } else {
40312 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
40313 REGB0 = REGB1;
40314 }
40315 }
40316 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40317 if (UNTAG_Bool(REGB0)) {
40318 /* ./parser//parser_prod.nit:7396 */
40319 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[2]);
40320 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*/;
40321 if (UNTAG_Bool(REGB0)) {
40322 } else {
40323 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7396);
40324 }
40325 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
40326 }
40327 /* ./parser//parser_prod.nit:7398 */
40328 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[2]);
40329 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40330 if (UNTAG_Bool(REGB0)) {
40331 } else {
40332 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40333 if (UNTAG_Bool(REGB1)) {
40334 REGB1 = TAG_Bool(false);
40335 REGB0 = REGB1;
40336 } else {
40337 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
40338 REGB0 = REGB1;
40339 }
40340 }
40341 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40342 if (UNTAG_Bool(REGB0)) {
40343 /* ./parser//parser_prod.nit:7399 */
40344 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[2]);
40345 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*/;
40346 if (UNTAG_Bool(REGB0)) {
40347 } else {
40348 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7399);
40349 }
40350 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
40351 }
40352 /* ./parser//parser_prod.nit:7401 */
40353 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
40354 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40355 if (UNTAG_Bool(REGB0)) {
40356 } else {
40357 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40358 if (UNTAG_Bool(REGB1)) {
40359 REGB1 = TAG_Bool(false);
40360 REGB0 = REGB1;
40361 } else {
40362 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
40363 REGB0 = REGB1;
40364 }
40365 }
40366 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40367 if (UNTAG_Bool(REGB0)) {
40368 /* ./parser//parser_prod.nit:7402 */
40369 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
40370 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*/;
40371 if (UNTAG_Bool(REGB0)) {
40372 } else {
40373 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7402);
40374 }
40375 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40376 }
40377 stack_frame_head = fra.me.prev;
40378 return;
40379 }
40380 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){
40381 struct {struct stack_frame_t me;} fra;
40382 fun_t CREG[1];
40383 val_t tmp;
40384 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40385 fra.me.file = LOCATE_parser___parser_prod;
40386 fra.me.line = 0;
40387 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___visit_all;
40388 fra.me.has_broke = 0;
40389 fra.me.REG_size = 1;
40390 fra.me.nitni_local_ref_head = NULL;
40391 fra.me.REG[0] = NIT_NULL;
40392 fra.me.closure_ctx = closctx_param;
40393 fra.me.closure_funs = CREG;
40394 fra.me.REG[0] = p0;
40395 CREG[0] = clos_fun0;
40396 /* ./parser//parser_prod.nit:7393 */
40397 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
40398 stack_frame_head = fra.me.prev;
40399 return;
40400 }
40401 void parser___parser_prod___ASimpleClosureId___empty_init(val_t p0, int* init_table){
40402 int itpos261 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASimpleClosureId].i;
40403 struct {struct stack_frame_t me;} fra;
40404 val_t tmp;
40405 if (init_table[itpos261]) return;
40406 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40407 fra.me.file = LOCATE_parser___parser_prod;
40408 fra.me.line = 7407;
40409 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___empty_init;
40410 fra.me.has_broke = 0;
40411 fra.me.REG_size = 1;
40412 fra.me.nitni_local_ref_head = NULL;
40413 fra.me.REG[0] = NIT_NULL;
40414 fra.me.REG[0] = p0;
40415 stack_frame_head = fra.me.prev;
40416 init_table[itpos261] = 1;
40417 return;
40418 }
40419 void parser___parser_prod___ASimpleClosureId___init_asimpleclosureid(val_t p0, val_t p1, int* init_table){
40420 int itpos262 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASimpleClosureId].i;
40421 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
40422 val_t REGB0;
40423 val_t tmp;
40424 if (init_table[itpos262]) return;
40425 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40426 fra.me.file = LOCATE_parser___parser_prod;
40427 fra.me.line = 7409;
40428 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___init_asimpleclosureid;
40429 fra.me.has_broke = 0;
40430 fra.me.REG_size = 3;
40431 fra.me.nitni_local_ref_head = NULL;
40432 fra.me.REG[0] = NIT_NULL;
40433 fra.me.REG[1] = NIT_NULL;
40434 fra.me.REG[2] = NIT_NULL;
40435 fra.me.REG[0] = p0;
40436 fra.me.REG[1] = p1;
40437 /* ./parser//parser_prod.nit:7409 */
40438 fra.me.REG[2] = fra.me.REG[0];
40439 /* ./parser//parser_prod.nit:7413 */
40440 CALL_parser___parser_prod___ASimpleClosureId___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
40441 /* ./parser//parser_prod.nit:7414 */
40442 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
40443 if (UNTAG_Bool(REGB0)) {
40444 } else {
40445 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7414);
40446 }
40447 ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[2]) = fra.me.REG[1];
40448 /* ./parser//parser_prod.nit:7415 */
40449 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40450 if (UNTAG_Bool(REGB0)) {
40451 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7415);
40452 }
40453 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40454 stack_frame_head = fra.me.prev;
40455 init_table[itpos262] = 1;
40456 return;
40457 }
40458 void parser___parser_prod___ASimpleClosureId___replace_child(val_t p0, val_t p1, val_t p2){
40459 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40460 val_t REGB0;
40461 val_t REGB1;
40462 val_t tmp;
40463 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40464 fra.me.file = LOCATE_parser___parser_prod;
40465 fra.me.line = 7418;
40466 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___replace_child;
40467 fra.me.has_broke = 0;
40468 fra.me.REG_size = 4;
40469 fra.me.nitni_local_ref_head = NULL;
40470 fra.me.REG[0] = NIT_NULL;
40471 fra.me.REG[1] = NIT_NULL;
40472 fra.me.REG[2] = NIT_NULL;
40473 fra.me.REG[3] = NIT_NULL;
40474 fra.me.REG[0] = p0;
40475 fra.me.REG[1] = p1;
40476 fra.me.REG[2] = p2;
40477 /* ./parser//parser_prod.nit:7420 */
40478 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0])!=NIT_NULL);
40479 if (UNTAG_Bool(REGB0)) {
40480 } else {
40481 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7420);
40482 }
40483 fra.me.REG[3] = ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]);
40484 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40485 if (UNTAG_Bool(REGB0)) {
40486 } else {
40487 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40488 REGB0 = REGB1;
40489 }
40490 if (UNTAG_Bool(REGB0)) {
40491 /* ./parser//parser_prod.nit:7421 */
40492 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40493 if (UNTAG_Bool(REGB0)) {
40494 } else {
40495 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40496 if (UNTAG_Bool(REGB1)) {
40497 REGB1 = TAG_Bool(false);
40498 REGB0 = REGB1;
40499 } else {
40500 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40501 REGB0 = REGB1;
40502 }
40503 }
40504 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40505 if (UNTAG_Bool(REGB0)) {
40506 /* ./parser//parser_prod.nit:7422 */
40507 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40508 if (UNTAG_Bool(REGB0)) {
40509 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7422);
40510 }
40511 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40512 /* ./parser//parser_prod.nit:7423 */
40513 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*/;
40514 if (UNTAG_Bool(REGB0)) {
40515 } else {
40516 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7423);
40517 }
40518 /* ./parser//parser_prod.nit:7424 */
40519 ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]) = fra.me.REG[2];
40520 } else {
40521 /* ./parser//parser_prod.nit:7426 */
40522 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7426);
40523 }
40524 /* ./parser//parser_prod.nit:7428 */
40525 goto label1;
40526 }
40527 label1: while(0);
40528 stack_frame_head = fra.me.prev;
40529 return;
40530 }
40531 void parser___parser_prod___ASimpleClosureId___visit_all(val_t p0, val_t p1){
40532 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
40533 val_t REGB0;
40534 val_t tmp;
40535 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40536 fra.me.file = LOCATE_parser___parser_prod;
40537 fra.me.line = 7432;
40538 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___visit_all;
40539 fra.me.has_broke = 0;
40540 fra.me.REG_size = 2;
40541 fra.me.nitni_local_ref_head = NULL;
40542 fra.me.REG[0] = NIT_NULL;
40543 fra.me.REG[1] = NIT_NULL;
40544 fra.me.REG[0] = p0;
40545 fra.me.REG[1] = p1;
40546 /* ./parser//parser_prod.nit:7434 */
40547 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0])!=NIT_NULL);
40548 if (UNTAG_Bool(REGB0)) {
40549 } else {
40550 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7434);
40551 }
40552 fra.me.REG[0] = ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]);
40553 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40554 stack_frame_head = fra.me.prev;
40555 return;
40556 }
40557 void parser___parser_prod___ABreakClosureId___empty_init(val_t p0, int* init_table){
40558 int itpos263 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakClosureId].i;
40559 struct {struct stack_frame_t me;} fra;
40560 val_t tmp;
40561 if (init_table[itpos263]) return;
40562 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40563 fra.me.file = LOCATE_parser___parser_prod;
40564 fra.me.line = 7438;
40565 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___empty_init;
40566 fra.me.has_broke = 0;
40567 fra.me.REG_size = 1;
40568 fra.me.nitni_local_ref_head = NULL;
40569 fra.me.REG[0] = NIT_NULL;
40570 fra.me.REG[0] = p0;
40571 stack_frame_head = fra.me.prev;
40572 init_table[itpos263] = 1;
40573 return;
40574 }
40575 void parser___parser_prod___ABreakClosureId___init_abreakclosureid(val_t p0, val_t p1, int* init_table){
40576 int itpos264 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakClosureId].i;
40577 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
40578 val_t REGB0;
40579 val_t tmp;
40580 if (init_table[itpos264]) return;
40581 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40582 fra.me.file = LOCATE_parser___parser_prod;
40583 fra.me.line = 7440;
40584 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___init_abreakclosureid;
40585 fra.me.has_broke = 0;
40586 fra.me.REG_size = 3;
40587 fra.me.nitni_local_ref_head = NULL;
40588 fra.me.REG[0] = NIT_NULL;
40589 fra.me.REG[1] = NIT_NULL;
40590 fra.me.REG[2] = NIT_NULL;
40591 fra.me.REG[0] = p0;
40592 fra.me.REG[1] = p1;
40593 /* ./parser//parser_prod.nit:7440 */
40594 fra.me.REG[2] = fra.me.REG[0];
40595 /* ./parser//parser_prod.nit:7444 */
40596 CALL_parser___parser_prod___ABreakClosureId___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
40597 /* ./parser//parser_prod.nit:7445 */
40598 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
40599 if (UNTAG_Bool(REGB0)) {
40600 } else {
40601 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7445);
40602 }
40603 ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[2]) = fra.me.REG[1];
40604 /* ./parser//parser_prod.nit:7446 */
40605 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40606 if (UNTAG_Bool(REGB0)) {
40607 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7446);
40608 }
40609 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40610 stack_frame_head = fra.me.prev;
40611 init_table[itpos264] = 1;
40612 return;
40613 }
40614 void parser___parser_prod___ABreakClosureId___replace_child(val_t p0, val_t p1, val_t p2){
40615 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40616 val_t REGB0;
40617 val_t REGB1;
40618 val_t tmp;
40619 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40620 fra.me.file = LOCATE_parser___parser_prod;
40621 fra.me.line = 7449;
40622 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___replace_child;
40623 fra.me.has_broke = 0;
40624 fra.me.REG_size = 4;
40625 fra.me.nitni_local_ref_head = NULL;
40626 fra.me.REG[0] = NIT_NULL;
40627 fra.me.REG[1] = NIT_NULL;
40628 fra.me.REG[2] = NIT_NULL;
40629 fra.me.REG[3] = NIT_NULL;
40630 fra.me.REG[0] = p0;
40631 fra.me.REG[1] = p1;
40632 fra.me.REG[2] = p2;
40633 /* ./parser//parser_prod.nit:7451 */
40634 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
40635 if (UNTAG_Bool(REGB0)) {
40636 } else {
40637 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 7451);
40638 }
40639 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]);
40640 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40641 if (UNTAG_Bool(REGB0)) {
40642 } else {
40643 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40644 REGB0 = REGB1;
40645 }
40646 if (UNTAG_Bool(REGB0)) {
40647 /* ./parser//parser_prod.nit:7452 */
40648 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40649 if (UNTAG_Bool(REGB0)) {
40650 } else {
40651 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40652 if (UNTAG_Bool(REGB1)) {
40653 REGB1 = TAG_Bool(false);
40654 REGB0 = REGB1;
40655 } else {
40656 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40657 REGB0 = REGB1;
40658 }
40659 }
40660 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40661 if (UNTAG_Bool(REGB0)) {
40662 /* ./parser//parser_prod.nit:7453 */
40663 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40664 if (UNTAG_Bool(REGB0)) {
40665 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7453);
40666 }
40667 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40668 /* ./parser//parser_prod.nit:7454 */
40669 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*/;
40670 if (UNTAG_Bool(REGB0)) {
40671 } else {
40672 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7454);
40673 }
40674 /* ./parser//parser_prod.nit:7455 */
40675 ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
40676 } else {
40677 /* ./parser//parser_prod.nit:7457 */
40678 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7457);
40679 }
40680 /* ./parser//parser_prod.nit:7459 */
40681 goto label1;
40682 }
40683 label1: while(0);
40684 stack_frame_head = fra.me.prev;
40685 return;
40686 }
40687 void parser___parser_prod___ABreakClosureId___visit_all(val_t p0, val_t p1){
40688 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
40689 val_t REGB0;
40690 val_t tmp;
40691 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40692 fra.me.file = LOCATE_parser___parser_prod;
40693 fra.me.line = 7463;
40694 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___visit_all;
40695 fra.me.has_broke = 0;
40696 fra.me.REG_size = 2;
40697 fra.me.nitni_local_ref_head = NULL;
40698 fra.me.REG[0] = NIT_NULL;
40699 fra.me.REG[1] = NIT_NULL;
40700 fra.me.REG[0] = p0;
40701 fra.me.REG[1] = p1;
40702 /* ./parser//parser_prod.nit:7465 */
40703 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
40704 if (UNTAG_Bool(REGB0)) {
40705 } else {
40706 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 7465);
40707 }
40708 fra.me.REG[0] = ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]);
40709 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40710 stack_frame_head = fra.me.prev;
40711 return;
40712 }
40713 void parser___parser_prod___AModuleName___empty_init(val_t p0, int* init_table){
40714 int itpos265 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuleName].i;
40715 struct {struct stack_frame_t me;} fra;
40716 val_t tmp;
40717 if (init_table[itpos265]) return;
40718 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40719 fra.me.file = LOCATE_parser___parser_prod;
40720 fra.me.line = 7469;
40721 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___empty_init;
40722 fra.me.has_broke = 0;
40723 fra.me.REG_size = 1;
40724 fra.me.nitni_local_ref_head = NULL;
40725 fra.me.REG[0] = NIT_NULL;
40726 fra.me.REG[0] = p0;
40727 stack_frame_head = fra.me.prev;
40728 init_table[itpos265] = 1;
40729 return;
40730 }
40731 void parser___parser_prod___AModuleName___init_amodulename(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
40732 int itpos266 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuleName].i;
40733 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
40734 val_t REGB0;
40735 val_t REGB1;
40736 val_t tmp;
40737 if (init_table[itpos266]) return;
40738 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40739 fra.me.file = LOCATE_parser___parser_prod;
40740 fra.me.line = 7471;
40741 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___init_amodulename;
40742 fra.me.has_broke = 0;
40743 fra.me.REG_size = 5;
40744 fra.me.nitni_local_ref_head = NULL;
40745 fra.me.REG[0] = NIT_NULL;
40746 fra.me.REG[1] = NIT_NULL;
40747 fra.me.REG[2] = NIT_NULL;
40748 fra.me.REG[3] = NIT_NULL;
40749 fra.me.REG[4] = NIT_NULL;
40750 fra.me.REG[0] = p0;
40751 fra.me.REG[1] = p1;
40752 fra.me.REG[2] = p2;
40753 fra.me.REG[3] = p3;
40754 /* ./parser//parser_prod.nit:7471 */
40755 fra.me.REG[4] = fra.me.REG[0];
40756 /* ./parser//parser_prod.nit:7477 */
40757 CALL_parser___parser_prod___AModuleName___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
40758 /* ./parser//parser_prod.nit:7478 */
40759 ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[4]) = fra.me.REG[1];
40760 /* ./parser//parser_prod.nit:7479 */
40761 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40762 if (UNTAG_Bool(REGB0)) {
40763 } else {
40764 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40765 if (UNTAG_Bool(REGB1)) {
40766 REGB1 = TAG_Bool(false);
40767 REGB0 = REGB1;
40768 } else {
40769 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
40770 REGB0 = REGB1;
40771 }
40772 }
40773 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40774 if (UNTAG_Bool(REGB0)) {
40775 /* ./parser//parser_prod.nit:7480 */
40776 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40777 if (UNTAG_Bool(REGB0)) {
40778 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7480);
40779 }
40780 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
40781 }
40782 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));
40783 /* ./parser//parser_prod.nit:7487 */
40784 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
40785 if (UNTAG_Bool(REGB0)) {
40786 } else {
40787 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7487);
40788 }
40789 ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[4]) = fra.me.REG[3];
40790 /* ./parser//parser_prod.nit:7488 */
40791 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40792 if (UNTAG_Bool(REGB0)) {
40793 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7488);
40794 }
40795 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
40796 stack_frame_head = fra.me.prev;
40797 init_table[itpos266] = 1;
40798 return;
40799 }
40800 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){
40801 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
40802 val_t REGB0;
40803 fun_t CREG[1];
40804 val_t tmp;
40805 /* ./parser//parser_prod.nit:7482 */
40806 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40807 fra.me.file = LOCATE_parser___parser_prod;
40808 fra.me.line = 0;
40809 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___init_amodulename;
40810 fra.me.has_broke = 0;
40811 fra.me.REG_size = 2;
40812 fra.me.nitni_local_ref_head = NULL;
40813 fra.me.REG[0] = NIT_NULL;
40814 fra.me.REG[1] = NIT_NULL;
40815 fra.me.closure_ctx = closctx_param;
40816 fra.me.closure_funs = CREG;
40817 fra.me.REG[0] = p0;
40818 CREG[0] = clos_fun0;
40819 /* ./parser//parser_prod.nit:7483 */
40820 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
40821 if (UNTAG_Bool(REGB0)) {
40822 } else {
40823 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7483);
40824 }
40825 /* ./parser//parser_prod.nit:7484 */
40826 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(closctx->REG[4])!=NIT_NULL);
40827 if (UNTAG_Bool(REGB0)) {
40828 } else {
40829 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7484);
40830 }
40831 fra.me.REG[1] = ATTR_parser___parser_nodes___AModuleName____n_path(closctx->REG[4]);
40832 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40833 /* ./parser//parser_prod.nit:7485 */
40834 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
40835 stack_frame_head = fra.me.prev;
40836 return;
40837 }
40838 void parser___parser_prod___AModuleName___replace_child(val_t p0, val_t p1, val_t p2){
40839 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40840 val_t REGB0;
40841 val_t REGB1;
40842 val_t REGB2;
40843 val_t REGB3;
40844 val_t REGB4;
40845 val_t tmp;
40846 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40847 fra.me.file = LOCATE_parser___parser_prod;
40848 fra.me.line = 7491;
40849 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___replace_child;
40850 fra.me.has_broke = 0;
40851 fra.me.REG_size = 4;
40852 fra.me.nitni_local_ref_head = NULL;
40853 fra.me.REG[0] = NIT_NULL;
40854 fra.me.REG[1] = NIT_NULL;
40855 fra.me.REG[2] = NIT_NULL;
40856 fra.me.REG[3] = NIT_NULL;
40857 fra.me.REG[0] = p0;
40858 fra.me.REG[1] = p1;
40859 fra.me.REG[2] = p2;
40860 /* ./parser//parser_prod.nit:7493 */
40861 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]);
40862 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
40863 if (UNTAG_Bool(REGB0)) {
40864 } else {
40865 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40866 if (UNTAG_Bool(REGB1)) {
40867 REGB1 = TAG_Bool(false);
40868 REGB0 = REGB1;
40869 } else {
40870 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40871 REGB0 = REGB1;
40872 }
40873 }
40874 if (UNTAG_Bool(REGB0)) {
40875 /* ./parser//parser_prod.nit:7494 */
40876 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40877 if (UNTAG_Bool(REGB0)) {
40878 } else {
40879 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40880 if (UNTAG_Bool(REGB1)) {
40881 REGB1 = TAG_Bool(false);
40882 REGB0 = REGB1;
40883 } else {
40884 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40885 REGB0 = REGB1;
40886 }
40887 }
40888 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40889 if (UNTAG_Bool(REGB0)) {
40890 /* ./parser//parser_prod.nit:7495 */
40891 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40892 if (UNTAG_Bool(REGB0)) {
40893 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7495);
40894 }
40895 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40896 /* ./parser//parser_prod.nit:7496 */
40897 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*/;
40898 if (UNTAG_Bool(REGB0)) {
40899 } else {
40900 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7496);
40901 }
40902 /* ./parser//parser_prod.nit:7497 */
40903 ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]) = fra.me.REG[2];
40904 } else {
40905 /* ./parser//parser_prod.nit:7499 */
40906 ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]) = NIT_NULL;
40907 }
40908 /* ./parser//parser_prod.nit:7501 */
40909 goto label1;
40910 }
40911 /* ./parser//parser_prod.nit:7503 */
40912 REGB0 = TAG_Int(0);
40913 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
40914 if (UNTAG_Bool(REGB1)) {
40915 } else {
40916 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7503);
40917 }
40918 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
40919 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
40920 /* ./../lib/standard//kernel.nit:352 */
40921 while(1) {
40922 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
40923 if (UNTAG_Bool(REGB2)) {
40924 } else {
40925 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
40926 }
40927 /* ./../lib/standard//kernel.nit:232 */
40928 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
40929 /* ./../lib/standard//kernel.nit:352 */
40930 if (UNTAG_Bool(REGB2)) {
40931 /* ./parser//parser_prod.nit:7503 */
40932 REGB2 = REGB0;
40933 /* ./parser//parser_prod.nit:7504 */
40934 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
40935 if (UNTAG_Bool(REGB3)) {
40936 } else {
40937 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7504);
40938 }
40939 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
40940 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
40941 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
40942 if (UNTAG_Bool(REGB3)) {
40943 } else {
40944 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40945 if (UNTAG_Bool(REGB4)) {
40946 REGB4 = TAG_Bool(false);
40947 REGB3 = REGB4;
40948 } else {
40949 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40950 REGB3 = REGB4;
40951 }
40952 }
40953 if (UNTAG_Bool(REGB3)) {
40954 /* ./parser//parser_prod.nit:7505 */
40955 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40956 if (UNTAG_Bool(REGB3)) {
40957 } else {
40958 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40959 if (UNTAG_Bool(REGB4)) {
40960 REGB4 = TAG_Bool(false);
40961 REGB3 = REGB4;
40962 } else {
40963 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40964 REGB3 = REGB4;
40965 }
40966 }
40967 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
40968 if (UNTAG_Bool(REGB3)) {
40969 /* ./parser//parser_prod.nit:7506 */
40970 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*/;
40971 if (UNTAG_Bool(REGB3)) {
40972 } else {
40973 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7506);
40974 }
40975 /* ./parser//parser_prod.nit:7507 */
40976 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
40977 if (UNTAG_Bool(REGB3)) {
40978 } else {
40979 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7507);
40980 }
40981 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
40982 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
40983 /* ./parser//parser_prod.nit:7508 */
40984 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40985 if (UNTAG_Bool(REGB3)) {
40986 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7508);
40987 }
40988 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40989 } else {
40990 /* ./parser//parser_prod.nit:7510 */
40991 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
40992 if (UNTAG_Bool(REGB3)) {
40993 } else {
40994 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7510);
40995 }
40996 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
40997 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
40998 }
40999 /* ./parser//parser_prod.nit:7512 */
41000 goto label1;
41001 }
41002 /* ./../lib/standard//kernel.nit:354 */
41003 REGB2 = TAG_Int(1);
41004 /* ./../lib/standard//kernel.nit:235 */
41005 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
41006 /* ./../lib/standard//kernel.nit:354 */
41007 REGB0 = REGB2;
41008 } else {
41009 /* ./../lib/standard//kernel.nit:352 */
41010 goto label2;
41011 }
41012 }
41013 label2: while(0);
41014 /* ./parser//parser_prod.nit:7515 */
41015 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0])!=NIT_NULL);
41016 if (UNTAG_Bool(REGB0)) {
41017 } else {
41018 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7515);
41019 }
41020 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0]);
41021 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41022 if (UNTAG_Bool(REGB0)) {
41023 } else {
41024 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41025 REGB0 = REGB1;
41026 }
41027 if (UNTAG_Bool(REGB0)) {
41028 /* ./parser//parser_prod.nit:7516 */
41029 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41030 if (UNTAG_Bool(REGB0)) {
41031 } else {
41032 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41033 if (UNTAG_Bool(REGB1)) {
41034 REGB1 = TAG_Bool(false);
41035 REGB0 = REGB1;
41036 } else {
41037 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41038 REGB0 = REGB1;
41039 }
41040 }
41041 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41042 if (UNTAG_Bool(REGB0)) {
41043 /* ./parser//parser_prod.nit:7517 */
41044 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41045 if (UNTAG_Bool(REGB0)) {
41046 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7517);
41047 }
41048 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41049 /* ./parser//parser_prod.nit:7518 */
41050 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*/;
41051 if (UNTAG_Bool(REGB0)) {
41052 } else {
41053 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7518);
41054 }
41055 /* ./parser//parser_prod.nit:7519 */
41056 ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0]) = fra.me.REG[2];
41057 } else {
41058 /* ./parser//parser_prod.nit:7521 */
41059 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7521);
41060 }
41061 /* ./parser//parser_prod.nit:7523 */
41062 goto label1;
41063 }
41064 label1: while(0);
41065 stack_frame_head = fra.me.prev;
41066 return;
41067 }
41068 void parser___parser_prod___AModuleName___visit_all(val_t p0, val_t p1){
41069 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41070 val_t REGB0;
41071 val_t REGB1;
41072 val_t tmp;
41073 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41074 fra.me.file = LOCATE_parser___parser_prod;
41075 fra.me.line = 7527;
41076 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___visit_all;
41077 fra.me.has_broke = 0;
41078 fra.me.REG_size = 4;
41079 fra.me.nitni_local_ref_head = NULL;
41080 fra.me.REG[0] = NIT_NULL;
41081 fra.me.REG[1] = NIT_NULL;
41082 fra.me.REG[2] = NIT_NULL;
41083 fra.me.REG[3] = NIT_NULL;
41084 fra.me.REG[0] = p0;
41085 fra.me.REG[1] = p1;
41086 /* ./parser//parser_prod.nit:7527 */
41087 fra.me.REG[2] = fra.me.REG[0];
41088 /* ./parser//parser_prod.nit:7529 */
41089 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[2]);
41090 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41091 if (UNTAG_Bool(REGB0)) {
41092 } else {
41093 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41094 if (UNTAG_Bool(REGB1)) {
41095 REGB1 = TAG_Bool(false);
41096 REGB0 = REGB1;
41097 } else {
41098 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
41099 REGB0 = REGB1;
41100 }
41101 }
41102 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41103 if (UNTAG_Bool(REGB0)) {
41104 /* ./parser//parser_prod.nit:7530 */
41105 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[2]);
41106 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*/;
41107 if (UNTAG_Bool(REGB0)) {
41108 } else {
41109 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7530);
41110 }
41111 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
41112 }
41113 /* ./parser//parser_prod.nit:7532 */
41114 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[2])!=NIT_NULL);
41115 if (UNTAG_Bool(REGB0)) {
41116 } else {
41117 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7532);
41118 }
41119 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[2]);
41120 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));
41121 /* ./parser//parser_prod.nit:7535 */
41122 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[2])!=NIT_NULL);
41123 if (UNTAG_Bool(REGB0)) {
41124 } else {
41125 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7535);
41126 }
41127 fra.me.REG[2] = ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[2]);
41128 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
41129 stack_frame_head = fra.me.prev;
41130 return;
41131 }
41132 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){
41133 struct {struct stack_frame_t me;} fra;
41134 fun_t CREG[1];
41135 val_t tmp;
41136 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41137 fra.me.file = LOCATE_parser___parser_prod;
41138 fra.me.line = 0;
41139 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___visit_all;
41140 fra.me.has_broke = 0;
41141 fra.me.REG_size = 1;
41142 fra.me.nitni_local_ref_head = NULL;
41143 fra.me.REG[0] = NIT_NULL;
41144 fra.me.closure_ctx = closctx_param;
41145 fra.me.closure_funs = CREG;
41146 fra.me.REG[0] = p0;
41147 CREG[0] = clos_fun0;
41148 /* ./parser//parser_prod.nit:7533 */
41149 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
41150 stack_frame_head = fra.me.prev;
41151 return;
41152 }
41153 void parser___parser_prod___AExternCalls___empty_init(val_t p0, int* init_table){
41154 int itpos267 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCalls].i;
41155 struct {struct stack_frame_t me;} fra;
41156 val_t tmp;
41157 if (init_table[itpos267]) return;
41158 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41159 fra.me.file = LOCATE_parser___parser_prod;
41160 fra.me.line = 7539;
41161 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___empty_init;
41162 fra.me.has_broke = 0;
41163 fra.me.REG_size = 1;
41164 fra.me.nitni_local_ref_head = NULL;
41165 fra.me.REG[0] = NIT_NULL;
41166 fra.me.REG[0] = p0;
41167 stack_frame_head = fra.me.prev;
41168 init_table[itpos267] = 1;
41169 return;
41170 }
41171 void parser___parser_prod___AExternCalls___init_aexterncalls(val_t p0, val_t p1, val_t p2, int* init_table){
41172 int itpos268 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCalls].i;
41173 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41174 val_t REGB0;
41175 val_t tmp;
41176 if (init_table[itpos268]) return;
41177 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41178 fra.me.file = LOCATE_parser___parser_prod;
41179 fra.me.line = 7541;
41180 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___init_aexterncalls;
41181 fra.me.has_broke = 0;
41182 fra.me.REG_size = 4;
41183 fra.me.nitni_local_ref_head = NULL;
41184 fra.me.REG[0] = NIT_NULL;
41185 fra.me.REG[1] = NIT_NULL;
41186 fra.me.REG[2] = NIT_NULL;
41187 fra.me.REG[3] = NIT_NULL;
41188 fra.me.REG[0] = p0;
41189 fra.me.REG[1] = p1;
41190 fra.me.REG[2] = p2;
41191 /* ./parser//parser_prod.nit:7541 */
41192 fra.me.REG[3] = fra.me.REG[0];
41193 /* ./parser//parser_prod.nit:7546 */
41194 CALL_parser___parser_prod___AExternCalls___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
41195 /* ./parser//parser_prod.nit:7547 */
41196 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
41197 if (UNTAG_Bool(REGB0)) {
41198 } else {
41199 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7547);
41200 }
41201 ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[3]) = fra.me.REG[1];
41202 /* ./parser//parser_prod.nit:7548 */
41203 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
41204 if (UNTAG_Bool(REGB0)) {
41205 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7548);
41206 }
41207 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
41208 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));
41209 stack_frame_head = fra.me.prev;
41210 init_table[itpos268] = 1;
41211 return;
41212 }
41213 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){
41214 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
41215 val_t REGB0;
41216 fun_t CREG[1];
41217 val_t tmp;
41218 /* ./parser//parser_prod.nit:7549 */
41219 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41220 fra.me.file = LOCATE_parser___parser_prod;
41221 fra.me.line = 0;
41222 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___init_aexterncalls;
41223 fra.me.has_broke = 0;
41224 fra.me.REG_size = 2;
41225 fra.me.nitni_local_ref_head = NULL;
41226 fra.me.REG[0] = NIT_NULL;
41227 fra.me.REG[1] = NIT_NULL;
41228 fra.me.closure_ctx = closctx_param;
41229 fra.me.closure_funs = CREG;
41230 fra.me.REG[0] = p0;
41231 CREG[0] = clos_fun0;
41232 /* ./parser//parser_prod.nit:7550 */
41233 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExternCall, ID_parser___parser_nodes___AExternCall)) /*cast AExternCall*/;
41234 if (UNTAG_Bool(REGB0)) {
41235 } else {
41236 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7550);
41237 }
41238 /* ./parser//parser_prod.nit:7551 */
41239 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(closctx->REG[3])!=NIT_NULL);
41240 if (UNTAG_Bool(REGB0)) {
41241 } else {
41242 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7551);
41243 }
41244 fra.me.REG[1] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(closctx->REG[3]);
41245 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
41246 /* ./parser//parser_prod.nit:7552 */
41247 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[3]);
41248 stack_frame_head = fra.me.prev;
41249 return;
41250 }
41251 void parser___parser_prod___AExternCalls___replace_child(val_t p0, val_t p1, val_t p2){
41252 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41253 val_t REGB0;
41254 val_t REGB1;
41255 val_t REGB2;
41256 val_t REGB3;
41257 val_t REGB4;
41258 val_t tmp;
41259 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41260 fra.me.file = LOCATE_parser___parser_prod;
41261 fra.me.line = 7556;
41262 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___replace_child;
41263 fra.me.has_broke = 0;
41264 fra.me.REG_size = 4;
41265 fra.me.nitni_local_ref_head = NULL;
41266 fra.me.REG[0] = NIT_NULL;
41267 fra.me.REG[1] = NIT_NULL;
41268 fra.me.REG[2] = NIT_NULL;
41269 fra.me.REG[3] = NIT_NULL;
41270 fra.me.REG[0] = p0;
41271 fra.me.REG[1] = p1;
41272 fra.me.REG[2] = p2;
41273 /* ./parser//parser_prod.nit:7558 */
41274 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0])!=NIT_NULL);
41275 if (UNTAG_Bool(REGB0)) {
41276 } else {
41277 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 7558);
41278 }
41279 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]);
41280 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41281 if (UNTAG_Bool(REGB0)) {
41282 } else {
41283 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41284 REGB0 = REGB1;
41285 }
41286 if (UNTAG_Bool(REGB0)) {
41287 /* ./parser//parser_prod.nit:7559 */
41288 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41289 if (UNTAG_Bool(REGB0)) {
41290 } else {
41291 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41292 if (UNTAG_Bool(REGB1)) {
41293 REGB1 = TAG_Bool(false);
41294 REGB0 = REGB1;
41295 } else {
41296 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41297 REGB0 = REGB1;
41298 }
41299 }
41300 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41301 if (UNTAG_Bool(REGB0)) {
41302 /* ./parser//parser_prod.nit:7560 */
41303 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41304 if (UNTAG_Bool(REGB0)) {
41305 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7560);
41306 }
41307 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41308 /* ./parser//parser_prod.nit:7561 */
41309 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*/;
41310 if (UNTAG_Bool(REGB0)) {
41311 } else {
41312 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7561);
41313 }
41314 /* ./parser//parser_prod.nit:7562 */
41315 ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
41316 } else {
41317 /* ./parser//parser_prod.nit:7564 */
41318 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7564);
41319 }
41320 /* ./parser//parser_prod.nit:7566 */
41321 goto label1;
41322 }
41323 /* ./parser//parser_prod.nit:7568 */
41324 REGB0 = TAG_Int(0);
41325 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
41326 if (UNTAG_Bool(REGB1)) {
41327 } else {
41328 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7568);
41329 }
41330 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
41331 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
41332 /* ./../lib/standard//kernel.nit:352 */
41333 while(1) {
41334 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
41335 if (UNTAG_Bool(REGB2)) {
41336 } else {
41337 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
41338 }
41339 /* ./../lib/standard//kernel.nit:232 */
41340 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
41341 /* ./../lib/standard//kernel.nit:352 */
41342 if (UNTAG_Bool(REGB2)) {
41343 /* ./parser//parser_prod.nit:7568 */
41344 REGB2 = REGB0;
41345 /* ./parser//parser_prod.nit:7569 */
41346 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
41347 if (UNTAG_Bool(REGB3)) {
41348 } else {
41349 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7569);
41350 }
41351 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
41352 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
41353 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
41354 if (UNTAG_Bool(REGB3)) {
41355 } else {
41356 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41357 if (UNTAG_Bool(REGB4)) {
41358 REGB4 = TAG_Bool(false);
41359 REGB3 = REGB4;
41360 } else {
41361 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41362 REGB3 = REGB4;
41363 }
41364 }
41365 if (UNTAG_Bool(REGB3)) {
41366 /* ./parser//parser_prod.nit:7570 */
41367 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41368 if (UNTAG_Bool(REGB3)) {
41369 } else {
41370 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41371 if (UNTAG_Bool(REGB4)) {
41372 REGB4 = TAG_Bool(false);
41373 REGB3 = REGB4;
41374 } else {
41375 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41376 REGB3 = REGB4;
41377 }
41378 }
41379 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
41380 if (UNTAG_Bool(REGB3)) {
41381 /* ./parser//parser_prod.nit:7571 */
41382 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*/;
41383 if (UNTAG_Bool(REGB3)) {
41384 } else {
41385 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7571);
41386 }
41387 /* ./parser//parser_prod.nit:7572 */
41388 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
41389 if (UNTAG_Bool(REGB3)) {
41390 } else {
41391 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7572);
41392 }
41393 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
41394 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
41395 /* ./parser//parser_prod.nit:7573 */
41396 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41397 if (UNTAG_Bool(REGB3)) {
41398 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7573);
41399 }
41400 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41401 } else {
41402 /* ./parser//parser_prod.nit:7575 */
41403 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
41404 if (UNTAG_Bool(REGB3)) {
41405 } else {
41406 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7575);
41407 }
41408 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
41409 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
41410 }
41411 /* ./parser//parser_prod.nit:7577 */
41412 goto label1;
41413 }
41414 /* ./../lib/standard//kernel.nit:354 */
41415 REGB2 = TAG_Int(1);
41416 /* ./../lib/standard//kernel.nit:235 */
41417 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
41418 /* ./../lib/standard//kernel.nit:354 */
41419 REGB0 = REGB2;
41420 } else {
41421 /* ./../lib/standard//kernel.nit:352 */
41422 goto label2;
41423 }
41424 }
41425 label2: while(0);
41426 label1: while(0);
41427 stack_frame_head = fra.me.prev;
41428 return;
41429 }
41430 void parser___parser_prod___AExternCalls___visit_all(val_t p0, val_t p1){
41431 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
41432 val_t REGB0;
41433 val_t tmp;
41434 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41435 fra.me.file = LOCATE_parser___parser_prod;
41436 fra.me.line = 7582;
41437 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___visit_all;
41438 fra.me.has_broke = 0;
41439 fra.me.REG_size = 3;
41440 fra.me.nitni_local_ref_head = NULL;
41441 fra.me.REG[0] = NIT_NULL;
41442 fra.me.REG[1] = NIT_NULL;
41443 fra.me.REG[2] = NIT_NULL;
41444 fra.me.REG[0] = p0;
41445 fra.me.REG[1] = p1;
41446 /* ./parser//parser_prod.nit:7584 */
41447 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0])!=NIT_NULL);
41448 if (UNTAG_Bool(REGB0)) {
41449 } else {
41450 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 7584);
41451 }
41452 fra.me.REG[2] = ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]);
41453 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
41454 /* ./parser//parser_prod.nit:7585 */
41455 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
41456 if (UNTAG_Bool(REGB0)) {
41457 } else {
41458 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7585);
41459 }
41460 fra.me.REG[0] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
41461 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));
41462 stack_frame_head = fra.me.prev;
41463 return;
41464 }
41465 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){
41466 struct {struct stack_frame_t me;} fra;
41467 fun_t CREG[1];
41468 val_t tmp;
41469 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41470 fra.me.file = LOCATE_parser___parser_prod;
41471 fra.me.line = 0;
41472 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___visit_all;
41473 fra.me.has_broke = 0;
41474 fra.me.REG_size = 1;
41475 fra.me.nitni_local_ref_head = NULL;
41476 fra.me.REG[0] = NIT_NULL;
41477 fra.me.closure_ctx = closctx_param;
41478 fra.me.closure_funs = CREG;
41479 fra.me.REG[0] = p0;
41480 CREG[0] = clos_fun0;
41481 /* ./parser//parser_prod.nit:7586 */
41482 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
41483 stack_frame_head = fra.me.prev;
41484 return;
41485 }
41486 void parser___parser_prod___AExternCall___empty_init(val_t p0, int* init_table){
41487 int itpos269 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCall].i;
41488 struct {struct stack_frame_t me;} fra;
41489 val_t tmp;
41490 if (init_table[itpos269]) return;
41491 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41492 fra.me.file = LOCATE_parser___parser_prod;
41493 fra.me.line = 7591;
41494 fra.me.meth = LOCATE_parser___parser_prod___AExternCall___empty_init;
41495 fra.me.has_broke = 0;
41496 fra.me.REG_size = 1;
41497 fra.me.nitni_local_ref_head = NULL;
41498 fra.me.REG[0] = NIT_NULL;
41499 fra.me.REG[0] = p0;
41500 stack_frame_head = fra.me.prev;
41501 init_table[itpos269] = 1;
41502 return;
41503 }
41504 void parser___parser_prod___AExternCall___init_aexterncall(val_t p0, int* init_table){
41505 int itpos270 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCall].i;
41506 struct {struct stack_frame_t me;} fra;
41507 val_t tmp;
41508 if (init_table[itpos270]) return;
41509 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41510 fra.me.file = LOCATE_parser___parser_prod;
41511 fra.me.line = 7593;
41512 fra.me.meth = LOCATE_parser___parser_prod___AExternCall___init_aexterncall;
41513 fra.me.has_broke = 0;
41514 fra.me.REG_size = 1;
41515 fra.me.nitni_local_ref_head = NULL;
41516 fra.me.REG[0] = NIT_NULL;
41517 fra.me.REG[0] = p0;
41518 /* ./parser//parser_prod.nit:7595 */
41519 CALL_parser___parser_prod___AExternCall___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
41520 stack_frame_head = fra.me.prev;
41521 init_table[itpos270] = 1;
41522 return;
41523 }
41524 void parser___parser_prod___AExternCall___replace_child(val_t p0, val_t p1, val_t p2){
41525 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
41526 val_t tmp;
41527 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41528 fra.me.file = LOCATE_parser___parser_prod;
41529 fra.me.line = 7598;
41530 fra.me.meth = LOCATE_parser___parser_prod___AExternCall___replace_child;
41531 fra.me.has_broke = 0;
41532 fra.me.REG_size = 3;
41533 fra.me.nitni_local_ref_head = NULL;
41534 fra.me.REG[0] = NIT_NULL;
41535 fra.me.REG[1] = NIT_NULL;
41536 fra.me.REG[2] = NIT_NULL;
41537 fra.me.REG[0] = p0;
41538 fra.me.REG[1] = p1;
41539 fra.me.REG[2] = p2;
41540 stack_frame_head = fra.me.prev;
41541 return;
41542 }
41543 void parser___parser_prod___AExternCall___visit_all(val_t p0, val_t p1){
41544 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
41545 val_t tmp;
41546 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41547 fra.me.file = LOCATE_parser___parser_prod;
41548 fra.me.line = 7602;
41549 fra.me.meth = LOCATE_parser___parser_prod___AExternCall___visit_all;
41550 fra.me.has_broke = 0;
41551 fra.me.REG_size = 2;
41552 fra.me.nitni_local_ref_head = NULL;
41553 fra.me.REG[0] = NIT_NULL;
41554 fra.me.REG[1] = NIT_NULL;
41555 fra.me.REG[0] = p0;
41556 fra.me.REG[1] = p1;
41557 stack_frame_head = fra.me.prev;
41558 return;
41559 }
41560 void parser___parser_prod___ASuperExternCall___empty_init(val_t p0, int* init_table){
41561 int itpos271 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExternCall].i;
41562 struct {struct stack_frame_t me;} fra;
41563 val_t tmp;
41564 if (init_table[itpos271]) return;
41565 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41566 fra.me.file = LOCATE_parser___parser_prod;
41567 fra.me.line = 7607;
41568 fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___empty_init;
41569 fra.me.has_broke = 0;
41570 fra.me.REG_size = 1;
41571 fra.me.nitni_local_ref_head = NULL;
41572 fra.me.REG[0] = NIT_NULL;
41573 fra.me.REG[0] = p0;
41574 stack_frame_head = fra.me.prev;
41575 init_table[itpos271] = 1;
41576 return;
41577 }
41578 void parser___parser_prod___ASuperExternCall___init_asuperexterncall(val_t p0, val_t p1, int* init_table){
41579 int itpos272 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExternCall].i;
41580 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
41581 val_t REGB0;
41582 val_t tmp;
41583 if (init_table[itpos272]) return;
41584 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41585 fra.me.file = LOCATE_parser___parser_prod;
41586 fra.me.line = 7609;
41587 fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___init_asuperexterncall;
41588 fra.me.has_broke = 0;
41589 fra.me.REG_size = 3;
41590 fra.me.nitni_local_ref_head = NULL;
41591 fra.me.REG[0] = NIT_NULL;
41592 fra.me.REG[1] = NIT_NULL;
41593 fra.me.REG[2] = NIT_NULL;
41594 fra.me.REG[0] = p0;
41595 fra.me.REG[1] = p1;
41596 /* ./parser//parser_prod.nit:7609 */
41597 fra.me.REG[2] = fra.me.REG[0];
41598 /* ./parser//parser_prod.nit:7613 */
41599 CALL_parser___parser_prod___ASuperExternCall___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
41600 /* ./parser//parser_prod.nit:7614 */
41601 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
41602 if (UNTAG_Bool(REGB0)) {
41603 } else {
41604 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7614);
41605 }
41606 ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[2]) = fra.me.REG[1];
41607 /* ./parser//parser_prod.nit:7615 */
41608 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
41609 if (UNTAG_Bool(REGB0)) {
41610 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7615);
41611 }
41612 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
41613 stack_frame_head = fra.me.prev;
41614 init_table[itpos272] = 1;
41615 return;
41616 }
41617 void parser___parser_prod___ASuperExternCall___replace_child(val_t p0, val_t p1, val_t p2){
41618 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41619 val_t REGB0;
41620 val_t REGB1;
41621 val_t tmp;
41622 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41623 fra.me.file = LOCATE_parser___parser_prod;
41624 fra.me.line = 7618;
41625 fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___replace_child;
41626 fra.me.has_broke = 0;
41627 fra.me.REG_size = 4;
41628 fra.me.nitni_local_ref_head = NULL;
41629 fra.me.REG[0] = NIT_NULL;
41630 fra.me.REG[1] = NIT_NULL;
41631 fra.me.REG[2] = NIT_NULL;
41632 fra.me.REG[3] = NIT_NULL;
41633 fra.me.REG[0] = p0;
41634 fra.me.REG[1] = p1;
41635 fra.me.REG[2] = p2;
41636 /* ./parser//parser_prod.nit:7620 */
41637 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
41638 if (UNTAG_Bool(REGB0)) {
41639 } else {
41640 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 7620);
41641 }
41642 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]);
41643 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41644 if (UNTAG_Bool(REGB0)) {
41645 } else {
41646 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41647 REGB0 = REGB1;
41648 }
41649 if (UNTAG_Bool(REGB0)) {
41650 /* ./parser//parser_prod.nit:7621 */
41651 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41652 if (UNTAG_Bool(REGB0)) {
41653 } else {
41654 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41655 if (UNTAG_Bool(REGB1)) {
41656 REGB1 = TAG_Bool(false);
41657 REGB0 = REGB1;
41658 } else {
41659 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41660 REGB0 = REGB1;
41661 }
41662 }
41663 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41664 if (UNTAG_Bool(REGB0)) {
41665 /* ./parser//parser_prod.nit:7622 */
41666 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41667 if (UNTAG_Bool(REGB0)) {
41668 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7622);
41669 }
41670 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41671 /* ./parser//parser_prod.nit:7623 */
41672 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*/;
41673 if (UNTAG_Bool(REGB0)) {
41674 } else {
41675 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7623);
41676 }
41677 /* ./parser//parser_prod.nit:7624 */
41678 ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
41679 } else {
41680 /* ./parser//parser_prod.nit:7626 */
41681 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7626);
41682 }
41683 /* ./parser//parser_prod.nit:7628 */
41684 goto label1;
41685 }
41686 label1: while(0);
41687 stack_frame_head = fra.me.prev;
41688 return;
41689 }
41690 void parser___parser_prod___ASuperExternCall___visit_all(val_t p0, val_t p1){
41691 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
41692 val_t REGB0;
41693 val_t tmp;
41694 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41695 fra.me.file = LOCATE_parser___parser_prod;
41696 fra.me.line = 7632;
41697 fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___visit_all;
41698 fra.me.has_broke = 0;
41699 fra.me.REG_size = 2;
41700 fra.me.nitni_local_ref_head = NULL;
41701 fra.me.REG[0] = NIT_NULL;
41702 fra.me.REG[1] = NIT_NULL;
41703 fra.me.REG[0] = p0;
41704 fra.me.REG[1] = p1;
41705 /* ./parser//parser_prod.nit:7634 */
41706 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
41707 if (UNTAG_Bool(REGB0)) {
41708 } else {
41709 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 7634);
41710 }
41711 fra.me.REG[0] = ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]);
41712 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
41713 stack_frame_head = fra.me.prev;
41714 return;
41715 }
41716 void parser___parser_prod___ALocalPropExternCall___empty_init(val_t p0, int* init_table){
41717 int itpos273 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALocalPropExternCall].i;
41718 struct {struct stack_frame_t me;} fra;
41719 val_t tmp;
41720 if (init_table[itpos273]) return;
41721 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41722 fra.me.file = LOCATE_parser___parser_prod;
41723 fra.me.line = 7638;
41724 fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___empty_init;
41725 fra.me.has_broke = 0;
41726 fra.me.REG_size = 1;
41727 fra.me.nitni_local_ref_head = NULL;
41728 fra.me.REG[0] = NIT_NULL;
41729 fra.me.REG[0] = p0;
41730 stack_frame_head = fra.me.prev;
41731 init_table[itpos273] = 1;
41732 return;
41733 }
41734 void parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall(val_t p0, val_t p1, int* init_table){
41735 int itpos274 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALocalPropExternCall].i;
41736 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
41737 val_t REGB0;
41738 val_t tmp;
41739 if (init_table[itpos274]) return;
41740 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41741 fra.me.file = LOCATE_parser___parser_prod;
41742 fra.me.line = 7640;
41743 fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall;
41744 fra.me.has_broke = 0;
41745 fra.me.REG_size = 3;
41746 fra.me.nitni_local_ref_head = NULL;
41747 fra.me.REG[0] = NIT_NULL;
41748 fra.me.REG[1] = NIT_NULL;
41749 fra.me.REG[2] = NIT_NULL;
41750 fra.me.REG[0] = p0;
41751 fra.me.REG[1] = p1;
41752 /* ./parser//parser_prod.nit:7640 */
41753 fra.me.REG[2] = fra.me.REG[0];
41754 /* ./parser//parser_prod.nit:7644 */
41755 CALL_parser___parser_prod___ALocalPropExternCall___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
41756 /* ./parser//parser_prod.nit:7645 */
41757 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
41758 if (UNTAG_Bool(REGB0)) {
41759 } else {
41760 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7645);
41761 }
41762 ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[2]) = fra.me.REG[1];
41763 /* ./parser//parser_prod.nit:7646 */
41764 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
41765 if (UNTAG_Bool(REGB0)) {
41766 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7646);
41767 }
41768 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
41769 stack_frame_head = fra.me.prev;
41770 init_table[itpos274] = 1;
41771 return;
41772 }
41773 void parser___parser_prod___ALocalPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
41774 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41775 val_t REGB0;
41776 val_t REGB1;
41777 val_t tmp;
41778 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41779 fra.me.file = LOCATE_parser___parser_prod;
41780 fra.me.line = 7649;
41781 fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___replace_child;
41782 fra.me.has_broke = 0;
41783 fra.me.REG_size = 4;
41784 fra.me.nitni_local_ref_head = NULL;
41785 fra.me.REG[0] = NIT_NULL;
41786 fra.me.REG[1] = NIT_NULL;
41787 fra.me.REG[2] = NIT_NULL;
41788 fra.me.REG[3] = NIT_NULL;
41789 fra.me.REG[0] = p0;
41790 fra.me.REG[1] = p1;
41791 fra.me.REG[2] = p2;
41792 /* ./parser//parser_prod.nit:7651 */
41793 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
41794 if (UNTAG_Bool(REGB0)) {
41795 } else {
41796 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 7651);
41797 }
41798 fra.me.REG[3] = ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]);
41799 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41800 if (UNTAG_Bool(REGB0)) {
41801 } else {
41802 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41803 REGB0 = REGB1;
41804 }
41805 if (UNTAG_Bool(REGB0)) {
41806 /* ./parser//parser_prod.nit:7652 */
41807 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41808 if (UNTAG_Bool(REGB0)) {
41809 } else {
41810 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41811 if (UNTAG_Bool(REGB1)) {
41812 REGB1 = TAG_Bool(false);
41813 REGB0 = REGB1;
41814 } else {
41815 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41816 REGB0 = REGB1;
41817 }
41818 }
41819 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41820 if (UNTAG_Bool(REGB0)) {
41821 /* ./parser//parser_prod.nit:7653 */
41822 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41823 if (UNTAG_Bool(REGB0)) {
41824 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7653);
41825 }
41826 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41827 /* ./parser//parser_prod.nit:7654 */
41828 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*/;
41829 if (UNTAG_Bool(REGB0)) {
41830 } else {
41831 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7654);
41832 }
41833 /* ./parser//parser_prod.nit:7655 */
41834 ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]) = fra.me.REG[2];
41835 } else {
41836 /* ./parser//parser_prod.nit:7657 */
41837 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7657);
41838 }
41839 /* ./parser//parser_prod.nit:7659 */
41840 goto label1;
41841 }
41842 label1: while(0);
41843 stack_frame_head = fra.me.prev;
41844 return;
41845 }
41846 void parser___parser_prod___ALocalPropExternCall___visit_all(val_t p0, val_t p1){
41847 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
41848 val_t REGB0;
41849 val_t tmp;
41850 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41851 fra.me.file = LOCATE_parser___parser_prod;
41852 fra.me.line = 7663;
41853 fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___visit_all;
41854 fra.me.has_broke = 0;
41855 fra.me.REG_size = 2;
41856 fra.me.nitni_local_ref_head = NULL;
41857 fra.me.REG[0] = NIT_NULL;
41858 fra.me.REG[1] = NIT_NULL;
41859 fra.me.REG[0] = p0;
41860 fra.me.REG[1] = p1;
41861 /* ./parser//parser_prod.nit:7665 */
41862 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
41863 if (UNTAG_Bool(REGB0)) {
41864 } else {
41865 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 7665);
41866 }
41867 fra.me.REG[0] = ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]);
41868 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
41869 stack_frame_head = fra.me.prev;
41870 return;
41871 }
41872 void parser___parser_prod___AFullPropExternCall___empty_init(val_t p0, int* init_table){
41873 int itpos275 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFullPropExternCall].i;
41874 struct {struct stack_frame_t me;} fra;
41875 val_t tmp;
41876 if (init_table[itpos275]) return;
41877 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41878 fra.me.file = LOCATE_parser___parser_prod;
41879 fra.me.line = 7669;
41880 fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___empty_init;
41881 fra.me.has_broke = 0;
41882 fra.me.REG_size = 1;
41883 fra.me.nitni_local_ref_head = NULL;
41884 fra.me.REG[0] = NIT_NULL;
41885 fra.me.REG[0] = p0;
41886 stack_frame_head = fra.me.prev;
41887 init_table[itpos275] = 1;
41888 return;
41889 }
41890 void parser___parser_prod___AFullPropExternCall___init_afullpropexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
41891 int itpos276 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFullPropExternCall].i;
41892 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
41893 val_t REGB0;
41894 val_t REGB1;
41895 val_t tmp;
41896 if (init_table[itpos276]) return;
41897 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41898 fra.me.file = LOCATE_parser___parser_prod;
41899 fra.me.line = 7671;
41900 fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___init_afullpropexterncall;
41901 fra.me.has_broke = 0;
41902 fra.me.REG_size = 5;
41903 fra.me.nitni_local_ref_head = NULL;
41904 fra.me.REG[0] = NIT_NULL;
41905 fra.me.REG[1] = NIT_NULL;
41906 fra.me.REG[2] = NIT_NULL;
41907 fra.me.REG[3] = NIT_NULL;
41908 fra.me.REG[4] = NIT_NULL;
41909 fra.me.REG[0] = p0;
41910 fra.me.REG[1] = p1;
41911 fra.me.REG[2] = p2;
41912 fra.me.REG[3] = p3;
41913 /* ./parser//parser_prod.nit:7671 */
41914 fra.me.REG[4] = fra.me.REG[0];
41915 /* ./parser//parser_prod.nit:7677 */
41916 CALL_parser___parser_prod___AFullPropExternCall___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
41917 /* ./parser//parser_prod.nit:7678 */
41918 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
41919 if (UNTAG_Bool(REGB0)) {
41920 } else {
41921 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7678);
41922 }
41923 ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[4]) = fra.me.REG[1];
41924 /* ./parser//parser_prod.nit:7679 */
41925 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
41926 if (UNTAG_Bool(REGB0)) {
41927 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7679);
41928 }
41929 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
41930 /* ./parser//parser_prod.nit:7680 */
41931 ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[4]) = fra.me.REG[2];
41932 /* ./parser//parser_prod.nit:7681 */
41933 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41934 if (UNTAG_Bool(REGB0)) {
41935 } else {
41936 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41937 if (UNTAG_Bool(REGB1)) {
41938 REGB1 = TAG_Bool(false);
41939 REGB0 = REGB1;
41940 } else {
41941 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41942 REGB0 = REGB1;
41943 }
41944 }
41945 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41946 if (UNTAG_Bool(REGB0)) {
41947 /* ./parser//parser_prod.nit:7682 */
41948 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41949 if (UNTAG_Bool(REGB0)) {
41950 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7682);
41951 }
41952 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
41953 }
41954 /* ./parser//parser_prod.nit:7684 */
41955 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
41956 if (UNTAG_Bool(REGB0)) {
41957 } else {
41958 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7684);
41959 }
41960 ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[4]) = fra.me.REG[3];
41961 /* ./parser//parser_prod.nit:7685 */
41962 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41963 if (UNTAG_Bool(REGB0)) {
41964 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7685);
41965 }
41966 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
41967 stack_frame_head = fra.me.prev;
41968 init_table[itpos276] = 1;
41969 return;
41970 }
41971 void parser___parser_prod___AFullPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
41972 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41973 val_t REGB0;
41974 val_t REGB1;
41975 val_t tmp;
41976 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41977 fra.me.file = LOCATE_parser___parser_prod;
41978 fra.me.line = 7688;
41979 fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___replace_child;
41980 fra.me.has_broke = 0;
41981 fra.me.REG_size = 4;
41982 fra.me.nitni_local_ref_head = NULL;
41983 fra.me.REG[0] = NIT_NULL;
41984 fra.me.REG[1] = NIT_NULL;
41985 fra.me.REG[2] = NIT_NULL;
41986 fra.me.REG[3] = NIT_NULL;
41987 fra.me.REG[0] = p0;
41988 fra.me.REG[1] = p1;
41989 fra.me.REG[2] = p2;
41990 /* ./parser//parser_prod.nit:7690 */
41991 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
41992 if (UNTAG_Bool(REGB0)) {
41993 } else {
41994 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 7690);
41995 }
41996 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0]);
41997 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41998 if (UNTAG_Bool(REGB0)) {
41999 } else {
42000 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42001 REGB0 = REGB1;
42002 }
42003 if (UNTAG_Bool(REGB0)) {
42004 /* ./parser//parser_prod.nit:7691 */
42005 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42006 if (UNTAG_Bool(REGB0)) {
42007 } else {
42008 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42009 if (UNTAG_Bool(REGB1)) {
42010 REGB1 = TAG_Bool(false);
42011 REGB0 = REGB1;
42012 } else {
42013 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42014 REGB0 = REGB1;
42015 }
42016 }
42017 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42018 if (UNTAG_Bool(REGB0)) {
42019 /* ./parser//parser_prod.nit:7692 */
42020 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42021 if (UNTAG_Bool(REGB0)) {
42022 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7692);
42023 }
42024 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42025 /* ./parser//parser_prod.nit:7693 */
42026 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*/;
42027 if (UNTAG_Bool(REGB0)) {
42028 } else {
42029 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7693);
42030 }
42031 /* ./parser//parser_prod.nit:7694 */
42032 ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0]) = fra.me.REG[2];
42033 } else {
42034 /* ./parser//parser_prod.nit:7696 */
42035 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7696);
42036 }
42037 /* ./parser//parser_prod.nit:7698 */
42038 goto label1;
42039 }
42040 /* ./parser//parser_prod.nit:7700 */
42041 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]);
42042 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
42043 if (UNTAG_Bool(REGB0)) {
42044 } else {
42045 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42046 if (UNTAG_Bool(REGB1)) {
42047 REGB1 = TAG_Bool(false);
42048 REGB0 = REGB1;
42049 } else {
42050 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42051 REGB0 = REGB1;
42052 }
42053 }
42054 if (UNTAG_Bool(REGB0)) {
42055 /* ./parser//parser_prod.nit:7701 */
42056 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42057 if (UNTAG_Bool(REGB0)) {
42058 } else {
42059 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42060 if (UNTAG_Bool(REGB1)) {
42061 REGB1 = TAG_Bool(false);
42062 REGB0 = REGB1;
42063 } else {
42064 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42065 REGB0 = REGB1;
42066 }
42067 }
42068 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42069 if (UNTAG_Bool(REGB0)) {
42070 /* ./parser//parser_prod.nit:7702 */
42071 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42072 if (UNTAG_Bool(REGB0)) {
42073 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7702);
42074 }
42075 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42076 /* ./parser//parser_prod.nit:7703 */
42077 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*/;
42078 if (UNTAG_Bool(REGB0)) {
42079 } else {
42080 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7703);
42081 }
42082 /* ./parser//parser_prod.nit:7704 */
42083 ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]) = fra.me.REG[2];
42084 } else {
42085 /* ./parser//parser_prod.nit:7706 */
42086 ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]) = NIT_NULL;
42087 }
42088 /* ./parser//parser_prod.nit:7708 */
42089 goto label1;
42090 }
42091 /* ./parser//parser_prod.nit:7710 */
42092 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
42093 if (UNTAG_Bool(REGB0)) {
42094 } else {
42095 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 7710);
42096 }
42097 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0]);
42098 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42099 if (UNTAG_Bool(REGB0)) {
42100 } else {
42101 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42102 REGB0 = REGB1;
42103 }
42104 if (UNTAG_Bool(REGB0)) {
42105 /* ./parser//parser_prod.nit:7711 */
42106 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42107 if (UNTAG_Bool(REGB0)) {
42108 } else {
42109 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42110 if (UNTAG_Bool(REGB1)) {
42111 REGB1 = TAG_Bool(false);
42112 REGB0 = REGB1;
42113 } else {
42114 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42115 REGB0 = REGB1;
42116 }
42117 }
42118 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42119 if (UNTAG_Bool(REGB0)) {
42120 /* ./parser//parser_prod.nit:7712 */
42121 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42122 if (UNTAG_Bool(REGB0)) {
42123 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7712);
42124 }
42125 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42126 /* ./parser//parser_prod.nit:7713 */
42127 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*/;
42128 if (UNTAG_Bool(REGB0)) {
42129 } else {
42130 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7713);
42131 }
42132 /* ./parser//parser_prod.nit:7714 */
42133 ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0]) = fra.me.REG[2];
42134 } else {
42135 /* ./parser//parser_prod.nit:7716 */
42136 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7716);
42137 }
42138 /* ./parser//parser_prod.nit:7718 */
42139 goto label1;
42140 }
42141 label1: while(0);
42142 stack_frame_head = fra.me.prev;
42143 return;
42144 }
42145 void parser___parser_prod___AFullPropExternCall___visit_all(val_t p0, val_t p1){
42146 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
42147 val_t REGB0;
42148 val_t REGB1;
42149 val_t tmp;
42150 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42151 fra.me.file = LOCATE_parser___parser_prod;
42152 fra.me.line = 7722;
42153 fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___visit_all;
42154 fra.me.has_broke = 0;
42155 fra.me.REG_size = 4;
42156 fra.me.nitni_local_ref_head = NULL;
42157 fra.me.REG[0] = NIT_NULL;
42158 fra.me.REG[1] = NIT_NULL;
42159 fra.me.REG[2] = NIT_NULL;
42160 fra.me.REG[3] = NIT_NULL;
42161 fra.me.REG[0] = p0;
42162 fra.me.REG[1] = p1;
42163 /* ./parser//parser_prod.nit:7722 */
42164 fra.me.REG[2] = fra.me.REG[0];
42165 /* ./parser//parser_prod.nit:7724 */
42166 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[2])!=NIT_NULL);
42167 if (UNTAG_Bool(REGB0)) {
42168 } else {
42169 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 7724);
42170 }
42171 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[2]);
42172 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
42173 /* ./parser//parser_prod.nit:7725 */
42174 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[2]);
42175 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42176 if (UNTAG_Bool(REGB0)) {
42177 } else {
42178 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42179 if (UNTAG_Bool(REGB1)) {
42180 REGB1 = TAG_Bool(false);
42181 REGB0 = REGB1;
42182 } else {
42183 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
42184 REGB0 = REGB1;
42185 }
42186 }
42187 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42188 if (UNTAG_Bool(REGB0)) {
42189 /* ./parser//parser_prod.nit:7726 */
42190 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[2]);
42191 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*/;
42192 if (UNTAG_Bool(REGB0)) {
42193 } else {
42194 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7726);
42195 }
42196 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
42197 }
42198 /* ./parser//parser_prod.nit:7728 */
42199 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[2])!=NIT_NULL);
42200 if (UNTAG_Bool(REGB0)) {
42201 } else {
42202 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 7728);
42203 }
42204 fra.me.REG[2] = ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[2]);
42205 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42206 stack_frame_head = fra.me.prev;
42207 return;
42208 }
42209 void parser___parser_prod___AInitPropExternCall___empty_init(val_t p0, int* init_table){
42210 int itpos277 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitPropExternCall].i;
42211 struct {struct stack_frame_t me;} fra;
42212 val_t tmp;
42213 if (init_table[itpos277]) return;
42214 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42215 fra.me.file = LOCATE_parser___parser_prod;
42216 fra.me.line = 7732;
42217 fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___empty_init;
42218 fra.me.has_broke = 0;
42219 fra.me.REG_size = 1;
42220 fra.me.nitni_local_ref_head = NULL;
42221 fra.me.REG[0] = NIT_NULL;
42222 fra.me.REG[0] = p0;
42223 stack_frame_head = fra.me.prev;
42224 init_table[itpos277] = 1;
42225 return;
42226 }
42227 void parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall(val_t p0, val_t p1, int* init_table){
42228 int itpos278 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitPropExternCall].i;
42229 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
42230 val_t REGB0;
42231 val_t tmp;
42232 if (init_table[itpos278]) return;
42233 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42234 fra.me.file = LOCATE_parser___parser_prod;
42235 fra.me.line = 7734;
42236 fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall;
42237 fra.me.has_broke = 0;
42238 fra.me.REG_size = 3;
42239 fra.me.nitni_local_ref_head = NULL;
42240 fra.me.REG[0] = NIT_NULL;
42241 fra.me.REG[1] = NIT_NULL;
42242 fra.me.REG[2] = NIT_NULL;
42243 fra.me.REG[0] = p0;
42244 fra.me.REG[1] = p1;
42245 /* ./parser//parser_prod.nit:7734 */
42246 fra.me.REG[2] = fra.me.REG[0];
42247 /* ./parser//parser_prod.nit:7738 */
42248 CALL_parser___parser_prod___AInitPropExternCall___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
42249 /* ./parser//parser_prod.nit:7739 */
42250 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
42251 if (UNTAG_Bool(REGB0)) {
42252 } else {
42253 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7739);
42254 }
42255 ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[2]) = fra.me.REG[1];
42256 /* ./parser//parser_prod.nit:7740 */
42257 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
42258 if (UNTAG_Bool(REGB0)) {
42259 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7740);
42260 }
42261 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42262 stack_frame_head = fra.me.prev;
42263 init_table[itpos278] = 1;
42264 return;
42265 }
42266 void parser___parser_prod___AInitPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
42267 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
42268 val_t REGB0;
42269 val_t REGB1;
42270 val_t tmp;
42271 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42272 fra.me.file = LOCATE_parser___parser_prod;
42273 fra.me.line = 7743;
42274 fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___replace_child;
42275 fra.me.has_broke = 0;
42276 fra.me.REG_size = 4;
42277 fra.me.nitni_local_ref_head = NULL;
42278 fra.me.REG[0] = NIT_NULL;
42279 fra.me.REG[1] = NIT_NULL;
42280 fra.me.REG[2] = NIT_NULL;
42281 fra.me.REG[3] = NIT_NULL;
42282 fra.me.REG[0] = p0;
42283 fra.me.REG[1] = p1;
42284 fra.me.REG[2] = p2;
42285 /* ./parser//parser_prod.nit:7745 */
42286 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
42287 if (UNTAG_Bool(REGB0)) {
42288 } else {
42289 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 7745);
42290 }
42291 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]);
42292 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42293 if (UNTAG_Bool(REGB0)) {
42294 } else {
42295 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42296 REGB0 = REGB1;
42297 }
42298 if (UNTAG_Bool(REGB0)) {
42299 /* ./parser//parser_prod.nit:7746 */
42300 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42301 if (UNTAG_Bool(REGB0)) {
42302 } else {
42303 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42304 if (UNTAG_Bool(REGB1)) {
42305 REGB1 = TAG_Bool(false);
42306 REGB0 = REGB1;
42307 } else {
42308 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42309 REGB0 = REGB1;
42310 }
42311 }
42312 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42313 if (UNTAG_Bool(REGB0)) {
42314 /* ./parser//parser_prod.nit:7747 */
42315 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42316 if (UNTAG_Bool(REGB0)) {
42317 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7747);
42318 }
42319 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42320 /* ./parser//parser_prod.nit:7748 */
42321 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*/;
42322 if (UNTAG_Bool(REGB0)) {
42323 } else {
42324 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7748);
42325 }
42326 /* ./parser//parser_prod.nit:7749 */
42327 ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]) = fra.me.REG[2];
42328 } else {
42329 /* ./parser//parser_prod.nit:7751 */
42330 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7751);
42331 }
42332 /* ./parser//parser_prod.nit:7753 */
42333 goto label1;
42334 }
42335 label1: while(0);
42336 stack_frame_head = fra.me.prev;
42337 return;
42338 }
42339 void parser___parser_prod___AInitPropExternCall___visit_all(val_t p0, val_t p1){
42340 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
42341 val_t REGB0;
42342 val_t tmp;
42343 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42344 fra.me.file = LOCATE_parser___parser_prod;
42345 fra.me.line = 7757;
42346 fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___visit_all;
42347 fra.me.has_broke = 0;
42348 fra.me.REG_size = 2;
42349 fra.me.nitni_local_ref_head = NULL;
42350 fra.me.REG[0] = NIT_NULL;
42351 fra.me.REG[1] = NIT_NULL;
42352 fra.me.REG[0] = p0;
42353 fra.me.REG[1] = p1;
42354 /* ./parser//parser_prod.nit:7759 */
42355 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
42356 if (UNTAG_Bool(REGB0)) {
42357 } else {
42358 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 7759);
42359 }
42360 fra.me.REG[0] = ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]);
42361 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
42362 stack_frame_head = fra.me.prev;
42363 return;
42364 }
42365 void parser___parser_prod___ACastAsExternCall___empty_init(val_t p0, int* init_table){
42366 int itpos279 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACastAsExternCall].i;
42367 struct {struct stack_frame_t me;} fra;
42368 val_t tmp;
42369 if (init_table[itpos279]) return;
42370 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42371 fra.me.file = LOCATE_parser___parser_prod;
42372 fra.me.line = 7763;
42373 fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___empty_init;
42374 fra.me.has_broke = 0;
42375 fra.me.REG_size = 1;
42376 fra.me.nitni_local_ref_head = NULL;
42377 fra.me.REG[0] = NIT_NULL;
42378 fra.me.REG[0] = p0;
42379 stack_frame_head = fra.me.prev;
42380 init_table[itpos279] = 1;
42381 return;
42382 }
42383 void parser___parser_prod___ACastAsExternCall___init_acastasexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
42384 int itpos280 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACastAsExternCall].i;
42385 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
42386 val_t REGB0;
42387 val_t tmp;
42388 if (init_table[itpos280]) return;
42389 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42390 fra.me.file = LOCATE_parser___parser_prod;
42391 fra.me.line = 7765;
42392 fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___init_acastasexterncall;
42393 fra.me.has_broke = 0;
42394 fra.me.REG_size = 5;
42395 fra.me.nitni_local_ref_head = NULL;
42396 fra.me.REG[0] = NIT_NULL;
42397 fra.me.REG[1] = NIT_NULL;
42398 fra.me.REG[2] = NIT_NULL;
42399 fra.me.REG[3] = NIT_NULL;
42400 fra.me.REG[4] = NIT_NULL;
42401 fra.me.REG[0] = p0;
42402 fra.me.REG[1] = p1;
42403 fra.me.REG[2] = p2;
42404 fra.me.REG[3] = p3;
42405 /* ./parser//parser_prod.nit:7765 */
42406 fra.me.REG[4] = fra.me.REG[0];
42407 /* ./parser//parser_prod.nit:7771 */
42408 CALL_parser___parser_prod___ACastAsExternCall___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
42409 /* ./parser//parser_prod.nit:7772 */
42410 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
42411 if (UNTAG_Bool(REGB0)) {
42412 } else {
42413 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7772);
42414 }
42415 ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[4]) = fra.me.REG[1];
42416 /* ./parser//parser_prod.nit:7773 */
42417 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
42418 if (UNTAG_Bool(REGB0)) {
42419 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7773);
42420 }
42421 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
42422 /* ./parser//parser_prod.nit:7774 */
42423 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
42424 if (UNTAG_Bool(REGB0)) {
42425 } else {
42426 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7774);
42427 }
42428 ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[4]) = fra.me.REG[2];
42429 /* ./parser//parser_prod.nit:7775 */
42430 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42431 if (UNTAG_Bool(REGB0)) {
42432 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7775);
42433 }
42434 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
42435 /* ./parser//parser_prod.nit:7776 */
42436 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
42437 if (UNTAG_Bool(REGB0)) {
42438 } else {
42439 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7776);
42440 }
42441 ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[4]) = fra.me.REG[3];
42442 /* ./parser//parser_prod.nit:7777 */
42443 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42444 if (UNTAG_Bool(REGB0)) {
42445 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7777);
42446 }
42447 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
42448 stack_frame_head = fra.me.prev;
42449 init_table[itpos280] = 1;
42450 return;
42451 }
42452 void parser___parser_prod___ACastAsExternCall___replace_child(val_t p0, val_t p1, val_t p2){
42453 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
42454 val_t REGB0;
42455 val_t REGB1;
42456 val_t tmp;
42457 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42458 fra.me.file = LOCATE_parser___parser_prod;
42459 fra.me.line = 7780;
42460 fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___replace_child;
42461 fra.me.has_broke = 0;
42462 fra.me.REG_size = 4;
42463 fra.me.nitni_local_ref_head = NULL;
42464 fra.me.REG[0] = NIT_NULL;
42465 fra.me.REG[1] = NIT_NULL;
42466 fra.me.REG[2] = NIT_NULL;
42467 fra.me.REG[3] = NIT_NULL;
42468 fra.me.REG[0] = p0;
42469 fra.me.REG[1] = p1;
42470 fra.me.REG[2] = p2;
42471 /* ./parser//parser_prod.nit:7782 */
42472 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0])!=NIT_NULL);
42473 if (UNTAG_Bool(REGB0)) {
42474 } else {
42475 nit_abort("Uninitialized attribute %s", "_n_from_type", LOCATE_parser___parser_prod, 7782);
42476 }
42477 fra.me.REG[3] = ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]);
42478 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42479 if (UNTAG_Bool(REGB0)) {
42480 } else {
42481 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42482 REGB0 = REGB1;
42483 }
42484 if (UNTAG_Bool(REGB0)) {
42485 /* ./parser//parser_prod.nit:7783 */
42486 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42487 if (UNTAG_Bool(REGB0)) {
42488 } else {
42489 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42490 if (UNTAG_Bool(REGB1)) {
42491 REGB1 = TAG_Bool(false);
42492 REGB0 = REGB1;
42493 } else {
42494 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42495 REGB0 = REGB1;
42496 }
42497 }
42498 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42499 if (UNTAG_Bool(REGB0)) {
42500 /* ./parser//parser_prod.nit:7784 */
42501 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42502 if (UNTAG_Bool(REGB0)) {
42503 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7784);
42504 }
42505 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42506 /* ./parser//parser_prod.nit:7785 */
42507 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*/;
42508 if (UNTAG_Bool(REGB0)) {
42509 } else {
42510 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7785);
42511 }
42512 /* ./parser//parser_prod.nit:7786 */
42513 ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]) = fra.me.REG[2];
42514 } else {
42515 /* ./parser//parser_prod.nit:7788 */
42516 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7788);
42517 }
42518 /* ./parser//parser_prod.nit:7790 */
42519 goto label1;
42520 }
42521 /* ./parser//parser_prod.nit:7792 */
42522 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
42523 if (UNTAG_Bool(REGB0)) {
42524 } else {
42525 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7792);
42526 }
42527 fra.me.REG[3] = ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]);
42528 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42529 if (UNTAG_Bool(REGB0)) {
42530 } else {
42531 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42532 REGB0 = REGB1;
42533 }
42534 if (UNTAG_Bool(REGB0)) {
42535 /* ./parser//parser_prod.nit:7793 */
42536 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42537 if (UNTAG_Bool(REGB0)) {
42538 } else {
42539 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42540 if (UNTAG_Bool(REGB1)) {
42541 REGB1 = TAG_Bool(false);
42542 REGB0 = REGB1;
42543 } else {
42544 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42545 REGB0 = REGB1;
42546 }
42547 }
42548 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42549 if (UNTAG_Bool(REGB0)) {
42550 /* ./parser//parser_prod.nit:7794 */
42551 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42552 if (UNTAG_Bool(REGB0)) {
42553 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7794);
42554 }
42555 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42556 /* ./parser//parser_prod.nit:7795 */
42557 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*/;
42558 if (UNTAG_Bool(REGB0)) {
42559 } else {
42560 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7795);
42561 }
42562 /* ./parser//parser_prod.nit:7796 */
42563 ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
42564 } else {
42565 /* ./parser//parser_prod.nit:7798 */
42566 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7798);
42567 }
42568 /* ./parser//parser_prod.nit:7800 */
42569 goto label1;
42570 }
42571 /* ./parser//parser_prod.nit:7802 */
42572 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0])!=NIT_NULL);
42573 if (UNTAG_Bool(REGB0)) {
42574 } else {
42575 nit_abort("Uninitialized attribute %s", "_n_to_type", LOCATE_parser___parser_prod, 7802);
42576 }
42577 fra.me.REG[3] = ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]);
42578 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42579 if (UNTAG_Bool(REGB0)) {
42580 } else {
42581 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42582 REGB0 = REGB1;
42583 }
42584 if (UNTAG_Bool(REGB0)) {
42585 /* ./parser//parser_prod.nit:7803 */
42586 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42587 if (UNTAG_Bool(REGB0)) {
42588 } else {
42589 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42590 if (UNTAG_Bool(REGB1)) {
42591 REGB1 = TAG_Bool(false);
42592 REGB0 = REGB1;
42593 } else {
42594 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42595 REGB0 = REGB1;
42596 }
42597 }
42598 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42599 if (UNTAG_Bool(REGB0)) {
42600 /* ./parser//parser_prod.nit:7804 */
42601 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42602 if (UNTAG_Bool(REGB0)) {
42603 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7804);
42604 }
42605 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42606 /* ./parser//parser_prod.nit:7805 */
42607 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*/;
42608 if (UNTAG_Bool(REGB0)) {
42609 } else {
42610 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7805);
42611 }
42612 /* ./parser//parser_prod.nit:7806 */
42613 ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]) = fra.me.REG[2];
42614 } else {
42615 /* ./parser//parser_prod.nit:7808 */
42616 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7808);
42617 }
42618 /* ./parser//parser_prod.nit:7810 */
42619 goto label1;
42620 }
42621 label1: while(0);
42622 stack_frame_head = fra.me.prev;
42623 return;
42624 }
42625 void parser___parser_prod___ACastAsExternCall___visit_all(val_t p0, val_t p1){
42626 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
42627 val_t REGB0;
42628 val_t tmp;
42629 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42630 fra.me.file = LOCATE_parser___parser_prod;
42631 fra.me.line = 7814;
42632 fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___visit_all;
42633 fra.me.has_broke = 0;
42634 fra.me.REG_size = 3;
42635 fra.me.nitni_local_ref_head = NULL;
42636 fra.me.REG[0] = NIT_NULL;
42637 fra.me.REG[1] = NIT_NULL;
42638 fra.me.REG[2] = NIT_NULL;
42639 fra.me.REG[0] = p0;
42640 fra.me.REG[1] = p1;
42641 /* ./parser//parser_prod.nit:7816 */
42642 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0])!=NIT_NULL);
42643 if (UNTAG_Bool(REGB0)) {
42644 } else {
42645 nit_abort("Uninitialized attribute %s", "_n_from_type", LOCATE_parser___parser_prod, 7816);
42646 }
42647 fra.me.REG[2] = ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]);
42648 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42649 /* ./parser//parser_prod.nit:7817 */
42650 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
42651 if (UNTAG_Bool(REGB0)) {
42652 } else {
42653 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7817);
42654 }
42655 fra.me.REG[2] = ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]);
42656 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42657 /* ./parser//parser_prod.nit:7818 */
42658 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0])!=NIT_NULL);
42659 if (UNTAG_Bool(REGB0)) {
42660 } else {
42661 nit_abort("Uninitialized attribute %s", "_n_to_type", LOCATE_parser___parser_prod, 7818);
42662 }
42663 fra.me.REG[0] = ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]);
42664 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
42665 stack_frame_head = fra.me.prev;
42666 return;
42667 }
42668 void parser___parser_prod___AAsNullableExternCall___empty_init(val_t p0, int* init_table){
42669 int itpos281 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNullableExternCall].i;
42670 struct {struct stack_frame_t me;} fra;
42671 val_t tmp;
42672 if (init_table[itpos281]) return;
42673 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42674 fra.me.file = LOCATE_parser___parser_prod;
42675 fra.me.line = 7822;
42676 fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___empty_init;
42677 fra.me.has_broke = 0;
42678 fra.me.REG_size = 1;
42679 fra.me.nitni_local_ref_head = NULL;
42680 fra.me.REG[0] = NIT_NULL;
42681 fra.me.REG[0] = p0;
42682 stack_frame_head = fra.me.prev;
42683 init_table[itpos281] = 1;
42684 return;
42685 }
42686 void parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
42687 int itpos282 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNullableExternCall].i;
42688 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
42689 val_t REGB0;
42690 val_t tmp;
42691 if (init_table[itpos282]) return;
42692 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42693 fra.me.file = LOCATE_parser___parser_prod;
42694 fra.me.line = 7824;
42695 fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall;
42696 fra.me.has_broke = 0;
42697 fra.me.REG_size = 5;
42698 fra.me.nitni_local_ref_head = NULL;
42699 fra.me.REG[0] = NIT_NULL;
42700 fra.me.REG[1] = NIT_NULL;
42701 fra.me.REG[2] = NIT_NULL;
42702 fra.me.REG[3] = NIT_NULL;
42703 fra.me.REG[4] = NIT_NULL;
42704 fra.me.REG[0] = p0;
42705 fra.me.REG[1] = p1;
42706 fra.me.REG[2] = p2;
42707 fra.me.REG[3] = p3;
42708 /* ./parser//parser_prod.nit:7824 */
42709 fra.me.REG[4] = fra.me.REG[0];
42710 /* ./parser//parser_prod.nit:7830 */
42711 CALL_parser___parser_prod___AAsNullableExternCall___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
42712 /* ./parser//parser_prod.nit:7831 */
42713 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
42714 if (UNTAG_Bool(REGB0)) {
42715 } else {
42716 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7831);
42717 }
42718 ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[4]) = fra.me.REG[1];
42719 /* ./parser//parser_prod.nit:7832 */
42720 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
42721 if (UNTAG_Bool(REGB0)) {
42722 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7832);
42723 }
42724 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
42725 /* ./parser//parser_prod.nit:7833 */
42726 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
42727 if (UNTAG_Bool(REGB0)) {
42728 } else {
42729 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7833);
42730 }
42731 ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[4]) = fra.me.REG[2];
42732 /* ./parser//parser_prod.nit:7834 */
42733 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42734 if (UNTAG_Bool(REGB0)) {
42735 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7834);
42736 }
42737 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
42738 /* ./parser//parser_prod.nit:7835 */
42739 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
42740 if (UNTAG_Bool(REGB0)) {
42741 } else {
42742 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7835);
42743 }
42744 ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[4]) = fra.me.REG[3];
42745 /* ./parser//parser_prod.nit:7836 */
42746 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42747 if (UNTAG_Bool(REGB0)) {
42748 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7836);
42749 }
42750 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
42751 stack_frame_head = fra.me.prev;
42752 init_table[itpos282] = 1;
42753 return;
42754 }
42755 void parser___parser_prod___AAsNullableExternCall___replace_child(val_t p0, val_t p1, val_t p2){
42756 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
42757 val_t REGB0;
42758 val_t REGB1;
42759 val_t tmp;
42760 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42761 fra.me.file = LOCATE_parser___parser_prod;
42762 fra.me.line = 7839;
42763 fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___replace_child;
42764 fra.me.has_broke = 0;
42765 fra.me.REG_size = 4;
42766 fra.me.nitni_local_ref_head = NULL;
42767 fra.me.REG[0] = NIT_NULL;
42768 fra.me.REG[1] = NIT_NULL;
42769 fra.me.REG[2] = NIT_NULL;
42770 fra.me.REG[3] = NIT_NULL;
42771 fra.me.REG[0] = p0;
42772 fra.me.REG[1] = p1;
42773 fra.me.REG[2] = p2;
42774 /* ./parser//parser_prod.nit:7841 */
42775 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
42776 if (UNTAG_Bool(REGB0)) {
42777 } else {
42778 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7841);
42779 }
42780 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]);
42781 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42782 if (UNTAG_Bool(REGB0)) {
42783 } else {
42784 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42785 REGB0 = REGB1;
42786 }
42787 if (UNTAG_Bool(REGB0)) {
42788 /* ./parser//parser_prod.nit:7842 */
42789 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42790 if (UNTAG_Bool(REGB0)) {
42791 } else {
42792 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42793 if (UNTAG_Bool(REGB1)) {
42794 REGB1 = TAG_Bool(false);
42795 REGB0 = REGB1;
42796 } else {
42797 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42798 REGB0 = REGB1;
42799 }
42800 }
42801 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42802 if (UNTAG_Bool(REGB0)) {
42803 /* ./parser//parser_prod.nit:7843 */
42804 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42805 if (UNTAG_Bool(REGB0)) {
42806 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7843);
42807 }
42808 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42809 /* ./parser//parser_prod.nit:7844 */
42810 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*/;
42811 if (UNTAG_Bool(REGB0)) {
42812 } else {
42813 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7844);
42814 }
42815 /* ./parser//parser_prod.nit:7845 */
42816 ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]) = fra.me.REG[2];
42817 } else {
42818 /* ./parser//parser_prod.nit:7847 */
42819 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7847);
42820 }
42821 /* ./parser//parser_prod.nit:7849 */
42822 goto label1;
42823 }
42824 /* ./parser//parser_prod.nit:7851 */
42825 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
42826 if (UNTAG_Bool(REGB0)) {
42827 } else {
42828 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7851);
42829 }
42830 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]);
42831 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42832 if (UNTAG_Bool(REGB0)) {
42833 } else {
42834 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42835 REGB0 = REGB1;
42836 }
42837 if (UNTAG_Bool(REGB0)) {
42838 /* ./parser//parser_prod.nit:7852 */
42839 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42840 if (UNTAG_Bool(REGB0)) {
42841 } else {
42842 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42843 if (UNTAG_Bool(REGB1)) {
42844 REGB1 = TAG_Bool(false);
42845 REGB0 = REGB1;
42846 } else {
42847 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42848 REGB0 = REGB1;
42849 }
42850 }
42851 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42852 if (UNTAG_Bool(REGB0)) {
42853 /* ./parser//parser_prod.nit:7853 */
42854 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42855 if (UNTAG_Bool(REGB0)) {
42856 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7853);
42857 }
42858 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42859 /* ./parser//parser_prod.nit:7854 */
42860 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*/;
42861 if (UNTAG_Bool(REGB0)) {
42862 } else {
42863 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7854);
42864 }
42865 /* ./parser//parser_prod.nit:7855 */
42866 ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
42867 } else {
42868 /* ./parser//parser_prod.nit:7857 */
42869 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7857);
42870 }
42871 /* ./parser//parser_prod.nit:7859 */
42872 goto label1;
42873 }
42874 /* ./parser//parser_prod.nit:7861 */
42875 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
42876 if (UNTAG_Bool(REGB0)) {
42877 } else {
42878 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 7861);
42879 }
42880 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]);
42881 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42882 if (UNTAG_Bool(REGB0)) {
42883 } else {
42884 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42885 REGB0 = REGB1;
42886 }
42887 if (UNTAG_Bool(REGB0)) {
42888 /* ./parser//parser_prod.nit:7862 */
42889 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42890 if (UNTAG_Bool(REGB0)) {
42891 } else {
42892 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42893 if (UNTAG_Bool(REGB1)) {
42894 REGB1 = TAG_Bool(false);
42895 REGB0 = REGB1;
42896 } else {
42897 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42898 REGB0 = REGB1;
42899 }
42900 }
42901 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42902 if (UNTAG_Bool(REGB0)) {
42903 /* ./parser//parser_prod.nit:7863 */
42904 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42905 if (UNTAG_Bool(REGB0)) {
42906 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7863);
42907 }
42908 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42909 /* ./parser//parser_prod.nit:7864 */
42910 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*/;
42911 if (UNTAG_Bool(REGB0)) {
42912 } else {
42913 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7864);
42914 }
42915 /* ./parser//parser_prod.nit:7865 */
42916 ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
42917 } else {
42918 /* ./parser//parser_prod.nit:7867 */
42919 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7867);
42920 }
42921 /* ./parser//parser_prod.nit:7869 */
42922 goto label1;
42923 }
42924 label1: while(0);
42925 stack_frame_head = fra.me.prev;
42926 return;
42927 }
42928 void parser___parser_prod___AAsNullableExternCall___visit_all(val_t p0, val_t p1){
42929 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
42930 val_t REGB0;
42931 val_t tmp;
42932 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42933 fra.me.file = LOCATE_parser___parser_prod;
42934 fra.me.line = 7873;
42935 fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___visit_all;
42936 fra.me.has_broke = 0;
42937 fra.me.REG_size = 3;
42938 fra.me.nitni_local_ref_head = NULL;
42939 fra.me.REG[0] = NIT_NULL;
42940 fra.me.REG[1] = NIT_NULL;
42941 fra.me.REG[2] = NIT_NULL;
42942 fra.me.REG[0] = p0;
42943 fra.me.REG[1] = p1;
42944 /* ./parser//parser_prod.nit:7875 */
42945 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
42946 if (UNTAG_Bool(REGB0)) {
42947 } else {
42948 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7875);
42949 }
42950 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]);
42951 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42952 /* ./parser//parser_prod.nit:7876 */
42953 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
42954 if (UNTAG_Bool(REGB0)) {
42955 } else {
42956 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7876);
42957 }
42958 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]);
42959 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42960 /* ./parser//parser_prod.nit:7877 */
42961 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
42962 if (UNTAG_Bool(REGB0)) {
42963 } else {
42964 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 7877);
42965 }
42966 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]);
42967 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
42968 stack_frame_head = fra.me.prev;
42969 return;
42970 }
42971 void parser___parser_prod___AAsNotNullableExternCall___empty_init(val_t p0, int* init_table){
42972 int itpos283 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotNullableExternCall].i;
42973 struct {struct stack_frame_t me;} fra;
42974 val_t tmp;
42975 if (init_table[itpos283]) return;
42976 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42977 fra.me.file = LOCATE_parser___parser_prod;
42978 fra.me.line = 7881;
42979 fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___empty_init;
42980 fra.me.has_broke = 0;
42981 fra.me.REG_size = 1;
42982 fra.me.nitni_local_ref_head = NULL;
42983 fra.me.REG[0] = NIT_NULL;
42984 fra.me.REG[0] = p0;
42985 stack_frame_head = fra.me.prev;
42986 init_table[itpos283] = 1;
42987 return;
42988 }
42989 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){
42990 int itpos284 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotNullableExternCall].i;
42991 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
42992 val_t REGB0;
42993 val_t tmp;
42994 if (init_table[itpos284]) return;
42995 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42996 fra.me.file = LOCATE_parser___parser_prod;
42997 fra.me.line = 7883;
42998 fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall;
42999 fra.me.has_broke = 0;
43000 fra.me.REG_size = 6;
43001 fra.me.nitni_local_ref_head = NULL;
43002 fra.me.REG[0] = NIT_NULL;
43003 fra.me.REG[1] = NIT_NULL;
43004 fra.me.REG[2] = NIT_NULL;
43005 fra.me.REG[3] = NIT_NULL;
43006 fra.me.REG[4] = NIT_NULL;
43007 fra.me.REG[5] = NIT_NULL;
43008 fra.me.REG[0] = p0;
43009 fra.me.REG[1] = p1;
43010 fra.me.REG[2] = p2;
43011 fra.me.REG[3] = p3;
43012 fra.me.REG[4] = p4;
43013 /* ./parser//parser_prod.nit:7883 */
43014 fra.me.REG[5] = fra.me.REG[0];
43015 /* ./parser//parser_prod.nit:7890 */
43016 CALL_parser___parser_prod___AAsNotNullableExternCall___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
43017 /* ./parser//parser_prod.nit:7891 */
43018 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
43019 if (UNTAG_Bool(REGB0)) {
43020 } else {
43021 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7891);
43022 }
43023 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[5]) = fra.me.REG[1];
43024 /* ./parser//parser_prod.nit:7892 */
43025 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
43026 if (UNTAG_Bool(REGB0)) {
43027 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7892);
43028 }
43029 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
43030 /* ./parser//parser_prod.nit:7893 */
43031 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
43032 if (UNTAG_Bool(REGB0)) {
43033 } else {
43034 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7893);
43035 }
43036 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[5]) = fra.me.REG[2];
43037 /* ./parser//parser_prod.nit:7894 */
43038 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43039 if (UNTAG_Bool(REGB0)) {
43040 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7894);
43041 }
43042 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
43043 /* ./parser//parser_prod.nit:7895 */
43044 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
43045 if (UNTAG_Bool(REGB0)) {
43046 } else {
43047 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7895);
43048 }
43049 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[5]) = fra.me.REG[3];
43050 /* ./parser//parser_prod.nit:7896 */
43051 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43052 if (UNTAG_Bool(REGB0)) {
43053 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7896);
43054 }
43055 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
43056 /* ./parser//parser_prod.nit:7897 */
43057 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
43058 if (UNTAG_Bool(REGB0)) {
43059 } else {
43060 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7897);
43061 }
43062 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[5]) = fra.me.REG[4];
43063 /* ./parser//parser_prod.nit:7898 */
43064 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
43065 if (UNTAG_Bool(REGB0)) {
43066 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7898);
43067 }
43068 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
43069 stack_frame_head = fra.me.prev;
43070 init_table[itpos284] = 1;
43071 return;
43072 }
43073 void parser___parser_prod___AAsNotNullableExternCall___replace_child(val_t p0, val_t p1, val_t p2){
43074 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43075 val_t REGB0;
43076 val_t REGB1;
43077 val_t tmp;
43078 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43079 fra.me.file = LOCATE_parser___parser_prod;
43080 fra.me.line = 7901;
43081 fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___replace_child;
43082 fra.me.has_broke = 0;
43083 fra.me.REG_size = 4;
43084 fra.me.nitni_local_ref_head = NULL;
43085 fra.me.REG[0] = NIT_NULL;
43086 fra.me.REG[1] = NIT_NULL;
43087 fra.me.REG[2] = NIT_NULL;
43088 fra.me.REG[3] = NIT_NULL;
43089 fra.me.REG[0] = p0;
43090 fra.me.REG[1] = p1;
43091 fra.me.REG[2] = p2;
43092 /* ./parser//parser_prod.nit:7903 */
43093 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
43094 if (UNTAG_Bool(REGB0)) {
43095 } else {
43096 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7903);
43097 }
43098 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]);
43099 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43100 if (UNTAG_Bool(REGB0)) {
43101 } else {
43102 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43103 REGB0 = REGB1;
43104 }
43105 if (UNTAG_Bool(REGB0)) {
43106 /* ./parser//parser_prod.nit:7904 */
43107 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43108 if (UNTAG_Bool(REGB0)) {
43109 } else {
43110 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43111 if (UNTAG_Bool(REGB1)) {
43112 REGB1 = TAG_Bool(false);
43113 REGB0 = REGB1;
43114 } else {
43115 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43116 REGB0 = REGB1;
43117 }
43118 }
43119 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43120 if (UNTAG_Bool(REGB0)) {
43121 /* ./parser//parser_prod.nit:7905 */
43122 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43123 if (UNTAG_Bool(REGB0)) {
43124 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7905);
43125 }
43126 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43127 /* ./parser//parser_prod.nit:7906 */
43128 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*/;
43129 if (UNTAG_Bool(REGB0)) {
43130 } else {
43131 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7906);
43132 }
43133 /* ./parser//parser_prod.nit:7907 */
43134 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]) = fra.me.REG[2];
43135 } else {
43136 /* ./parser//parser_prod.nit:7909 */
43137 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7909);
43138 }
43139 /* ./parser//parser_prod.nit:7911 */
43140 goto label1;
43141 }
43142 /* ./parser//parser_prod.nit:7913 */
43143 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
43144 if (UNTAG_Bool(REGB0)) {
43145 } else {
43146 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7913);
43147 }
43148 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]);
43149 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43150 if (UNTAG_Bool(REGB0)) {
43151 } else {
43152 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43153 REGB0 = REGB1;
43154 }
43155 if (UNTAG_Bool(REGB0)) {
43156 /* ./parser//parser_prod.nit:7914 */
43157 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43158 if (UNTAG_Bool(REGB0)) {
43159 } else {
43160 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43161 if (UNTAG_Bool(REGB1)) {
43162 REGB1 = TAG_Bool(false);
43163 REGB0 = REGB1;
43164 } else {
43165 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43166 REGB0 = REGB1;
43167 }
43168 }
43169 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43170 if (UNTAG_Bool(REGB0)) {
43171 /* ./parser//parser_prod.nit:7915 */
43172 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43173 if (UNTAG_Bool(REGB0)) {
43174 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7915);
43175 }
43176 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43177 /* ./parser//parser_prod.nit:7916 */
43178 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*/;
43179 if (UNTAG_Bool(REGB0)) {
43180 } else {
43181 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7916);
43182 }
43183 /* ./parser//parser_prod.nit:7917 */
43184 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
43185 } else {
43186 /* ./parser//parser_prod.nit:7919 */
43187 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7919);
43188 }
43189 /* ./parser//parser_prod.nit:7921 */
43190 goto label1;
43191 }
43192 /* ./parser//parser_prod.nit:7923 */
43193 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0])!=NIT_NULL);
43194 if (UNTAG_Bool(REGB0)) {
43195 } else {
43196 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 7923);
43197 }
43198 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]);
43199 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43200 if (UNTAG_Bool(REGB0)) {
43201 } else {
43202 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43203 REGB0 = REGB1;
43204 }
43205 if (UNTAG_Bool(REGB0)) {
43206 /* ./parser//parser_prod.nit:7924 */
43207 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43208 if (UNTAG_Bool(REGB0)) {
43209 } else {
43210 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43211 if (UNTAG_Bool(REGB1)) {
43212 REGB1 = TAG_Bool(false);
43213 REGB0 = REGB1;
43214 } else {
43215 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43216 REGB0 = REGB1;
43217 }
43218 }
43219 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43220 if (UNTAG_Bool(REGB0)) {
43221 /* ./parser//parser_prod.nit:7925 */
43222 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43223 if (UNTAG_Bool(REGB0)) {
43224 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7925);
43225 }
43226 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43227 /* ./parser//parser_prod.nit:7926 */
43228 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*/;
43229 if (UNTAG_Bool(REGB0)) {
43230 } else {
43231 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7926);
43232 }
43233 /* ./parser//parser_prod.nit:7927 */
43234 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
43235 } else {
43236 /* ./parser//parser_prod.nit:7929 */
43237 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7929);
43238 }
43239 /* ./parser//parser_prod.nit:7931 */
43240 goto label1;
43241 }
43242 /* ./parser//parser_prod.nit:7933 */
43243 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
43244 if (UNTAG_Bool(REGB0)) {
43245 } else {
43246 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 7933);
43247 }
43248 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]);
43249 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43250 if (UNTAG_Bool(REGB0)) {
43251 } else {
43252 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43253 REGB0 = REGB1;
43254 }
43255 if (UNTAG_Bool(REGB0)) {
43256 /* ./parser//parser_prod.nit:7934 */
43257 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43258 if (UNTAG_Bool(REGB0)) {
43259 } else {
43260 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43261 if (UNTAG_Bool(REGB1)) {
43262 REGB1 = TAG_Bool(false);
43263 REGB0 = REGB1;
43264 } else {
43265 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43266 REGB0 = REGB1;
43267 }
43268 }
43269 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43270 if (UNTAG_Bool(REGB0)) {
43271 /* ./parser//parser_prod.nit:7935 */
43272 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43273 if (UNTAG_Bool(REGB0)) {
43274 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7935);
43275 }
43276 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43277 /* ./parser//parser_prod.nit:7936 */
43278 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*/;
43279 if (UNTAG_Bool(REGB0)) {
43280 } else {
43281 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7936);
43282 }
43283 /* ./parser//parser_prod.nit:7937 */
43284 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
43285 } else {
43286 /* ./parser//parser_prod.nit:7939 */
43287 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7939);
43288 }
43289 /* ./parser//parser_prod.nit:7941 */
43290 goto label1;
43291 }
43292 label1: while(0);
43293 stack_frame_head = fra.me.prev;
43294 return;
43295 }
43296 void parser___parser_prod___AAsNotNullableExternCall___visit_all(val_t p0, val_t p1){
43297 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
43298 val_t REGB0;
43299 val_t tmp;
43300 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43301 fra.me.file = LOCATE_parser___parser_prod;
43302 fra.me.line = 7945;
43303 fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___visit_all;
43304 fra.me.has_broke = 0;
43305 fra.me.REG_size = 3;
43306 fra.me.nitni_local_ref_head = NULL;
43307 fra.me.REG[0] = NIT_NULL;
43308 fra.me.REG[1] = NIT_NULL;
43309 fra.me.REG[2] = NIT_NULL;
43310 fra.me.REG[0] = p0;
43311 fra.me.REG[1] = p1;
43312 /* ./parser//parser_prod.nit:7947 */
43313 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
43314 if (UNTAG_Bool(REGB0)) {
43315 } else {
43316 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7947);
43317 }
43318 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]);
43319 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
43320 /* ./parser//parser_prod.nit:7948 */
43321 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
43322 if (UNTAG_Bool(REGB0)) {
43323 } else {
43324 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7948);
43325 }
43326 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]);
43327 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
43328 /* ./parser//parser_prod.nit:7949 */
43329 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0])!=NIT_NULL);
43330 if (UNTAG_Bool(REGB0)) {
43331 } else {
43332 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 7949);
43333 }
43334 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]);
43335 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
43336 /* ./parser//parser_prod.nit:7950 */
43337 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
43338 if (UNTAG_Bool(REGB0)) {
43339 } else {
43340 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 7950);
43341 }
43342 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]);
43343 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
43344 stack_frame_head = fra.me.prev;
43345 return;
43346 }
43347 void parser___parser_prod___AQualified___empty_init(val_t p0, int* init_table){
43348 int itpos285 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AQualified].i;
43349 struct {struct stack_frame_t me;} fra;
43350 val_t tmp;
43351 if (init_table[itpos285]) return;
43352 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43353 fra.me.file = LOCATE_parser___parser_prod;
43354 fra.me.line = 7954;
43355 fra.me.meth = LOCATE_parser___parser_prod___AQualified___empty_init;
43356 fra.me.has_broke = 0;
43357 fra.me.REG_size = 1;
43358 fra.me.nitni_local_ref_head = NULL;
43359 fra.me.REG[0] = NIT_NULL;
43360 fra.me.REG[0] = p0;
43361 stack_frame_head = fra.me.prev;
43362 init_table[itpos285] = 1;
43363 return;
43364 }
43365 void parser___parser_prod___AQualified___init_aqualified(val_t p0, val_t p1, val_t p2, int* init_table){
43366 int itpos286 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AQualified].i;
43367 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
43368 val_t REGB0;
43369 val_t REGB1;
43370 val_t tmp;
43371 if (init_table[itpos286]) return;
43372 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43373 fra.me.file = LOCATE_parser___parser_prod;
43374 fra.me.line = 7956;
43375 fra.me.meth = LOCATE_parser___parser_prod___AQualified___init_aqualified;
43376 fra.me.has_broke = 0;
43377 fra.me.REG_size = 3;
43378 fra.me.nitni_local_ref_head = NULL;
43379 fra.me.REG[0] = NIT_NULL;
43380 fra.me.REG[1] = NIT_NULL;
43381 fra.me.REG[2] = NIT_NULL;
43382 fra.me.REG[0] = p0;
43383 fra.me.REG[1] = p1;
43384 fra.me.REG[2] = p2;
43385 /* ./parser//parser_prod.nit:7961 */
43386 CALL_parser___parser_prod___AQualified___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
43387 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));
43388 /* ./parser//parser_prod.nit:7967 */
43389 ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = fra.me.REG[2];
43390 /* ./parser//parser_prod.nit:7968 */
43391 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43392 if (UNTAG_Bool(REGB0)) {
43393 } else {
43394 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43395 if (UNTAG_Bool(REGB1)) {
43396 REGB1 = TAG_Bool(false);
43397 REGB0 = REGB1;
43398 } else {
43399 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43400 REGB0 = REGB1;
43401 }
43402 }
43403 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43404 if (UNTAG_Bool(REGB0)) {
43405 /* ./parser//parser_prod.nit:7969 */
43406 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43407 if (UNTAG_Bool(REGB0)) {
43408 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7969);
43409 }
43410 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43411 }
43412 stack_frame_head = fra.me.prev;
43413 init_table[itpos286] = 1;
43414 return;
43415 }
43416 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){
43417 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
43418 val_t REGB0;
43419 fun_t CREG[1];
43420 val_t tmp;
43421 /* ./parser//parser_prod.nit:7962 */
43422 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43423 fra.me.file = LOCATE_parser___parser_prod;
43424 fra.me.line = 0;
43425 fra.me.meth = LOCATE_parser___parser_prod___AQualified___init_aqualified;
43426 fra.me.has_broke = 0;
43427 fra.me.REG_size = 2;
43428 fra.me.nitni_local_ref_head = NULL;
43429 fra.me.REG[0] = NIT_NULL;
43430 fra.me.REG[1] = NIT_NULL;
43431 fra.me.closure_ctx = closctx_param;
43432 fra.me.closure_funs = CREG;
43433 fra.me.REG[0] = p0;
43434 CREG[0] = clos_fun0;
43435 /* ./parser//parser_prod.nit:7963 */
43436 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
43437 if (UNTAG_Bool(REGB0)) {
43438 } else {
43439 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7963);
43440 }
43441 /* ./parser//parser_prod.nit:7964 */
43442 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(closctx->REG[0])!=NIT_NULL);
43443 if (UNTAG_Bool(REGB0)) {
43444 } else {
43445 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7964);
43446 }
43447 fra.me.REG[1] = ATTR_parser___parser_nodes___AQualified____n_id(closctx->REG[0]);
43448 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
43449 /* ./parser//parser_prod.nit:7965 */
43450 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
43451 stack_frame_head = fra.me.prev;
43452 return;
43453 }
43454 void parser___parser_prod___AQualified___replace_child(val_t p0, val_t p1, val_t p2){
43455 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43456 val_t REGB0;
43457 val_t REGB1;
43458 val_t REGB2;
43459 val_t REGB3;
43460 val_t REGB4;
43461 val_t tmp;
43462 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43463 fra.me.file = LOCATE_parser___parser_prod;
43464 fra.me.line = 7973;
43465 fra.me.meth = LOCATE_parser___parser_prod___AQualified___replace_child;
43466 fra.me.has_broke = 0;
43467 fra.me.REG_size = 4;
43468 fra.me.nitni_local_ref_head = NULL;
43469 fra.me.REG[0] = NIT_NULL;
43470 fra.me.REG[1] = NIT_NULL;
43471 fra.me.REG[2] = NIT_NULL;
43472 fra.me.REG[3] = NIT_NULL;
43473 fra.me.REG[0] = p0;
43474 fra.me.REG[1] = p1;
43475 fra.me.REG[2] = p2;
43476 /* ./parser//parser_prod.nit:7975 */
43477 REGB0 = TAG_Int(0);
43478 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
43479 if (UNTAG_Bool(REGB1)) {
43480 } else {
43481 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7975);
43482 }
43483 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
43484 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
43485 /* ./../lib/standard//kernel.nit:352 */
43486 while(1) {
43487 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
43488 if (UNTAG_Bool(REGB2)) {
43489 } else {
43490 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
43491 }
43492 /* ./../lib/standard//kernel.nit:232 */
43493 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
43494 /* ./../lib/standard//kernel.nit:352 */
43495 if (UNTAG_Bool(REGB2)) {
43496 /* ./parser//parser_prod.nit:7975 */
43497 REGB2 = REGB0;
43498 /* ./parser//parser_prod.nit:7976 */
43499 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
43500 if (UNTAG_Bool(REGB3)) {
43501 } else {
43502 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7976);
43503 }
43504 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
43505 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
43506 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
43507 if (UNTAG_Bool(REGB3)) {
43508 } else {
43509 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43510 if (UNTAG_Bool(REGB4)) {
43511 REGB4 = TAG_Bool(false);
43512 REGB3 = REGB4;
43513 } else {
43514 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43515 REGB3 = REGB4;
43516 }
43517 }
43518 if (UNTAG_Bool(REGB3)) {
43519 /* ./parser//parser_prod.nit:7977 */
43520 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43521 if (UNTAG_Bool(REGB3)) {
43522 } else {
43523 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43524 if (UNTAG_Bool(REGB4)) {
43525 REGB4 = TAG_Bool(false);
43526 REGB3 = REGB4;
43527 } else {
43528 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43529 REGB3 = REGB4;
43530 }
43531 }
43532 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
43533 if (UNTAG_Bool(REGB3)) {
43534 /* ./parser//parser_prod.nit:7978 */
43535 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*/;
43536 if (UNTAG_Bool(REGB3)) {
43537 } else {
43538 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7978);
43539 }
43540 /* ./parser//parser_prod.nit:7979 */
43541 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
43542 if (UNTAG_Bool(REGB3)) {
43543 } else {
43544 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7979);
43545 }
43546 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
43547 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
43548 /* ./parser//parser_prod.nit:7980 */
43549 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43550 if (UNTAG_Bool(REGB3)) {
43551 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7980);
43552 }
43553 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43554 } else {
43555 /* ./parser//parser_prod.nit:7982 */
43556 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
43557 if (UNTAG_Bool(REGB3)) {
43558 } else {
43559 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7982);
43560 }
43561 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
43562 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
43563 }
43564 /* ./parser//parser_prod.nit:7984 */
43565 goto label1;
43566 }
43567 /* ./../lib/standard//kernel.nit:354 */
43568 REGB2 = TAG_Int(1);
43569 /* ./../lib/standard//kernel.nit:235 */
43570 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
43571 /* ./../lib/standard//kernel.nit:354 */
43572 REGB0 = REGB2;
43573 } else {
43574 /* ./../lib/standard//kernel.nit:352 */
43575 goto label2;
43576 }
43577 }
43578 label2: while(0);
43579 /* ./parser//parser_prod.nit:7987 */
43580 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]);
43581 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
43582 if (UNTAG_Bool(REGB0)) {
43583 } else {
43584 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43585 if (UNTAG_Bool(REGB1)) {
43586 REGB1 = TAG_Bool(false);
43587 REGB0 = REGB1;
43588 } else {
43589 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43590 REGB0 = REGB1;
43591 }
43592 }
43593 if (UNTAG_Bool(REGB0)) {
43594 /* ./parser//parser_prod.nit:7988 */
43595 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43596 if (UNTAG_Bool(REGB0)) {
43597 } else {
43598 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43599 if (UNTAG_Bool(REGB1)) {
43600 REGB1 = TAG_Bool(false);
43601 REGB0 = REGB1;
43602 } else {
43603 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43604 REGB0 = REGB1;
43605 }
43606 }
43607 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43608 if (UNTAG_Bool(REGB0)) {
43609 /* ./parser//parser_prod.nit:7989 */
43610 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43611 if (UNTAG_Bool(REGB0)) {
43612 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7989);
43613 }
43614 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43615 /* ./parser//parser_prod.nit:7990 */
43616 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*/;
43617 if (UNTAG_Bool(REGB0)) {
43618 } else {
43619 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7990);
43620 }
43621 /* ./parser//parser_prod.nit:7991 */
43622 ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = fra.me.REG[2];
43623 } else {
43624 /* ./parser//parser_prod.nit:7993 */
43625 ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = NIT_NULL;
43626 }
43627 /* ./parser//parser_prod.nit:7995 */
43628 goto label1;
43629 }
43630 label1: while(0);
43631 stack_frame_head = fra.me.prev;
43632 return;
43633 }
43634 void parser___parser_prod___AQualified___visit_all(val_t p0, val_t p1){
43635 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43636 val_t REGB0;
43637 val_t REGB1;
43638 val_t tmp;
43639 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43640 fra.me.file = LOCATE_parser___parser_prod;
43641 fra.me.line = 7999;
43642 fra.me.meth = LOCATE_parser___parser_prod___AQualified___visit_all;
43643 fra.me.has_broke = 0;
43644 fra.me.REG_size = 4;
43645 fra.me.nitni_local_ref_head = NULL;
43646 fra.me.REG[0] = NIT_NULL;
43647 fra.me.REG[1] = NIT_NULL;
43648 fra.me.REG[2] = NIT_NULL;
43649 fra.me.REG[3] = NIT_NULL;
43650 fra.me.REG[0] = p0;
43651 fra.me.REG[1] = p1;
43652 /* ./parser//parser_prod.nit:7999 */
43653 fra.me.REG[2] = fra.me.REG[0];
43654 /* ./parser//parser_prod.nit:8001 */
43655 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[2])!=NIT_NULL);
43656 if (UNTAG_Bool(REGB0)) {
43657 } else {
43658 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8001);
43659 }
43660 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[2]);
43661 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));
43662 /* ./parser//parser_prod.nit:8004 */
43663 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[2]);
43664 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43665 if (UNTAG_Bool(REGB0)) {
43666 } else {
43667 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43668 if (UNTAG_Bool(REGB1)) {
43669 REGB1 = TAG_Bool(false);
43670 REGB0 = REGB1;
43671 } else {
43672 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
43673 REGB0 = REGB1;
43674 }
43675 }
43676 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43677 if (UNTAG_Bool(REGB0)) {
43678 /* ./parser//parser_prod.nit:8005 */
43679 fra.me.REG[2] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[2]);
43680 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*/;
43681 if (UNTAG_Bool(REGB0)) {
43682 } else {
43683 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8005);
43684 }
43685 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
43686 }
43687 stack_frame_head = fra.me.prev;
43688 return;
43689 }
43690 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){
43691 struct {struct stack_frame_t me;} fra;
43692 fun_t CREG[1];
43693 val_t tmp;
43694 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43695 fra.me.file = LOCATE_parser___parser_prod;
43696 fra.me.line = 0;
43697 fra.me.meth = LOCATE_parser___parser_prod___AQualified___visit_all;
43698 fra.me.has_broke = 0;
43699 fra.me.REG_size = 1;
43700 fra.me.nitni_local_ref_head = NULL;
43701 fra.me.REG[0] = NIT_NULL;
43702 fra.me.closure_ctx = closctx_param;
43703 fra.me.closure_funs = CREG;
43704 fra.me.REG[0] = p0;
43705 CREG[0] = clos_fun0;
43706 /* ./parser//parser_prod.nit:8002 */
43707 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
43708 stack_frame_head = fra.me.prev;
43709 return;
43710 }
43711 void parser___parser_prod___ADoc___empty_init(val_t p0, int* init_table){
43712 int itpos287 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoc].i;
43713 struct {struct stack_frame_t me;} fra;
43714 val_t tmp;
43715 if (init_table[itpos287]) return;
43716 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43717 fra.me.file = LOCATE_parser___parser_prod;
43718 fra.me.line = 8010;
43719 fra.me.meth = LOCATE_parser___parser_prod___ADoc___empty_init;
43720 fra.me.has_broke = 0;
43721 fra.me.REG_size = 1;
43722 fra.me.nitni_local_ref_head = NULL;
43723 fra.me.REG[0] = NIT_NULL;
43724 fra.me.REG[0] = p0;
43725 stack_frame_head = fra.me.prev;
43726 init_table[itpos287] = 1;
43727 return;
43728 }
43729 void parser___parser_prod___ADoc___init_adoc(val_t p0, val_t p1, int* init_table){
43730 int itpos288 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoc].i;
43731 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
43732 val_t tmp;
43733 if (init_table[itpos288]) return;
43734 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43735 fra.me.file = LOCATE_parser___parser_prod;
43736 fra.me.line = 8012;
43737 fra.me.meth = LOCATE_parser___parser_prod___ADoc___init_adoc;
43738 fra.me.has_broke = 0;
43739 fra.me.REG_size = 2;
43740 fra.me.nitni_local_ref_head = NULL;
43741 fra.me.REG[0] = NIT_NULL;
43742 fra.me.REG[1] = NIT_NULL;
43743 fra.me.REG[0] = p0;
43744 fra.me.REG[1] = p1;
43745 /* ./parser//parser_prod.nit:8016 */
43746 CALL_parser___parser_prod___ADoc___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
43747 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));
43748 stack_frame_head = fra.me.prev;
43749 init_table[itpos288] = 1;
43750 return;
43751 }
43752 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){
43753 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
43754 val_t REGB0;
43755 fun_t CREG[1];
43756 val_t tmp;
43757 /* ./parser//parser_prod.nit:8017 */
43758 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43759 fra.me.file = LOCATE_parser___parser_prod;
43760 fra.me.line = 0;
43761 fra.me.meth = LOCATE_parser___parser_prod___ADoc___init_adoc;
43762 fra.me.has_broke = 0;
43763 fra.me.REG_size = 2;
43764 fra.me.nitni_local_ref_head = NULL;
43765 fra.me.REG[0] = NIT_NULL;
43766 fra.me.REG[1] = NIT_NULL;
43767 fra.me.closure_ctx = closctx_param;
43768 fra.me.closure_funs = CREG;
43769 fra.me.REG[0] = p0;
43770 CREG[0] = clos_fun0;
43771 /* ./parser//parser_prod.nit:8018 */
43772 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TComment, ID_parser___parser_nodes___TComment)) /*cast TComment*/;
43773 if (UNTAG_Bool(REGB0)) {
43774 } else {
43775 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8018);
43776 }
43777 /* ./parser//parser_prod.nit:8019 */
43778 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(closctx->REG[0])!=NIT_NULL);
43779 if (UNTAG_Bool(REGB0)) {
43780 } else {
43781 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8019);
43782 }
43783 fra.me.REG[1] = ATTR_parser___parser_nodes___ADoc____n_comment(closctx->REG[0]);
43784 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
43785 /* ./parser//parser_prod.nit:8020 */
43786 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
43787 stack_frame_head = fra.me.prev;
43788 return;
43789 }
43790 void parser___parser_prod___ADoc___replace_child(val_t p0, val_t p1, val_t p2){
43791 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43792 val_t REGB0;
43793 val_t REGB1;
43794 val_t REGB2;
43795 val_t REGB3;
43796 val_t REGB4;
43797 val_t tmp;
43798 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43799 fra.me.file = LOCATE_parser___parser_prod;
43800 fra.me.line = 8024;
43801 fra.me.meth = LOCATE_parser___parser_prod___ADoc___replace_child;
43802 fra.me.has_broke = 0;
43803 fra.me.REG_size = 4;
43804 fra.me.nitni_local_ref_head = NULL;
43805 fra.me.REG[0] = NIT_NULL;
43806 fra.me.REG[1] = NIT_NULL;
43807 fra.me.REG[2] = NIT_NULL;
43808 fra.me.REG[3] = NIT_NULL;
43809 fra.me.REG[0] = p0;
43810 fra.me.REG[1] = p1;
43811 fra.me.REG[2] = p2;
43812 /* ./parser//parser_prod.nit:8026 */
43813 REGB0 = TAG_Int(0);
43814 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
43815 if (UNTAG_Bool(REGB1)) {
43816 } else {
43817 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8026);
43818 }
43819 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
43820 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
43821 /* ./../lib/standard//kernel.nit:352 */
43822 while(1) {
43823 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
43824 if (UNTAG_Bool(REGB2)) {
43825 } else {
43826 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
43827 }
43828 /* ./../lib/standard//kernel.nit:232 */
43829 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
43830 /* ./../lib/standard//kernel.nit:352 */
43831 if (UNTAG_Bool(REGB2)) {
43832 /* ./parser//parser_prod.nit:8026 */
43833 REGB2 = REGB0;
43834 /* ./parser//parser_prod.nit:8027 */
43835 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
43836 if (UNTAG_Bool(REGB3)) {
43837 } else {
43838 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8027);
43839 }
43840 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
43841 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
43842 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
43843 if (UNTAG_Bool(REGB3)) {
43844 } else {
43845 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43846 if (UNTAG_Bool(REGB4)) {
43847 REGB4 = TAG_Bool(false);
43848 REGB3 = REGB4;
43849 } else {
43850 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43851 REGB3 = REGB4;
43852 }
43853 }
43854 if (UNTAG_Bool(REGB3)) {
43855 /* ./parser//parser_prod.nit:8028 */
43856 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43857 if (UNTAG_Bool(REGB3)) {
43858 } else {
43859 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43860 if (UNTAG_Bool(REGB4)) {
43861 REGB4 = TAG_Bool(false);
43862 REGB3 = REGB4;
43863 } else {
43864 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43865 REGB3 = REGB4;
43866 }
43867 }
43868 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
43869 if (UNTAG_Bool(REGB3)) {
43870 /* ./parser//parser_prod.nit:8029 */
43871 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*/;
43872 if (UNTAG_Bool(REGB3)) {
43873 } else {
43874 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8029);
43875 }
43876 /* ./parser//parser_prod.nit:8030 */
43877 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
43878 if (UNTAG_Bool(REGB3)) {
43879 } else {
43880 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8030);
43881 }
43882 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
43883 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
43884 /* ./parser//parser_prod.nit:8031 */
43885 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43886 if (UNTAG_Bool(REGB3)) {
43887 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8031);
43888 }
43889 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43890 } else {
43891 /* ./parser//parser_prod.nit:8033 */
43892 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
43893 if (UNTAG_Bool(REGB3)) {
43894 } else {
43895 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8033);
43896 }
43897 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
43898 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
43899 }
43900 /* ./parser//parser_prod.nit:8035 */
43901 goto label1;
43902 }
43903 /* ./../lib/standard//kernel.nit:354 */
43904 REGB2 = TAG_Int(1);
43905 /* ./../lib/standard//kernel.nit:235 */
43906 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
43907 /* ./../lib/standard//kernel.nit:354 */
43908 REGB0 = REGB2;
43909 } else {
43910 /* ./../lib/standard//kernel.nit:352 */
43911 goto label2;
43912 }
43913 }
43914 label2: while(0);
43915 label1: while(0);
43916 stack_frame_head = fra.me.prev;
43917 return;
43918 }
43919 void parser___parser_prod___ADoc___visit_all(val_t p0, val_t p1){
43920 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
43921 val_t REGB0;
43922 val_t tmp;
43923 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43924 fra.me.file = LOCATE_parser___parser_prod;
43925 fra.me.line = 8040;
43926 fra.me.meth = LOCATE_parser___parser_prod___ADoc___visit_all;
43927 fra.me.has_broke = 0;
43928 fra.me.REG_size = 2;
43929 fra.me.nitni_local_ref_head = NULL;
43930 fra.me.REG[0] = NIT_NULL;
43931 fra.me.REG[1] = NIT_NULL;
43932 fra.me.REG[0] = p0;
43933 fra.me.REG[1] = p1;
43934 /* ./parser//parser_prod.nit:8042 */
43935 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
43936 if (UNTAG_Bool(REGB0)) {
43937 } else {
43938 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8042);
43939 }
43940 fra.me.REG[0] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
43941 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));
43942 stack_frame_head = fra.me.prev;
43943 return;
43944 }
43945 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){
43946 struct {struct stack_frame_t me;} fra;
43947 fun_t CREG[1];
43948 val_t tmp;
43949 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43950 fra.me.file = LOCATE_parser___parser_prod;
43951 fra.me.line = 0;
43952 fra.me.meth = LOCATE_parser___parser_prod___ADoc___visit_all;
43953 fra.me.has_broke = 0;
43954 fra.me.REG_size = 1;
43955 fra.me.nitni_local_ref_head = NULL;
43956 fra.me.REG[0] = NIT_NULL;
43957 fra.me.closure_ctx = closctx_param;
43958 fra.me.closure_funs = CREG;
43959 fra.me.REG[0] = p0;
43960 CREG[0] = clos_fun0;
43961 /* ./parser//parser_prod.nit:8043 */
43962 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
43963 stack_frame_head = fra.me.prev;
43964 return;
43965 }
43966 void parser___parser_prod___Start___init(val_t p0, val_t p1, val_t p2, int* init_table){
43967 int itpos289 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___Start].i;
43968 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
43969 val_t tmp;
43970 if (init_table[itpos289]) return;
43971 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43972 fra.me.file = LOCATE_parser___parser_prod;
43973 fra.me.line = 8049;
43974 fra.me.meth = LOCATE_parser___parser_prod___Start___init;
43975 fra.me.has_broke = 0;
43976 fra.me.REG_size = 3;
43977 fra.me.nitni_local_ref_head = NULL;
43978 fra.me.REG[0] = NIT_NULL;
43979 fra.me.REG[1] = NIT_NULL;
43980 fra.me.REG[2] = NIT_NULL;
43981 fra.me.REG[0] = p0;
43982 fra.me.REG[1] = p1;
43983 fra.me.REG[2] = p2;
43984 /* ./parser//parser_prod.nit:8053 */
43985 ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]) = fra.me.REG[1];
43986 /* ./parser//parser_prod.nit:8054 */
43987 ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[0]) = fra.me.REG[2];
43988 stack_frame_head = fra.me.prev;
43989 init_table[itpos289] = 1;
43990 return;
43991 }
43992 void parser___parser_prod___Start___replace_child(val_t p0, val_t p1, val_t p2){
43993 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43994 val_t REGB0;
43995 val_t REGB1;
43996 val_t tmp;
43997 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43998 fra.me.file = LOCATE_parser___parser_prod;
43999 fra.me.line = 8057;
44000 fra.me.meth = LOCATE_parser___parser_prod___Start___replace_child;
44001 fra.me.has_broke = 0;
44002 fra.me.REG_size = 4;
44003 fra.me.nitni_local_ref_head = NULL;
44004 fra.me.REG[0] = NIT_NULL;
44005 fra.me.REG[1] = NIT_NULL;
44006 fra.me.REG[2] = NIT_NULL;
44007 fra.me.REG[3] = NIT_NULL;
44008 fra.me.REG[0] = p0;
44009 fra.me.REG[1] = p1;
44010 fra.me.REG[2] = p2;
44011 /* ./parser//parser_prod.nit:8059 */
44012 fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]);
44013 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
44014 if (UNTAG_Bool(REGB0)) {
44015 } else {
44016 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
44017 if (UNTAG_Bool(REGB1)) {
44018 REGB1 = TAG_Bool(false);
44019 REGB0 = REGB1;
44020 } else {
44021 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44022 REGB0 = REGB1;
44023 }
44024 }
44025 if (UNTAG_Bool(REGB0)) {
44026 /* ./parser//parser_prod.nit:8060 */
44027 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44028 if (UNTAG_Bool(REGB0)) {
44029 } else {
44030 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44031 if (UNTAG_Bool(REGB1)) {
44032 REGB1 = TAG_Bool(false);
44033 REGB0 = REGB1;
44034 } else {
44035 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44036 REGB0 = REGB1;
44037 }
44038 }
44039 if (UNTAG_Bool(REGB0)) {
44040 } else {
44041 /* ./parser//parser_prod.nit:8062 */
44042 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44043 if (UNTAG_Bool(REGB0)) {
44044 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8062);
44045 }
44046 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44047 /* ./parser//parser_prod.nit:8063 */
44048 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*/;
44049 if (UNTAG_Bool(REGB0)) {
44050 } else {
44051 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8063);
44052 }
44053 /* ./parser//parser_prod.nit:8064 */
44054 ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]) = fra.me.REG[2];
44055 }
44056 /* ./parser//parser_prod.nit:8066 */
44057 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
44058 /* ./parser//parser_prod.nit:8067 */
44059 goto label1;
44060 }
44061 label1: while(0);
44062 stack_frame_head = fra.me.prev;
44063 return;
44064 }
44065 void parser___parser_prod___Start___visit_all(val_t p0, val_t p1){
44066 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
44067 val_t REGB0;
44068 val_t REGB1;
44069 val_t tmp;
44070 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44071 fra.me.file = LOCATE_parser___parser_prod;
44072 fra.me.line = 8071;
44073 fra.me.meth = LOCATE_parser___parser_prod___Start___visit_all;
44074 fra.me.has_broke = 0;
44075 fra.me.REG_size = 4;
44076 fra.me.nitni_local_ref_head = NULL;
44077 fra.me.REG[0] = NIT_NULL;
44078 fra.me.REG[1] = NIT_NULL;
44079 fra.me.REG[2] = NIT_NULL;
44080 fra.me.REG[3] = NIT_NULL;
44081 fra.me.REG[0] = p0;
44082 fra.me.REG[1] = p1;
44083 /* ./parser//parser_prod.nit:8071 */
44084 fra.me.REG[2] = fra.me.REG[0];
44085 /* ./parser//parser_prod.nit:8073 */
44086 fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[2]);
44087 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
44088 if (UNTAG_Bool(REGB0)) {
44089 } else {
44090 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
44091 if (UNTAG_Bool(REGB1)) {
44092 REGB1 = TAG_Bool(false);
44093 REGB0 = REGB1;
44094 } else {
44095 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
44096 REGB0 = REGB1;
44097 }
44098 }
44099 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44100 if (UNTAG_Bool(REGB0)) {
44101 /* ./parser//parser_prod.nit:8074 */
44102 fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[2]);
44103 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*/;
44104 if (UNTAG_Bool(REGB0)) {
44105 } else {
44106 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8074);
44107 }
44108 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
44109 }
44110 /* ./parser//parser_prod.nit:8076 */
44111 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[2])!=NIT_NULL);
44112 if (UNTAG_Bool(REGB0)) {
44113 } else {
44114 nit_abort("Uninitialized attribute %s", "_n_eof", LOCATE_parser___parser_prod, 8076);
44115 }
44116 fra.me.REG[2] = ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[2]);
44117 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
44118 stack_frame_head = fra.me.prev;
44119 return;
44120 }