add src/doc in gitignore
[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.REG[0] = NIT_NULL;
13 fra.me.REG[0] = p0;
14 /* ./parser//parser_prod.nit:10 */
15 fra.me.REG[0] = ATTR_parser___parser_prod___ANode____parent(fra.me.REG[0]);
16 stack_frame_head = fra.me.prev;
17 return fra.me.REG[0];
18 }
19 void parser___parser_prod___ANode___parent__eq(val_t p0, val_t p1){
20 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21 val_t tmp;
22 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23 fra.me.file = LOCATE_parser___parser_prod;
24 fra.me.line = 10;
25 fra.me.meth = LOCATE_parser___parser_prod___ANode___parent__eq;
26 fra.me.has_broke = 0;
27 fra.me.REG_size = 2;
28 fra.me.REG[0] = NIT_NULL;
29 fra.me.REG[1] = NIT_NULL;
30 fra.me.REG[0] = p0;
31 fra.me.REG[1] = p1;
32 /* ./parser//parser_prod.nit:10 */
33 ATTR_parser___parser_prod___ANode____parent(fra.me.REG[0]) = fra.me.REG[1];
34 stack_frame_head = fra.me.prev;
35 return;
36 }
37 void parser___parser_prod___ANode___remove_child(val_t p0, val_t p1){
38 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39 val_t tmp;
40 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41 fra.me.file = LOCATE_parser___parser_prod;
42 fra.me.line = 13;
43 fra.me.meth = LOCATE_parser___parser_prod___ANode___remove_child;
44 fra.me.has_broke = 0;
45 fra.me.REG_size = 2;
46 fra.me.REG[0] = NIT_NULL;
47 fra.me.REG[1] = NIT_NULL;
48 fra.me.REG[0] = p0;
49 fra.me.REG[1] = p1;
50 /* ./parser//parser_prod.nit:16 */
51 CALL_parser___parser_prod___ANode___replace_child(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], NIT_NULL);
52 stack_frame_head = fra.me.prev;
53 return;
54 }
55 void parser___parser_prod___ANode___replace_child(val_t p0, val_t p1, val_t p2){
56 struct {struct stack_frame_t me;} fra;
57 val_t tmp;
58 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
59 fra.me.file = LOCATE_parser___parser_prod;
60 fra.me.line = 19;
61 fra.me.meth = LOCATE_parser___parser_prod___ANode___replace_child;
62 fra.me.has_broke = 0;
63 fra.me.REG_size = 0;
64 /* ./parser//parser_prod.nit:19 */
65 nit_abort("Deferred method called", NULL, LOCATE_parser___parser_prod, 19);
66 stack_frame_head = fra.me.prev;
67 return;
68 }
69 void parser___parser_prod___ANode___replace_with(val_t p0, val_t p1){
70 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
71 val_t REGB0;
72 val_t REGB1;
73 val_t tmp;
74 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
75 fra.me.file = LOCATE_parser___parser_prod;
76 fra.me.line = 22;
77 fra.me.meth = LOCATE_parser___parser_prod___ANode___replace_with;
78 fra.me.has_broke = 0;
79 fra.me.REG_size = 3;
80 fra.me.REG[0] = NIT_NULL;
81 fra.me.REG[1] = NIT_NULL;
82 fra.me.REG[2] = NIT_NULL;
83 fra.me.REG[0] = p0;
84 fra.me.REG[1] = p1;
85 /* ./parser//parser_prod.nit:25 */
86 fra.me.REG[2] = ATTR_parser___parser_prod___ANode____parent(fra.me.REG[0]);
87 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
88 if (UNTAG_Bool(REGB0)) {
89 } else {
90 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
91 if (UNTAG_Bool(REGB1)) {
92 REGB1 = TAG_Bool(false);
93 REGB0 = REGB1;
94 } else {
95 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
96 REGB0 = REGB1;
97 }
98 }
99 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
100 if (UNTAG_Bool(REGB0)) {
101 /* ./parser//parser_prod.nit:26 */
102 fra.me.REG[2] = ATTR_parser___parser_prod___ANode____parent(fra.me.REG[0]);
103 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
104 if (UNTAG_Bool(REGB0)) {
105 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 26);
106 }
107 CALL_parser___parser_prod___ANode___replace_child(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1]);
108 }
109 stack_frame_head = fra.me.prev;
110 return;
111 }
112 void parser___parser_prod___ANode___visit_all(val_t p0, val_t p1){
113 struct {struct stack_frame_t me;} fra;
114 val_t tmp;
115 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
116 fra.me.file = LOCATE_parser___parser_prod;
117 fra.me.line = 30;
118 fra.me.meth = LOCATE_parser___parser_prod___ANode___visit_all;
119 fra.me.has_broke = 0;
120 fra.me.REG_size = 0;
121 /* ./parser//parser_prod.nit:30 */
122 nit_abort("Deferred method called", NULL, LOCATE_parser___parser_prod, 30);
123 stack_frame_head = fra.me.prev;
124 return;
125 }
126 void parser___parser_prod___Token___visit_all(val_t p0, val_t p1){
127 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
128 val_t tmp;
129 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
130 fra.me.file = LOCATE_parser___parser_prod;
131 fra.me.line = 36;
132 fra.me.meth = LOCATE_parser___parser_prod___Token___visit_all;
133 fra.me.has_broke = 0;
134 fra.me.REG_size = 2;
135 fra.me.REG[0] = NIT_NULL;
136 fra.me.REG[1] = NIT_NULL;
137 fra.me.REG[0] = p0;
138 fra.me.REG[1] = p1;
139 stack_frame_head = fra.me.prev;
140 return;
141 }
142 void parser___parser_prod___Token___replace_child(val_t p0, val_t p1, val_t p2){
143 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
144 val_t tmp;
145 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
146 fra.me.file = LOCATE_parser___parser_prod;
147 fra.me.line = 37;
148 fra.me.meth = LOCATE_parser___parser_prod___Token___replace_child;
149 fra.me.has_broke = 0;
150 fra.me.REG_size = 3;
151 fra.me.REG[0] = NIT_NULL;
152 fra.me.REG[1] = NIT_NULL;
153 fra.me.REG[2] = NIT_NULL;
154 fra.me.REG[0] = p0;
155 fra.me.REG[1] = p1;
156 fra.me.REG[2] = p2;
157 stack_frame_head = fra.me.prev;
158 return;
159 }
160 void parser___parser_prod___Prod___replace_with(val_t p0, val_t p1){
161 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
162 val_t REGB0;
163 val_t tmp;
164 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
165 fra.me.file = LOCATE_parser___parser_prod;
166 fra.me.line = 41;
167 fra.me.meth = LOCATE_parser___parser_prod___Prod___replace_with;
168 fra.me.has_broke = 0;
169 fra.me.REG_size = 4;
170 fra.me.REG[0] = NIT_NULL;
171 fra.me.REG[1] = NIT_NULL;
172 fra.me.REG[2] = NIT_NULL;
173 fra.me.REG[3] = NIT_NULL;
174 fra.me.REG[0] = p0;
175 fra.me.REG[1] = p1;
176 /* ./parser//parser_prod.nit:41 */
177 fra.me.REG[2] = fra.me.REG[0];
178 fra.me.REG[3] = fra.me.REG[1];
179 /* ./parser//parser_prod.nit:43 */
180 CALL_SUPER_parser___parser_prod___Prod___replace_with(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
181 /* ./parser//parser_prod.nit:44 */
182 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___Prod, ID_parser___parser_nodes___Prod)) /*cast Prod*/;
183 if (UNTAG_Bool(REGB0)) {
184 } else {
185 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 44);
186 }
187 /* ./parser//parser_prod.nit:45 */
188 fra.me.REG[2] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[2])(fra.me.REG[2]);
189 CALL_parser___parser_nodes___Prod___location__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
190 stack_frame_head = fra.me.prev;
191 return;
192 }
193 void parser___parser_prod___Visitor___visit(val_t p0, val_t p1){
194 struct {struct stack_frame_t me;} fra;
195 val_t tmp;
196 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
197 fra.me.file = LOCATE_parser___parser_prod;
198 fra.me.line = 51;
199 fra.me.meth = LOCATE_parser___parser_prod___Visitor___visit;
200 fra.me.has_broke = 0;
201 fra.me.REG_size = 0;
202 /* ./parser//parser_prod.nit:51 */
203 nit_abort("Deferred method called", NULL, LOCATE_parser___parser_prod, 51);
204 stack_frame_head = fra.me.prev;
205 return;
206 }
207 void parser___parser_prod___Visitor___enter_visit(val_t p0, val_t p1){
208 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
209 val_t tmp;
210 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
211 fra.me.file = LOCATE_parser___parser_prod;
212 fra.me.line = 55;
213 fra.me.meth = LOCATE_parser___parser_prod___Visitor___enter_visit;
214 fra.me.has_broke = 0;
215 fra.me.REG_size = 3;
216 fra.me.REG[0] = NIT_NULL;
217 fra.me.REG[1] = NIT_NULL;
218 fra.me.REG[2] = NIT_NULL;
219 fra.me.REG[0] = p0;
220 fra.me.REG[1] = p1;
221 /* ./parser//parser_prod.nit:60 */
222 fra.me.REG[2] = ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]);
223 /* ./parser//parser_prod.nit:61 */
224 ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
225 /* ./parser//parser_prod.nit:62 */
226 CALL_parser___parser_prod___Visitor___visit(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
227 /* ./parser//parser_prod.nit:63 */
228 ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[2];
229 stack_frame_head = fra.me.prev;
230 return;
231 }
232 val_t parser___parser_prod___Visitor___current_node(val_t p0){
233 struct {struct stack_frame_t me;} fra;
234 val_t tmp;
235 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
236 fra.me.file = LOCATE_parser___parser_prod;
237 fra.me.line = 66;
238 fra.me.meth = LOCATE_parser___parser_prod___Visitor___current_node;
239 fra.me.has_broke = 0;
240 fra.me.REG_size = 1;
241 fra.me.REG[0] = NIT_NULL;
242 fra.me.REG[0] = p0;
243 /* ./parser//parser_prod.nit:66 */
244 fra.me.REG[0] = ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]);
245 stack_frame_head = fra.me.prev;
246 return fra.me.REG[0];
247 }
248 void parser___parser_prod___Visitor___init(val_t p0, int* init_table){
249 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_prod___Visitor].i;
250 struct {struct stack_frame_t me;} fra;
251 val_t tmp;
252 if (init_table[itpos0]) return;
253 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
254 fra.me.file = LOCATE_parser___parser_prod;
255 fra.me.line = 0;
256 fra.me.meth = LOCATE_parser___parser_prod___Visitor___init;
257 fra.me.has_broke = 0;
258 fra.me.REG_size = 0;
259 stack_frame_head = fra.me.prev;
260 init_table[itpos0] = 1;
261 return;
262 }
263 void parser___parser_prod___AModule___empty_init(val_t p0, int* init_table){
264 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModule].i;
265 struct {struct stack_frame_t me;} fra;
266 val_t tmp;
267 if (init_table[itpos1]) return;
268 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
269 fra.me.file = LOCATE_parser___parser_prod;
270 fra.me.line = 71;
271 fra.me.meth = LOCATE_parser___parser_prod___AModule___empty_init;
272 fra.me.has_broke = 0;
273 fra.me.REG_size = 1;
274 fra.me.REG[0] = NIT_NULL;
275 fra.me.REG[0] = p0;
276 stack_frame_head = fra.me.prev;
277 init_table[itpos1] = 1;
278 return;
279 }
280 void parser___parser_prod___AModule___init_amodule(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
281 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModule].i;
282 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
283 val_t REGB0;
284 val_t REGB1;
285 val_t tmp;
286 if (init_table[itpos2]) return;
287 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
288 fra.me.file = LOCATE_parser___parser_prod;
289 fra.me.line = 73;
290 fra.me.meth = LOCATE_parser___parser_prod___AModule___init_amodule;
291 fra.me.has_broke = 0;
292 fra.me.REG_size = 4;
293 fra.me.REG[0] = NIT_NULL;
294 fra.me.REG[1] = NIT_NULL;
295 fra.me.REG[2] = NIT_NULL;
296 fra.me.REG[3] = NIT_NULL;
297 fra.me.REG[0] = p0;
298 fra.me.REG[1] = p1;
299 fra.me.REG[2] = p2;
300 fra.me.REG[3] = p3;
301 /* ./parser//parser_prod.nit:79 */
302 CALL_parser___parser_prod___AModule___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
303 /* ./parser//parser_prod.nit:80 */
304 ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]) = fra.me.REG[1];
305 /* ./parser//parser_prod.nit:81 */
306 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
307 if (UNTAG_Bool(REGB0)) {
308 } else {
309 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
310 if (UNTAG_Bool(REGB1)) {
311 REGB1 = TAG_Bool(false);
312 REGB0 = REGB1;
313 } else {
314 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
315 REGB0 = REGB1;
316 }
317 }
318 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
319 if (UNTAG_Bool(REGB0)) {
320 /* ./parser//parser_prod.nit:82 */
321 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
322 if (UNTAG_Bool(REGB0)) {
323 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 82);
324 }
325 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
326 }
327 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));
328 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));
329 stack_frame_head = fra.me.prev;
330 init_table[itpos2] = 1;
331 return;
332 }
333 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){
334 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
335 val_t REGB0;
336 fun_t CREG[1];
337 val_t tmp;
338 /* ./parser//parser_prod.nit:84 */
339 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
340 fra.me.file = LOCATE_parser___parser_prod;
341 fra.me.line = 0;
342 fra.me.meth = LOCATE_parser___parser_prod___AModule___init_amodule;
343 fra.me.has_broke = 0;
344 fra.me.REG_size = 2;
345 fra.me.REG[0] = NIT_NULL;
346 fra.me.REG[1] = NIT_NULL;
347 fra.me.closure_ctx = closctx_param;
348 fra.me.closure_funs = CREG;
349 fra.me.REG[0] = p0;
350 CREG[0] = clos_fun0;
351 /* ./parser//parser_prod.nit:85 */
352 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AImport, ID_parser___parser_nodes___AImport)) /*cast AImport*/;
353 if (UNTAG_Bool(REGB0)) {
354 } else {
355 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 85);
356 }
357 /* ./parser//parser_prod.nit:86 */
358 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(closctx->REG[0])!=NIT_NULL);
359 if (UNTAG_Bool(REGB0)) {
360 } else {
361 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 86);
362 }
363 fra.me.REG[1] = ATTR_parser___parser_nodes___AModule____n_imports(closctx->REG[0]);
364 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
365 /* ./parser//parser_prod.nit:87 */
366 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
367 stack_frame_head = fra.me.prev;
368 return;
369 }
370 void OC_parser___parser_prod___AModule___init_amodule_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
371 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
372 val_t REGB0;
373 fun_t CREG[1];
374 val_t tmp;
375 /* ./parser//parser_prod.nit:89 */
376 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
377 fra.me.file = LOCATE_parser___parser_prod;
378 fra.me.line = 0;
379 fra.me.meth = LOCATE_parser___parser_prod___AModule___init_amodule;
380 fra.me.has_broke = 0;
381 fra.me.REG_size = 2;
382 fra.me.REG[0] = NIT_NULL;
383 fra.me.REG[1] = NIT_NULL;
384 fra.me.closure_ctx = closctx_param;
385 fra.me.closure_funs = CREG;
386 fra.me.REG[0] = p0;
387 CREG[0] = clos_fun0;
388 /* ./parser//parser_prod.nit:90 */
389 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast AClassdef*/;
390 if (UNTAG_Bool(REGB0)) {
391 } else {
392 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 90);
393 }
394 /* ./parser//parser_prod.nit:91 */
395 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(closctx->REG[0])!=NIT_NULL);
396 if (UNTAG_Bool(REGB0)) {
397 } else {
398 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 91);
399 }
400 fra.me.REG[1] = ATTR_parser___parser_nodes___AModule____n_classdefs(closctx->REG[0]);
401 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
402 /* ./parser//parser_prod.nit:92 */
403 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
404 stack_frame_head = fra.me.prev;
405 return;
406 }
407 void parser___parser_prod___AModule___replace_child(val_t p0, val_t p1, val_t p2){
408 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
409 val_t REGB0;
410 val_t REGB1;
411 val_t REGB2;
412 val_t REGB3;
413 val_t REGB4;
414 val_t tmp;
415 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
416 fra.me.file = LOCATE_parser___parser_prod;
417 fra.me.line = 96;
418 fra.me.meth = LOCATE_parser___parser_prod___AModule___replace_child;
419 fra.me.has_broke = 0;
420 fra.me.REG_size = 4;
421 fra.me.REG[0] = NIT_NULL;
422 fra.me.REG[1] = NIT_NULL;
423 fra.me.REG[2] = NIT_NULL;
424 fra.me.REG[3] = NIT_NULL;
425 fra.me.REG[0] = p0;
426 fra.me.REG[1] = p1;
427 fra.me.REG[2] = p2;
428 /* ./parser//parser_prod.nit:98 */
429 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]);
430 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
431 if (UNTAG_Bool(REGB0)) {
432 } else {
433 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
434 if (UNTAG_Bool(REGB1)) {
435 REGB1 = TAG_Bool(false);
436 REGB0 = REGB1;
437 } else {
438 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
439 REGB0 = REGB1;
440 }
441 }
442 if (UNTAG_Bool(REGB0)) {
443 /* ./parser//parser_prod.nit:99 */
444 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
445 if (UNTAG_Bool(REGB0)) {
446 } else {
447 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
448 if (UNTAG_Bool(REGB1)) {
449 REGB1 = TAG_Bool(false);
450 REGB0 = REGB1;
451 } else {
452 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
453 REGB0 = REGB1;
454 }
455 }
456 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
457 if (UNTAG_Bool(REGB0)) {
458 /* ./parser//parser_prod.nit:100 */
459 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
460 if (UNTAG_Bool(REGB0)) {
461 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 100);
462 }
463 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
464 /* ./parser//parser_prod.nit:101 */
465 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast AModuledecl*/;
466 if (UNTAG_Bool(REGB0)) {
467 } else {
468 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 101);
469 }
470 /* ./parser//parser_prod.nit:102 */
471 ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]) = fra.me.REG[2];
472 } else {
473 /* ./parser//parser_prod.nit:104 */
474 ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]) = NIT_NULL;
475 }
476 /* ./parser//parser_prod.nit:106 */
477 goto label1;
478 }
479 /* ./parser//parser_prod.nit:108 */
480 REGB0 = TAG_Int(0);
481 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
482 if (UNTAG_Bool(REGB1)) {
483 } else {
484 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 108);
485 }
486 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]);
487 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
488 /* ./../lib/standard//kernel.nit:352 */
489 while(1) {
490 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
491 if (UNTAG_Bool(REGB2)) {
492 } else {
493 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
494 }
495 /* ./../lib/standard//kernel.nit:232 */
496 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
497 /* ./../lib/standard//kernel.nit:352 */
498 if (UNTAG_Bool(REGB2)) {
499 /* ./parser//parser_prod.nit:108 */
500 REGB2 = REGB0;
501 /* ./parser//parser_prod.nit:109 */
502 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
503 if (UNTAG_Bool(REGB3)) {
504 } else {
505 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 109);
506 }
507 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]);
508 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
509 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
510 if (UNTAG_Bool(REGB3)) {
511 } else {
512 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
513 if (UNTAG_Bool(REGB4)) {
514 REGB4 = TAG_Bool(false);
515 REGB3 = REGB4;
516 } else {
517 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
518 REGB3 = REGB4;
519 }
520 }
521 if (UNTAG_Bool(REGB3)) {
522 /* ./parser//parser_prod.nit:110 */
523 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
524 if (UNTAG_Bool(REGB3)) {
525 } else {
526 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
527 if (UNTAG_Bool(REGB4)) {
528 REGB4 = TAG_Bool(false);
529 REGB3 = REGB4;
530 } else {
531 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
532 REGB3 = REGB4;
533 }
534 }
535 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
536 if (UNTAG_Bool(REGB3)) {
537 /* ./parser//parser_prod.nit:111 */
538 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*/;
539 if (UNTAG_Bool(REGB3)) {
540 } else {
541 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 111);
542 }
543 /* ./parser//parser_prod.nit:112 */
544 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
545 if (UNTAG_Bool(REGB3)) {
546 } else {
547 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 112);
548 }
549 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]);
550 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
551 /* ./parser//parser_prod.nit:113 */
552 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
553 if (UNTAG_Bool(REGB3)) {
554 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 113);
555 }
556 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
557 } else {
558 /* ./parser//parser_prod.nit:115 */
559 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
560 if (UNTAG_Bool(REGB3)) {
561 } else {
562 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 115);
563 }
564 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]);
565 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
566 }
567 /* ./parser//parser_prod.nit:117 */
568 goto label1;
569 }
570 /* ./../lib/standard//kernel.nit:354 */
571 REGB2 = TAG_Int(1);
572 /* ./../lib/standard//kernel.nit:235 */
573 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
574 /* ./../lib/standard//kernel.nit:354 */
575 REGB0 = REGB2;
576 } else {
577 /* ./../lib/standard//kernel.nit:352 */
578 goto label2;
579 }
580 }
581 label2: while(0);
582 /* ./parser//parser_prod.nit:120 */
583 REGB0 = TAG_Int(0);
584 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
585 if (UNTAG_Bool(REGB1)) {
586 } else {
587 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 120);
588 }
589 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
590 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
591 /* ./../lib/standard//kernel.nit:352 */
592 while(1) {
593 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
594 if (UNTAG_Bool(REGB2)) {
595 } else {
596 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
597 }
598 /* ./../lib/standard//kernel.nit:232 */
599 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
600 /* ./../lib/standard//kernel.nit:352 */
601 if (UNTAG_Bool(REGB2)) {
602 /* ./parser//parser_prod.nit:120 */
603 REGB2 = REGB0;
604 /* ./parser//parser_prod.nit:121 */
605 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
606 if (UNTAG_Bool(REGB3)) {
607 } else {
608 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 121);
609 }
610 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
611 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
612 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
613 if (UNTAG_Bool(REGB3)) {
614 } else {
615 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
616 if (UNTAG_Bool(REGB4)) {
617 REGB4 = TAG_Bool(false);
618 REGB3 = REGB4;
619 } else {
620 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
621 REGB3 = REGB4;
622 }
623 }
624 if (UNTAG_Bool(REGB3)) {
625 /* ./parser//parser_prod.nit:122 */
626 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
627 if (UNTAG_Bool(REGB3)) {
628 } else {
629 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
630 if (UNTAG_Bool(REGB4)) {
631 REGB4 = TAG_Bool(false);
632 REGB3 = REGB4;
633 } else {
634 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
635 REGB3 = REGB4;
636 }
637 }
638 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
639 if (UNTAG_Bool(REGB3)) {
640 /* ./parser//parser_prod.nit:123 */
641 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*/;
642 if (UNTAG_Bool(REGB3)) {
643 } else {
644 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 123);
645 }
646 /* ./parser//parser_prod.nit:124 */
647 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
648 if (UNTAG_Bool(REGB3)) {
649 } else {
650 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 124);
651 }
652 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
653 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
654 /* ./parser//parser_prod.nit:125 */
655 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
656 if (UNTAG_Bool(REGB3)) {
657 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 125);
658 }
659 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
660 } else {
661 /* ./parser//parser_prod.nit:127 */
662 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
663 if (UNTAG_Bool(REGB3)) {
664 } else {
665 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 127);
666 }
667 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
668 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
669 }
670 /* ./parser//parser_prod.nit:129 */
671 goto label1;
672 }
673 /* ./../lib/standard//kernel.nit:354 */
674 REGB2 = TAG_Int(1);
675 /* ./../lib/standard//kernel.nit:235 */
676 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
677 /* ./../lib/standard//kernel.nit:354 */
678 REGB0 = REGB2;
679 } else {
680 /* ./../lib/standard//kernel.nit:352 */
681 goto label3;
682 }
683 }
684 label3: while(0);
685 label1: while(0);
686 stack_frame_head = fra.me.prev;
687 return;
688 }
689 void parser___parser_prod___AModule___visit_all(val_t p0, val_t p1){
690 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
691 val_t REGB0;
692 val_t REGB1;
693 val_t tmp;
694 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
695 fra.me.file = LOCATE_parser___parser_prod;
696 fra.me.line = 134;
697 fra.me.meth = LOCATE_parser___parser_prod___AModule___visit_all;
698 fra.me.has_broke = 0;
699 fra.me.REG_size = 4;
700 fra.me.REG[0] = NIT_NULL;
701 fra.me.REG[1] = NIT_NULL;
702 fra.me.REG[2] = NIT_NULL;
703 fra.me.REG[3] = NIT_NULL;
704 fra.me.REG[0] = p0;
705 fra.me.REG[1] = p1;
706 /* ./parser//parser_prod.nit:134 */
707 fra.me.REG[2] = fra.me.REG[0];
708 /* ./parser//parser_prod.nit:136 */
709 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[2]);
710 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
711 if (UNTAG_Bool(REGB0)) {
712 } else {
713 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
714 if (UNTAG_Bool(REGB1)) {
715 REGB1 = TAG_Bool(false);
716 REGB0 = REGB1;
717 } else {
718 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
719 REGB0 = REGB1;
720 }
721 }
722 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
723 if (UNTAG_Bool(REGB0)) {
724 /* ./parser//parser_prod.nit:137 */
725 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[2]);
726 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*/;
727 if (UNTAG_Bool(REGB0)) {
728 } else {
729 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 137);
730 }
731 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
732 }
733 /* ./parser//parser_prod.nit:139 */
734 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[2])!=NIT_NULL);
735 if (UNTAG_Bool(REGB0)) {
736 } else {
737 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 139);
738 }
739 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[2]);
740 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));
741 /* ./parser//parser_prod.nit:142 */
742 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[2])!=NIT_NULL);
743 if (UNTAG_Bool(REGB0)) {
744 } else {
745 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 142);
746 }
747 fra.me.REG[2] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[2]);
748 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));
749 stack_frame_head = fra.me.prev;
750 return;
751 }
752 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){
753 struct {struct stack_frame_t me;} fra;
754 fun_t CREG[1];
755 val_t tmp;
756 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
757 fra.me.file = LOCATE_parser___parser_prod;
758 fra.me.line = 0;
759 fra.me.meth = LOCATE_parser___parser_prod___AModule___visit_all;
760 fra.me.has_broke = 0;
761 fra.me.REG_size = 1;
762 fra.me.REG[0] = NIT_NULL;
763 fra.me.closure_ctx = closctx_param;
764 fra.me.closure_funs = CREG;
765 fra.me.REG[0] = p0;
766 CREG[0] = clos_fun0;
767 /* ./parser//parser_prod.nit:140 */
768 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
769 stack_frame_head = fra.me.prev;
770 return;
771 }
772 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){
773 struct {struct stack_frame_t me;} fra;
774 fun_t CREG[1];
775 val_t tmp;
776 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
777 fra.me.file = LOCATE_parser___parser_prod;
778 fra.me.line = 0;
779 fra.me.meth = LOCATE_parser___parser_prod___AModule___visit_all;
780 fra.me.has_broke = 0;
781 fra.me.REG_size = 1;
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:143 */
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 parser___parser_prod___AModuledecl___empty_init(val_t p0, int* init_table){
793 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuledecl].i;
794 struct {struct stack_frame_t me;} fra;
795 val_t tmp;
796 if (init_table[itpos3]) return;
797 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
798 fra.me.file = LOCATE_parser___parser_prod;
799 fra.me.line = 148;
800 fra.me.meth = LOCATE_parser___parser_prod___AModuledecl___empty_init;
801 fra.me.has_broke = 0;
802 fra.me.REG_size = 1;
803 fra.me.REG[0] = NIT_NULL;
804 fra.me.REG[0] = p0;
805 stack_frame_head = fra.me.prev;
806 init_table[itpos3] = 1;
807 return;
808 }
809 void parser___parser_prod___AModuledecl___init_amoduledecl(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
810 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuledecl].i;
811 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
812 val_t REGB0;
813 val_t REGB1;
814 val_t tmp;
815 if (init_table[itpos4]) return;
816 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
817 fra.me.file = LOCATE_parser___parser_prod;
818 fra.me.line = 150;
819 fra.me.meth = LOCATE_parser___parser_prod___AModuledecl___init_amoduledecl;
820 fra.me.has_broke = 0;
821 fra.me.REG_size = 5;
822 fra.me.REG[0] = NIT_NULL;
823 fra.me.REG[1] = NIT_NULL;
824 fra.me.REG[2] = NIT_NULL;
825 fra.me.REG[3] = NIT_NULL;
826 fra.me.REG[4] = NIT_NULL;
827 fra.me.REG[0] = p0;
828 fra.me.REG[1] = p1;
829 fra.me.REG[2] = p2;
830 fra.me.REG[3] = p3;
831 /* ./parser//parser_prod.nit:150 */
832 fra.me.REG[4] = fra.me.REG[0];
833 /* ./parser//parser_prod.nit:156 */
834 CALL_parser___parser_prod___AModuledecl___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
835 /* ./parser//parser_prod.nit:157 */
836 ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[4]) = fra.me.REG[1];
837 /* ./parser//parser_prod.nit:158 */
838 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
839 if (UNTAG_Bool(REGB0)) {
840 } else {
841 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
842 if (UNTAG_Bool(REGB1)) {
843 REGB1 = TAG_Bool(false);
844 REGB0 = REGB1;
845 } else {
846 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
847 REGB0 = REGB1;
848 }
849 }
850 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
851 if (UNTAG_Bool(REGB0)) {
852 /* ./parser//parser_prod.nit:159 */
853 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
854 if (UNTAG_Bool(REGB0)) {
855 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 159);
856 }
857 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
858 }
859 /* ./parser//parser_prod.nit:161 */
860 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
861 if (UNTAG_Bool(REGB0)) {
862 } else {
863 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 161);
864 }
865 ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[4]) = fra.me.REG[2];
866 /* ./parser//parser_prod.nit:162 */
867 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
868 if (UNTAG_Bool(REGB0)) {
869 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 162);
870 }
871 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
872 /* ./parser//parser_prod.nit:163 */
873 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
874 if (UNTAG_Bool(REGB0)) {
875 } else {
876 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 163);
877 }
878 ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[4]) = fra.me.REG[3];
879 /* ./parser//parser_prod.nit:164 */
880 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
881 if (UNTAG_Bool(REGB0)) {
882 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 164);
883 }
884 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
885 stack_frame_head = fra.me.prev;
886 init_table[itpos4] = 1;
887 return;
888 }
889 void parser___parser_prod___AModuledecl___replace_child(val_t p0, val_t p1, val_t p2){
890 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
891 val_t REGB0;
892 val_t REGB1;
893 val_t tmp;
894 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
895 fra.me.file = LOCATE_parser___parser_prod;
896 fra.me.line = 167;
897 fra.me.meth = LOCATE_parser___parser_prod___AModuledecl___replace_child;
898 fra.me.has_broke = 0;
899 fra.me.REG_size = 4;
900 fra.me.REG[0] = NIT_NULL;
901 fra.me.REG[1] = NIT_NULL;
902 fra.me.REG[2] = NIT_NULL;
903 fra.me.REG[3] = NIT_NULL;
904 fra.me.REG[0] = p0;
905 fra.me.REG[1] = p1;
906 fra.me.REG[2] = p2;
907 /* ./parser//parser_prod.nit:169 */
908 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[0]);
909 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
910 if (UNTAG_Bool(REGB0)) {
911 } else {
912 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
913 if (UNTAG_Bool(REGB1)) {
914 REGB1 = TAG_Bool(false);
915 REGB0 = REGB1;
916 } else {
917 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
918 REGB0 = REGB1;
919 }
920 }
921 if (UNTAG_Bool(REGB0)) {
922 /* ./parser//parser_prod.nit:170 */
923 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
924 if (UNTAG_Bool(REGB0)) {
925 } else {
926 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
927 if (UNTAG_Bool(REGB1)) {
928 REGB1 = TAG_Bool(false);
929 REGB0 = REGB1;
930 } else {
931 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
932 REGB0 = REGB1;
933 }
934 }
935 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
936 if (UNTAG_Bool(REGB0)) {
937 /* ./parser//parser_prod.nit:171 */
938 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
939 if (UNTAG_Bool(REGB0)) {
940 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 171);
941 }
942 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
943 /* ./parser//parser_prod.nit:172 */
944 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*/;
945 if (UNTAG_Bool(REGB0)) {
946 } else {
947 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 172);
948 }
949 /* ./parser//parser_prod.nit:173 */
950 ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[0]) = fra.me.REG[2];
951 } else {
952 /* ./parser//parser_prod.nit:175 */
953 ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[0]) = NIT_NULL;
954 }
955 /* ./parser//parser_prod.nit:177 */
956 goto label1;
957 }
958 /* ./parser//parser_prod.nit:179 */
959 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0])!=NIT_NULL);
960 if (UNTAG_Bool(REGB0)) {
961 } else {
962 nit_abort("Uninitialized attribute %s", "_n_kwmodule", LOCATE_parser___parser_prod, 179);
963 }
964 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0]);
965 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
966 if (UNTAG_Bool(REGB0)) {
967 } else {
968 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
969 REGB0 = REGB1;
970 }
971 if (UNTAG_Bool(REGB0)) {
972 /* ./parser//parser_prod.nit:180 */
973 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
974 if (UNTAG_Bool(REGB0)) {
975 } else {
976 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
977 if (UNTAG_Bool(REGB1)) {
978 REGB1 = TAG_Bool(false);
979 REGB0 = REGB1;
980 } else {
981 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
982 REGB0 = REGB1;
983 }
984 }
985 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
986 if (UNTAG_Bool(REGB0)) {
987 /* ./parser//parser_prod.nit:181 */
988 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
989 if (UNTAG_Bool(REGB0)) {
990 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 181);
991 }
992 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
993 /* ./parser//parser_prod.nit:182 */
994 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*/;
995 if (UNTAG_Bool(REGB0)) {
996 } else {
997 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 182);
998 }
999 /* ./parser//parser_prod.nit:183 */
1000 ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0]) = fra.me.REG[2];
1001 } else {
1002 /* ./parser//parser_prod.nit:185 */
1003 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 185);
1004 }
1005 /* ./parser//parser_prod.nit:187 */
1006 goto label1;
1007 }
1008 /* ./parser//parser_prod.nit:189 */
1009 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[0])!=NIT_NULL);
1010 if (UNTAG_Bool(REGB0)) {
1011 } else {
1012 nit_abort("Uninitialized attribute %s", "_n_name", LOCATE_parser___parser_prod, 189);
1013 }
1014 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[0]);
1015 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1016 if (UNTAG_Bool(REGB0)) {
1017 } else {
1018 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1019 REGB0 = REGB1;
1020 }
1021 if (UNTAG_Bool(REGB0)) {
1022 /* ./parser//parser_prod.nit:190 */
1023 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1024 if (UNTAG_Bool(REGB0)) {
1025 } else {
1026 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1027 if (UNTAG_Bool(REGB1)) {
1028 REGB1 = TAG_Bool(false);
1029 REGB0 = REGB1;
1030 } else {
1031 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1032 REGB0 = REGB1;
1033 }
1034 }
1035 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1036 if (UNTAG_Bool(REGB0)) {
1037 /* ./parser//parser_prod.nit:191 */
1038 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1039 if (UNTAG_Bool(REGB0)) {
1040 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 191);
1041 }
1042 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1043 /* ./parser//parser_prod.nit:192 */
1044 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*/;
1045 if (UNTAG_Bool(REGB0)) {
1046 } else {
1047 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 192);
1048 }
1049 /* ./parser//parser_prod.nit:193 */
1050 ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[0]) = fra.me.REG[2];
1051 } else {
1052 /* ./parser//parser_prod.nit:195 */
1053 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 195);
1054 }
1055 /* ./parser//parser_prod.nit:197 */
1056 goto label1;
1057 }
1058 label1: while(0);
1059 stack_frame_head = fra.me.prev;
1060 return;
1061 }
1062 void parser___parser_prod___AModuledecl___visit_all(val_t p0, val_t p1){
1063 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1064 val_t REGB0;
1065 val_t REGB1;
1066 val_t tmp;
1067 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1068 fra.me.file = LOCATE_parser___parser_prod;
1069 fra.me.line = 201;
1070 fra.me.meth = LOCATE_parser___parser_prod___AModuledecl___visit_all;
1071 fra.me.has_broke = 0;
1072 fra.me.REG_size = 4;
1073 fra.me.REG[0] = NIT_NULL;
1074 fra.me.REG[1] = NIT_NULL;
1075 fra.me.REG[2] = NIT_NULL;
1076 fra.me.REG[3] = NIT_NULL;
1077 fra.me.REG[0] = p0;
1078 fra.me.REG[1] = p1;
1079 /* ./parser//parser_prod.nit:201 */
1080 fra.me.REG[2] = fra.me.REG[0];
1081 /* ./parser//parser_prod.nit:203 */
1082 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[2]);
1083 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1084 if (UNTAG_Bool(REGB0)) {
1085 } else {
1086 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1087 if (UNTAG_Bool(REGB1)) {
1088 REGB1 = TAG_Bool(false);
1089 REGB0 = REGB1;
1090 } else {
1091 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1092 REGB0 = REGB1;
1093 }
1094 }
1095 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1096 if (UNTAG_Bool(REGB0)) {
1097 /* ./parser//parser_prod.nit:204 */
1098 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[2]);
1099 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*/;
1100 if (UNTAG_Bool(REGB0)) {
1101 } else {
1102 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 204);
1103 }
1104 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1105 }
1106 /* ./parser//parser_prod.nit:206 */
1107 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[2])!=NIT_NULL);
1108 if (UNTAG_Bool(REGB0)) {
1109 } else {
1110 nit_abort("Uninitialized attribute %s", "_n_kwmodule", LOCATE_parser___parser_prod, 206);
1111 }
1112 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[2]);
1113 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1114 /* ./parser//parser_prod.nit:207 */
1115 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[2])!=NIT_NULL);
1116 if (UNTAG_Bool(REGB0)) {
1117 } else {
1118 nit_abort("Uninitialized attribute %s", "_n_name", LOCATE_parser___parser_prod, 207);
1119 }
1120 fra.me.REG[2] = ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[2]);
1121 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1122 stack_frame_head = fra.me.prev;
1123 return;
1124 }
1125 void parser___parser_prod___AStdImport___empty_init(val_t p0, int* init_table){
1126 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStdImport].i;
1127 struct {struct stack_frame_t me;} fra;
1128 val_t tmp;
1129 if (init_table[itpos5]) return;
1130 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1131 fra.me.file = LOCATE_parser___parser_prod;
1132 fra.me.line = 211;
1133 fra.me.meth = LOCATE_parser___parser_prod___AStdImport___empty_init;
1134 fra.me.has_broke = 0;
1135 fra.me.REG_size = 1;
1136 fra.me.REG[0] = NIT_NULL;
1137 fra.me.REG[0] = p0;
1138 stack_frame_head = fra.me.prev;
1139 init_table[itpos5] = 1;
1140 return;
1141 }
1142 void parser___parser_prod___AStdImport___init_astdimport(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1143 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStdImport].i;
1144 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1145 val_t REGB0;
1146 val_t tmp;
1147 if (init_table[itpos6]) return;
1148 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1149 fra.me.file = LOCATE_parser___parser_prod;
1150 fra.me.line = 213;
1151 fra.me.meth = LOCATE_parser___parser_prod___AStdImport___init_astdimport;
1152 fra.me.has_broke = 0;
1153 fra.me.REG_size = 5;
1154 fra.me.REG[0] = NIT_NULL;
1155 fra.me.REG[1] = NIT_NULL;
1156 fra.me.REG[2] = NIT_NULL;
1157 fra.me.REG[3] = NIT_NULL;
1158 fra.me.REG[4] = NIT_NULL;
1159 fra.me.REG[0] = p0;
1160 fra.me.REG[1] = p1;
1161 fra.me.REG[2] = p2;
1162 fra.me.REG[3] = p3;
1163 /* ./parser//parser_prod.nit:213 */
1164 fra.me.REG[4] = fra.me.REG[0];
1165 /* ./parser//parser_prod.nit:219 */
1166 CALL_parser___parser_prod___AStdImport___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
1167 /* ./parser//parser_prod.nit:220 */
1168 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
1169 if (UNTAG_Bool(REGB0)) {
1170 } else {
1171 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 220);
1172 }
1173 ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[4]) = fra.me.REG[1];
1174 /* ./parser//parser_prod.nit:221 */
1175 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1176 if (UNTAG_Bool(REGB0)) {
1177 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 221);
1178 }
1179 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
1180 /* ./parser//parser_prod.nit:222 */
1181 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
1182 if (UNTAG_Bool(REGB0)) {
1183 } else {
1184 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 222);
1185 }
1186 ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[4]) = fra.me.REG[2];
1187 /* ./parser//parser_prod.nit:223 */
1188 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1189 if (UNTAG_Bool(REGB0)) {
1190 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 223);
1191 }
1192 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1193 /* ./parser//parser_prod.nit:224 */
1194 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
1195 if (UNTAG_Bool(REGB0)) {
1196 } else {
1197 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 224);
1198 }
1199 ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[4]) = fra.me.REG[3];
1200 /* ./parser//parser_prod.nit:225 */
1201 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1202 if (UNTAG_Bool(REGB0)) {
1203 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 225);
1204 }
1205 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1206 stack_frame_head = fra.me.prev;
1207 init_table[itpos6] = 1;
1208 return;
1209 }
1210 void parser___parser_prod___AStdImport___replace_child(val_t p0, val_t p1, val_t p2){
1211 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1212 val_t REGB0;
1213 val_t REGB1;
1214 val_t tmp;
1215 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1216 fra.me.file = LOCATE_parser___parser_prod;
1217 fra.me.line = 228;
1218 fra.me.meth = LOCATE_parser___parser_prod___AStdImport___replace_child;
1219 fra.me.has_broke = 0;
1220 fra.me.REG_size = 4;
1221 fra.me.REG[0] = NIT_NULL;
1222 fra.me.REG[1] = NIT_NULL;
1223 fra.me.REG[2] = NIT_NULL;
1224 fra.me.REG[3] = NIT_NULL;
1225 fra.me.REG[0] = p0;
1226 fra.me.REG[1] = p1;
1227 fra.me.REG[2] = p2;
1228 /* ./parser//parser_prod.nit:230 */
1229 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
1230 if (UNTAG_Bool(REGB0)) {
1231 } else {
1232 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 230);
1233 }
1234 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0]);
1235 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1236 if (UNTAG_Bool(REGB0)) {
1237 } else {
1238 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1239 REGB0 = REGB1;
1240 }
1241 if (UNTAG_Bool(REGB0)) {
1242 /* ./parser//parser_prod.nit:231 */
1243 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1244 if (UNTAG_Bool(REGB0)) {
1245 } else {
1246 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1247 if (UNTAG_Bool(REGB1)) {
1248 REGB1 = TAG_Bool(false);
1249 REGB0 = REGB1;
1250 } else {
1251 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1252 REGB0 = REGB1;
1253 }
1254 }
1255 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1256 if (UNTAG_Bool(REGB0)) {
1257 /* ./parser//parser_prod.nit:232 */
1258 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1259 if (UNTAG_Bool(REGB0)) {
1260 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 232);
1261 }
1262 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1263 /* ./parser//parser_prod.nit:233 */
1264 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*/;
1265 if (UNTAG_Bool(REGB0)) {
1266 } else {
1267 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 233);
1268 }
1269 /* ./parser//parser_prod.nit:234 */
1270 ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
1271 } else {
1272 /* ./parser//parser_prod.nit:236 */
1273 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 236);
1274 }
1275 /* ./parser//parser_prod.nit:238 */
1276 goto label1;
1277 }
1278 /* ./parser//parser_prod.nit:240 */
1279 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
1280 if (UNTAG_Bool(REGB0)) {
1281 } else {
1282 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 240);
1283 }
1284 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0]);
1285 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1286 if (UNTAG_Bool(REGB0)) {
1287 } else {
1288 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1289 REGB0 = REGB1;
1290 }
1291 if (UNTAG_Bool(REGB0)) {
1292 /* ./parser//parser_prod.nit:241 */
1293 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1294 if (UNTAG_Bool(REGB0)) {
1295 } else {
1296 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1297 if (UNTAG_Bool(REGB1)) {
1298 REGB1 = TAG_Bool(false);
1299 REGB0 = REGB1;
1300 } else {
1301 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1302 REGB0 = REGB1;
1303 }
1304 }
1305 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1306 if (UNTAG_Bool(REGB0)) {
1307 /* ./parser//parser_prod.nit:242 */
1308 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1309 if (UNTAG_Bool(REGB0)) {
1310 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 242);
1311 }
1312 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1313 /* ./parser//parser_prod.nit:243 */
1314 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*/;
1315 if (UNTAG_Bool(REGB0)) {
1316 } else {
1317 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 243);
1318 }
1319 /* ./parser//parser_prod.nit:244 */
1320 ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
1321 } else {
1322 /* ./parser//parser_prod.nit:246 */
1323 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 246);
1324 }
1325 /* ./parser//parser_prod.nit:248 */
1326 goto label1;
1327 }
1328 /* ./parser//parser_prod.nit:250 */
1329 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0])!=NIT_NULL);
1330 if (UNTAG_Bool(REGB0)) {
1331 } else {
1332 nit_abort("Uninitialized attribute %s", "_n_name", LOCATE_parser___parser_prod, 250);
1333 }
1334 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0]);
1335 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1336 if (UNTAG_Bool(REGB0)) {
1337 } else {
1338 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1339 REGB0 = REGB1;
1340 }
1341 if (UNTAG_Bool(REGB0)) {
1342 /* ./parser//parser_prod.nit:251 */
1343 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1344 if (UNTAG_Bool(REGB0)) {
1345 } else {
1346 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1347 if (UNTAG_Bool(REGB1)) {
1348 REGB1 = TAG_Bool(false);
1349 REGB0 = REGB1;
1350 } else {
1351 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1352 REGB0 = REGB1;
1353 }
1354 }
1355 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1356 if (UNTAG_Bool(REGB0)) {
1357 /* ./parser//parser_prod.nit:252 */
1358 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1359 if (UNTAG_Bool(REGB0)) {
1360 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 252);
1361 }
1362 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1363 /* ./parser//parser_prod.nit:253 */
1364 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*/;
1365 if (UNTAG_Bool(REGB0)) {
1366 } else {
1367 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 253);
1368 }
1369 /* ./parser//parser_prod.nit:254 */
1370 ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0]) = fra.me.REG[2];
1371 } else {
1372 /* ./parser//parser_prod.nit:256 */
1373 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 256);
1374 }
1375 /* ./parser//parser_prod.nit:258 */
1376 goto label1;
1377 }
1378 label1: while(0);
1379 stack_frame_head = fra.me.prev;
1380 return;
1381 }
1382 void parser___parser_prod___AStdImport___visit_all(val_t p0, val_t p1){
1383 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1384 val_t REGB0;
1385 val_t tmp;
1386 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1387 fra.me.file = LOCATE_parser___parser_prod;
1388 fra.me.line = 262;
1389 fra.me.meth = LOCATE_parser___parser_prod___AStdImport___visit_all;
1390 fra.me.has_broke = 0;
1391 fra.me.REG_size = 3;
1392 fra.me.REG[0] = NIT_NULL;
1393 fra.me.REG[1] = NIT_NULL;
1394 fra.me.REG[2] = NIT_NULL;
1395 fra.me.REG[0] = p0;
1396 fra.me.REG[1] = p1;
1397 /* ./parser//parser_prod.nit:264 */
1398 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
1399 if (UNTAG_Bool(REGB0)) {
1400 } else {
1401 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 264);
1402 }
1403 fra.me.REG[2] = ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0]);
1404 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1405 /* ./parser//parser_prod.nit:265 */
1406 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
1407 if (UNTAG_Bool(REGB0)) {
1408 } else {
1409 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 265);
1410 }
1411 fra.me.REG[2] = ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0]);
1412 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1413 /* ./parser//parser_prod.nit:266 */
1414 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0])!=NIT_NULL);
1415 if (UNTAG_Bool(REGB0)) {
1416 } else {
1417 nit_abort("Uninitialized attribute %s", "_n_name", LOCATE_parser___parser_prod, 266);
1418 }
1419 fra.me.REG[0] = ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0]);
1420 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1421 stack_frame_head = fra.me.prev;
1422 return;
1423 }
1424 void parser___parser_prod___ANoImport___empty_init(val_t p0, int* init_table){
1425 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANoImport].i;
1426 struct {struct stack_frame_t me;} fra;
1427 val_t tmp;
1428 if (init_table[itpos7]) return;
1429 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1430 fra.me.file = LOCATE_parser___parser_prod;
1431 fra.me.line = 270;
1432 fra.me.meth = LOCATE_parser___parser_prod___ANoImport___empty_init;
1433 fra.me.has_broke = 0;
1434 fra.me.REG_size = 1;
1435 fra.me.REG[0] = NIT_NULL;
1436 fra.me.REG[0] = p0;
1437 stack_frame_head = fra.me.prev;
1438 init_table[itpos7] = 1;
1439 return;
1440 }
1441 void parser___parser_prod___ANoImport___init_anoimport(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1442 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANoImport].i;
1443 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1444 val_t REGB0;
1445 val_t tmp;
1446 if (init_table[itpos8]) return;
1447 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1448 fra.me.file = LOCATE_parser___parser_prod;
1449 fra.me.line = 272;
1450 fra.me.meth = LOCATE_parser___parser_prod___ANoImport___init_anoimport;
1451 fra.me.has_broke = 0;
1452 fra.me.REG_size = 5;
1453 fra.me.REG[0] = NIT_NULL;
1454 fra.me.REG[1] = NIT_NULL;
1455 fra.me.REG[2] = NIT_NULL;
1456 fra.me.REG[3] = NIT_NULL;
1457 fra.me.REG[4] = NIT_NULL;
1458 fra.me.REG[0] = p0;
1459 fra.me.REG[1] = p1;
1460 fra.me.REG[2] = p2;
1461 fra.me.REG[3] = p3;
1462 /* ./parser//parser_prod.nit:272 */
1463 fra.me.REG[4] = fra.me.REG[0];
1464 /* ./parser//parser_prod.nit:278 */
1465 CALL_parser___parser_prod___ANoImport___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
1466 /* ./parser//parser_prod.nit:279 */
1467 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
1468 if (UNTAG_Bool(REGB0)) {
1469 } else {
1470 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 279);
1471 }
1472 ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[4]) = fra.me.REG[1];
1473 /* ./parser//parser_prod.nit:280 */
1474 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1475 if (UNTAG_Bool(REGB0)) {
1476 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 280);
1477 }
1478 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
1479 /* ./parser//parser_prod.nit:281 */
1480 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
1481 if (UNTAG_Bool(REGB0)) {
1482 } else {
1483 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 281);
1484 }
1485 ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[4]) = fra.me.REG[2];
1486 /* ./parser//parser_prod.nit:282 */
1487 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1488 if (UNTAG_Bool(REGB0)) {
1489 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 282);
1490 }
1491 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1492 /* ./parser//parser_prod.nit:283 */
1493 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
1494 if (UNTAG_Bool(REGB0)) {
1495 } else {
1496 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 283);
1497 }
1498 ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[4]) = fra.me.REG[3];
1499 /* ./parser//parser_prod.nit:284 */
1500 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1501 if (UNTAG_Bool(REGB0)) {
1502 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 284);
1503 }
1504 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1505 stack_frame_head = fra.me.prev;
1506 init_table[itpos8] = 1;
1507 return;
1508 }
1509 void parser___parser_prod___ANoImport___replace_child(val_t p0, val_t p1, val_t p2){
1510 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1511 val_t REGB0;
1512 val_t REGB1;
1513 val_t tmp;
1514 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1515 fra.me.file = LOCATE_parser___parser_prod;
1516 fra.me.line = 287;
1517 fra.me.meth = LOCATE_parser___parser_prod___ANoImport___replace_child;
1518 fra.me.has_broke = 0;
1519 fra.me.REG_size = 4;
1520 fra.me.REG[0] = NIT_NULL;
1521 fra.me.REG[1] = NIT_NULL;
1522 fra.me.REG[2] = NIT_NULL;
1523 fra.me.REG[3] = NIT_NULL;
1524 fra.me.REG[0] = p0;
1525 fra.me.REG[1] = p1;
1526 fra.me.REG[2] = p2;
1527 /* ./parser//parser_prod.nit:289 */
1528 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
1529 if (UNTAG_Bool(REGB0)) {
1530 } else {
1531 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 289);
1532 }
1533 fra.me.REG[3] = ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0]);
1534 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1535 if (UNTAG_Bool(REGB0)) {
1536 } else {
1537 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1538 REGB0 = REGB1;
1539 }
1540 if (UNTAG_Bool(REGB0)) {
1541 /* ./parser//parser_prod.nit:290 */
1542 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1543 if (UNTAG_Bool(REGB0)) {
1544 } else {
1545 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1546 if (UNTAG_Bool(REGB1)) {
1547 REGB1 = TAG_Bool(false);
1548 REGB0 = REGB1;
1549 } else {
1550 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1551 REGB0 = REGB1;
1552 }
1553 }
1554 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1555 if (UNTAG_Bool(REGB0)) {
1556 /* ./parser//parser_prod.nit:291 */
1557 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1558 if (UNTAG_Bool(REGB0)) {
1559 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 291);
1560 }
1561 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1562 /* ./parser//parser_prod.nit:292 */
1563 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*/;
1564 if (UNTAG_Bool(REGB0)) {
1565 } else {
1566 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 292);
1567 }
1568 /* ./parser//parser_prod.nit:293 */
1569 ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
1570 } else {
1571 /* ./parser//parser_prod.nit:295 */
1572 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 295);
1573 }
1574 /* ./parser//parser_prod.nit:297 */
1575 goto label1;
1576 }
1577 /* ./parser//parser_prod.nit:299 */
1578 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
1579 if (UNTAG_Bool(REGB0)) {
1580 } else {
1581 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 299);
1582 }
1583 fra.me.REG[3] = ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0]);
1584 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1585 if (UNTAG_Bool(REGB0)) {
1586 } else {
1587 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1588 REGB0 = REGB1;
1589 }
1590 if (UNTAG_Bool(REGB0)) {
1591 /* ./parser//parser_prod.nit:300 */
1592 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1593 if (UNTAG_Bool(REGB0)) {
1594 } else {
1595 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1596 if (UNTAG_Bool(REGB1)) {
1597 REGB1 = TAG_Bool(false);
1598 REGB0 = REGB1;
1599 } else {
1600 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1601 REGB0 = REGB1;
1602 }
1603 }
1604 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1605 if (UNTAG_Bool(REGB0)) {
1606 /* ./parser//parser_prod.nit:301 */
1607 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1608 if (UNTAG_Bool(REGB0)) {
1609 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 301);
1610 }
1611 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1612 /* ./parser//parser_prod.nit:302 */
1613 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*/;
1614 if (UNTAG_Bool(REGB0)) {
1615 } else {
1616 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 302);
1617 }
1618 /* ./parser//parser_prod.nit:303 */
1619 ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
1620 } else {
1621 /* ./parser//parser_prod.nit:305 */
1622 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 305);
1623 }
1624 /* ./parser//parser_prod.nit:307 */
1625 goto label1;
1626 }
1627 /* ./parser//parser_prod.nit:309 */
1628 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0])!=NIT_NULL);
1629 if (UNTAG_Bool(REGB0)) {
1630 } else {
1631 nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser___parser_prod, 309);
1632 }
1633 fra.me.REG[3] = ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0]);
1634 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1635 if (UNTAG_Bool(REGB0)) {
1636 } else {
1637 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1638 REGB0 = REGB1;
1639 }
1640 if (UNTAG_Bool(REGB0)) {
1641 /* ./parser//parser_prod.nit:310 */
1642 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1643 if (UNTAG_Bool(REGB0)) {
1644 } else {
1645 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1646 if (UNTAG_Bool(REGB1)) {
1647 REGB1 = TAG_Bool(false);
1648 REGB0 = REGB1;
1649 } else {
1650 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1651 REGB0 = REGB1;
1652 }
1653 }
1654 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1655 if (UNTAG_Bool(REGB0)) {
1656 /* ./parser//parser_prod.nit:311 */
1657 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1658 if (UNTAG_Bool(REGB0)) {
1659 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 311);
1660 }
1661 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1662 /* ./parser//parser_prod.nit:312 */
1663 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*/;
1664 if (UNTAG_Bool(REGB0)) {
1665 } else {
1666 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 312);
1667 }
1668 /* ./parser//parser_prod.nit:313 */
1669 ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0]) = fra.me.REG[2];
1670 } else {
1671 /* ./parser//parser_prod.nit:315 */
1672 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 315);
1673 }
1674 /* ./parser//parser_prod.nit:317 */
1675 goto label1;
1676 }
1677 label1: while(0);
1678 stack_frame_head = fra.me.prev;
1679 return;
1680 }
1681 void parser___parser_prod___ANoImport___visit_all(val_t p0, val_t p1){
1682 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1683 val_t REGB0;
1684 val_t tmp;
1685 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1686 fra.me.file = LOCATE_parser___parser_prod;
1687 fra.me.line = 321;
1688 fra.me.meth = LOCATE_parser___parser_prod___ANoImport___visit_all;
1689 fra.me.has_broke = 0;
1690 fra.me.REG_size = 3;
1691 fra.me.REG[0] = NIT_NULL;
1692 fra.me.REG[1] = NIT_NULL;
1693 fra.me.REG[2] = NIT_NULL;
1694 fra.me.REG[0] = p0;
1695 fra.me.REG[1] = p1;
1696 /* ./parser//parser_prod.nit:323 */
1697 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
1698 if (UNTAG_Bool(REGB0)) {
1699 } else {
1700 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 323);
1701 }
1702 fra.me.REG[2] = ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0]);
1703 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1704 /* ./parser//parser_prod.nit:324 */
1705 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
1706 if (UNTAG_Bool(REGB0)) {
1707 } else {
1708 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 324);
1709 }
1710 fra.me.REG[2] = ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0]);
1711 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1712 /* ./parser//parser_prod.nit:325 */
1713 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0])!=NIT_NULL);
1714 if (UNTAG_Bool(REGB0)) {
1715 } else {
1716 nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser___parser_prod, 325);
1717 }
1718 fra.me.REG[0] = ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0]);
1719 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1720 stack_frame_head = fra.me.prev;
1721 return;
1722 }
1723 void parser___parser_prod___APublicVisibility___empty_init(val_t p0, int* init_table){
1724 int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APublicVisibility].i;
1725 struct {struct stack_frame_t me;} fra;
1726 val_t tmp;
1727 if (init_table[itpos9]) return;
1728 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1729 fra.me.file = LOCATE_parser___parser_prod;
1730 fra.me.line = 329;
1731 fra.me.meth = LOCATE_parser___parser_prod___APublicVisibility___empty_init;
1732 fra.me.has_broke = 0;
1733 fra.me.REG_size = 1;
1734 fra.me.REG[0] = NIT_NULL;
1735 fra.me.REG[0] = p0;
1736 stack_frame_head = fra.me.prev;
1737 init_table[itpos9] = 1;
1738 return;
1739 }
1740 void parser___parser_prod___APublicVisibility___init_apublicvisibility(val_t p0, int* init_table){
1741 int itpos10 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APublicVisibility].i;
1742 struct {struct stack_frame_t me;} fra;
1743 val_t tmp;
1744 if (init_table[itpos10]) return;
1745 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1746 fra.me.file = LOCATE_parser___parser_prod;
1747 fra.me.line = 331;
1748 fra.me.meth = LOCATE_parser___parser_prod___APublicVisibility___init_apublicvisibility;
1749 fra.me.has_broke = 0;
1750 fra.me.REG_size = 1;
1751 fra.me.REG[0] = NIT_NULL;
1752 fra.me.REG[0] = p0;
1753 /* ./parser//parser_prod.nit:333 */
1754 CALL_parser___parser_prod___APublicVisibility___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
1755 stack_frame_head = fra.me.prev;
1756 init_table[itpos10] = 1;
1757 return;
1758 }
1759 void parser___parser_prod___APublicVisibility___replace_child(val_t p0, val_t p1, val_t p2){
1760 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1761 val_t tmp;
1762 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1763 fra.me.file = LOCATE_parser___parser_prod;
1764 fra.me.line = 336;
1765 fra.me.meth = LOCATE_parser___parser_prod___APublicVisibility___replace_child;
1766 fra.me.has_broke = 0;
1767 fra.me.REG_size = 3;
1768 fra.me.REG[0] = NIT_NULL;
1769 fra.me.REG[1] = NIT_NULL;
1770 fra.me.REG[2] = NIT_NULL;
1771 fra.me.REG[0] = p0;
1772 fra.me.REG[1] = p1;
1773 fra.me.REG[2] = p2;
1774 stack_frame_head = fra.me.prev;
1775 return;
1776 }
1777 void parser___parser_prod___APublicVisibility___visit_all(val_t p0, val_t p1){
1778 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1779 val_t tmp;
1780 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1781 fra.me.file = LOCATE_parser___parser_prod;
1782 fra.me.line = 340;
1783 fra.me.meth = LOCATE_parser___parser_prod___APublicVisibility___visit_all;
1784 fra.me.has_broke = 0;
1785 fra.me.REG_size = 2;
1786 fra.me.REG[0] = NIT_NULL;
1787 fra.me.REG[1] = NIT_NULL;
1788 fra.me.REG[0] = p0;
1789 fra.me.REG[1] = p1;
1790 stack_frame_head = fra.me.prev;
1791 return;
1792 }
1793 void parser___parser_prod___APrivateVisibility___empty_init(val_t p0, int* init_table){
1794 int itpos11 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APrivateVisibility].i;
1795 struct {struct stack_frame_t me;} fra;
1796 val_t tmp;
1797 if (init_table[itpos11]) return;
1798 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1799 fra.me.file = LOCATE_parser___parser_prod;
1800 fra.me.line = 345;
1801 fra.me.meth = LOCATE_parser___parser_prod___APrivateVisibility___empty_init;
1802 fra.me.has_broke = 0;
1803 fra.me.REG_size = 1;
1804 fra.me.REG[0] = NIT_NULL;
1805 fra.me.REG[0] = p0;
1806 stack_frame_head = fra.me.prev;
1807 init_table[itpos11] = 1;
1808 return;
1809 }
1810 void parser___parser_prod___APrivateVisibility___init_aprivatevisibility(val_t p0, val_t p1, int* init_table){
1811 int itpos12 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APrivateVisibility].i;
1812 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1813 val_t REGB0;
1814 val_t tmp;
1815 if (init_table[itpos12]) return;
1816 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1817 fra.me.file = LOCATE_parser___parser_prod;
1818 fra.me.line = 347;
1819 fra.me.meth = LOCATE_parser___parser_prod___APrivateVisibility___init_aprivatevisibility;
1820 fra.me.has_broke = 0;
1821 fra.me.REG_size = 3;
1822 fra.me.REG[0] = NIT_NULL;
1823 fra.me.REG[1] = NIT_NULL;
1824 fra.me.REG[2] = NIT_NULL;
1825 fra.me.REG[0] = p0;
1826 fra.me.REG[1] = p1;
1827 /* ./parser//parser_prod.nit:347 */
1828 fra.me.REG[2] = fra.me.REG[0];
1829 /* ./parser//parser_prod.nit:351 */
1830 CALL_parser___parser_prod___APrivateVisibility___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
1831 /* ./parser//parser_prod.nit:352 */
1832 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
1833 if (UNTAG_Bool(REGB0)) {
1834 } else {
1835 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 352);
1836 }
1837 ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[2]) = fra.me.REG[1];
1838 /* ./parser//parser_prod.nit:353 */
1839 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1840 if (UNTAG_Bool(REGB0)) {
1841 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 353);
1842 }
1843 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1844 stack_frame_head = fra.me.prev;
1845 init_table[itpos12] = 1;
1846 return;
1847 }
1848 void parser___parser_prod___APrivateVisibility___replace_child(val_t p0, val_t p1, val_t p2){
1849 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1850 val_t REGB0;
1851 val_t REGB1;
1852 val_t tmp;
1853 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1854 fra.me.file = LOCATE_parser___parser_prod;
1855 fra.me.line = 356;
1856 fra.me.meth = LOCATE_parser___parser_prod___APrivateVisibility___replace_child;
1857 fra.me.has_broke = 0;
1858 fra.me.REG_size = 4;
1859 fra.me.REG[0] = NIT_NULL;
1860 fra.me.REG[1] = NIT_NULL;
1861 fra.me.REG[2] = NIT_NULL;
1862 fra.me.REG[3] = NIT_NULL;
1863 fra.me.REG[0] = p0;
1864 fra.me.REG[1] = p1;
1865 fra.me.REG[2] = p2;
1866 /* ./parser//parser_prod.nit:358 */
1867 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0])!=NIT_NULL);
1868 if (UNTAG_Bool(REGB0)) {
1869 } else {
1870 nit_abort("Uninitialized attribute %s", "_n_kwprivate", LOCATE_parser___parser_prod, 358);
1871 }
1872 fra.me.REG[3] = ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0]);
1873 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1874 if (UNTAG_Bool(REGB0)) {
1875 } else {
1876 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1877 REGB0 = REGB1;
1878 }
1879 if (UNTAG_Bool(REGB0)) {
1880 /* ./parser//parser_prod.nit:359 */
1881 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1882 if (UNTAG_Bool(REGB0)) {
1883 } else {
1884 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1885 if (UNTAG_Bool(REGB1)) {
1886 REGB1 = TAG_Bool(false);
1887 REGB0 = REGB1;
1888 } else {
1889 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1890 REGB0 = REGB1;
1891 }
1892 }
1893 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1894 if (UNTAG_Bool(REGB0)) {
1895 /* ./parser//parser_prod.nit:360 */
1896 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1897 if (UNTAG_Bool(REGB0)) {
1898 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 360);
1899 }
1900 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1901 /* ./parser//parser_prod.nit:361 */
1902 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*/;
1903 if (UNTAG_Bool(REGB0)) {
1904 } else {
1905 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 361);
1906 }
1907 /* ./parser//parser_prod.nit:362 */
1908 ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0]) = fra.me.REG[2];
1909 } else {
1910 /* ./parser//parser_prod.nit:364 */
1911 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 364);
1912 }
1913 /* ./parser//parser_prod.nit:366 */
1914 goto label1;
1915 }
1916 label1: while(0);
1917 stack_frame_head = fra.me.prev;
1918 return;
1919 }
1920 void parser___parser_prod___APrivateVisibility___visit_all(val_t p0, val_t p1){
1921 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1922 val_t REGB0;
1923 val_t tmp;
1924 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1925 fra.me.file = LOCATE_parser___parser_prod;
1926 fra.me.line = 370;
1927 fra.me.meth = LOCATE_parser___parser_prod___APrivateVisibility___visit_all;
1928 fra.me.has_broke = 0;
1929 fra.me.REG_size = 2;
1930 fra.me.REG[0] = NIT_NULL;
1931 fra.me.REG[1] = NIT_NULL;
1932 fra.me.REG[0] = p0;
1933 fra.me.REG[1] = p1;
1934 /* ./parser//parser_prod.nit:372 */
1935 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0])!=NIT_NULL);
1936 if (UNTAG_Bool(REGB0)) {
1937 } else {
1938 nit_abort("Uninitialized attribute %s", "_n_kwprivate", LOCATE_parser___parser_prod, 372);
1939 }
1940 fra.me.REG[0] = ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0]);
1941 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1942 stack_frame_head = fra.me.prev;
1943 return;
1944 }
1945 void parser___parser_prod___AProtectedVisibility___empty_init(val_t p0, int* init_table){
1946 int itpos13 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AProtectedVisibility].i;
1947 struct {struct stack_frame_t me;} fra;
1948 val_t tmp;
1949 if (init_table[itpos13]) return;
1950 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1951 fra.me.file = LOCATE_parser___parser_prod;
1952 fra.me.line = 376;
1953 fra.me.meth = LOCATE_parser___parser_prod___AProtectedVisibility___empty_init;
1954 fra.me.has_broke = 0;
1955 fra.me.REG_size = 1;
1956 fra.me.REG[0] = NIT_NULL;
1957 fra.me.REG[0] = p0;
1958 stack_frame_head = fra.me.prev;
1959 init_table[itpos13] = 1;
1960 return;
1961 }
1962 void parser___parser_prod___AProtectedVisibility___init_aprotectedvisibility(val_t p0, val_t p1, int* init_table){
1963 int itpos14 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AProtectedVisibility].i;
1964 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1965 val_t REGB0;
1966 val_t tmp;
1967 if (init_table[itpos14]) return;
1968 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1969 fra.me.file = LOCATE_parser___parser_prod;
1970 fra.me.line = 378;
1971 fra.me.meth = LOCATE_parser___parser_prod___AProtectedVisibility___init_aprotectedvisibility;
1972 fra.me.has_broke = 0;
1973 fra.me.REG_size = 3;
1974 fra.me.REG[0] = NIT_NULL;
1975 fra.me.REG[1] = NIT_NULL;
1976 fra.me.REG[2] = NIT_NULL;
1977 fra.me.REG[0] = p0;
1978 fra.me.REG[1] = p1;
1979 /* ./parser//parser_prod.nit:378 */
1980 fra.me.REG[2] = fra.me.REG[0];
1981 /* ./parser//parser_prod.nit:382 */
1982 CALL_parser___parser_prod___AProtectedVisibility___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
1983 /* ./parser//parser_prod.nit:383 */
1984 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
1985 if (UNTAG_Bool(REGB0)) {
1986 } else {
1987 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 383);
1988 }
1989 ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[2]) = fra.me.REG[1];
1990 /* ./parser//parser_prod.nit:384 */
1991 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1992 if (UNTAG_Bool(REGB0)) {
1993 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 384);
1994 }
1995 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1996 stack_frame_head = fra.me.prev;
1997 init_table[itpos14] = 1;
1998 return;
1999 }
2000 void parser___parser_prod___AProtectedVisibility___replace_child(val_t p0, val_t p1, val_t p2){
2001 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2002 val_t REGB0;
2003 val_t REGB1;
2004 val_t tmp;
2005 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2006 fra.me.file = LOCATE_parser___parser_prod;
2007 fra.me.line = 387;
2008 fra.me.meth = LOCATE_parser___parser_prod___AProtectedVisibility___replace_child;
2009 fra.me.has_broke = 0;
2010 fra.me.REG_size = 4;
2011 fra.me.REG[0] = NIT_NULL;
2012 fra.me.REG[1] = NIT_NULL;
2013 fra.me.REG[2] = NIT_NULL;
2014 fra.me.REG[3] = NIT_NULL;
2015 fra.me.REG[0] = p0;
2016 fra.me.REG[1] = p1;
2017 fra.me.REG[2] = p2;
2018 /* ./parser//parser_prod.nit:389 */
2019 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0])!=NIT_NULL);
2020 if (UNTAG_Bool(REGB0)) {
2021 } else {
2022 nit_abort("Uninitialized attribute %s", "_n_kwprotected", LOCATE_parser___parser_prod, 389);
2023 }
2024 fra.me.REG[3] = ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0]);
2025 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2026 if (UNTAG_Bool(REGB0)) {
2027 } else {
2028 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2029 REGB0 = REGB1;
2030 }
2031 if (UNTAG_Bool(REGB0)) {
2032 /* ./parser//parser_prod.nit:390 */
2033 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2034 if (UNTAG_Bool(REGB0)) {
2035 } else {
2036 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2037 if (UNTAG_Bool(REGB1)) {
2038 REGB1 = TAG_Bool(false);
2039 REGB0 = REGB1;
2040 } else {
2041 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2042 REGB0 = REGB1;
2043 }
2044 }
2045 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2046 if (UNTAG_Bool(REGB0)) {
2047 /* ./parser//parser_prod.nit:391 */
2048 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2049 if (UNTAG_Bool(REGB0)) {
2050 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 391);
2051 }
2052 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2053 /* ./parser//parser_prod.nit:392 */
2054 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*/;
2055 if (UNTAG_Bool(REGB0)) {
2056 } else {
2057 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 392);
2058 }
2059 /* ./parser//parser_prod.nit:393 */
2060 ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0]) = fra.me.REG[2];
2061 } else {
2062 /* ./parser//parser_prod.nit:395 */
2063 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 395);
2064 }
2065 /* ./parser//parser_prod.nit:397 */
2066 goto label1;
2067 }
2068 label1: while(0);
2069 stack_frame_head = fra.me.prev;
2070 return;
2071 }
2072 void parser___parser_prod___AProtectedVisibility___visit_all(val_t p0, val_t p1){
2073 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2074 val_t REGB0;
2075 val_t tmp;
2076 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2077 fra.me.file = LOCATE_parser___parser_prod;
2078 fra.me.line = 401;
2079 fra.me.meth = LOCATE_parser___parser_prod___AProtectedVisibility___visit_all;
2080 fra.me.has_broke = 0;
2081 fra.me.REG_size = 2;
2082 fra.me.REG[0] = NIT_NULL;
2083 fra.me.REG[1] = NIT_NULL;
2084 fra.me.REG[0] = p0;
2085 fra.me.REG[1] = p1;
2086 /* ./parser//parser_prod.nit:403 */
2087 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0])!=NIT_NULL);
2088 if (UNTAG_Bool(REGB0)) {
2089 } else {
2090 nit_abort("Uninitialized attribute %s", "_n_kwprotected", LOCATE_parser___parser_prod, 403);
2091 }
2092 fra.me.REG[0] = ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0]);
2093 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2094 stack_frame_head = fra.me.prev;
2095 return;
2096 }
2097 void parser___parser_prod___AIntrudeVisibility___empty_init(val_t p0, int* init_table){
2098 int itpos15 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIntrudeVisibility].i;
2099 struct {struct stack_frame_t me;} fra;
2100 val_t tmp;
2101 if (init_table[itpos15]) return;
2102 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2103 fra.me.file = LOCATE_parser___parser_prod;
2104 fra.me.line = 407;
2105 fra.me.meth = LOCATE_parser___parser_prod___AIntrudeVisibility___empty_init;
2106 fra.me.has_broke = 0;
2107 fra.me.REG_size = 1;
2108 fra.me.REG[0] = NIT_NULL;
2109 fra.me.REG[0] = p0;
2110 stack_frame_head = fra.me.prev;
2111 init_table[itpos15] = 1;
2112 return;
2113 }
2114 void parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t p0, val_t p1, int* init_table){
2115 int itpos16 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIntrudeVisibility].i;
2116 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2117 val_t REGB0;
2118 val_t tmp;
2119 if (init_table[itpos16]) return;
2120 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2121 fra.me.file = LOCATE_parser___parser_prod;
2122 fra.me.line = 409;
2123 fra.me.meth = LOCATE_parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility;
2124 fra.me.has_broke = 0;
2125 fra.me.REG_size = 3;
2126 fra.me.REG[0] = NIT_NULL;
2127 fra.me.REG[1] = NIT_NULL;
2128 fra.me.REG[2] = NIT_NULL;
2129 fra.me.REG[0] = p0;
2130 fra.me.REG[1] = p1;
2131 /* ./parser//parser_prod.nit:409 */
2132 fra.me.REG[2] = fra.me.REG[0];
2133 /* ./parser//parser_prod.nit:413 */
2134 CALL_parser___parser_prod___AIntrudeVisibility___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
2135 /* ./parser//parser_prod.nit:414 */
2136 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
2137 if (UNTAG_Bool(REGB0)) {
2138 } else {
2139 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 414);
2140 }
2141 ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[2]) = fra.me.REG[1];
2142 /* ./parser//parser_prod.nit:415 */
2143 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2144 if (UNTAG_Bool(REGB0)) {
2145 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 415);
2146 }
2147 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2148 stack_frame_head = fra.me.prev;
2149 init_table[itpos16] = 1;
2150 return;
2151 }
2152 void parser___parser_prod___AIntrudeVisibility___replace_child(val_t p0, val_t p1, val_t p2){
2153 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2154 val_t REGB0;
2155 val_t REGB1;
2156 val_t tmp;
2157 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2158 fra.me.file = LOCATE_parser___parser_prod;
2159 fra.me.line = 418;
2160 fra.me.meth = LOCATE_parser___parser_prod___AIntrudeVisibility___replace_child;
2161 fra.me.has_broke = 0;
2162 fra.me.REG_size = 4;
2163 fra.me.REG[0] = NIT_NULL;
2164 fra.me.REG[1] = NIT_NULL;
2165 fra.me.REG[2] = NIT_NULL;
2166 fra.me.REG[3] = NIT_NULL;
2167 fra.me.REG[0] = p0;
2168 fra.me.REG[1] = p1;
2169 fra.me.REG[2] = p2;
2170 /* ./parser//parser_prod.nit:420 */
2171 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0])!=NIT_NULL);
2172 if (UNTAG_Bool(REGB0)) {
2173 } else {
2174 nit_abort("Uninitialized attribute %s", "_n_kwintrude", LOCATE_parser___parser_prod, 420);
2175 }
2176 fra.me.REG[3] = ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0]);
2177 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2178 if (UNTAG_Bool(REGB0)) {
2179 } else {
2180 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2181 REGB0 = REGB1;
2182 }
2183 if (UNTAG_Bool(REGB0)) {
2184 /* ./parser//parser_prod.nit:421 */
2185 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2186 if (UNTAG_Bool(REGB0)) {
2187 } else {
2188 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2189 if (UNTAG_Bool(REGB1)) {
2190 REGB1 = TAG_Bool(false);
2191 REGB0 = REGB1;
2192 } else {
2193 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2194 REGB0 = REGB1;
2195 }
2196 }
2197 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2198 if (UNTAG_Bool(REGB0)) {
2199 /* ./parser//parser_prod.nit:422 */
2200 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2201 if (UNTAG_Bool(REGB0)) {
2202 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 422);
2203 }
2204 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2205 /* ./parser//parser_prod.nit:423 */
2206 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*/;
2207 if (UNTAG_Bool(REGB0)) {
2208 } else {
2209 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 423);
2210 }
2211 /* ./parser//parser_prod.nit:424 */
2212 ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0]) = fra.me.REG[2];
2213 } else {
2214 /* ./parser//parser_prod.nit:426 */
2215 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 426);
2216 }
2217 /* ./parser//parser_prod.nit:428 */
2218 goto label1;
2219 }
2220 label1: while(0);
2221 stack_frame_head = fra.me.prev;
2222 return;
2223 }
2224 void parser___parser_prod___AIntrudeVisibility___visit_all(val_t p0, val_t p1){
2225 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2226 val_t REGB0;
2227 val_t tmp;
2228 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2229 fra.me.file = LOCATE_parser___parser_prod;
2230 fra.me.line = 432;
2231 fra.me.meth = LOCATE_parser___parser_prod___AIntrudeVisibility___visit_all;
2232 fra.me.has_broke = 0;
2233 fra.me.REG_size = 2;
2234 fra.me.REG[0] = NIT_NULL;
2235 fra.me.REG[1] = NIT_NULL;
2236 fra.me.REG[0] = p0;
2237 fra.me.REG[1] = p1;
2238 /* ./parser//parser_prod.nit:434 */
2239 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0])!=NIT_NULL);
2240 if (UNTAG_Bool(REGB0)) {
2241 } else {
2242 nit_abort("Uninitialized attribute %s", "_n_kwintrude", LOCATE_parser___parser_prod, 434);
2243 }
2244 fra.me.REG[0] = ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0]);
2245 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2246 stack_frame_head = fra.me.prev;
2247 return;
2248 }
2249 void parser___parser_prod___AStdClassdef___empty_init(val_t p0, int* init_table){
2250 int itpos17 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStdClassdef].i;
2251 struct {struct stack_frame_t me;} fra;
2252 val_t tmp;
2253 if (init_table[itpos17]) return;
2254 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2255 fra.me.file = LOCATE_parser___parser_prod;
2256 fra.me.line = 438;
2257 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___empty_init;
2258 fra.me.has_broke = 0;
2259 fra.me.REG_size = 1;
2260 fra.me.REG[0] = NIT_NULL;
2261 fra.me.REG[0] = p0;
2262 stack_frame_head = fra.me.prev;
2263 init_table[itpos17] = 1;
2264 return;
2265 }
2266 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){
2267 int itpos18 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStdClassdef].i;
2268 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
2269 val_t REGB0;
2270 val_t REGB1;
2271 val_t tmp;
2272 if (init_table[itpos18]) return;
2273 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2274 fra.me.file = LOCATE_parser___parser_prod;
2275 fra.me.line = 440;
2276 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef;
2277 fra.me.has_broke = 0;
2278 fra.me.REG_size = 10;
2279 fra.me.REG[0] = NIT_NULL;
2280 fra.me.REG[1] = NIT_NULL;
2281 fra.me.REG[2] = NIT_NULL;
2282 fra.me.REG[3] = NIT_NULL;
2283 fra.me.REG[4] = NIT_NULL;
2284 fra.me.REG[5] = NIT_NULL;
2285 fra.me.REG[6] = NIT_NULL;
2286 fra.me.REG[7] = NIT_NULL;
2287 fra.me.REG[8] = NIT_NULL;
2288 fra.me.REG[9] = NIT_NULL;
2289 fra.me.REG[0] = p0;
2290 fra.me.REG[1] = p1;
2291 fra.me.REG[2] = p2;
2292 fra.me.REG[3] = p3;
2293 fra.me.REG[4] = p4;
2294 fra.me.REG[5] = p5;
2295 fra.me.REG[6] = p6;
2296 fra.me.REG[7] = p7;
2297 fra.me.REG[8] = p8;
2298 /* ./parser//parser_prod.nit:440 */
2299 fra.me.REG[9] = fra.me.REG[0];
2300 /* ./parser//parser_prod.nit:451 */
2301 CALL_parser___parser_prod___AStdClassdef___empty_init(fra.me.REG[9])(fra.me.REG[9], init_table);
2302 /* ./parser//parser_prod.nit:452 */
2303 ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[9]) = fra.me.REG[1];
2304 /* ./parser//parser_prod.nit:453 */
2305 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2306 if (UNTAG_Bool(REGB0)) {
2307 } else {
2308 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2309 if (UNTAG_Bool(REGB1)) {
2310 REGB1 = TAG_Bool(false);
2311 REGB0 = REGB1;
2312 } else {
2313 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2314 REGB0 = REGB1;
2315 }
2316 }
2317 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2318 if (UNTAG_Bool(REGB0)) {
2319 /* ./parser//parser_prod.nit:454 */
2320 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2321 if (UNTAG_Bool(REGB0)) {
2322 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 454);
2323 }
2324 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
2325 }
2326 /* ./parser//parser_prod.nit:456 */
2327 ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[9]) = fra.me.REG[2];
2328 /* ./parser//parser_prod.nit:457 */
2329 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2330 if (UNTAG_Bool(REGB0)) {
2331 } else {
2332 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2333 if (UNTAG_Bool(REGB1)) {
2334 REGB1 = TAG_Bool(false);
2335 REGB0 = REGB1;
2336 } else {
2337 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2338 REGB0 = REGB1;
2339 }
2340 }
2341 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2342 if (UNTAG_Bool(REGB0)) {
2343 /* ./parser//parser_prod.nit:458 */
2344 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2345 if (UNTAG_Bool(REGB0)) {
2346 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 458);
2347 }
2348 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[9]);
2349 }
2350 /* ./parser//parser_prod.nit:460 */
2351 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
2352 if (UNTAG_Bool(REGB0)) {
2353 } else {
2354 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 460);
2355 }
2356 ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[9]) = fra.me.REG[3];
2357 /* ./parser//parser_prod.nit:461 */
2358 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2359 if (UNTAG_Bool(REGB0)) {
2360 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 461);
2361 }
2362 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]);
2363 /* ./parser//parser_prod.nit:462 */
2364 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
2365 if (UNTAG_Bool(REGB0)) {
2366 } else {
2367 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 462);
2368 }
2369 ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[9]) = fra.me.REG[4];
2370 /* ./parser//parser_prod.nit:463 */
2371 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2372 if (UNTAG_Bool(REGB0)) {
2373 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 463);
2374 }
2375 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
2376 /* ./parser//parser_prod.nit:464 */
2377 ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[9]) = fra.me.REG[5];
2378 /* ./parser//parser_prod.nit:465 */
2379 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2380 if (UNTAG_Bool(REGB0)) {
2381 } else {
2382 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2383 if (UNTAG_Bool(REGB1)) {
2384 REGB1 = TAG_Bool(false);
2385 REGB0 = REGB1;
2386 } else {
2387 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
2388 REGB0 = REGB1;
2389 }
2390 }
2391 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2392 if (UNTAG_Bool(REGB0)) {
2393 /* ./parser//parser_prod.nit:466 */
2394 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2395 if (UNTAG_Bool(REGB0)) {
2396 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 466);
2397 }
2398 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[9]);
2399 }
2400 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));
2401 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));
2402 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));
2403 stack_frame_head = fra.me.prev;
2404 init_table[itpos18] = 1;
2405 return;
2406 }
2407 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){
2408 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2409 val_t REGB0;
2410 fun_t CREG[1];
2411 val_t tmp;
2412 /* ./parser//parser_prod.nit:468 */
2413 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2414 fra.me.file = LOCATE_parser___parser_prod;
2415 fra.me.line = 0;
2416 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef;
2417 fra.me.has_broke = 0;
2418 fra.me.REG_size = 2;
2419 fra.me.REG[0] = NIT_NULL;
2420 fra.me.REG[1] = NIT_NULL;
2421 fra.me.closure_ctx = closctx_param;
2422 fra.me.closure_funs = CREG;
2423 fra.me.REG[0] = p0;
2424 CREG[0] = clos_fun0;
2425 /* ./parser//parser_prod.nit:469 */
2426 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AFormaldef, ID_parser___parser_nodes___AFormaldef)) /*cast AFormaldef*/;
2427 if (UNTAG_Bool(REGB0)) {
2428 } else {
2429 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 469);
2430 }
2431 /* ./parser//parser_prod.nit:470 */
2432 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(closctx->REG[9])!=NIT_NULL);
2433 if (UNTAG_Bool(REGB0)) {
2434 } else {
2435 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 470);
2436 }
2437 fra.me.REG[1] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(closctx->REG[9]);
2438 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2439 /* ./parser//parser_prod.nit:471 */
2440 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[9]);
2441 stack_frame_head = fra.me.prev;
2442 return;
2443 }
2444 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){
2445 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2446 val_t REGB0;
2447 fun_t CREG[1];
2448 val_t tmp;
2449 /* ./parser//parser_prod.nit:473 */
2450 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2451 fra.me.file = LOCATE_parser___parser_prod;
2452 fra.me.line = 0;
2453 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef;
2454 fra.me.has_broke = 0;
2455 fra.me.REG_size = 2;
2456 fra.me.REG[0] = NIT_NULL;
2457 fra.me.REG[1] = NIT_NULL;
2458 fra.me.closure_ctx = closctx_param;
2459 fra.me.closure_funs = CREG;
2460 fra.me.REG[0] = p0;
2461 CREG[0] = clos_fun0;
2462 /* ./parser//parser_prod.nit:474 */
2463 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___ASuperclass, ID_parser___parser_nodes___ASuperclass)) /*cast ASuperclass*/;
2464 if (UNTAG_Bool(REGB0)) {
2465 } else {
2466 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 474);
2467 }
2468 /* ./parser//parser_prod.nit:475 */
2469 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(closctx->REG[9])!=NIT_NULL);
2470 if (UNTAG_Bool(REGB0)) {
2471 } else {
2472 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 475);
2473 }
2474 fra.me.REG[1] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(closctx->REG[9]);
2475 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2476 /* ./parser//parser_prod.nit:476 */
2477 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[9]);
2478 stack_frame_head = fra.me.prev;
2479 return;
2480 }
2481 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){
2482 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2483 val_t REGB0;
2484 fun_t CREG[1];
2485 val_t tmp;
2486 /* ./parser//parser_prod.nit:478 */
2487 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2488 fra.me.file = LOCATE_parser___parser_prod;
2489 fra.me.line = 0;
2490 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef;
2491 fra.me.has_broke = 0;
2492 fra.me.REG_size = 2;
2493 fra.me.REG[0] = NIT_NULL;
2494 fra.me.REG[1] = NIT_NULL;
2495 fra.me.closure_ctx = closctx_param;
2496 fra.me.closure_funs = CREG;
2497 fra.me.REG[0] = p0;
2498 CREG[0] = clos_fun0;
2499 /* ./parser//parser_prod.nit:479 */
2500 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
2501 if (UNTAG_Bool(REGB0)) {
2502 } else {
2503 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 479);
2504 }
2505 /* ./parser//parser_prod.nit:480 */
2506 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(closctx->REG[9])!=NIT_NULL);
2507 if (UNTAG_Bool(REGB0)) {
2508 } else {
2509 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 480);
2510 }
2511 fra.me.REG[1] = ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(closctx->REG[9]);
2512 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2513 /* ./parser//parser_prod.nit:481 */
2514 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[9]);
2515 stack_frame_head = fra.me.prev;
2516 return;
2517 }
2518 void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val_t p2){
2519 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2520 val_t REGB0;
2521 val_t REGB1;
2522 val_t REGB2;
2523 val_t REGB3;
2524 val_t REGB4;
2525 val_t tmp;
2526 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2527 fra.me.file = LOCATE_parser___parser_prod;
2528 fra.me.line = 485;
2529 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___replace_child;
2530 fra.me.has_broke = 0;
2531 fra.me.REG_size = 4;
2532 fra.me.REG[0] = NIT_NULL;
2533 fra.me.REG[1] = NIT_NULL;
2534 fra.me.REG[2] = NIT_NULL;
2535 fra.me.REG[3] = NIT_NULL;
2536 fra.me.REG[0] = p0;
2537 fra.me.REG[1] = p1;
2538 fra.me.REG[2] = p2;
2539 /* ./parser//parser_prod.nit:487 */
2540 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]);
2541 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2542 if (UNTAG_Bool(REGB0)) {
2543 } else {
2544 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2545 if (UNTAG_Bool(REGB1)) {
2546 REGB1 = TAG_Bool(false);
2547 REGB0 = REGB1;
2548 } else {
2549 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2550 REGB0 = REGB1;
2551 }
2552 }
2553 if (UNTAG_Bool(REGB0)) {
2554 /* ./parser//parser_prod.nit:488 */
2555 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2556 if (UNTAG_Bool(REGB0)) {
2557 } else {
2558 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2559 if (UNTAG_Bool(REGB1)) {
2560 REGB1 = TAG_Bool(false);
2561 REGB0 = REGB1;
2562 } else {
2563 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2564 REGB0 = REGB1;
2565 }
2566 }
2567 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2568 if (UNTAG_Bool(REGB0)) {
2569 /* ./parser//parser_prod.nit:489 */
2570 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2571 if (UNTAG_Bool(REGB0)) {
2572 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 489);
2573 }
2574 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2575 /* ./parser//parser_prod.nit:490 */
2576 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*/;
2577 if (UNTAG_Bool(REGB0)) {
2578 } else {
2579 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 490);
2580 }
2581 /* ./parser//parser_prod.nit:491 */
2582 ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
2583 } else {
2584 /* ./parser//parser_prod.nit:493 */
2585 ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]) = NIT_NULL;
2586 }
2587 /* ./parser//parser_prod.nit:495 */
2588 goto label1;
2589 }
2590 /* ./parser//parser_prod.nit:497 */
2591 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]);
2592 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2593 if (UNTAG_Bool(REGB0)) {
2594 } else {
2595 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2596 if (UNTAG_Bool(REGB1)) {
2597 REGB1 = TAG_Bool(false);
2598 REGB0 = REGB1;
2599 } else {
2600 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2601 REGB0 = REGB1;
2602 }
2603 }
2604 if (UNTAG_Bool(REGB0)) {
2605 /* ./parser//parser_prod.nit:498 */
2606 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2607 if (UNTAG_Bool(REGB0)) {
2608 } else {
2609 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2610 if (UNTAG_Bool(REGB1)) {
2611 REGB1 = TAG_Bool(false);
2612 REGB0 = REGB1;
2613 } else {
2614 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2615 REGB0 = REGB1;
2616 }
2617 }
2618 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2619 if (UNTAG_Bool(REGB0)) {
2620 /* ./parser//parser_prod.nit:499 */
2621 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2622 if (UNTAG_Bool(REGB0)) {
2623 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 499);
2624 }
2625 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2626 /* ./parser//parser_prod.nit:500 */
2627 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*/;
2628 if (UNTAG_Bool(REGB0)) {
2629 } else {
2630 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 500);
2631 }
2632 /* ./parser//parser_prod.nit:501 */
2633 ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
2634 } else {
2635 /* ./parser//parser_prod.nit:503 */
2636 ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
2637 }
2638 /* ./parser//parser_prod.nit:505 */
2639 goto label1;
2640 }
2641 /* ./parser//parser_prod.nit:507 */
2642 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
2643 if (UNTAG_Bool(REGB0)) {
2644 } else {
2645 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 507);
2646 }
2647 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0]);
2648 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2649 if (UNTAG_Bool(REGB0)) {
2650 } else {
2651 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2652 REGB0 = REGB1;
2653 }
2654 if (UNTAG_Bool(REGB0)) {
2655 /* ./parser//parser_prod.nit:508 */
2656 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2657 if (UNTAG_Bool(REGB0)) {
2658 } else {
2659 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2660 if (UNTAG_Bool(REGB1)) {
2661 REGB1 = TAG_Bool(false);
2662 REGB0 = REGB1;
2663 } else {
2664 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2665 REGB0 = REGB1;
2666 }
2667 }
2668 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2669 if (UNTAG_Bool(REGB0)) {
2670 /* ./parser//parser_prod.nit:509 */
2671 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2672 if (UNTAG_Bool(REGB0)) {
2673 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 509);
2674 }
2675 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2676 /* ./parser//parser_prod.nit:510 */
2677 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*/;
2678 if (UNTAG_Bool(REGB0)) {
2679 } else {
2680 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 510);
2681 }
2682 /* ./parser//parser_prod.nit:511 */
2683 ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
2684 } else {
2685 /* ./parser//parser_prod.nit:513 */
2686 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 513);
2687 }
2688 /* ./parser//parser_prod.nit:515 */
2689 goto label1;
2690 }
2691 /* ./parser//parser_prod.nit:517 */
2692 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0])!=NIT_NULL);
2693 if (UNTAG_Bool(REGB0)) {
2694 } else {
2695 nit_abort("Uninitialized attribute %s", "_n_classkind", LOCATE_parser___parser_prod, 517);
2696 }
2697 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0]);
2698 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2699 if (UNTAG_Bool(REGB0)) {
2700 } else {
2701 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2702 REGB0 = REGB1;
2703 }
2704 if (UNTAG_Bool(REGB0)) {
2705 /* ./parser//parser_prod.nit:518 */
2706 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2707 if (UNTAG_Bool(REGB0)) {
2708 } else {
2709 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2710 if (UNTAG_Bool(REGB1)) {
2711 REGB1 = TAG_Bool(false);
2712 REGB0 = REGB1;
2713 } else {
2714 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2715 REGB0 = REGB1;
2716 }
2717 }
2718 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2719 if (UNTAG_Bool(REGB0)) {
2720 /* ./parser//parser_prod.nit:519 */
2721 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2722 if (UNTAG_Bool(REGB0)) {
2723 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 519);
2724 }
2725 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2726 /* ./parser//parser_prod.nit:520 */
2727 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*/;
2728 if (UNTAG_Bool(REGB0)) {
2729 } else {
2730 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 520);
2731 }
2732 /* ./parser//parser_prod.nit:521 */
2733 ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0]) = fra.me.REG[2];
2734 } else {
2735 /* ./parser//parser_prod.nit:523 */
2736 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 523);
2737 }
2738 /* ./parser//parser_prod.nit:525 */
2739 goto label1;
2740 }
2741 /* ./parser//parser_prod.nit:527 */
2742 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[0]);
2743 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2744 if (UNTAG_Bool(REGB0)) {
2745 } else {
2746 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2747 if (UNTAG_Bool(REGB1)) {
2748 REGB1 = TAG_Bool(false);
2749 REGB0 = REGB1;
2750 } else {
2751 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2752 REGB0 = REGB1;
2753 }
2754 }
2755 if (UNTAG_Bool(REGB0)) {
2756 /* ./parser//parser_prod.nit:528 */
2757 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2758 if (UNTAG_Bool(REGB0)) {
2759 } else {
2760 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2761 if (UNTAG_Bool(REGB1)) {
2762 REGB1 = TAG_Bool(false);
2763 REGB0 = REGB1;
2764 } else {
2765 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2766 REGB0 = REGB1;
2767 }
2768 }
2769 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2770 if (UNTAG_Bool(REGB0)) {
2771 /* ./parser//parser_prod.nit:529 */
2772 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2773 if (UNTAG_Bool(REGB0)) {
2774 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 529);
2775 }
2776 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2777 /* ./parser//parser_prod.nit:530 */
2778 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*/;
2779 if (UNTAG_Bool(REGB0)) {
2780 } else {
2781 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 530);
2782 }
2783 /* ./parser//parser_prod.nit:531 */
2784 ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
2785 } else {
2786 /* ./parser//parser_prod.nit:533 */
2787 ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[0]) = NIT_NULL;
2788 }
2789 /* ./parser//parser_prod.nit:535 */
2790 goto label1;
2791 }
2792 /* ./parser//parser_prod.nit:537 */
2793 REGB0 = TAG_Int(0);
2794 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
2795 if (UNTAG_Bool(REGB1)) {
2796 } else {
2797 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 537);
2798 }
2799 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
2800 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
2801 /* ./../lib/standard//kernel.nit:352 */
2802 while(1) {
2803 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2804 if (UNTAG_Bool(REGB2)) {
2805 } else {
2806 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2807 }
2808 /* ./../lib/standard//kernel.nit:232 */
2809 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2810 /* ./../lib/standard//kernel.nit:352 */
2811 if (UNTAG_Bool(REGB2)) {
2812 /* ./parser//parser_prod.nit:537 */
2813 REGB2 = REGB0;
2814 /* ./parser//parser_prod.nit:538 */
2815 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
2816 if (UNTAG_Bool(REGB3)) {
2817 } else {
2818 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 538);
2819 }
2820 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
2821 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
2822 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2823 if (UNTAG_Bool(REGB3)) {
2824 } else {
2825 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2826 if (UNTAG_Bool(REGB4)) {
2827 REGB4 = TAG_Bool(false);
2828 REGB3 = REGB4;
2829 } else {
2830 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2831 REGB3 = REGB4;
2832 }
2833 }
2834 if (UNTAG_Bool(REGB3)) {
2835 /* ./parser//parser_prod.nit:539 */
2836 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2837 if (UNTAG_Bool(REGB3)) {
2838 } else {
2839 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2840 if (UNTAG_Bool(REGB4)) {
2841 REGB4 = TAG_Bool(false);
2842 REGB3 = REGB4;
2843 } else {
2844 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2845 REGB3 = REGB4;
2846 }
2847 }
2848 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
2849 if (UNTAG_Bool(REGB3)) {
2850 /* ./parser//parser_prod.nit:540 */
2851 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*/;
2852 if (UNTAG_Bool(REGB3)) {
2853 } else {
2854 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 540);
2855 }
2856 /* ./parser//parser_prod.nit:541 */
2857 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
2858 if (UNTAG_Bool(REGB3)) {
2859 } else {
2860 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 541);
2861 }
2862 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
2863 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
2864 /* ./parser//parser_prod.nit:542 */
2865 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2866 if (UNTAG_Bool(REGB3)) {
2867 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 542);
2868 }
2869 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2870 } else {
2871 /* ./parser//parser_prod.nit:544 */
2872 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
2873 if (UNTAG_Bool(REGB3)) {
2874 } else {
2875 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 544);
2876 }
2877 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
2878 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
2879 }
2880 /* ./parser//parser_prod.nit:546 */
2881 goto label1;
2882 }
2883 /* ./../lib/standard//kernel.nit:354 */
2884 REGB2 = TAG_Int(1);
2885 /* ./../lib/standard//kernel.nit:235 */
2886 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2887 /* ./../lib/standard//kernel.nit:354 */
2888 REGB0 = REGB2;
2889 } else {
2890 /* ./../lib/standard//kernel.nit:352 */
2891 goto label2;
2892 }
2893 }
2894 label2: while(0);
2895 /* ./parser//parser_prod.nit:549 */
2896 REGB0 = TAG_Int(0);
2897 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
2898 if (UNTAG_Bool(REGB1)) {
2899 } else {
2900 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 549);
2901 }
2902 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
2903 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
2904 /* ./../lib/standard//kernel.nit:352 */
2905 while(1) {
2906 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2907 if (UNTAG_Bool(REGB2)) {
2908 } else {
2909 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2910 }
2911 /* ./../lib/standard//kernel.nit:232 */
2912 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2913 /* ./../lib/standard//kernel.nit:352 */
2914 if (UNTAG_Bool(REGB2)) {
2915 /* ./parser//parser_prod.nit:549 */
2916 REGB2 = REGB0;
2917 /* ./parser//parser_prod.nit:550 */
2918 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
2919 if (UNTAG_Bool(REGB3)) {
2920 } else {
2921 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 550);
2922 }
2923 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
2924 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
2925 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2926 if (UNTAG_Bool(REGB3)) {
2927 } else {
2928 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2929 if (UNTAG_Bool(REGB4)) {
2930 REGB4 = TAG_Bool(false);
2931 REGB3 = REGB4;
2932 } else {
2933 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2934 REGB3 = REGB4;
2935 }
2936 }
2937 if (UNTAG_Bool(REGB3)) {
2938 /* ./parser//parser_prod.nit:551 */
2939 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2940 if (UNTAG_Bool(REGB3)) {
2941 } else {
2942 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2943 if (UNTAG_Bool(REGB4)) {
2944 REGB4 = TAG_Bool(false);
2945 REGB3 = REGB4;
2946 } else {
2947 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2948 REGB3 = REGB4;
2949 }
2950 }
2951 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
2952 if (UNTAG_Bool(REGB3)) {
2953 /* ./parser//parser_prod.nit:552 */
2954 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*/;
2955 if (UNTAG_Bool(REGB3)) {
2956 } else {
2957 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 552);
2958 }
2959 /* ./parser//parser_prod.nit:553 */
2960 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
2961 if (UNTAG_Bool(REGB3)) {
2962 } else {
2963 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 553);
2964 }
2965 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
2966 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
2967 /* ./parser//parser_prod.nit:554 */
2968 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2969 if (UNTAG_Bool(REGB3)) {
2970 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 554);
2971 }
2972 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2973 } else {
2974 /* ./parser//parser_prod.nit:556 */
2975 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
2976 if (UNTAG_Bool(REGB3)) {
2977 } else {
2978 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 556);
2979 }
2980 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
2981 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
2982 }
2983 /* ./parser//parser_prod.nit:558 */
2984 goto label1;
2985 }
2986 /* ./../lib/standard//kernel.nit:354 */
2987 REGB2 = TAG_Int(1);
2988 /* ./../lib/standard//kernel.nit:235 */
2989 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2990 /* ./../lib/standard//kernel.nit:354 */
2991 REGB0 = REGB2;
2992 } else {
2993 /* ./../lib/standard//kernel.nit:352 */
2994 goto label3;
2995 }
2996 }
2997 label3: while(0);
2998 /* ./parser//parser_prod.nit:561 */
2999 REGB0 = TAG_Int(0);
3000 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3001 if (UNTAG_Bool(REGB1)) {
3002 } else {
3003 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 561);
3004 }
3005 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0]);
3006 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
3007 /* ./../lib/standard//kernel.nit:352 */
3008 while(1) {
3009 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3010 if (UNTAG_Bool(REGB2)) {
3011 } else {
3012 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3013 }
3014 /* ./../lib/standard//kernel.nit:232 */
3015 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3016 /* ./../lib/standard//kernel.nit:352 */
3017 if (UNTAG_Bool(REGB2)) {
3018 /* ./parser//parser_prod.nit:561 */
3019 REGB2 = REGB0;
3020 /* ./parser//parser_prod.nit:562 */
3021 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3022 if (UNTAG_Bool(REGB3)) {
3023 } else {
3024 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 562);
3025 }
3026 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0]);
3027 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
3028 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3029 if (UNTAG_Bool(REGB3)) {
3030 } else {
3031 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3032 if (UNTAG_Bool(REGB4)) {
3033 REGB4 = TAG_Bool(false);
3034 REGB3 = REGB4;
3035 } else {
3036 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3037 REGB3 = REGB4;
3038 }
3039 }
3040 if (UNTAG_Bool(REGB3)) {
3041 /* ./parser//parser_prod.nit:563 */
3042 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3043 if (UNTAG_Bool(REGB3)) {
3044 } else {
3045 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3046 if (UNTAG_Bool(REGB4)) {
3047 REGB4 = TAG_Bool(false);
3048 REGB3 = REGB4;
3049 } else {
3050 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3051 REGB3 = REGB4;
3052 }
3053 }
3054 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3055 if (UNTAG_Bool(REGB3)) {
3056 /* ./parser//parser_prod.nit:564 */
3057 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*/;
3058 if (UNTAG_Bool(REGB3)) {
3059 } else {
3060 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 564);
3061 }
3062 /* ./parser//parser_prod.nit:565 */
3063 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3064 if (UNTAG_Bool(REGB3)) {
3065 } else {
3066 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 565);
3067 }
3068 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0]);
3069 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3070 /* ./parser//parser_prod.nit:566 */
3071 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3072 if (UNTAG_Bool(REGB3)) {
3073 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 566);
3074 }
3075 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3076 } else {
3077 /* ./parser//parser_prod.nit:568 */
3078 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3079 if (UNTAG_Bool(REGB3)) {
3080 } else {
3081 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 568);
3082 }
3083 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0]);
3084 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3085 }
3086 /* ./parser//parser_prod.nit:570 */
3087 goto label1;
3088 }
3089 /* ./../lib/standard//kernel.nit:354 */
3090 REGB2 = TAG_Int(1);
3091 /* ./../lib/standard//kernel.nit:235 */
3092 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3093 /* ./../lib/standard//kernel.nit:354 */
3094 REGB0 = REGB2;
3095 } else {
3096 /* ./../lib/standard//kernel.nit:352 */
3097 goto label4;
3098 }
3099 }
3100 label4: while(0);
3101 label1: while(0);
3102 stack_frame_head = fra.me.prev;
3103 return;
3104 }
3105 void parser___parser_prod___AStdClassdef___visit_all(val_t p0, val_t p1){
3106 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3107 val_t REGB0;
3108 val_t REGB1;
3109 val_t tmp;
3110 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3111 fra.me.file = LOCATE_parser___parser_prod;
3112 fra.me.line = 575;
3113 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
3114 fra.me.has_broke = 0;
3115 fra.me.REG_size = 4;
3116 fra.me.REG[0] = NIT_NULL;
3117 fra.me.REG[1] = NIT_NULL;
3118 fra.me.REG[2] = NIT_NULL;
3119 fra.me.REG[3] = NIT_NULL;
3120 fra.me.REG[0] = p0;
3121 fra.me.REG[1] = p1;
3122 /* ./parser//parser_prod.nit:575 */
3123 fra.me.REG[2] = fra.me.REG[0];
3124 /* ./parser//parser_prod.nit:577 */
3125 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[2]);
3126 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3127 if (UNTAG_Bool(REGB0)) {
3128 } else {
3129 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3130 if (UNTAG_Bool(REGB1)) {
3131 REGB1 = TAG_Bool(false);
3132 REGB0 = REGB1;
3133 } else {
3134 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3135 REGB0 = REGB1;
3136 }
3137 }
3138 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3139 if (UNTAG_Bool(REGB0)) {
3140 /* ./parser//parser_prod.nit:578 */
3141 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[2]);
3142 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*/;
3143 if (UNTAG_Bool(REGB0)) {
3144 } else {
3145 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 578);
3146 }
3147 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3148 }
3149 /* ./parser//parser_prod.nit:580 */
3150 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[2]);
3151 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3152 if (UNTAG_Bool(REGB0)) {
3153 } else {
3154 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3155 if (UNTAG_Bool(REGB1)) {
3156 REGB1 = TAG_Bool(false);
3157 REGB0 = REGB1;
3158 } else {
3159 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3160 REGB0 = REGB1;
3161 }
3162 }
3163 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3164 if (UNTAG_Bool(REGB0)) {
3165 /* ./parser//parser_prod.nit:581 */
3166 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[2]);
3167 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*/;
3168 if (UNTAG_Bool(REGB0)) {
3169 } else {
3170 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 581);
3171 }
3172 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3173 }
3174 /* ./parser//parser_prod.nit:583 */
3175 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[2])!=NIT_NULL);
3176 if (UNTAG_Bool(REGB0)) {
3177 } else {
3178 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 583);
3179 }
3180 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[2]);
3181 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3182 /* ./parser//parser_prod.nit:584 */
3183 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[2])!=NIT_NULL);
3184 if (UNTAG_Bool(REGB0)) {
3185 } else {
3186 nit_abort("Uninitialized attribute %s", "_n_classkind", LOCATE_parser___parser_prod, 584);
3187 }
3188 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[2]);
3189 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3190 /* ./parser//parser_prod.nit:585 */
3191 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[2]);
3192 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3193 if (UNTAG_Bool(REGB0)) {
3194 } else {
3195 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3196 if (UNTAG_Bool(REGB1)) {
3197 REGB1 = TAG_Bool(false);
3198 REGB0 = REGB1;
3199 } else {
3200 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3201 REGB0 = REGB1;
3202 }
3203 }
3204 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3205 if (UNTAG_Bool(REGB0)) {
3206 /* ./parser//parser_prod.nit:586 */
3207 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[2]);
3208 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*/;
3209 if (UNTAG_Bool(REGB0)) {
3210 } else {
3211 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 586);
3212 }
3213 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3214 }
3215 /* ./parser//parser_prod.nit:588 */
3216 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[2])!=NIT_NULL);
3217 if (UNTAG_Bool(REGB0)) {
3218 } else {
3219 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 588);
3220 }
3221 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[2]);
3222 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));
3223 /* ./parser//parser_prod.nit:591 */
3224 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[2])!=NIT_NULL);
3225 if (UNTAG_Bool(REGB0)) {
3226 } else {
3227 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 591);
3228 }
3229 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[2]);
3230 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));
3231 /* ./parser//parser_prod.nit:594 */
3232 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[2])!=NIT_NULL);
3233 if (UNTAG_Bool(REGB0)) {
3234 } else {
3235 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 594);
3236 }
3237 fra.me.REG[2] = ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[2]);
3238 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));
3239 stack_frame_head = fra.me.prev;
3240 return;
3241 }
3242 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){
3243 struct {struct stack_frame_t me;} fra;
3244 fun_t CREG[1];
3245 val_t tmp;
3246 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3247 fra.me.file = LOCATE_parser___parser_prod;
3248 fra.me.line = 0;
3249 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
3250 fra.me.has_broke = 0;
3251 fra.me.REG_size = 1;
3252 fra.me.REG[0] = NIT_NULL;
3253 fra.me.closure_ctx = closctx_param;
3254 fra.me.closure_funs = CREG;
3255 fra.me.REG[0] = p0;
3256 CREG[0] = clos_fun0;
3257 /* ./parser//parser_prod.nit:589 */
3258 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3259 stack_frame_head = fra.me.prev;
3260 return;
3261 }
3262 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){
3263 struct {struct stack_frame_t me;} fra;
3264 fun_t CREG[1];
3265 val_t tmp;
3266 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3267 fra.me.file = LOCATE_parser___parser_prod;
3268 fra.me.line = 0;
3269 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
3270 fra.me.has_broke = 0;
3271 fra.me.REG_size = 1;
3272 fra.me.REG[0] = NIT_NULL;
3273 fra.me.closure_ctx = closctx_param;
3274 fra.me.closure_funs = CREG;
3275 fra.me.REG[0] = p0;
3276 CREG[0] = clos_fun0;
3277 /* ./parser//parser_prod.nit:592 */
3278 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3279 stack_frame_head = fra.me.prev;
3280 return;
3281 }
3282 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){
3283 struct {struct stack_frame_t me;} fra;
3284 fun_t CREG[1];
3285 val_t tmp;
3286 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3287 fra.me.file = LOCATE_parser___parser_prod;
3288 fra.me.line = 0;
3289 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
3290 fra.me.has_broke = 0;
3291 fra.me.REG_size = 1;
3292 fra.me.REG[0] = NIT_NULL;
3293 fra.me.closure_ctx = closctx_param;
3294 fra.me.closure_funs = CREG;
3295 fra.me.REG[0] = p0;
3296 CREG[0] = clos_fun0;
3297 /* ./parser//parser_prod.nit:595 */
3298 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3299 stack_frame_head = fra.me.prev;
3300 return;
3301 }
3302 void parser___parser_prod___ATopClassdef___empty_init(val_t p0, int* init_table){
3303 int itpos19 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATopClassdef].i;
3304 struct {struct stack_frame_t me;} fra;
3305 val_t tmp;
3306 if (init_table[itpos19]) return;
3307 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3308 fra.me.file = LOCATE_parser___parser_prod;
3309 fra.me.line = 600;
3310 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___empty_init;
3311 fra.me.has_broke = 0;
3312 fra.me.REG_size = 1;
3313 fra.me.REG[0] = NIT_NULL;
3314 fra.me.REG[0] = p0;
3315 stack_frame_head = fra.me.prev;
3316 init_table[itpos19] = 1;
3317 return;
3318 }
3319 void parser___parser_prod___ATopClassdef___init_atopclassdef(val_t p0, val_t p1, int* init_table){
3320 int itpos20 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATopClassdef].i;
3321 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3322 val_t tmp;
3323 if (init_table[itpos20]) return;
3324 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3325 fra.me.file = LOCATE_parser___parser_prod;
3326 fra.me.line = 602;
3327 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___init_atopclassdef;
3328 fra.me.has_broke = 0;
3329 fra.me.REG_size = 2;
3330 fra.me.REG[0] = NIT_NULL;
3331 fra.me.REG[1] = NIT_NULL;
3332 fra.me.REG[0] = p0;
3333 fra.me.REG[1] = p1;
3334 /* ./parser//parser_prod.nit:606 */
3335 CALL_parser___parser_prod___ATopClassdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
3336 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));
3337 stack_frame_head = fra.me.prev;
3338 init_table[itpos20] = 1;
3339 return;
3340 }
3341 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){
3342 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3343 val_t REGB0;
3344 fun_t CREG[1];
3345 val_t tmp;
3346 /* ./parser//parser_prod.nit:607 */
3347 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3348 fra.me.file = LOCATE_parser___parser_prod;
3349 fra.me.line = 0;
3350 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___init_atopclassdef;
3351 fra.me.has_broke = 0;
3352 fra.me.REG_size = 2;
3353 fra.me.REG[0] = NIT_NULL;
3354 fra.me.REG[1] = NIT_NULL;
3355 fra.me.closure_ctx = closctx_param;
3356 fra.me.closure_funs = CREG;
3357 fra.me.REG[0] = p0;
3358 CREG[0] = clos_fun0;
3359 /* ./parser//parser_prod.nit:608 */
3360 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
3361 if (UNTAG_Bool(REGB0)) {
3362 } else {
3363 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 608);
3364 }
3365 /* ./parser//parser_prod.nit:609 */
3366 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(closctx->REG[0])!=NIT_NULL);
3367 if (UNTAG_Bool(REGB0)) {
3368 } else {
3369 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 609);
3370 }
3371 fra.me.REG[1] = ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(closctx->REG[0]);
3372 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3373 /* ./parser//parser_prod.nit:610 */
3374 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
3375 stack_frame_head = fra.me.prev;
3376 return;
3377 }
3378 void parser___parser_prod___ATopClassdef___replace_child(val_t p0, val_t p1, val_t p2){
3379 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3380 val_t REGB0;
3381 val_t REGB1;
3382 val_t REGB2;
3383 val_t REGB3;
3384 val_t REGB4;
3385 val_t tmp;
3386 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3387 fra.me.file = LOCATE_parser___parser_prod;
3388 fra.me.line = 614;
3389 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___replace_child;
3390 fra.me.has_broke = 0;
3391 fra.me.REG_size = 4;
3392 fra.me.REG[0] = NIT_NULL;
3393 fra.me.REG[1] = NIT_NULL;
3394 fra.me.REG[2] = NIT_NULL;
3395 fra.me.REG[3] = NIT_NULL;
3396 fra.me.REG[0] = p0;
3397 fra.me.REG[1] = p1;
3398 fra.me.REG[2] = p2;
3399 /* ./parser//parser_prod.nit:616 */
3400 REGB0 = TAG_Int(0);
3401 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3402 if (UNTAG_Bool(REGB1)) {
3403 } else {
3404 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 616);
3405 }
3406 fra.me.REG[3] = ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
3407 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
3408 /* ./../lib/standard//kernel.nit:352 */
3409 while(1) {
3410 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3411 if (UNTAG_Bool(REGB2)) {
3412 } else {
3413 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3414 }
3415 /* ./../lib/standard//kernel.nit:232 */
3416 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3417 /* ./../lib/standard//kernel.nit:352 */
3418 if (UNTAG_Bool(REGB2)) {
3419 /* ./parser//parser_prod.nit:616 */
3420 REGB2 = REGB0;
3421 /* ./parser//parser_prod.nit:617 */
3422 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3423 if (UNTAG_Bool(REGB3)) {
3424 } else {
3425 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 617);
3426 }
3427 fra.me.REG[3] = ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
3428 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
3429 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3430 if (UNTAG_Bool(REGB3)) {
3431 } else {
3432 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3433 if (UNTAG_Bool(REGB4)) {
3434 REGB4 = TAG_Bool(false);
3435 REGB3 = REGB4;
3436 } else {
3437 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3438 REGB3 = REGB4;
3439 }
3440 }
3441 if (UNTAG_Bool(REGB3)) {
3442 /* ./parser//parser_prod.nit:618 */
3443 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3444 if (UNTAG_Bool(REGB3)) {
3445 } else {
3446 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3447 if (UNTAG_Bool(REGB4)) {
3448 REGB4 = TAG_Bool(false);
3449 REGB3 = REGB4;
3450 } else {
3451 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3452 REGB3 = REGB4;
3453 }
3454 }
3455 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3456 if (UNTAG_Bool(REGB3)) {
3457 /* ./parser//parser_prod.nit:619 */
3458 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*/;
3459 if (UNTAG_Bool(REGB3)) {
3460 } else {
3461 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 619);
3462 }
3463 /* ./parser//parser_prod.nit:620 */
3464 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3465 if (UNTAG_Bool(REGB3)) {
3466 } else {
3467 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 620);
3468 }
3469 fra.me.REG[3] = ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
3470 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3471 /* ./parser//parser_prod.nit:621 */
3472 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3473 if (UNTAG_Bool(REGB3)) {
3474 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 621);
3475 }
3476 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3477 } else {
3478 /* ./parser//parser_prod.nit:623 */
3479 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3480 if (UNTAG_Bool(REGB3)) {
3481 } else {
3482 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 623);
3483 }
3484 fra.me.REG[3] = ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
3485 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3486 }
3487 /* ./parser//parser_prod.nit:625 */
3488 goto label1;
3489 }
3490 /* ./../lib/standard//kernel.nit:354 */
3491 REGB2 = TAG_Int(1);
3492 /* ./../lib/standard//kernel.nit:235 */
3493 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3494 /* ./../lib/standard//kernel.nit:354 */
3495 REGB0 = REGB2;
3496 } else {
3497 /* ./../lib/standard//kernel.nit:352 */
3498 goto label2;
3499 }
3500 }
3501 label2: while(0);
3502 label1: while(0);
3503 stack_frame_head = fra.me.prev;
3504 return;
3505 }
3506 void parser___parser_prod___ATopClassdef___visit_all(val_t p0, val_t p1){
3507 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3508 val_t REGB0;
3509 val_t tmp;
3510 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3511 fra.me.file = LOCATE_parser___parser_prod;
3512 fra.me.line = 630;
3513 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___visit_all;
3514 fra.me.has_broke = 0;
3515 fra.me.REG_size = 2;
3516 fra.me.REG[0] = NIT_NULL;
3517 fra.me.REG[1] = NIT_NULL;
3518 fra.me.REG[0] = p0;
3519 fra.me.REG[1] = p1;
3520 /* ./parser//parser_prod.nit:632 */
3521 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3522 if (UNTAG_Bool(REGB0)) {
3523 } else {
3524 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 632);
3525 }
3526 fra.me.REG[0] = ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
3527 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));
3528 stack_frame_head = fra.me.prev;
3529 return;
3530 }
3531 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){
3532 struct {struct stack_frame_t me;} fra;
3533 fun_t CREG[1];
3534 val_t tmp;
3535 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3536 fra.me.file = LOCATE_parser___parser_prod;
3537 fra.me.line = 0;
3538 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___visit_all;
3539 fra.me.has_broke = 0;
3540 fra.me.REG_size = 1;
3541 fra.me.REG[0] = NIT_NULL;
3542 fra.me.closure_ctx = closctx_param;
3543 fra.me.closure_funs = CREG;
3544 fra.me.REG[0] = p0;
3545 CREG[0] = clos_fun0;
3546 /* ./parser//parser_prod.nit:633 */
3547 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3548 stack_frame_head = fra.me.prev;
3549 return;
3550 }
3551 void parser___parser_prod___AMainClassdef___empty_init(val_t p0, int* init_table){
3552 int itpos21 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainClassdef].i;
3553 struct {struct stack_frame_t me;} fra;
3554 val_t tmp;
3555 if (init_table[itpos21]) return;
3556 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3557 fra.me.file = LOCATE_parser___parser_prod;
3558 fra.me.line = 638;
3559 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___empty_init;
3560 fra.me.has_broke = 0;
3561 fra.me.REG_size = 1;
3562 fra.me.REG[0] = NIT_NULL;
3563 fra.me.REG[0] = p0;
3564 stack_frame_head = fra.me.prev;
3565 init_table[itpos21] = 1;
3566 return;
3567 }
3568 void parser___parser_prod___AMainClassdef___init_amainclassdef(val_t p0, val_t p1, int* init_table){
3569 int itpos22 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainClassdef].i;
3570 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3571 val_t tmp;
3572 if (init_table[itpos22]) return;
3573 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3574 fra.me.file = LOCATE_parser___parser_prod;
3575 fra.me.line = 640;
3576 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___init_amainclassdef;
3577 fra.me.has_broke = 0;
3578 fra.me.REG_size = 2;
3579 fra.me.REG[0] = NIT_NULL;
3580 fra.me.REG[1] = NIT_NULL;
3581 fra.me.REG[0] = p0;
3582 fra.me.REG[1] = p1;
3583 /* ./parser//parser_prod.nit:644 */
3584 CALL_parser___parser_prod___AMainClassdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
3585 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));
3586 stack_frame_head = fra.me.prev;
3587 init_table[itpos22] = 1;
3588 return;
3589 }
3590 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){
3591 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3592 val_t REGB0;
3593 fun_t CREG[1];
3594 val_t tmp;
3595 /* ./parser//parser_prod.nit:645 */
3596 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3597 fra.me.file = LOCATE_parser___parser_prod;
3598 fra.me.line = 0;
3599 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___init_amainclassdef;
3600 fra.me.has_broke = 0;
3601 fra.me.REG_size = 2;
3602 fra.me.REG[0] = NIT_NULL;
3603 fra.me.REG[1] = NIT_NULL;
3604 fra.me.closure_ctx = closctx_param;
3605 fra.me.closure_funs = CREG;
3606 fra.me.REG[0] = p0;
3607 CREG[0] = clos_fun0;
3608 /* ./parser//parser_prod.nit:646 */
3609 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
3610 if (UNTAG_Bool(REGB0)) {
3611 } else {
3612 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 646);
3613 }
3614 /* ./parser//parser_prod.nit:647 */
3615 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(closctx->REG[0])!=NIT_NULL);
3616 if (UNTAG_Bool(REGB0)) {
3617 } else {
3618 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 647);
3619 }
3620 fra.me.REG[1] = ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(closctx->REG[0]);
3621 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3622 /* ./parser//parser_prod.nit:648 */
3623 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
3624 stack_frame_head = fra.me.prev;
3625 return;
3626 }
3627 void parser___parser_prod___AMainClassdef___replace_child(val_t p0, val_t p1, val_t p2){
3628 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3629 val_t REGB0;
3630 val_t REGB1;
3631 val_t REGB2;
3632 val_t REGB3;
3633 val_t REGB4;
3634 val_t tmp;
3635 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3636 fra.me.file = LOCATE_parser___parser_prod;
3637 fra.me.line = 652;
3638 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___replace_child;
3639 fra.me.has_broke = 0;
3640 fra.me.REG_size = 4;
3641 fra.me.REG[0] = NIT_NULL;
3642 fra.me.REG[1] = NIT_NULL;
3643 fra.me.REG[2] = NIT_NULL;
3644 fra.me.REG[3] = NIT_NULL;
3645 fra.me.REG[0] = p0;
3646 fra.me.REG[1] = p1;
3647 fra.me.REG[2] = p2;
3648 /* ./parser//parser_prod.nit:654 */
3649 REGB0 = TAG_Int(0);
3650 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3651 if (UNTAG_Bool(REGB1)) {
3652 } else {
3653 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 654);
3654 }
3655 fra.me.REG[3] = ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
3656 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
3657 /* ./../lib/standard//kernel.nit:352 */
3658 while(1) {
3659 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3660 if (UNTAG_Bool(REGB2)) {
3661 } else {
3662 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3663 }
3664 /* ./../lib/standard//kernel.nit:232 */
3665 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3666 /* ./../lib/standard//kernel.nit:352 */
3667 if (UNTAG_Bool(REGB2)) {
3668 /* ./parser//parser_prod.nit:654 */
3669 REGB2 = REGB0;
3670 /* ./parser//parser_prod.nit:655 */
3671 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3672 if (UNTAG_Bool(REGB3)) {
3673 } else {
3674 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 655);
3675 }
3676 fra.me.REG[3] = ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
3677 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
3678 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3679 if (UNTAG_Bool(REGB3)) {
3680 } else {
3681 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3682 if (UNTAG_Bool(REGB4)) {
3683 REGB4 = TAG_Bool(false);
3684 REGB3 = REGB4;
3685 } else {
3686 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3687 REGB3 = REGB4;
3688 }
3689 }
3690 if (UNTAG_Bool(REGB3)) {
3691 /* ./parser//parser_prod.nit:656 */
3692 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3693 if (UNTAG_Bool(REGB3)) {
3694 } else {
3695 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3696 if (UNTAG_Bool(REGB4)) {
3697 REGB4 = TAG_Bool(false);
3698 REGB3 = REGB4;
3699 } else {
3700 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3701 REGB3 = REGB4;
3702 }
3703 }
3704 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3705 if (UNTAG_Bool(REGB3)) {
3706 /* ./parser//parser_prod.nit:657 */
3707 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*/;
3708 if (UNTAG_Bool(REGB3)) {
3709 } else {
3710 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 657);
3711 }
3712 /* ./parser//parser_prod.nit:658 */
3713 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3714 if (UNTAG_Bool(REGB3)) {
3715 } else {
3716 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 658);
3717 }
3718 fra.me.REG[3] = ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
3719 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3720 /* ./parser//parser_prod.nit:659 */
3721 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3722 if (UNTAG_Bool(REGB3)) {
3723 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 659);
3724 }
3725 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3726 } else {
3727 /* ./parser//parser_prod.nit:661 */
3728 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3729 if (UNTAG_Bool(REGB3)) {
3730 } else {
3731 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 661);
3732 }
3733 fra.me.REG[3] = ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
3734 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3735 }
3736 /* ./parser//parser_prod.nit:663 */
3737 goto label1;
3738 }
3739 /* ./../lib/standard//kernel.nit:354 */
3740 REGB2 = TAG_Int(1);
3741 /* ./../lib/standard//kernel.nit:235 */
3742 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3743 /* ./../lib/standard//kernel.nit:354 */
3744 REGB0 = REGB2;
3745 } else {
3746 /* ./../lib/standard//kernel.nit:352 */
3747 goto label2;
3748 }
3749 }
3750 label2: while(0);
3751 label1: while(0);
3752 stack_frame_head = fra.me.prev;
3753 return;
3754 }
3755 void parser___parser_prod___AMainClassdef___visit_all(val_t p0, val_t p1){
3756 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3757 val_t REGB0;
3758 val_t tmp;
3759 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3760 fra.me.file = LOCATE_parser___parser_prod;
3761 fra.me.line = 668;
3762 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___visit_all;
3763 fra.me.has_broke = 0;
3764 fra.me.REG_size = 2;
3765 fra.me.REG[0] = NIT_NULL;
3766 fra.me.REG[1] = NIT_NULL;
3767 fra.me.REG[0] = p0;
3768 fra.me.REG[1] = p1;
3769 /* ./parser//parser_prod.nit:670 */
3770 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3771 if (UNTAG_Bool(REGB0)) {
3772 } else {
3773 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 670);
3774 }
3775 fra.me.REG[0] = ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
3776 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));
3777 stack_frame_head = fra.me.prev;
3778 return;
3779 }
3780 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){
3781 struct {struct stack_frame_t me;} fra;
3782 fun_t CREG[1];
3783 val_t tmp;
3784 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3785 fra.me.file = LOCATE_parser___parser_prod;
3786 fra.me.line = 0;
3787 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___visit_all;
3788 fra.me.has_broke = 0;
3789 fra.me.REG_size = 1;
3790 fra.me.REG[0] = NIT_NULL;
3791 fra.me.closure_ctx = closctx_param;
3792 fra.me.closure_funs = CREG;
3793 fra.me.REG[0] = p0;
3794 CREG[0] = clos_fun0;
3795 /* ./parser//parser_prod.nit:671 */
3796 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3797 stack_frame_head = fra.me.prev;
3798 return;
3799 }
3800 void parser___parser_prod___AConcreteClasskind___empty_init(val_t p0, int* init_table){
3801 int itpos23 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteClasskind].i;
3802 struct {struct stack_frame_t me;} fra;
3803 val_t tmp;
3804 if (init_table[itpos23]) return;
3805 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3806 fra.me.file = LOCATE_parser___parser_prod;
3807 fra.me.line = 676;
3808 fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___empty_init;
3809 fra.me.has_broke = 0;
3810 fra.me.REG_size = 1;
3811 fra.me.REG[0] = NIT_NULL;
3812 fra.me.REG[0] = p0;
3813 stack_frame_head = fra.me.prev;
3814 init_table[itpos23] = 1;
3815 return;
3816 }
3817 void parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind(val_t p0, val_t p1, int* init_table){
3818 int itpos24 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteClasskind].i;
3819 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3820 val_t REGB0;
3821 val_t tmp;
3822 if (init_table[itpos24]) return;
3823 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3824 fra.me.file = LOCATE_parser___parser_prod;
3825 fra.me.line = 678;
3826 fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind;
3827 fra.me.has_broke = 0;
3828 fra.me.REG_size = 3;
3829 fra.me.REG[0] = NIT_NULL;
3830 fra.me.REG[1] = NIT_NULL;
3831 fra.me.REG[2] = NIT_NULL;
3832 fra.me.REG[0] = p0;
3833 fra.me.REG[1] = p1;
3834 /* ./parser//parser_prod.nit:678 */
3835 fra.me.REG[2] = fra.me.REG[0];
3836 /* ./parser//parser_prod.nit:682 */
3837 CALL_parser___parser_prod___AConcreteClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
3838 /* ./parser//parser_prod.nit:683 */
3839 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
3840 if (UNTAG_Bool(REGB0)) {
3841 } else {
3842 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 683);
3843 }
3844 ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[2]) = fra.me.REG[1];
3845 /* ./parser//parser_prod.nit:684 */
3846 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3847 if (UNTAG_Bool(REGB0)) {
3848 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 684);
3849 }
3850 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3851 stack_frame_head = fra.me.prev;
3852 init_table[itpos24] = 1;
3853 return;
3854 }
3855 void parser___parser_prod___AConcreteClasskind___replace_child(val_t p0, val_t p1, val_t p2){
3856 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3857 val_t REGB0;
3858 val_t REGB1;
3859 val_t tmp;
3860 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3861 fra.me.file = LOCATE_parser___parser_prod;
3862 fra.me.line = 687;
3863 fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___replace_child;
3864 fra.me.has_broke = 0;
3865 fra.me.REG_size = 4;
3866 fra.me.REG[0] = NIT_NULL;
3867 fra.me.REG[1] = NIT_NULL;
3868 fra.me.REG[2] = NIT_NULL;
3869 fra.me.REG[3] = NIT_NULL;
3870 fra.me.REG[0] = p0;
3871 fra.me.REG[1] = p1;
3872 fra.me.REG[2] = p2;
3873 /* ./parser//parser_prod.nit:689 */
3874 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
3875 if (UNTAG_Bool(REGB0)) {
3876 } else {
3877 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 689);
3878 }
3879 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]);
3880 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
3881 if (UNTAG_Bool(REGB0)) {
3882 } else {
3883 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3884 REGB0 = REGB1;
3885 }
3886 if (UNTAG_Bool(REGB0)) {
3887 /* ./parser//parser_prod.nit:690 */
3888 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3889 if (UNTAG_Bool(REGB0)) {
3890 } else {
3891 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3892 if (UNTAG_Bool(REGB1)) {
3893 REGB1 = TAG_Bool(false);
3894 REGB0 = REGB1;
3895 } else {
3896 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3897 REGB0 = REGB1;
3898 }
3899 }
3900 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3901 if (UNTAG_Bool(REGB0)) {
3902 /* ./parser//parser_prod.nit:691 */
3903 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3904 if (UNTAG_Bool(REGB0)) {
3905 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 691);
3906 }
3907 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3908 /* ./parser//parser_prod.nit:692 */
3909 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*/;
3910 if (UNTAG_Bool(REGB0)) {
3911 } else {
3912 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 692);
3913 }
3914 /* ./parser//parser_prod.nit:693 */
3915 ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]) = fra.me.REG[2];
3916 } else {
3917 /* ./parser//parser_prod.nit:695 */
3918 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 695);
3919 }
3920 /* ./parser//parser_prod.nit:697 */
3921 goto label1;
3922 }
3923 label1: while(0);
3924 stack_frame_head = fra.me.prev;
3925 return;
3926 }
3927 void parser___parser_prod___AConcreteClasskind___visit_all(val_t p0, val_t p1){
3928 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3929 val_t REGB0;
3930 val_t tmp;
3931 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3932 fra.me.file = LOCATE_parser___parser_prod;
3933 fra.me.line = 701;
3934 fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___visit_all;
3935 fra.me.has_broke = 0;
3936 fra.me.REG_size = 2;
3937 fra.me.REG[0] = NIT_NULL;
3938 fra.me.REG[1] = NIT_NULL;
3939 fra.me.REG[0] = p0;
3940 fra.me.REG[1] = p1;
3941 /* ./parser//parser_prod.nit:703 */
3942 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
3943 if (UNTAG_Bool(REGB0)) {
3944 } else {
3945 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 703);
3946 }
3947 fra.me.REG[0] = ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]);
3948 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3949 stack_frame_head = fra.me.prev;
3950 return;
3951 }
3952 void parser___parser_prod___AAbstractClasskind___empty_init(val_t p0, int* init_table){
3953 int itpos25 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbstractClasskind].i;
3954 struct {struct stack_frame_t me;} fra;
3955 val_t tmp;
3956 if (init_table[itpos25]) return;
3957 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3958 fra.me.file = LOCATE_parser___parser_prod;
3959 fra.me.line = 707;
3960 fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___empty_init;
3961 fra.me.has_broke = 0;
3962 fra.me.REG_size = 1;
3963 fra.me.REG[0] = NIT_NULL;
3964 fra.me.REG[0] = p0;
3965 stack_frame_head = fra.me.prev;
3966 init_table[itpos25] = 1;
3967 return;
3968 }
3969 void parser___parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t p0, val_t p1, val_t p2, int* init_table){
3970 int itpos26 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbstractClasskind].i;
3971 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3972 val_t REGB0;
3973 val_t tmp;
3974 if (init_table[itpos26]) return;
3975 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3976 fra.me.file = LOCATE_parser___parser_prod;
3977 fra.me.line = 709;
3978 fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___init_aabstractclasskind;
3979 fra.me.has_broke = 0;
3980 fra.me.REG_size = 4;
3981 fra.me.REG[0] = NIT_NULL;
3982 fra.me.REG[1] = NIT_NULL;
3983 fra.me.REG[2] = NIT_NULL;
3984 fra.me.REG[3] = NIT_NULL;
3985 fra.me.REG[0] = p0;
3986 fra.me.REG[1] = p1;
3987 fra.me.REG[2] = p2;
3988 /* ./parser//parser_prod.nit:709 */
3989 fra.me.REG[3] = fra.me.REG[0];
3990 /* ./parser//parser_prod.nit:714 */
3991 CALL_parser___parser_prod___AAbstractClasskind___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
3992 /* ./parser//parser_prod.nit:715 */
3993 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
3994 if (UNTAG_Bool(REGB0)) {
3995 } else {
3996 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 715);
3997 }
3998 ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[3]) = fra.me.REG[1];
3999 /* ./parser//parser_prod.nit:716 */
4000 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4001 if (UNTAG_Bool(REGB0)) {
4002 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 716);
4003 }
4004 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4005 /* ./parser//parser_prod.nit:717 */
4006 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
4007 if (UNTAG_Bool(REGB0)) {
4008 } else {
4009 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 717);
4010 }
4011 ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[3]) = fra.me.REG[2];
4012 /* ./parser//parser_prod.nit:718 */
4013 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4014 if (UNTAG_Bool(REGB0)) {
4015 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 718);
4016 }
4017 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4018 stack_frame_head = fra.me.prev;
4019 init_table[itpos26] = 1;
4020 return;
4021 }
4022 void parser___parser_prod___AAbstractClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4023 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4024 val_t REGB0;
4025 val_t REGB1;
4026 val_t tmp;
4027 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4028 fra.me.file = LOCATE_parser___parser_prod;
4029 fra.me.line = 721;
4030 fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___replace_child;
4031 fra.me.has_broke = 0;
4032 fra.me.REG_size = 4;
4033 fra.me.REG[0] = NIT_NULL;
4034 fra.me.REG[1] = NIT_NULL;
4035 fra.me.REG[2] = NIT_NULL;
4036 fra.me.REG[3] = NIT_NULL;
4037 fra.me.REG[0] = p0;
4038 fra.me.REG[1] = p1;
4039 fra.me.REG[2] = p2;
4040 /* ./parser//parser_prod.nit:723 */
4041 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0])!=NIT_NULL);
4042 if (UNTAG_Bool(REGB0)) {
4043 } else {
4044 nit_abort("Uninitialized attribute %s", "_n_kwabstract", LOCATE_parser___parser_prod, 723);
4045 }
4046 fra.me.REG[3] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]);
4047 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4048 if (UNTAG_Bool(REGB0)) {
4049 } else {
4050 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4051 REGB0 = REGB1;
4052 }
4053 if (UNTAG_Bool(REGB0)) {
4054 /* ./parser//parser_prod.nit:724 */
4055 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4056 if (UNTAG_Bool(REGB0)) {
4057 } else {
4058 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4059 if (UNTAG_Bool(REGB1)) {
4060 REGB1 = TAG_Bool(false);
4061 REGB0 = REGB1;
4062 } else {
4063 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4064 REGB0 = REGB1;
4065 }
4066 }
4067 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4068 if (UNTAG_Bool(REGB0)) {
4069 /* ./parser//parser_prod.nit:725 */
4070 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4071 if (UNTAG_Bool(REGB0)) {
4072 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 725);
4073 }
4074 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4075 /* ./parser//parser_prod.nit:726 */
4076 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*/;
4077 if (UNTAG_Bool(REGB0)) {
4078 } else {
4079 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 726);
4080 }
4081 /* ./parser//parser_prod.nit:727 */
4082 ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]) = fra.me.REG[2];
4083 } else {
4084 /* ./parser//parser_prod.nit:729 */
4085 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 729);
4086 }
4087 /* ./parser//parser_prod.nit:731 */
4088 goto label1;
4089 }
4090 /* ./parser//parser_prod.nit:733 */
4091 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
4092 if (UNTAG_Bool(REGB0)) {
4093 } else {
4094 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 733);
4095 }
4096 fra.me.REG[3] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]);
4097 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4098 if (UNTAG_Bool(REGB0)) {
4099 } else {
4100 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4101 REGB0 = REGB1;
4102 }
4103 if (UNTAG_Bool(REGB0)) {
4104 /* ./parser//parser_prod.nit:734 */
4105 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4106 if (UNTAG_Bool(REGB0)) {
4107 } else {
4108 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4109 if (UNTAG_Bool(REGB1)) {
4110 REGB1 = TAG_Bool(false);
4111 REGB0 = REGB1;
4112 } else {
4113 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4114 REGB0 = REGB1;
4115 }
4116 }
4117 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4118 if (UNTAG_Bool(REGB0)) {
4119 /* ./parser//parser_prod.nit:735 */
4120 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4121 if (UNTAG_Bool(REGB0)) {
4122 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 735);
4123 }
4124 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4125 /* ./parser//parser_prod.nit:736 */
4126 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*/;
4127 if (UNTAG_Bool(REGB0)) {
4128 } else {
4129 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 736);
4130 }
4131 /* ./parser//parser_prod.nit:737 */
4132 ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]) = fra.me.REG[2];
4133 } else {
4134 /* ./parser//parser_prod.nit:739 */
4135 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 739);
4136 }
4137 /* ./parser//parser_prod.nit:741 */
4138 goto label1;
4139 }
4140 label1: while(0);
4141 stack_frame_head = fra.me.prev;
4142 return;
4143 }
4144 void parser___parser_prod___AAbstractClasskind___visit_all(val_t p0, val_t p1){
4145 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4146 val_t REGB0;
4147 val_t tmp;
4148 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4149 fra.me.file = LOCATE_parser___parser_prod;
4150 fra.me.line = 745;
4151 fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___visit_all;
4152 fra.me.has_broke = 0;
4153 fra.me.REG_size = 3;
4154 fra.me.REG[0] = NIT_NULL;
4155 fra.me.REG[1] = NIT_NULL;
4156 fra.me.REG[2] = NIT_NULL;
4157 fra.me.REG[0] = p0;
4158 fra.me.REG[1] = p1;
4159 /* ./parser//parser_prod.nit:747 */
4160 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0])!=NIT_NULL);
4161 if (UNTAG_Bool(REGB0)) {
4162 } else {
4163 nit_abort("Uninitialized attribute %s", "_n_kwabstract", LOCATE_parser___parser_prod, 747);
4164 }
4165 fra.me.REG[2] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]);
4166 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4167 /* ./parser//parser_prod.nit:748 */
4168 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
4169 if (UNTAG_Bool(REGB0)) {
4170 } else {
4171 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 748);
4172 }
4173 fra.me.REG[0] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]);
4174 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4175 stack_frame_head = fra.me.prev;
4176 return;
4177 }
4178 void parser___parser_prod___AInterfaceClasskind___empty_init(val_t p0, int* init_table){
4179 int itpos27 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInterfaceClasskind].i;
4180 struct {struct stack_frame_t me;} fra;
4181 val_t tmp;
4182 if (init_table[itpos27]) return;
4183 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4184 fra.me.file = LOCATE_parser___parser_prod;
4185 fra.me.line = 752;
4186 fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___empty_init;
4187 fra.me.has_broke = 0;
4188 fra.me.REG_size = 1;
4189 fra.me.REG[0] = NIT_NULL;
4190 fra.me.REG[0] = p0;
4191 stack_frame_head = fra.me.prev;
4192 init_table[itpos27] = 1;
4193 return;
4194 }
4195 void parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t p0, val_t p1, int* init_table){
4196 int itpos28 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInterfaceClasskind].i;
4197 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4198 val_t REGB0;
4199 val_t tmp;
4200 if (init_table[itpos28]) return;
4201 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4202 fra.me.file = LOCATE_parser___parser_prod;
4203 fra.me.line = 754;
4204 fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind;
4205 fra.me.has_broke = 0;
4206 fra.me.REG_size = 3;
4207 fra.me.REG[0] = NIT_NULL;
4208 fra.me.REG[1] = NIT_NULL;
4209 fra.me.REG[2] = NIT_NULL;
4210 fra.me.REG[0] = p0;
4211 fra.me.REG[1] = p1;
4212 /* ./parser//parser_prod.nit:754 */
4213 fra.me.REG[2] = fra.me.REG[0];
4214 /* ./parser//parser_prod.nit:758 */
4215 CALL_parser___parser_prod___AInterfaceClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
4216 /* ./parser//parser_prod.nit:759 */
4217 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4218 if (UNTAG_Bool(REGB0)) {
4219 } else {
4220 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 759);
4221 }
4222 ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[2]) = fra.me.REG[1];
4223 /* ./parser//parser_prod.nit:760 */
4224 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4225 if (UNTAG_Bool(REGB0)) {
4226 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 760);
4227 }
4228 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4229 stack_frame_head = fra.me.prev;
4230 init_table[itpos28] = 1;
4231 return;
4232 }
4233 void parser___parser_prod___AInterfaceClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4234 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4235 val_t REGB0;
4236 val_t REGB1;
4237 val_t tmp;
4238 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4239 fra.me.file = LOCATE_parser___parser_prod;
4240 fra.me.line = 763;
4241 fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___replace_child;
4242 fra.me.has_broke = 0;
4243 fra.me.REG_size = 4;
4244 fra.me.REG[0] = NIT_NULL;
4245 fra.me.REG[1] = NIT_NULL;
4246 fra.me.REG[2] = NIT_NULL;
4247 fra.me.REG[3] = NIT_NULL;
4248 fra.me.REG[0] = p0;
4249 fra.me.REG[1] = p1;
4250 fra.me.REG[2] = p2;
4251 /* ./parser//parser_prod.nit:765 */
4252 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0])!=NIT_NULL);
4253 if (UNTAG_Bool(REGB0)) {
4254 } else {
4255 nit_abort("Uninitialized attribute %s", "_n_kwinterface", LOCATE_parser___parser_prod, 765);
4256 }
4257 fra.me.REG[3] = ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]);
4258 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4259 if (UNTAG_Bool(REGB0)) {
4260 } else {
4261 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4262 REGB0 = REGB1;
4263 }
4264 if (UNTAG_Bool(REGB0)) {
4265 /* ./parser//parser_prod.nit:766 */
4266 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4267 if (UNTAG_Bool(REGB0)) {
4268 } else {
4269 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4270 if (UNTAG_Bool(REGB1)) {
4271 REGB1 = TAG_Bool(false);
4272 REGB0 = REGB1;
4273 } else {
4274 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4275 REGB0 = REGB1;
4276 }
4277 }
4278 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4279 if (UNTAG_Bool(REGB0)) {
4280 /* ./parser//parser_prod.nit:767 */
4281 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4282 if (UNTAG_Bool(REGB0)) {
4283 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 767);
4284 }
4285 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4286 /* ./parser//parser_prod.nit:768 */
4287 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*/;
4288 if (UNTAG_Bool(REGB0)) {
4289 } else {
4290 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 768);
4291 }
4292 /* ./parser//parser_prod.nit:769 */
4293 ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]) = fra.me.REG[2];
4294 } else {
4295 /* ./parser//parser_prod.nit:771 */
4296 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 771);
4297 }
4298 /* ./parser//parser_prod.nit:773 */
4299 goto label1;
4300 }
4301 label1: while(0);
4302 stack_frame_head = fra.me.prev;
4303 return;
4304 }
4305 void parser___parser_prod___AInterfaceClasskind___visit_all(val_t p0, val_t p1){
4306 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4307 val_t REGB0;
4308 val_t tmp;
4309 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4310 fra.me.file = LOCATE_parser___parser_prod;
4311 fra.me.line = 777;
4312 fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___visit_all;
4313 fra.me.has_broke = 0;
4314 fra.me.REG_size = 2;
4315 fra.me.REG[0] = NIT_NULL;
4316 fra.me.REG[1] = NIT_NULL;
4317 fra.me.REG[0] = p0;
4318 fra.me.REG[1] = p1;
4319 /* ./parser//parser_prod.nit:779 */
4320 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0])!=NIT_NULL);
4321 if (UNTAG_Bool(REGB0)) {
4322 } else {
4323 nit_abort("Uninitialized attribute %s", "_n_kwinterface", LOCATE_parser___parser_prod, 779);
4324 }
4325 fra.me.REG[0] = ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]);
4326 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4327 stack_frame_head = fra.me.prev;
4328 return;
4329 }
4330 void parser___parser_prod___AEnumClasskind___empty_init(val_t p0, int* init_table){
4331 int itpos29 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEnumClasskind].i;
4332 struct {struct stack_frame_t me;} fra;
4333 val_t tmp;
4334 if (init_table[itpos29]) return;
4335 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4336 fra.me.file = LOCATE_parser___parser_prod;
4337 fra.me.line = 783;
4338 fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___empty_init;
4339 fra.me.has_broke = 0;
4340 fra.me.REG_size = 1;
4341 fra.me.REG[0] = NIT_NULL;
4342 fra.me.REG[0] = p0;
4343 stack_frame_head = fra.me.prev;
4344 init_table[itpos29] = 1;
4345 return;
4346 }
4347 void parser___parser_prod___AEnumClasskind___init_aenumclasskind(val_t p0, val_t p1, int* init_table){
4348 int itpos30 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEnumClasskind].i;
4349 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4350 val_t REGB0;
4351 val_t tmp;
4352 if (init_table[itpos30]) return;
4353 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4354 fra.me.file = LOCATE_parser___parser_prod;
4355 fra.me.line = 785;
4356 fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___init_aenumclasskind;
4357 fra.me.has_broke = 0;
4358 fra.me.REG_size = 3;
4359 fra.me.REG[0] = NIT_NULL;
4360 fra.me.REG[1] = NIT_NULL;
4361 fra.me.REG[2] = NIT_NULL;
4362 fra.me.REG[0] = p0;
4363 fra.me.REG[1] = p1;
4364 /* ./parser//parser_prod.nit:785 */
4365 fra.me.REG[2] = fra.me.REG[0];
4366 /* ./parser//parser_prod.nit:789 */
4367 CALL_parser___parser_prod___AEnumClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
4368 /* ./parser//parser_prod.nit:790 */
4369 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4370 if (UNTAG_Bool(REGB0)) {
4371 } else {
4372 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 790);
4373 }
4374 ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[2]) = fra.me.REG[1];
4375 /* ./parser//parser_prod.nit:791 */
4376 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4377 if (UNTAG_Bool(REGB0)) {
4378 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 791);
4379 }
4380 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4381 stack_frame_head = fra.me.prev;
4382 init_table[itpos30] = 1;
4383 return;
4384 }
4385 void parser___parser_prod___AEnumClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4386 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4387 val_t REGB0;
4388 val_t REGB1;
4389 val_t tmp;
4390 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4391 fra.me.file = LOCATE_parser___parser_prod;
4392 fra.me.line = 794;
4393 fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___replace_child;
4394 fra.me.has_broke = 0;
4395 fra.me.REG_size = 4;
4396 fra.me.REG[0] = NIT_NULL;
4397 fra.me.REG[1] = NIT_NULL;
4398 fra.me.REG[2] = NIT_NULL;
4399 fra.me.REG[3] = NIT_NULL;
4400 fra.me.REG[0] = p0;
4401 fra.me.REG[1] = p1;
4402 fra.me.REG[2] = p2;
4403 /* ./parser//parser_prod.nit:796 */
4404 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0])!=NIT_NULL);
4405 if (UNTAG_Bool(REGB0)) {
4406 } else {
4407 nit_abort("Uninitialized attribute %s", "_n_kwenum", LOCATE_parser___parser_prod, 796);
4408 }
4409 fra.me.REG[3] = ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]);
4410 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4411 if (UNTAG_Bool(REGB0)) {
4412 } else {
4413 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4414 REGB0 = REGB1;
4415 }
4416 if (UNTAG_Bool(REGB0)) {
4417 /* ./parser//parser_prod.nit:797 */
4418 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4419 if (UNTAG_Bool(REGB0)) {
4420 } else {
4421 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4422 if (UNTAG_Bool(REGB1)) {
4423 REGB1 = TAG_Bool(false);
4424 REGB0 = REGB1;
4425 } else {
4426 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4427 REGB0 = REGB1;
4428 }
4429 }
4430 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4431 if (UNTAG_Bool(REGB0)) {
4432 /* ./parser//parser_prod.nit:798 */
4433 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4434 if (UNTAG_Bool(REGB0)) {
4435 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 798);
4436 }
4437 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4438 /* ./parser//parser_prod.nit:799 */
4439 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*/;
4440 if (UNTAG_Bool(REGB0)) {
4441 } else {
4442 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 799);
4443 }
4444 /* ./parser//parser_prod.nit:800 */
4445 ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]) = fra.me.REG[2];
4446 } else {
4447 /* ./parser//parser_prod.nit:802 */
4448 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 802);
4449 }
4450 /* ./parser//parser_prod.nit:804 */
4451 goto label1;
4452 }
4453 label1: while(0);
4454 stack_frame_head = fra.me.prev;
4455 return;
4456 }
4457 void parser___parser_prod___AEnumClasskind___visit_all(val_t p0, val_t p1){
4458 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4459 val_t REGB0;
4460 val_t tmp;
4461 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4462 fra.me.file = LOCATE_parser___parser_prod;
4463 fra.me.line = 808;
4464 fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___visit_all;
4465 fra.me.has_broke = 0;
4466 fra.me.REG_size = 2;
4467 fra.me.REG[0] = NIT_NULL;
4468 fra.me.REG[1] = NIT_NULL;
4469 fra.me.REG[0] = p0;
4470 fra.me.REG[1] = p1;
4471 /* ./parser//parser_prod.nit:810 */
4472 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0])!=NIT_NULL);
4473 if (UNTAG_Bool(REGB0)) {
4474 } else {
4475 nit_abort("Uninitialized attribute %s", "_n_kwenum", LOCATE_parser___parser_prod, 810);
4476 }
4477 fra.me.REG[0] = ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]);
4478 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4479 stack_frame_head = fra.me.prev;
4480 return;
4481 }
4482 void parser___parser_prod___AExternClasskind___empty_init(val_t p0, int* init_table){
4483 int itpos31 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternClasskind].i;
4484 struct {struct stack_frame_t me;} fra;
4485 val_t tmp;
4486 if (init_table[itpos31]) return;
4487 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4488 fra.me.file = LOCATE_parser___parser_prod;
4489 fra.me.line = 814;
4490 fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___empty_init;
4491 fra.me.has_broke = 0;
4492 fra.me.REG_size = 1;
4493 fra.me.REG[0] = NIT_NULL;
4494 fra.me.REG[0] = p0;
4495 stack_frame_head = fra.me.prev;
4496 init_table[itpos31] = 1;
4497 return;
4498 }
4499 void parser___parser_prod___AExternClasskind___init_aexternclasskind(val_t p0, val_t p1, int* init_table){
4500 int itpos32 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternClasskind].i;
4501 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4502 val_t REGB0;
4503 val_t tmp;
4504 if (init_table[itpos32]) return;
4505 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4506 fra.me.file = LOCATE_parser___parser_prod;
4507 fra.me.line = 816;
4508 fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___init_aexternclasskind;
4509 fra.me.has_broke = 0;
4510 fra.me.REG_size = 3;
4511 fra.me.REG[0] = NIT_NULL;
4512 fra.me.REG[1] = NIT_NULL;
4513 fra.me.REG[2] = NIT_NULL;
4514 fra.me.REG[0] = p0;
4515 fra.me.REG[1] = p1;
4516 /* ./parser//parser_prod.nit:816 */
4517 fra.me.REG[2] = fra.me.REG[0];
4518 /* ./parser//parser_prod.nit:820 */
4519 CALL_parser___parser_prod___AExternClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
4520 /* ./parser//parser_prod.nit:821 */
4521 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4522 if (UNTAG_Bool(REGB0)) {
4523 } else {
4524 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 821);
4525 }
4526 ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[2]) = fra.me.REG[1];
4527 /* ./parser//parser_prod.nit:822 */
4528 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4529 if (UNTAG_Bool(REGB0)) {
4530 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 822);
4531 }
4532 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4533 stack_frame_head = fra.me.prev;
4534 init_table[itpos32] = 1;
4535 return;
4536 }
4537 void parser___parser_prod___AExternClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4538 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4539 val_t REGB0;
4540 val_t REGB1;
4541 val_t tmp;
4542 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4543 fra.me.file = LOCATE_parser___parser_prod;
4544 fra.me.line = 825;
4545 fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___replace_child;
4546 fra.me.has_broke = 0;
4547 fra.me.REG_size = 4;
4548 fra.me.REG[0] = NIT_NULL;
4549 fra.me.REG[1] = NIT_NULL;
4550 fra.me.REG[2] = NIT_NULL;
4551 fra.me.REG[3] = NIT_NULL;
4552 fra.me.REG[0] = p0;
4553 fra.me.REG[1] = p1;
4554 fra.me.REG[2] = p2;
4555 /* ./parser//parser_prod.nit:827 */
4556 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0])!=NIT_NULL);
4557 if (UNTAG_Bool(REGB0)) {
4558 } else {
4559 nit_abort("Uninitialized attribute %s", "_n_kwextern", LOCATE_parser___parser_prod, 827);
4560 }
4561 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0]);
4562 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4563 if (UNTAG_Bool(REGB0)) {
4564 } else {
4565 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4566 REGB0 = REGB1;
4567 }
4568 if (UNTAG_Bool(REGB0)) {
4569 /* ./parser//parser_prod.nit:828 */
4570 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4571 if (UNTAG_Bool(REGB0)) {
4572 } else {
4573 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4574 if (UNTAG_Bool(REGB1)) {
4575 REGB1 = TAG_Bool(false);
4576 REGB0 = REGB1;
4577 } else {
4578 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4579 REGB0 = REGB1;
4580 }
4581 }
4582 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4583 if (UNTAG_Bool(REGB0)) {
4584 /* ./parser//parser_prod.nit:829 */
4585 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4586 if (UNTAG_Bool(REGB0)) {
4587 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 829);
4588 }
4589 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4590 /* ./parser//parser_prod.nit:830 */
4591 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*/;
4592 if (UNTAG_Bool(REGB0)) {
4593 } else {
4594 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 830);
4595 }
4596 /* ./parser//parser_prod.nit:831 */
4597 ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0]) = fra.me.REG[2];
4598 } else {
4599 /* ./parser//parser_prod.nit:833 */
4600 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 833);
4601 }
4602 /* ./parser//parser_prod.nit:835 */
4603 goto label1;
4604 }
4605 label1: while(0);
4606 stack_frame_head = fra.me.prev;
4607 return;
4608 }
4609 void parser___parser_prod___AExternClasskind___visit_all(val_t p0, val_t p1){
4610 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4611 val_t REGB0;
4612 val_t tmp;
4613 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4614 fra.me.file = LOCATE_parser___parser_prod;
4615 fra.me.line = 839;
4616 fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___visit_all;
4617 fra.me.has_broke = 0;
4618 fra.me.REG_size = 2;
4619 fra.me.REG[0] = NIT_NULL;
4620 fra.me.REG[1] = NIT_NULL;
4621 fra.me.REG[0] = p0;
4622 fra.me.REG[1] = p1;
4623 /* ./parser//parser_prod.nit:841 */
4624 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0])!=NIT_NULL);
4625 if (UNTAG_Bool(REGB0)) {
4626 } else {
4627 nit_abort("Uninitialized attribute %s", "_n_kwextern", LOCATE_parser___parser_prod, 841);
4628 }
4629 fra.me.REG[0] = ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0]);
4630 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4631 stack_frame_head = fra.me.prev;
4632 return;
4633 }
4634 void parser___parser_prod___AFormaldef___empty_init(val_t p0, int* init_table){
4635 int itpos33 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFormaldef].i;
4636 struct {struct stack_frame_t me;} fra;
4637 val_t tmp;
4638 if (init_table[itpos33]) return;
4639 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4640 fra.me.file = LOCATE_parser___parser_prod;
4641 fra.me.line = 845;
4642 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___empty_init;
4643 fra.me.has_broke = 0;
4644 fra.me.REG_size = 1;
4645 fra.me.REG[0] = NIT_NULL;
4646 fra.me.REG[0] = p0;
4647 stack_frame_head = fra.me.prev;
4648 init_table[itpos33] = 1;
4649 return;
4650 }
4651 void parser___parser_prod___AFormaldef___init_aformaldef(val_t p0, val_t p1, val_t p2, int* init_table){
4652 int itpos34 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFormaldef].i;
4653 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4654 val_t REGB0;
4655 val_t REGB1;
4656 val_t tmp;
4657 if (init_table[itpos34]) return;
4658 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4659 fra.me.file = LOCATE_parser___parser_prod;
4660 fra.me.line = 847;
4661 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___init_aformaldef;
4662 fra.me.has_broke = 0;
4663 fra.me.REG_size = 4;
4664 fra.me.REG[0] = NIT_NULL;
4665 fra.me.REG[1] = NIT_NULL;
4666 fra.me.REG[2] = NIT_NULL;
4667 fra.me.REG[3] = NIT_NULL;
4668 fra.me.REG[0] = p0;
4669 fra.me.REG[1] = p1;
4670 fra.me.REG[2] = p2;
4671 /* ./parser//parser_prod.nit:847 */
4672 fra.me.REG[3] = fra.me.REG[0];
4673 /* ./parser//parser_prod.nit:852 */
4674 CALL_parser___parser_prod___AFormaldef___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
4675 /* ./parser//parser_prod.nit:853 */
4676 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4677 if (UNTAG_Bool(REGB0)) {
4678 } else {
4679 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 853);
4680 }
4681 ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[3]) = fra.me.REG[1];
4682 /* ./parser//parser_prod.nit:854 */
4683 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4684 if (UNTAG_Bool(REGB0)) {
4685 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 854);
4686 }
4687 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4688 /* ./parser//parser_prod.nit:855 */
4689 ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[3]) = fra.me.REG[2];
4690 /* ./parser//parser_prod.nit:856 */
4691 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4692 if (UNTAG_Bool(REGB0)) {
4693 } else {
4694 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4695 if (UNTAG_Bool(REGB1)) {
4696 REGB1 = TAG_Bool(false);
4697 REGB0 = REGB1;
4698 } else {
4699 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4700 REGB0 = REGB1;
4701 }
4702 }
4703 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4704 if (UNTAG_Bool(REGB0)) {
4705 /* ./parser//parser_prod.nit:857 */
4706 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4707 if (UNTAG_Bool(REGB0)) {
4708 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 857);
4709 }
4710 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4711 }
4712 stack_frame_head = fra.me.prev;
4713 init_table[itpos34] = 1;
4714 return;
4715 }
4716 void parser___parser_prod___AFormaldef___replace_child(val_t p0, val_t p1, val_t p2){
4717 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4718 val_t REGB0;
4719 val_t REGB1;
4720 val_t tmp;
4721 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4722 fra.me.file = LOCATE_parser___parser_prod;
4723 fra.me.line = 861;
4724 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___replace_child;
4725 fra.me.has_broke = 0;
4726 fra.me.REG_size = 4;
4727 fra.me.REG[0] = NIT_NULL;
4728 fra.me.REG[1] = NIT_NULL;
4729 fra.me.REG[2] = NIT_NULL;
4730 fra.me.REG[3] = NIT_NULL;
4731 fra.me.REG[0] = p0;
4732 fra.me.REG[1] = p1;
4733 fra.me.REG[2] = p2;
4734 /* ./parser//parser_prod.nit:863 */
4735 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0])!=NIT_NULL);
4736 if (UNTAG_Bool(REGB0)) {
4737 } else {
4738 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 863);
4739 }
4740 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0]);
4741 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4742 if (UNTAG_Bool(REGB0)) {
4743 } else {
4744 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4745 REGB0 = REGB1;
4746 }
4747 if (UNTAG_Bool(REGB0)) {
4748 /* ./parser//parser_prod.nit:864 */
4749 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4750 if (UNTAG_Bool(REGB0)) {
4751 } else {
4752 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4753 if (UNTAG_Bool(REGB1)) {
4754 REGB1 = TAG_Bool(false);
4755 REGB0 = REGB1;
4756 } else {
4757 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4758 REGB0 = REGB1;
4759 }
4760 }
4761 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4762 if (UNTAG_Bool(REGB0)) {
4763 /* ./parser//parser_prod.nit:865 */
4764 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4765 if (UNTAG_Bool(REGB0)) {
4766 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 865);
4767 }
4768 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4769 /* ./parser//parser_prod.nit:866 */
4770 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*/;
4771 if (UNTAG_Bool(REGB0)) {
4772 } else {
4773 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 866);
4774 }
4775 /* ./parser//parser_prod.nit:867 */
4776 ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0]) = fra.me.REG[2];
4777 } else {
4778 /* ./parser//parser_prod.nit:869 */
4779 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 869);
4780 }
4781 /* ./parser//parser_prod.nit:871 */
4782 goto label1;
4783 }
4784 /* ./parser//parser_prod.nit:873 */
4785 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]);
4786 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
4787 if (UNTAG_Bool(REGB0)) {
4788 } else {
4789 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4790 if (UNTAG_Bool(REGB1)) {
4791 REGB1 = TAG_Bool(false);
4792 REGB0 = REGB1;
4793 } else {
4794 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4795 REGB0 = REGB1;
4796 }
4797 }
4798 if (UNTAG_Bool(REGB0)) {
4799 /* ./parser//parser_prod.nit:874 */
4800 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4801 if (UNTAG_Bool(REGB0)) {
4802 } else {
4803 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4804 if (UNTAG_Bool(REGB1)) {
4805 REGB1 = TAG_Bool(false);
4806 REGB0 = REGB1;
4807 } else {
4808 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4809 REGB0 = REGB1;
4810 }
4811 }
4812 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4813 if (UNTAG_Bool(REGB0)) {
4814 /* ./parser//parser_prod.nit:875 */
4815 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4816 if (UNTAG_Bool(REGB0)) {
4817 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 875);
4818 }
4819 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4820 /* ./parser//parser_prod.nit:876 */
4821 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*/;
4822 if (UNTAG_Bool(REGB0)) {
4823 } else {
4824 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 876);
4825 }
4826 /* ./parser//parser_prod.nit:877 */
4827 ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]) = fra.me.REG[2];
4828 } else {
4829 /* ./parser//parser_prod.nit:879 */
4830 ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]) = NIT_NULL;
4831 }
4832 /* ./parser//parser_prod.nit:881 */
4833 goto label1;
4834 }
4835 label1: while(0);
4836 stack_frame_head = fra.me.prev;
4837 return;
4838 }
4839 void parser___parser_prod___AFormaldef___visit_all(val_t p0, val_t p1){
4840 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4841 val_t REGB0;
4842 val_t REGB1;
4843 val_t tmp;
4844 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4845 fra.me.file = LOCATE_parser___parser_prod;
4846 fra.me.line = 885;
4847 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___visit_all;
4848 fra.me.has_broke = 0;
4849 fra.me.REG_size = 4;
4850 fra.me.REG[0] = NIT_NULL;
4851 fra.me.REG[1] = NIT_NULL;
4852 fra.me.REG[2] = NIT_NULL;
4853 fra.me.REG[3] = NIT_NULL;
4854 fra.me.REG[0] = p0;
4855 fra.me.REG[1] = p1;
4856 /* ./parser//parser_prod.nit:885 */
4857 fra.me.REG[2] = fra.me.REG[0];
4858 /* ./parser//parser_prod.nit:887 */
4859 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[2])!=NIT_NULL);
4860 if (UNTAG_Bool(REGB0)) {
4861 } else {
4862 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 887);
4863 }
4864 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[2]);
4865 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4866 /* ./parser//parser_prod.nit:888 */
4867 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[2]);
4868 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4869 if (UNTAG_Bool(REGB0)) {
4870 } else {
4871 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4872 if (UNTAG_Bool(REGB1)) {
4873 REGB1 = TAG_Bool(false);
4874 REGB0 = REGB1;
4875 } else {
4876 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
4877 REGB0 = REGB1;
4878 }
4879 }
4880 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4881 if (UNTAG_Bool(REGB0)) {
4882 /* ./parser//parser_prod.nit:889 */
4883 fra.me.REG[2] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[2]);
4884 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*/;
4885 if (UNTAG_Bool(REGB0)) {
4886 } else {
4887 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 889);
4888 }
4889 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4890 }
4891 stack_frame_head = fra.me.prev;
4892 return;
4893 }
4894 void parser___parser_prod___ASuperclass___empty_init(val_t p0, int* init_table){
4895 int itpos35 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperclass].i;
4896 struct {struct stack_frame_t me;} fra;
4897 val_t tmp;
4898 if (init_table[itpos35]) return;
4899 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4900 fra.me.file = LOCATE_parser___parser_prod;
4901 fra.me.line = 894;
4902 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___empty_init;
4903 fra.me.has_broke = 0;
4904 fra.me.REG_size = 1;
4905 fra.me.REG[0] = NIT_NULL;
4906 fra.me.REG[0] = p0;
4907 stack_frame_head = fra.me.prev;
4908 init_table[itpos35] = 1;
4909 return;
4910 }
4911 void parser___parser_prod___ASuperclass___init_asuperclass(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
4912 int itpos36 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperclass].i;
4913 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
4914 val_t REGB0;
4915 val_t REGB1;
4916 val_t tmp;
4917 if (init_table[itpos36]) return;
4918 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4919 fra.me.file = LOCATE_parser___parser_prod;
4920 fra.me.line = 896;
4921 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___init_asuperclass;
4922 fra.me.has_broke = 0;
4923 fra.me.REG_size = 5;
4924 fra.me.REG[0] = NIT_NULL;
4925 fra.me.REG[1] = NIT_NULL;
4926 fra.me.REG[2] = NIT_NULL;
4927 fra.me.REG[3] = NIT_NULL;
4928 fra.me.REG[4] = NIT_NULL;
4929 fra.me.REG[0] = p0;
4930 fra.me.REG[1] = p1;
4931 fra.me.REG[2] = p2;
4932 fra.me.REG[3] = p3;
4933 /* ./parser//parser_prod.nit:896 */
4934 fra.me.REG[4] = fra.me.REG[0];
4935 /* ./parser//parser_prod.nit:902 */
4936 CALL_parser___parser_prod___ASuperclass___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
4937 /* ./parser//parser_prod.nit:903 */
4938 ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[4]) = fra.me.REG[1];
4939 /* ./parser//parser_prod.nit:904 */
4940 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4941 if (UNTAG_Bool(REGB0)) {
4942 } else {
4943 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4944 if (UNTAG_Bool(REGB1)) {
4945 REGB1 = TAG_Bool(false);
4946 REGB0 = REGB1;
4947 } else {
4948 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
4949 REGB0 = REGB1;
4950 }
4951 }
4952 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4953 if (UNTAG_Bool(REGB0)) {
4954 /* ./parser//parser_prod.nit:905 */
4955 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4956 if (UNTAG_Bool(REGB0)) {
4957 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 905);
4958 }
4959 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
4960 }
4961 /* ./parser//parser_prod.nit:907 */
4962 ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[4]) = fra.me.REG[2];
4963 /* ./parser//parser_prod.nit:908 */
4964 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4965 if (UNTAG_Bool(REGB0)) {
4966 } else {
4967 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4968 if (UNTAG_Bool(REGB1)) {
4969 REGB1 = TAG_Bool(false);
4970 REGB0 = REGB1;
4971 } else {
4972 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4973 REGB0 = REGB1;
4974 }
4975 }
4976 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4977 if (UNTAG_Bool(REGB0)) {
4978 /* ./parser//parser_prod.nit:909 */
4979 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4980 if (UNTAG_Bool(REGB0)) {
4981 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 909);
4982 }
4983 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
4984 }
4985 /* ./parser//parser_prod.nit:911 */
4986 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
4987 if (UNTAG_Bool(REGB0)) {
4988 } else {
4989 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 911);
4990 }
4991 ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[4]) = fra.me.REG[3];
4992 /* ./parser//parser_prod.nit:912 */
4993 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4994 if (UNTAG_Bool(REGB0)) {
4995 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 912);
4996 }
4997 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
4998 stack_frame_head = fra.me.prev;
4999 init_table[itpos36] = 1;
5000 return;
5001 }
5002 void parser___parser_prod___ASuperclass___replace_child(val_t p0, val_t p1, val_t p2){
5003 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5004 val_t REGB0;
5005 val_t REGB1;
5006 val_t tmp;
5007 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5008 fra.me.file = LOCATE_parser___parser_prod;
5009 fra.me.line = 915;
5010 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___replace_child;
5011 fra.me.has_broke = 0;
5012 fra.me.REG_size = 4;
5013 fra.me.REG[0] = NIT_NULL;
5014 fra.me.REG[1] = NIT_NULL;
5015 fra.me.REG[2] = NIT_NULL;
5016 fra.me.REG[3] = NIT_NULL;
5017 fra.me.REG[0] = p0;
5018 fra.me.REG[1] = p1;
5019 fra.me.REG[2] = p2;
5020 /* ./parser//parser_prod.nit:917 */
5021 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]);
5022 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5023 if (UNTAG_Bool(REGB0)) {
5024 } else {
5025 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5026 if (UNTAG_Bool(REGB1)) {
5027 REGB1 = TAG_Bool(false);
5028 REGB0 = REGB1;
5029 } else {
5030 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5031 REGB0 = REGB1;
5032 }
5033 }
5034 if (UNTAG_Bool(REGB0)) {
5035 /* ./parser//parser_prod.nit:918 */
5036 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5037 if (UNTAG_Bool(REGB0)) {
5038 } else {
5039 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5040 if (UNTAG_Bool(REGB1)) {
5041 REGB1 = TAG_Bool(false);
5042 REGB0 = REGB1;
5043 } else {
5044 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5045 REGB0 = REGB1;
5046 }
5047 }
5048 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5049 if (UNTAG_Bool(REGB0)) {
5050 /* ./parser//parser_prod.nit:919 */
5051 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5052 if (UNTAG_Bool(REGB0)) {
5053 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 919);
5054 }
5055 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5056 /* ./parser//parser_prod.nit:920 */
5057 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*/;
5058 if (UNTAG_Bool(REGB0)) {
5059 } else {
5060 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 920);
5061 }
5062 /* ./parser//parser_prod.nit:921 */
5063 ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]) = fra.me.REG[2];
5064 } else {
5065 /* ./parser//parser_prod.nit:923 */
5066 ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]) = NIT_NULL;
5067 }
5068 /* ./parser//parser_prod.nit:925 */
5069 goto label1;
5070 }
5071 /* ./parser//parser_prod.nit:927 */
5072 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]);
5073 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5074 if (UNTAG_Bool(REGB0)) {
5075 } else {
5076 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5077 if (UNTAG_Bool(REGB1)) {
5078 REGB1 = TAG_Bool(false);
5079 REGB0 = REGB1;
5080 } else {
5081 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5082 REGB0 = REGB1;
5083 }
5084 }
5085 if (UNTAG_Bool(REGB0)) {
5086 /* ./parser//parser_prod.nit:928 */
5087 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5088 if (UNTAG_Bool(REGB0)) {
5089 } else {
5090 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5091 if (UNTAG_Bool(REGB1)) {
5092 REGB1 = TAG_Bool(false);
5093 REGB0 = REGB1;
5094 } else {
5095 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5096 REGB0 = REGB1;
5097 }
5098 }
5099 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5100 if (UNTAG_Bool(REGB0)) {
5101 /* ./parser//parser_prod.nit:929 */
5102 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5103 if (UNTAG_Bool(REGB0)) {
5104 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 929);
5105 }
5106 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5107 /* ./parser//parser_prod.nit:930 */
5108 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*/;
5109 if (UNTAG_Bool(REGB0)) {
5110 } else {
5111 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 930);
5112 }
5113 /* ./parser//parser_prod.nit:931 */
5114 ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
5115 } else {
5116 /* ./parser//parser_prod.nit:933 */
5117 ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]) = NIT_NULL;
5118 }
5119 /* ./parser//parser_prod.nit:935 */
5120 goto label1;
5121 }
5122 /* ./parser//parser_prod.nit:937 */
5123 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0])!=NIT_NULL);
5124 if (UNTAG_Bool(REGB0)) {
5125 } else {
5126 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 937);
5127 }
5128 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0]);
5129 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
5130 if (UNTAG_Bool(REGB0)) {
5131 } else {
5132 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5133 REGB0 = REGB1;
5134 }
5135 if (UNTAG_Bool(REGB0)) {
5136 /* ./parser//parser_prod.nit:938 */
5137 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5138 if (UNTAG_Bool(REGB0)) {
5139 } else {
5140 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5141 if (UNTAG_Bool(REGB1)) {
5142 REGB1 = TAG_Bool(false);
5143 REGB0 = REGB1;
5144 } else {
5145 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5146 REGB0 = REGB1;
5147 }
5148 }
5149 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5150 if (UNTAG_Bool(REGB0)) {
5151 /* ./parser//parser_prod.nit:939 */
5152 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5153 if (UNTAG_Bool(REGB0)) {
5154 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 939);
5155 }
5156 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5157 /* ./parser//parser_prod.nit:940 */
5158 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*/;
5159 if (UNTAG_Bool(REGB0)) {
5160 } else {
5161 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 940);
5162 }
5163 /* ./parser//parser_prod.nit:941 */
5164 ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0]) = fra.me.REG[2];
5165 } else {
5166 /* ./parser//parser_prod.nit:943 */
5167 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 943);
5168 }
5169 /* ./parser//parser_prod.nit:945 */
5170 goto label1;
5171 }
5172 label1: while(0);
5173 stack_frame_head = fra.me.prev;
5174 return;
5175 }
5176 void parser___parser_prod___ASuperclass___visit_all(val_t p0, val_t p1){
5177 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5178 val_t REGB0;
5179 val_t REGB1;
5180 val_t tmp;
5181 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5182 fra.me.file = LOCATE_parser___parser_prod;
5183 fra.me.line = 949;
5184 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___visit_all;
5185 fra.me.has_broke = 0;
5186 fra.me.REG_size = 4;
5187 fra.me.REG[0] = NIT_NULL;
5188 fra.me.REG[1] = NIT_NULL;
5189 fra.me.REG[2] = NIT_NULL;
5190 fra.me.REG[3] = NIT_NULL;
5191 fra.me.REG[0] = p0;
5192 fra.me.REG[1] = p1;
5193 /* ./parser//parser_prod.nit:949 */
5194 fra.me.REG[2] = fra.me.REG[0];
5195 /* ./parser//parser_prod.nit:951 */
5196 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[2]);
5197 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5198 if (UNTAG_Bool(REGB0)) {
5199 } else {
5200 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5201 if (UNTAG_Bool(REGB1)) {
5202 REGB1 = TAG_Bool(false);
5203 REGB0 = REGB1;
5204 } else {
5205 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5206 REGB0 = REGB1;
5207 }
5208 }
5209 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5210 if (UNTAG_Bool(REGB0)) {
5211 /* ./parser//parser_prod.nit:952 */
5212 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[2]);
5213 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*/;
5214 if (UNTAG_Bool(REGB0)) {
5215 } else {
5216 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 952);
5217 }
5218 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5219 }
5220 /* ./parser//parser_prod.nit:954 */
5221 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[2]);
5222 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5223 if (UNTAG_Bool(REGB0)) {
5224 } else {
5225 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5226 if (UNTAG_Bool(REGB1)) {
5227 REGB1 = TAG_Bool(false);
5228 REGB0 = REGB1;
5229 } else {
5230 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5231 REGB0 = REGB1;
5232 }
5233 }
5234 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5235 if (UNTAG_Bool(REGB0)) {
5236 /* ./parser//parser_prod.nit:955 */
5237 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[2]);
5238 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*/;
5239 if (UNTAG_Bool(REGB0)) {
5240 } else {
5241 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 955);
5242 }
5243 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5244 }
5245 /* ./parser//parser_prod.nit:957 */
5246 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[2])!=NIT_NULL);
5247 if (UNTAG_Bool(REGB0)) {
5248 } else {
5249 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 957);
5250 }
5251 fra.me.REG[2] = ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[2]);
5252 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5253 stack_frame_head = fra.me.prev;
5254 return;
5255 }
5256 void parser___parser_prod___AAttrPropdef___empty_init(val_t p0, int* init_table){
5257 int itpos37 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrPropdef].i;
5258 struct {struct stack_frame_t me;} fra;
5259 val_t tmp;
5260 if (init_table[itpos37]) return;
5261 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5262 fra.me.file = LOCATE_parser___parser_prod;
5263 fra.me.line = 961;
5264 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___empty_init;
5265 fra.me.has_broke = 0;
5266 fra.me.REG_size = 1;
5267 fra.me.REG[0] = NIT_NULL;
5268 fra.me.REG[0] = p0;
5269 stack_frame_head = fra.me.prev;
5270 init_table[itpos37] = 1;
5271 return;
5272 }
5273 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){
5274 int itpos38 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrPropdef].i;
5275 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
5276 val_t REGB0;
5277 val_t REGB1;
5278 val_t tmp;
5279 if (init_table[itpos38]) return;
5280 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5281 fra.me.file = LOCATE_parser___parser_prod;
5282 fra.me.line = 963;
5283 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___init_aattrpropdef;
5284 fra.me.has_broke = 0;
5285 fra.me.REG_size = 12;
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[4] = NIT_NULL;
5291 fra.me.REG[5] = NIT_NULL;
5292 fra.me.REG[6] = NIT_NULL;
5293 fra.me.REG[7] = NIT_NULL;
5294 fra.me.REG[8] = NIT_NULL;
5295 fra.me.REG[9] = NIT_NULL;
5296 fra.me.REG[10] = NIT_NULL;
5297 fra.me.REG[11] = NIT_NULL;
5298 fra.me.REG[0] = p0;
5299 fra.me.REG[1] = p1;
5300 fra.me.REG[2] = p2;
5301 fra.me.REG[3] = p3;
5302 fra.me.REG[4] = p4;
5303 fra.me.REG[5] = p5;
5304 fra.me.REG[6] = p6;
5305 fra.me.REG[7] = p7;
5306 fra.me.REG[8] = p8;
5307 fra.me.REG[9] = p9;
5308 fra.me.REG[10] = p10;
5309 /* ./parser//parser_prod.nit:963 */
5310 fra.me.REG[11] = fra.me.REG[0];
5311 /* ./parser//parser_prod.nit:976 */
5312 CALL_parser___parser_prod___AAttrPropdef___empty_init(fra.me.REG[11])(fra.me.REG[11], init_table);
5313 /* ./parser//parser_prod.nit:977 */
5314 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[11]) = fra.me.REG[1];
5315 /* ./parser//parser_prod.nit:978 */
5316 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5317 if (UNTAG_Bool(REGB0)) {
5318 } else {
5319 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5320 if (UNTAG_Bool(REGB1)) {
5321 REGB1 = TAG_Bool(false);
5322 REGB0 = REGB1;
5323 } else {
5324 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
5325 REGB0 = REGB1;
5326 }
5327 }
5328 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5329 if (UNTAG_Bool(REGB0)) {
5330 /* ./parser//parser_prod.nit:979 */
5331 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5332 if (UNTAG_Bool(REGB0)) {
5333 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 979);
5334 }
5335 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[11]);
5336 }
5337 /* ./parser//parser_prod.nit:981 */
5338 ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[11]) = fra.me.REG[2];
5339 /* ./parser//parser_prod.nit:982 */
5340 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5341 if (UNTAG_Bool(REGB0)) {
5342 } else {
5343 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5344 if (UNTAG_Bool(REGB1)) {
5345 REGB1 = TAG_Bool(false);
5346 REGB0 = REGB1;
5347 } else {
5348 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5349 REGB0 = REGB1;
5350 }
5351 }
5352 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5353 if (UNTAG_Bool(REGB0)) {
5354 /* ./parser//parser_prod.nit:983 */
5355 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5356 if (UNTAG_Bool(REGB0)) {
5357 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 983);
5358 }
5359 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[11]);
5360 }
5361 /* ./parser//parser_prod.nit:985 */
5362 ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[11]) = fra.me.REG[3];
5363 /* ./parser//parser_prod.nit:986 */
5364 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5365 if (UNTAG_Bool(REGB0)) {
5366 } else {
5367 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5368 if (UNTAG_Bool(REGB1)) {
5369 REGB1 = TAG_Bool(false);
5370 REGB0 = REGB1;
5371 } else {
5372 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5373 REGB0 = REGB1;
5374 }
5375 }
5376 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5377 if (UNTAG_Bool(REGB0)) {
5378 /* ./parser//parser_prod.nit:987 */
5379 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5380 if (UNTAG_Bool(REGB0)) {
5381 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 987);
5382 }
5383 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[11]);
5384 }
5385 /* ./parser//parser_prod.nit:989 */
5386 ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[11]) = fra.me.REG[4];
5387 /* ./parser//parser_prod.nit:990 */
5388 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5389 if (UNTAG_Bool(REGB0)) {
5390 } else {
5391 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5392 if (UNTAG_Bool(REGB1)) {
5393 REGB1 = TAG_Bool(false);
5394 REGB0 = REGB1;
5395 } else {
5396 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5397 REGB0 = REGB1;
5398 }
5399 }
5400 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5401 if (UNTAG_Bool(REGB0)) {
5402 /* ./parser//parser_prod.nit:991 */
5403 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5404 if (UNTAG_Bool(REGB0)) {
5405 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 991);
5406 }
5407 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[11]);
5408 }
5409 /* ./parser//parser_prod.nit:993 */
5410 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
5411 if (UNTAG_Bool(REGB0)) {
5412 } else {
5413 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 993);
5414 }
5415 ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[11]) = fra.me.REG[5];
5416 /* ./parser//parser_prod.nit:994 */
5417 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5418 if (UNTAG_Bool(REGB0)) {
5419 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 994);
5420 }
5421 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[11]);
5422 /* ./parser//parser_prod.nit:995 */
5423 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
5424 if (UNTAG_Bool(REGB0)) {
5425 } else {
5426 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 995);
5427 }
5428 ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[11]) = fra.me.REG[6];
5429 /* ./parser//parser_prod.nit:996 */
5430 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5431 if (UNTAG_Bool(REGB0)) {
5432 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 996);
5433 }
5434 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[11]);
5435 /* ./parser//parser_prod.nit:997 */
5436 ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[11]) = fra.me.REG[7];
5437 /* ./parser//parser_prod.nit:998 */
5438 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5439 if (UNTAG_Bool(REGB0)) {
5440 } else {
5441 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5442 if (UNTAG_Bool(REGB1)) {
5443 REGB1 = TAG_Bool(false);
5444 REGB0 = REGB1;
5445 } else {
5446 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
5447 REGB0 = REGB1;
5448 }
5449 }
5450 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5451 if (UNTAG_Bool(REGB0)) {
5452 /* ./parser//parser_prod.nit:999 */
5453 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5454 if (UNTAG_Bool(REGB0)) {
5455 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 999);
5456 }
5457 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
5458 }
5459 /* ./parser//parser_prod.nit:1001 */
5460 ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[11]) = fra.me.REG[8];
5461 /* ./parser//parser_prod.nit:1002 */
5462 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
5463 if (UNTAG_Bool(REGB0)) {
5464 } else {
5465 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
5466 if (UNTAG_Bool(REGB1)) {
5467 REGB1 = TAG_Bool(false);
5468 REGB0 = REGB1;
5469 } else {
5470 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
5471 REGB0 = REGB1;
5472 }
5473 }
5474 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5475 if (UNTAG_Bool(REGB0)) {
5476 /* ./parser//parser_prod.nit:1003 */
5477 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
5478 if (UNTAG_Bool(REGB0)) {
5479 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1003);
5480 }
5481 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[11]);
5482 }
5483 /* ./parser//parser_prod.nit:1005 */
5484 ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[11]) = fra.me.REG[9];
5485 /* ./parser//parser_prod.nit:1006 */
5486 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5487 if (UNTAG_Bool(REGB0)) {
5488 } else {
5489 REGB1 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5490 if (UNTAG_Bool(REGB1)) {
5491 REGB1 = TAG_Bool(false);
5492 REGB0 = REGB1;
5493 } else {
5494 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL);
5495 REGB0 = REGB1;
5496 }
5497 }
5498 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5499 if (UNTAG_Bool(REGB0)) {
5500 /* ./parser//parser_prod.nit:1007 */
5501 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5502 if (UNTAG_Bool(REGB0)) {
5503 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1007);
5504 }
5505 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[11]);
5506 }
5507 /* ./parser//parser_prod.nit:1009 */
5508 ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[11]) = fra.me.REG[10];
5509 /* ./parser//parser_prod.nit:1010 */
5510 REGB0 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5511 if (UNTAG_Bool(REGB0)) {
5512 } else {
5513 REGB1 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5514 if (UNTAG_Bool(REGB1)) {
5515 REGB1 = TAG_Bool(false);
5516 REGB0 = REGB1;
5517 } else {
5518 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
5519 REGB0 = REGB1;
5520 }
5521 }
5522 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5523 if (UNTAG_Bool(REGB0)) {
5524 /* ./parser//parser_prod.nit:1011 */
5525 REGB0 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5526 if (UNTAG_Bool(REGB0)) {
5527 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1011);
5528 }
5529 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
5530 }
5531 stack_frame_head = fra.me.prev;
5532 init_table[itpos38] = 1;
5533 return;
5534 }
5535 void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val_t p2){
5536 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5537 val_t REGB0;
5538 val_t REGB1;
5539 val_t tmp;
5540 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5541 fra.me.file = LOCATE_parser___parser_prod;
5542 fra.me.line = 1015;
5543 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___replace_child;
5544 fra.me.has_broke = 0;
5545 fra.me.REG_size = 4;
5546 fra.me.REG[0] = NIT_NULL;
5547 fra.me.REG[1] = NIT_NULL;
5548 fra.me.REG[2] = NIT_NULL;
5549 fra.me.REG[3] = NIT_NULL;
5550 fra.me.REG[0] = p0;
5551 fra.me.REG[1] = p1;
5552 fra.me.REG[2] = p2;
5553 /* ./parser//parser_prod.nit:1017 */
5554 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
5555 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5556 if (UNTAG_Bool(REGB0)) {
5557 } else {
5558 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5559 if (UNTAG_Bool(REGB1)) {
5560 REGB1 = TAG_Bool(false);
5561 REGB0 = REGB1;
5562 } else {
5563 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5564 REGB0 = REGB1;
5565 }
5566 }
5567 if (UNTAG_Bool(REGB0)) {
5568 /* ./parser//parser_prod.nit:1018 */
5569 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5570 if (UNTAG_Bool(REGB0)) {
5571 } else {
5572 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5573 if (UNTAG_Bool(REGB1)) {
5574 REGB1 = TAG_Bool(false);
5575 REGB0 = REGB1;
5576 } else {
5577 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5578 REGB0 = REGB1;
5579 }
5580 }
5581 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5582 if (UNTAG_Bool(REGB0)) {
5583 /* ./parser//parser_prod.nit:1019 */
5584 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5585 if (UNTAG_Bool(REGB0)) {
5586 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1019);
5587 }
5588 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5589 /* ./parser//parser_prod.nit:1020 */
5590 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*/;
5591 if (UNTAG_Bool(REGB0)) {
5592 } else {
5593 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1020);
5594 }
5595 /* ./parser//parser_prod.nit:1021 */
5596 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
5597 } else {
5598 /* ./parser//parser_prod.nit:1023 */
5599 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
5600 }
5601 /* ./parser//parser_prod.nit:1025 */
5602 goto label1;
5603 }
5604 /* ./parser//parser_prod.nit:1027 */
5605 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]);
5606 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5607 if (UNTAG_Bool(REGB0)) {
5608 } else {
5609 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5610 if (UNTAG_Bool(REGB1)) {
5611 REGB1 = TAG_Bool(false);
5612 REGB0 = REGB1;
5613 } else {
5614 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5615 REGB0 = REGB1;
5616 }
5617 }
5618 if (UNTAG_Bool(REGB0)) {
5619 /* ./parser//parser_prod.nit:1028 */
5620 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5621 if (UNTAG_Bool(REGB0)) {
5622 } else {
5623 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5624 if (UNTAG_Bool(REGB1)) {
5625 REGB1 = TAG_Bool(false);
5626 REGB0 = REGB1;
5627 } else {
5628 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5629 REGB0 = REGB1;
5630 }
5631 }
5632 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5633 if (UNTAG_Bool(REGB0)) {
5634 /* ./parser//parser_prod.nit:1029 */
5635 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5636 if (UNTAG_Bool(REGB0)) {
5637 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1029);
5638 }
5639 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5640 /* ./parser//parser_prod.nit:1030 */
5641 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*/;
5642 if (UNTAG_Bool(REGB0)) {
5643 } else {
5644 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1030);
5645 }
5646 /* ./parser//parser_prod.nit:1031 */
5647 ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]) = fra.me.REG[2];
5648 } else {
5649 /* ./parser//parser_prod.nit:1033 */
5650 ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]) = NIT_NULL;
5651 }
5652 /* ./parser//parser_prod.nit:1035 */
5653 goto label1;
5654 }
5655 /* ./parser//parser_prod.nit:1037 */
5656 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(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:1038 */
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:1039 */
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, 1039);
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:1040 */
5692 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*/;
5693 if (UNTAG_Bool(REGB0)) {
5694 } else {
5695 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1040);
5696 }
5697 /* ./parser//parser_prod.nit:1041 */
5698 ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]) = fra.me.REG[2];
5699 } else {
5700 /* ./parser//parser_prod.nit:1043 */
5701 ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]) = NIT_NULL;
5702 }
5703 /* ./parser//parser_prod.nit:1045 */
5704 goto label1;
5705 }
5706 /* ./parser//parser_prod.nit:1047 */
5707 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(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:1048 */
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:1049 */
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, 1049);
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:1050 */
5743 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*/;
5744 if (UNTAG_Bool(REGB0)) {
5745 } else {
5746 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1050);
5747 }
5748 /* ./parser//parser_prod.nit:1051 */
5749 ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
5750 } else {
5751 /* ./parser//parser_prod.nit:1053 */
5752 ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
5753 }
5754 /* ./parser//parser_prod.nit:1055 */
5755 goto label1;
5756 }
5757 /* ./parser//parser_prod.nit:1057 */
5758 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
5759 if (UNTAG_Bool(REGB0)) {
5760 } else {
5761 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 1057);
5762 }
5763 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0]);
5764 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
5765 if (UNTAG_Bool(REGB0)) {
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 if (UNTAG_Bool(REGB0)) {
5771 /* ./parser//parser_prod.nit:1058 */
5772 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5773 if (UNTAG_Bool(REGB0)) {
5774 } else {
5775 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5776 if (UNTAG_Bool(REGB1)) {
5777 REGB1 = TAG_Bool(false);
5778 REGB0 = REGB1;
5779 } else {
5780 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5781 REGB0 = REGB1;
5782 }
5783 }
5784 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5785 if (UNTAG_Bool(REGB0)) {
5786 /* ./parser//parser_prod.nit:1059 */
5787 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5788 if (UNTAG_Bool(REGB0)) {
5789 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1059);
5790 }
5791 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5792 /* ./parser//parser_prod.nit:1060 */
5793 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*/;
5794 if (UNTAG_Bool(REGB0)) {
5795 } else {
5796 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1060);
5797 }
5798 /* ./parser//parser_prod.nit:1061 */
5799 ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
5800 } else {
5801 /* ./parser//parser_prod.nit:1063 */
5802 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1063);
5803 }
5804 /* ./parser//parser_prod.nit:1065 */
5805 goto label1;
5806 }
5807 /* ./parser//parser_prod.nit:1067 */
5808 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0])!=NIT_NULL);
5809 if (UNTAG_Bool(REGB0)) {
5810 } else {
5811 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 1067);
5812 }
5813 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0]);
5814 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
5815 if (UNTAG_Bool(REGB0)) {
5816 } else {
5817 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5818 REGB0 = REGB1;
5819 }
5820 if (UNTAG_Bool(REGB0)) {
5821 /* ./parser//parser_prod.nit:1068 */
5822 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5823 if (UNTAG_Bool(REGB0)) {
5824 } else {
5825 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5826 if (UNTAG_Bool(REGB1)) {
5827 REGB1 = TAG_Bool(false);
5828 REGB0 = REGB1;
5829 } else {
5830 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5831 REGB0 = REGB1;
5832 }
5833 }
5834 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5835 if (UNTAG_Bool(REGB0)) {
5836 /* ./parser//parser_prod.nit:1069 */
5837 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5838 if (UNTAG_Bool(REGB0)) {
5839 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1069);
5840 }
5841 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5842 /* ./parser//parser_prod.nit:1070 */
5843 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*/;
5844 if (UNTAG_Bool(REGB0)) {
5845 } else {
5846 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1070);
5847 }
5848 /* ./parser//parser_prod.nit:1071 */
5849 ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0]) = fra.me.REG[2];
5850 } else {
5851 /* ./parser//parser_prod.nit:1073 */
5852 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1073);
5853 }
5854 /* ./parser//parser_prod.nit:1075 */
5855 goto label1;
5856 }
5857 /* ./parser//parser_prod.nit:1077 */
5858 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]);
5859 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5860 if (UNTAG_Bool(REGB0)) {
5861 } else {
5862 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5863 if (UNTAG_Bool(REGB1)) {
5864 REGB1 = TAG_Bool(false);
5865 REGB0 = REGB1;
5866 } else {
5867 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5868 REGB0 = REGB1;
5869 }
5870 }
5871 if (UNTAG_Bool(REGB0)) {
5872 /* ./parser//parser_prod.nit:1078 */
5873 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5874 if (UNTAG_Bool(REGB0)) {
5875 } else {
5876 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5877 if (UNTAG_Bool(REGB1)) {
5878 REGB1 = TAG_Bool(false);
5879 REGB0 = REGB1;
5880 } else {
5881 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5882 REGB0 = REGB1;
5883 }
5884 }
5885 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5886 if (UNTAG_Bool(REGB0)) {
5887 /* ./parser//parser_prod.nit:1079 */
5888 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5889 if (UNTAG_Bool(REGB0)) {
5890 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1079);
5891 }
5892 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5893 /* ./parser//parser_prod.nit:1080 */
5894 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*/;
5895 if (UNTAG_Bool(REGB0)) {
5896 } else {
5897 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1080);
5898 }
5899 /* ./parser//parser_prod.nit:1081 */
5900 ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
5901 } else {
5902 /* ./parser//parser_prod.nit:1083 */
5903 ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]) = NIT_NULL;
5904 }
5905 /* ./parser//parser_prod.nit:1085 */
5906 goto label1;
5907 }
5908 /* ./parser//parser_prod.nit:1087 */
5909 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]);
5910 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5911 if (UNTAG_Bool(REGB0)) {
5912 } else {
5913 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5914 if (UNTAG_Bool(REGB1)) {
5915 REGB1 = TAG_Bool(false);
5916 REGB0 = REGB1;
5917 } else {
5918 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5919 REGB0 = REGB1;
5920 }
5921 }
5922 if (UNTAG_Bool(REGB0)) {
5923 /* ./parser//parser_prod.nit:1088 */
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:1089 */
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, 1089);
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:1090 */
5945 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*/;
5946 if (UNTAG_Bool(REGB0)) {
5947 } else {
5948 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1090);
5949 }
5950 /* ./parser//parser_prod.nit:1091 */
5951 ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]) = fra.me.REG[2];
5952 } else {
5953 /* ./parser//parser_prod.nit:1093 */
5954 ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]) = NIT_NULL;
5955 }
5956 /* ./parser//parser_prod.nit:1095 */
5957 goto label1;
5958 }
5959 /* ./parser//parser_prod.nit:1097 */
5960 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(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:1098 */
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:1099 */
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, 1099);
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:1100 */
5996 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*/;
5997 if (UNTAG_Bool(REGB0)) {
5998 } else {
5999 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1100);
6000 }
6001 /* ./parser//parser_prod.nit:1101 */
6002 ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]) = fra.me.REG[2];
6003 } else {
6004 /* ./parser//parser_prod.nit:1103 */
6005 ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]) = NIT_NULL;
6006 }
6007 /* ./parser//parser_prod.nit:1105 */
6008 goto label1;
6009 }
6010 /* ./parser//parser_prod.nit:1107 */
6011 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(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:1108 */
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:1109 */
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, 1109);
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:1110 */
6047 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
6048 if (UNTAG_Bool(REGB0)) {
6049 } else {
6050 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1110);
6051 }
6052 /* ./parser//parser_prod.nit:1111 */
6053 ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]) = fra.me.REG[2];
6054 } else {
6055 /* ./parser//parser_prod.nit:1113 */
6056 ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]) = NIT_NULL;
6057 }
6058 /* ./parser//parser_prod.nit:1115 */
6059 goto label1;
6060 }
6061 label1: while(0);
6062 stack_frame_head = fra.me.prev;
6063 return;
6064 }
6065 void parser___parser_prod___AAttrPropdef___visit_all(val_t p0, val_t p1){
6066 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6067 val_t REGB0;
6068 val_t REGB1;
6069 val_t tmp;
6070 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6071 fra.me.file = LOCATE_parser___parser_prod;
6072 fra.me.line = 1119;
6073 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___visit_all;
6074 fra.me.has_broke = 0;
6075 fra.me.REG_size = 4;
6076 fra.me.REG[0] = NIT_NULL;
6077 fra.me.REG[1] = NIT_NULL;
6078 fra.me.REG[2] = NIT_NULL;
6079 fra.me.REG[3] = NIT_NULL;
6080 fra.me.REG[0] = p0;
6081 fra.me.REG[1] = p1;
6082 /* ./parser//parser_prod.nit:1119 */
6083 fra.me.REG[2] = fra.me.REG[0];
6084 /* ./parser//parser_prod.nit:1121 */
6085 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
6086 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6087 if (UNTAG_Bool(REGB0)) {
6088 } else {
6089 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6090 if (UNTAG_Bool(REGB1)) {
6091 REGB1 = TAG_Bool(false);
6092 REGB0 = REGB1;
6093 } else {
6094 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6095 REGB0 = REGB1;
6096 }
6097 }
6098 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6099 if (UNTAG_Bool(REGB0)) {
6100 /* ./parser//parser_prod.nit:1122 */
6101 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
6102 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*/;
6103 if (UNTAG_Bool(REGB0)) {
6104 } else {
6105 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1122);
6106 }
6107 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6108 }
6109 /* ./parser//parser_prod.nit:1124 */
6110 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[2]);
6111 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6112 if (UNTAG_Bool(REGB0)) {
6113 } else {
6114 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6115 if (UNTAG_Bool(REGB1)) {
6116 REGB1 = TAG_Bool(false);
6117 REGB0 = REGB1;
6118 } else {
6119 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6120 REGB0 = REGB1;
6121 }
6122 }
6123 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6124 if (UNTAG_Bool(REGB0)) {
6125 /* ./parser//parser_prod.nit:1125 */
6126 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[2]);
6127 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*/;
6128 if (UNTAG_Bool(REGB0)) {
6129 } else {
6130 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1125);
6131 }
6132 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6133 }
6134 /* ./parser//parser_prod.nit:1127 */
6135 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[2]);
6136 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6137 if (UNTAG_Bool(REGB0)) {
6138 } else {
6139 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6140 if (UNTAG_Bool(REGB1)) {
6141 REGB1 = TAG_Bool(false);
6142 REGB0 = REGB1;
6143 } else {
6144 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6145 REGB0 = REGB1;
6146 }
6147 }
6148 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6149 if (UNTAG_Bool(REGB0)) {
6150 /* ./parser//parser_prod.nit:1128 */
6151 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[2]);
6152 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*/;
6153 if (UNTAG_Bool(REGB0)) {
6154 } else {
6155 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1128);
6156 }
6157 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6158 }
6159 /* ./parser//parser_prod.nit:1130 */
6160 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[2]);
6161 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6162 if (UNTAG_Bool(REGB0)) {
6163 } else {
6164 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6165 if (UNTAG_Bool(REGB1)) {
6166 REGB1 = TAG_Bool(false);
6167 REGB0 = REGB1;
6168 } else {
6169 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6170 REGB0 = REGB1;
6171 }
6172 }
6173 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6174 if (UNTAG_Bool(REGB0)) {
6175 /* ./parser//parser_prod.nit:1131 */
6176 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[2]);
6177 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*/;
6178 if (UNTAG_Bool(REGB0)) {
6179 } else {
6180 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1131);
6181 }
6182 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6183 }
6184 /* ./parser//parser_prod.nit:1133 */
6185 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[2])!=NIT_NULL);
6186 if (UNTAG_Bool(REGB0)) {
6187 } else {
6188 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 1133);
6189 }
6190 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[2]);
6191 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6192 /* ./parser//parser_prod.nit:1134 */
6193 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[2])!=NIT_NULL);
6194 if (UNTAG_Bool(REGB0)) {
6195 } else {
6196 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 1134);
6197 }
6198 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[2]);
6199 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6200 /* ./parser//parser_prod.nit:1135 */
6201 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[2]);
6202 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6203 if (UNTAG_Bool(REGB0)) {
6204 } else {
6205 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6206 if (UNTAG_Bool(REGB1)) {
6207 REGB1 = TAG_Bool(false);
6208 REGB0 = REGB1;
6209 } else {
6210 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6211 REGB0 = REGB1;
6212 }
6213 }
6214 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6215 if (UNTAG_Bool(REGB0)) {
6216 /* ./parser//parser_prod.nit:1136 */
6217 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[2]);
6218 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*/;
6219 if (UNTAG_Bool(REGB0)) {
6220 } else {
6221 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1136);
6222 }
6223 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6224 }
6225 /* ./parser//parser_prod.nit:1138 */
6226 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[2]);
6227 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6228 if (UNTAG_Bool(REGB0)) {
6229 } else {
6230 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6231 if (UNTAG_Bool(REGB1)) {
6232 REGB1 = TAG_Bool(false);
6233 REGB0 = REGB1;
6234 } else {
6235 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6236 REGB0 = REGB1;
6237 }
6238 }
6239 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6240 if (UNTAG_Bool(REGB0)) {
6241 /* ./parser//parser_prod.nit:1139 */
6242 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[2]);
6243 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*/;
6244 if (UNTAG_Bool(REGB0)) {
6245 } else {
6246 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1139);
6247 }
6248 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6249 }
6250 /* ./parser//parser_prod.nit:1141 */
6251 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[2]);
6252 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6253 if (UNTAG_Bool(REGB0)) {
6254 } else {
6255 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6256 if (UNTAG_Bool(REGB1)) {
6257 REGB1 = TAG_Bool(false);
6258 REGB0 = REGB1;
6259 } else {
6260 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6261 REGB0 = REGB1;
6262 }
6263 }
6264 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6265 if (UNTAG_Bool(REGB0)) {
6266 /* ./parser//parser_prod.nit:1142 */
6267 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[2]);
6268 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*/;
6269 if (UNTAG_Bool(REGB0)) {
6270 } else {
6271 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1142);
6272 }
6273 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6274 }
6275 /* ./parser//parser_prod.nit:1144 */
6276 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[2]);
6277 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6278 if (UNTAG_Bool(REGB0)) {
6279 } else {
6280 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6281 if (UNTAG_Bool(REGB1)) {
6282 REGB1 = TAG_Bool(false);
6283 REGB0 = REGB1;
6284 } else {
6285 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6286 REGB0 = REGB1;
6287 }
6288 }
6289 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6290 if (UNTAG_Bool(REGB0)) {
6291 /* ./parser//parser_prod.nit:1145 */
6292 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[2]);
6293 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
6294 if (UNTAG_Bool(REGB0)) {
6295 } else {
6296 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1145);
6297 }
6298 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
6299 }
6300 stack_frame_head = fra.me.prev;
6301 return;
6302 }
6303 void parser___parser_prod___AMethPropdef___empty_init(val_t p0, int* init_table){
6304 int itpos39 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMethPropdef].i;
6305 struct {struct stack_frame_t me;} fra;
6306 val_t tmp;
6307 if (init_table[itpos39]) return;
6308 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6309 fra.me.file = LOCATE_parser___parser_prod;
6310 fra.me.line = 1150;
6311 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___empty_init;
6312 fra.me.has_broke = 0;
6313 fra.me.REG_size = 1;
6314 fra.me.REG[0] = NIT_NULL;
6315 fra.me.REG[0] = p0;
6316 stack_frame_head = fra.me.prev;
6317 init_table[itpos39] = 1;
6318 return;
6319 }
6320 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){
6321 int itpos40 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMethPropdef].i;
6322 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
6323 val_t REGB0;
6324 val_t REGB1;
6325 val_t tmp;
6326 if (init_table[itpos40]) return;
6327 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6328 fra.me.file = LOCATE_parser___parser_prod;
6329 fra.me.line = 1152;
6330 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___init_amethpropdef;
6331 fra.me.has_broke = 0;
6332 fra.me.REG_size = 7;
6333 fra.me.REG[0] = NIT_NULL;
6334 fra.me.REG[1] = NIT_NULL;
6335 fra.me.REG[2] = NIT_NULL;
6336 fra.me.REG[3] = NIT_NULL;
6337 fra.me.REG[4] = NIT_NULL;
6338 fra.me.REG[5] = NIT_NULL;
6339 fra.me.REG[6] = NIT_NULL;
6340 fra.me.REG[0] = p0;
6341 fra.me.REG[1] = p1;
6342 fra.me.REG[2] = p2;
6343 fra.me.REG[3] = p3;
6344 fra.me.REG[4] = p4;
6345 fra.me.REG[5] = p5;
6346 /* ./parser//parser_prod.nit:1152 */
6347 fra.me.REG[6] = fra.me.REG[0];
6348 /* ./parser//parser_prod.nit:1160 */
6349 CALL_parser___parser_prod___AMethPropdef___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
6350 /* ./parser//parser_prod.nit:1161 */
6351 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[6]) = fra.me.REG[1];
6352 /* ./parser//parser_prod.nit:1162 */
6353 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6354 if (UNTAG_Bool(REGB0)) {
6355 } else {
6356 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6357 if (UNTAG_Bool(REGB1)) {
6358 REGB1 = TAG_Bool(false);
6359 REGB0 = REGB1;
6360 } else {
6361 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6362 REGB0 = REGB1;
6363 }
6364 }
6365 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6366 if (UNTAG_Bool(REGB0)) {
6367 /* ./parser//parser_prod.nit:1163 */
6368 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6369 if (UNTAG_Bool(REGB0)) {
6370 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1163);
6371 }
6372 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
6373 }
6374 /* ./parser//parser_prod.nit:1165 */
6375 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[6]) = fra.me.REG[2];
6376 /* ./parser//parser_prod.nit:1166 */
6377 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6378 if (UNTAG_Bool(REGB0)) {
6379 } else {
6380 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6381 if (UNTAG_Bool(REGB1)) {
6382 REGB1 = TAG_Bool(false);
6383 REGB0 = REGB1;
6384 } else {
6385 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6386 REGB0 = REGB1;
6387 }
6388 }
6389 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6390 if (UNTAG_Bool(REGB0)) {
6391 /* ./parser//parser_prod.nit:1167 */
6392 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6393 if (UNTAG_Bool(REGB0)) {
6394 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1167);
6395 }
6396 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
6397 }
6398 /* ./parser//parser_prod.nit:1169 */
6399 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
6400 if (UNTAG_Bool(REGB0)) {
6401 } else {
6402 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1169);
6403 }
6404 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[6]) = fra.me.REG[3];
6405 /* ./parser//parser_prod.nit:1170 */
6406 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6407 if (UNTAG_Bool(REGB0)) {
6408 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1170);
6409 }
6410 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6411 /* ./parser//parser_prod.nit:1171 */
6412 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
6413 if (UNTAG_Bool(REGB0)) {
6414 } else {
6415 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1171);
6416 }
6417 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[6]) = fra.me.REG[4];
6418 /* ./parser//parser_prod.nit:1172 */
6419 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6420 if (UNTAG_Bool(REGB0)) {
6421 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1172);
6422 }
6423 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
6424 /* ./parser//parser_prod.nit:1173 */
6425 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
6426 if (UNTAG_Bool(REGB0)) {
6427 } else {
6428 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1173);
6429 }
6430 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[6]) = fra.me.REG[5];
6431 /* ./parser//parser_prod.nit:1174 */
6432 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6433 if (UNTAG_Bool(REGB0)) {
6434 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1174);
6435 }
6436 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
6437 stack_frame_head = fra.me.prev;
6438 init_table[itpos40] = 1;
6439 return;
6440 }
6441 void parser___parser_prod___AMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
6442 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6443 val_t REGB0;
6444 val_t REGB1;
6445 val_t tmp;
6446 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6447 fra.me.file = LOCATE_parser___parser_prod;
6448 fra.me.line = 1177;
6449 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___replace_child;
6450 fra.me.has_broke = 0;
6451 fra.me.REG_size = 4;
6452 fra.me.REG[0] = NIT_NULL;
6453 fra.me.REG[1] = NIT_NULL;
6454 fra.me.REG[2] = NIT_NULL;
6455 fra.me.REG[3] = NIT_NULL;
6456 fra.me.REG[0] = p0;
6457 fra.me.REG[1] = p1;
6458 fra.me.REG[2] = p2;
6459 /* ./parser//parser_prod.nit:1179 */
6460 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
6461 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6462 if (UNTAG_Bool(REGB0)) {
6463 } else {
6464 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6465 if (UNTAG_Bool(REGB1)) {
6466 REGB1 = TAG_Bool(false);
6467 REGB0 = REGB1;
6468 } else {
6469 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6470 REGB0 = REGB1;
6471 }
6472 }
6473 if (UNTAG_Bool(REGB0)) {
6474 /* ./parser//parser_prod.nit:1180 */
6475 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6476 if (UNTAG_Bool(REGB0)) {
6477 } else {
6478 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6479 if (UNTAG_Bool(REGB1)) {
6480 REGB1 = TAG_Bool(false);
6481 REGB0 = REGB1;
6482 } else {
6483 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6484 REGB0 = REGB1;
6485 }
6486 }
6487 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6488 if (UNTAG_Bool(REGB0)) {
6489 /* ./parser//parser_prod.nit:1181 */
6490 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6491 if (UNTAG_Bool(REGB0)) {
6492 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1181);
6493 }
6494 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6495 /* ./parser//parser_prod.nit:1182 */
6496 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*/;
6497 if (UNTAG_Bool(REGB0)) {
6498 } else {
6499 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1182);
6500 }
6501 /* ./parser//parser_prod.nit:1183 */
6502 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
6503 } else {
6504 /* ./parser//parser_prod.nit:1185 */
6505 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
6506 }
6507 /* ./parser//parser_prod.nit:1187 */
6508 goto label1;
6509 }
6510 /* ./parser//parser_prod.nit:1189 */
6511 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
6512 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6513 if (UNTAG_Bool(REGB0)) {
6514 } else {
6515 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6516 if (UNTAG_Bool(REGB1)) {
6517 REGB1 = TAG_Bool(false);
6518 REGB0 = REGB1;
6519 } else {
6520 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6521 REGB0 = REGB1;
6522 }
6523 }
6524 if (UNTAG_Bool(REGB0)) {
6525 /* ./parser//parser_prod.nit:1190 */
6526 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6527 if (UNTAG_Bool(REGB0)) {
6528 } else {
6529 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6530 if (UNTAG_Bool(REGB1)) {
6531 REGB1 = TAG_Bool(false);
6532 REGB0 = REGB1;
6533 } else {
6534 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6535 REGB0 = REGB1;
6536 }
6537 }
6538 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6539 if (UNTAG_Bool(REGB0)) {
6540 /* ./parser//parser_prod.nit:1191 */
6541 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6542 if (UNTAG_Bool(REGB0)) {
6543 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1191);
6544 }
6545 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6546 /* ./parser//parser_prod.nit:1192 */
6547 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*/;
6548 if (UNTAG_Bool(REGB0)) {
6549 } else {
6550 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1192);
6551 }
6552 /* ./parser//parser_prod.nit:1193 */
6553 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
6554 } else {
6555 /* ./parser//parser_prod.nit:1195 */
6556 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
6557 }
6558 /* ./parser//parser_prod.nit:1197 */
6559 goto label1;
6560 }
6561 /* ./parser//parser_prod.nit:1199 */
6562 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
6563 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6564 if (UNTAG_Bool(REGB0)) {
6565 } else {
6566 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6567 if (UNTAG_Bool(REGB1)) {
6568 REGB1 = TAG_Bool(false);
6569 REGB0 = REGB1;
6570 } else {
6571 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6572 REGB0 = REGB1;
6573 }
6574 }
6575 if (UNTAG_Bool(REGB0)) {
6576 /* ./parser//parser_prod.nit:1200 */
6577 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6578 if (UNTAG_Bool(REGB0)) {
6579 } else {
6580 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6581 if (UNTAG_Bool(REGB1)) {
6582 REGB1 = TAG_Bool(false);
6583 REGB0 = REGB1;
6584 } else {
6585 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6586 REGB0 = REGB1;
6587 }
6588 }
6589 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6590 if (UNTAG_Bool(REGB0)) {
6591 /* ./parser//parser_prod.nit:1201 */
6592 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6593 if (UNTAG_Bool(REGB0)) {
6594 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1201);
6595 }
6596 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6597 /* ./parser//parser_prod.nit:1202 */
6598 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*/;
6599 if (UNTAG_Bool(REGB0)) {
6600 } else {
6601 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1202);
6602 }
6603 /* ./parser//parser_prod.nit:1203 */
6604 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
6605 } else {
6606 /* ./parser//parser_prod.nit:1205 */
6607 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1205);
6608 }
6609 /* ./parser//parser_prod.nit:1207 */
6610 goto label1;
6611 }
6612 /* ./parser//parser_prod.nit:1209 */
6613 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
6614 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6615 if (UNTAG_Bool(REGB0)) {
6616 } else {
6617 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6618 if (UNTAG_Bool(REGB1)) {
6619 REGB1 = TAG_Bool(false);
6620 REGB0 = REGB1;
6621 } else {
6622 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6623 REGB0 = REGB1;
6624 }
6625 }
6626 if (UNTAG_Bool(REGB0)) {
6627 /* ./parser//parser_prod.nit:1210 */
6628 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6629 if (UNTAG_Bool(REGB0)) {
6630 } else {
6631 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6632 if (UNTAG_Bool(REGB1)) {
6633 REGB1 = TAG_Bool(false);
6634 REGB0 = REGB1;
6635 } else {
6636 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6637 REGB0 = REGB1;
6638 }
6639 }
6640 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6641 if (UNTAG_Bool(REGB0)) {
6642 /* ./parser//parser_prod.nit:1211 */
6643 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6644 if (UNTAG_Bool(REGB0)) {
6645 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1211);
6646 }
6647 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6648 /* ./parser//parser_prod.nit:1212 */
6649 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*/;
6650 if (UNTAG_Bool(REGB0)) {
6651 } else {
6652 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1212);
6653 }
6654 /* ./parser//parser_prod.nit:1213 */
6655 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
6656 } else {
6657 /* ./parser//parser_prod.nit:1215 */
6658 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1215);
6659 }
6660 /* ./parser//parser_prod.nit:1217 */
6661 goto label1;
6662 }
6663 /* ./parser//parser_prod.nit:1219 */
6664 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
6665 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6666 if (UNTAG_Bool(REGB0)) {
6667 } else {
6668 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6669 if (UNTAG_Bool(REGB1)) {
6670 REGB1 = TAG_Bool(false);
6671 REGB0 = REGB1;
6672 } else {
6673 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6674 REGB0 = REGB1;
6675 }
6676 }
6677 if (UNTAG_Bool(REGB0)) {
6678 /* ./parser//parser_prod.nit:1220 */
6679 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6680 if (UNTAG_Bool(REGB0)) {
6681 } else {
6682 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6683 if (UNTAG_Bool(REGB1)) {
6684 REGB1 = TAG_Bool(false);
6685 REGB0 = REGB1;
6686 } else {
6687 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6688 REGB0 = REGB1;
6689 }
6690 }
6691 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6692 if (UNTAG_Bool(REGB0)) {
6693 /* ./parser//parser_prod.nit:1221 */
6694 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6695 if (UNTAG_Bool(REGB0)) {
6696 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1221);
6697 }
6698 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6699 /* ./parser//parser_prod.nit:1222 */
6700 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*/;
6701 if (UNTAG_Bool(REGB0)) {
6702 } else {
6703 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1222);
6704 }
6705 /* ./parser//parser_prod.nit:1223 */
6706 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
6707 } else {
6708 /* ./parser//parser_prod.nit:1225 */
6709 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1225);
6710 }
6711 /* ./parser//parser_prod.nit:1227 */
6712 goto label1;
6713 }
6714 label1: while(0);
6715 stack_frame_head = fra.me.prev;
6716 return;
6717 }
6718 void parser___parser_prod___AMethPropdef___visit_all(val_t p0, val_t p1){
6719 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6720 val_t REGB0;
6721 val_t REGB1;
6722 val_t tmp;
6723 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6724 fra.me.file = LOCATE_parser___parser_prod;
6725 fra.me.line = 1231;
6726 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___visit_all;
6727 fra.me.has_broke = 0;
6728 fra.me.REG_size = 4;
6729 fra.me.REG[0] = NIT_NULL;
6730 fra.me.REG[1] = NIT_NULL;
6731 fra.me.REG[2] = NIT_NULL;
6732 fra.me.REG[3] = NIT_NULL;
6733 fra.me.REG[0] = p0;
6734 fra.me.REG[1] = p1;
6735 /* ./parser//parser_prod.nit:1231 */
6736 fra.me.REG[2] = fra.me.REG[0];
6737 /* ./parser//parser_prod.nit:1233 */
6738 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
6739 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6740 if (UNTAG_Bool(REGB0)) {
6741 } else {
6742 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6743 if (UNTAG_Bool(REGB1)) {
6744 REGB1 = TAG_Bool(false);
6745 REGB0 = REGB1;
6746 } else {
6747 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6748 REGB0 = REGB1;
6749 }
6750 }
6751 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6752 if (UNTAG_Bool(REGB0)) {
6753 /* ./parser//parser_prod.nit:1234 */
6754 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
6755 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*/;
6756 if (UNTAG_Bool(REGB0)) {
6757 } else {
6758 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1234);
6759 }
6760 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6761 }
6762 /* ./parser//parser_prod.nit:1236 */
6763 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
6764 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6765 if (UNTAG_Bool(REGB0)) {
6766 } else {
6767 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6768 if (UNTAG_Bool(REGB1)) {
6769 REGB1 = TAG_Bool(false);
6770 REGB0 = REGB1;
6771 } else {
6772 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6773 REGB0 = REGB1;
6774 }
6775 }
6776 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6777 if (UNTAG_Bool(REGB0)) {
6778 /* ./parser//parser_prod.nit:1237 */
6779 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
6780 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*/;
6781 if (UNTAG_Bool(REGB0)) {
6782 } else {
6783 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1237);
6784 }
6785 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6786 }
6787 /* ./parser//parser_prod.nit:1239 */
6788 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
6789 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6790 /* ./parser//parser_prod.nit:1240 */
6791 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
6792 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6793 /* ./parser//parser_prod.nit:1241 */
6794 fra.me.REG[2] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
6795 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
6796 stack_frame_head = fra.me.prev;
6797 return;
6798 }
6799 void parser___parser_prod___ADeferredMethPropdef___empty_init(val_t p0, int* init_table){
6800 int itpos41 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADeferredMethPropdef].i;
6801 struct {struct stack_frame_t me;} fra;
6802 val_t tmp;
6803 if (init_table[itpos41]) return;
6804 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6805 fra.me.file = LOCATE_parser___parser_prod;
6806 fra.me.line = 1245;
6807 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___empty_init;
6808 fra.me.has_broke = 0;
6809 fra.me.REG_size = 1;
6810 fra.me.REG[0] = NIT_NULL;
6811 fra.me.REG[0] = p0;
6812 stack_frame_head = fra.me.prev;
6813 init_table[itpos41] = 1;
6814 return;
6815 }
6816 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){
6817 int itpos42 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADeferredMethPropdef].i;
6818 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
6819 val_t REGB0;
6820 val_t REGB1;
6821 val_t tmp;
6822 if (init_table[itpos42]) return;
6823 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6824 fra.me.file = LOCATE_parser___parser_prod;
6825 fra.me.line = 1247;
6826 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef;
6827 fra.me.has_broke = 0;
6828 fra.me.REG_size = 8;
6829 fra.me.REG[0] = NIT_NULL;
6830 fra.me.REG[1] = NIT_NULL;
6831 fra.me.REG[2] = NIT_NULL;
6832 fra.me.REG[3] = NIT_NULL;
6833 fra.me.REG[4] = NIT_NULL;
6834 fra.me.REG[5] = NIT_NULL;
6835 fra.me.REG[6] = NIT_NULL;
6836 fra.me.REG[7] = NIT_NULL;
6837 fra.me.REG[0] = p0;
6838 fra.me.REG[1] = p1;
6839 fra.me.REG[2] = p2;
6840 fra.me.REG[3] = p3;
6841 fra.me.REG[4] = p4;
6842 fra.me.REG[5] = p5;
6843 fra.me.REG[6] = p6;
6844 /* ./parser//parser_prod.nit:1247 */
6845 fra.me.REG[7] = fra.me.REG[0];
6846 /* ./parser//parser_prod.nit:1256 */
6847 CALL_parser___parser_prod___ADeferredMethPropdef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
6848 /* ./parser//parser_prod.nit:1257 */
6849 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[7]) = fra.me.REG[1];
6850 /* ./parser//parser_prod.nit:1258 */
6851 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6852 if (UNTAG_Bool(REGB0)) {
6853 } else {
6854 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6855 if (UNTAG_Bool(REGB1)) {
6856 REGB1 = TAG_Bool(false);
6857 REGB0 = REGB1;
6858 } else {
6859 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6860 REGB0 = REGB1;
6861 }
6862 }
6863 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6864 if (UNTAG_Bool(REGB0)) {
6865 /* ./parser//parser_prod.nit:1259 */
6866 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6867 if (UNTAG_Bool(REGB0)) {
6868 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1259);
6869 }
6870 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
6871 }
6872 /* ./parser//parser_prod.nit:1261 */
6873 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[7]) = fra.me.REG[2];
6874 /* ./parser//parser_prod.nit:1262 */
6875 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6876 if (UNTAG_Bool(REGB0)) {
6877 } else {
6878 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6879 if (UNTAG_Bool(REGB1)) {
6880 REGB1 = TAG_Bool(false);
6881 REGB0 = REGB1;
6882 } else {
6883 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6884 REGB0 = REGB1;
6885 }
6886 }
6887 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6888 if (UNTAG_Bool(REGB0)) {
6889 /* ./parser//parser_prod.nit:1263 */
6890 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6891 if (UNTAG_Bool(REGB0)) {
6892 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1263);
6893 }
6894 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
6895 }
6896 /* ./parser//parser_prod.nit:1265 */
6897 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
6898 if (UNTAG_Bool(REGB0)) {
6899 } else {
6900 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1265);
6901 }
6902 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[7]) = fra.me.REG[3];
6903 /* ./parser//parser_prod.nit:1266 */
6904 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6905 if (UNTAG_Bool(REGB0)) {
6906 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1266);
6907 }
6908 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
6909 /* ./parser//parser_prod.nit:1267 */
6910 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
6911 if (UNTAG_Bool(REGB0)) {
6912 } else {
6913 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1267);
6914 }
6915 ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[7]) = fra.me.REG[4];
6916 /* ./parser//parser_prod.nit:1268 */
6917 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6918 if (UNTAG_Bool(REGB0)) {
6919 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1268);
6920 }
6921 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
6922 /* ./parser//parser_prod.nit:1269 */
6923 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
6924 if (UNTAG_Bool(REGB0)) {
6925 } else {
6926 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1269);
6927 }
6928 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[7]) = fra.me.REG[5];
6929 /* ./parser//parser_prod.nit:1270 */
6930 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6931 if (UNTAG_Bool(REGB0)) {
6932 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1270);
6933 }
6934 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
6935 /* ./parser//parser_prod.nit:1271 */
6936 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
6937 if (UNTAG_Bool(REGB0)) {
6938 } else {
6939 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1271);
6940 }
6941 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[7]) = fra.me.REG[6];
6942 /* ./parser//parser_prod.nit:1272 */
6943 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
6944 if (UNTAG_Bool(REGB0)) {
6945 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1272);
6946 }
6947 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6948 stack_frame_head = fra.me.prev;
6949 init_table[itpos42] = 1;
6950 return;
6951 }
6952 void parser___parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
6953 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6954 val_t REGB0;
6955 val_t REGB1;
6956 val_t tmp;
6957 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6958 fra.me.file = LOCATE_parser___parser_prod;
6959 fra.me.line = 1275;
6960 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___replace_child;
6961 fra.me.has_broke = 0;
6962 fra.me.REG_size = 4;
6963 fra.me.REG[0] = NIT_NULL;
6964 fra.me.REG[1] = NIT_NULL;
6965 fra.me.REG[2] = NIT_NULL;
6966 fra.me.REG[3] = NIT_NULL;
6967 fra.me.REG[0] = p0;
6968 fra.me.REG[1] = p1;
6969 fra.me.REG[2] = p2;
6970 /* ./parser//parser_prod.nit:1277 */
6971 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
6972 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6973 if (UNTAG_Bool(REGB0)) {
6974 } else {
6975 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6976 if (UNTAG_Bool(REGB1)) {
6977 REGB1 = TAG_Bool(false);
6978 REGB0 = REGB1;
6979 } else {
6980 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6981 REGB0 = REGB1;
6982 }
6983 }
6984 if (UNTAG_Bool(REGB0)) {
6985 /* ./parser//parser_prod.nit:1278 */
6986 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6987 if (UNTAG_Bool(REGB0)) {
6988 } else {
6989 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6990 if (UNTAG_Bool(REGB1)) {
6991 REGB1 = TAG_Bool(false);
6992 REGB0 = REGB1;
6993 } else {
6994 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6995 REGB0 = REGB1;
6996 }
6997 }
6998 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6999 if (UNTAG_Bool(REGB0)) {
7000 /* ./parser//parser_prod.nit:1279 */
7001 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7002 if (UNTAG_Bool(REGB0)) {
7003 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1279);
7004 }
7005 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7006 /* ./parser//parser_prod.nit:1280 */
7007 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*/;
7008 if (UNTAG_Bool(REGB0)) {
7009 } else {
7010 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1280);
7011 }
7012 /* ./parser//parser_prod.nit:1281 */
7013 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
7014 } else {
7015 /* ./parser//parser_prod.nit:1283 */
7016 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
7017 }
7018 /* ./parser//parser_prod.nit:1285 */
7019 goto label1;
7020 }
7021 /* ./parser//parser_prod.nit:1287 */
7022 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
7023 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7024 if (UNTAG_Bool(REGB0)) {
7025 } else {
7026 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7027 if (UNTAG_Bool(REGB1)) {
7028 REGB1 = TAG_Bool(false);
7029 REGB0 = REGB1;
7030 } else {
7031 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7032 REGB0 = REGB1;
7033 }
7034 }
7035 if (UNTAG_Bool(REGB0)) {
7036 /* ./parser//parser_prod.nit:1288 */
7037 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7038 if (UNTAG_Bool(REGB0)) {
7039 } else {
7040 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7041 if (UNTAG_Bool(REGB1)) {
7042 REGB1 = TAG_Bool(false);
7043 REGB0 = REGB1;
7044 } else {
7045 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7046 REGB0 = REGB1;
7047 }
7048 }
7049 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7050 if (UNTAG_Bool(REGB0)) {
7051 /* ./parser//parser_prod.nit:1289 */
7052 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7053 if (UNTAG_Bool(REGB0)) {
7054 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1289);
7055 }
7056 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7057 /* ./parser//parser_prod.nit:1290 */
7058 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*/;
7059 if (UNTAG_Bool(REGB0)) {
7060 } else {
7061 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1290);
7062 }
7063 /* ./parser//parser_prod.nit:1291 */
7064 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
7065 } else {
7066 /* ./parser//parser_prod.nit:1293 */
7067 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
7068 }
7069 /* ./parser//parser_prod.nit:1295 */
7070 goto label1;
7071 }
7072 /* ./parser//parser_prod.nit:1297 */
7073 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
7074 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7075 if (UNTAG_Bool(REGB0)) {
7076 } else {
7077 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7078 if (UNTAG_Bool(REGB1)) {
7079 REGB1 = TAG_Bool(false);
7080 REGB0 = REGB1;
7081 } else {
7082 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7083 REGB0 = REGB1;
7084 }
7085 }
7086 if (UNTAG_Bool(REGB0)) {
7087 /* ./parser//parser_prod.nit:1298 */
7088 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7089 if (UNTAG_Bool(REGB0)) {
7090 } else {
7091 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7092 if (UNTAG_Bool(REGB1)) {
7093 REGB1 = TAG_Bool(false);
7094 REGB0 = REGB1;
7095 } else {
7096 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7097 REGB0 = REGB1;
7098 }
7099 }
7100 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7101 if (UNTAG_Bool(REGB0)) {
7102 /* ./parser//parser_prod.nit:1299 */
7103 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7104 if (UNTAG_Bool(REGB0)) {
7105 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1299);
7106 }
7107 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7108 /* ./parser//parser_prod.nit:1300 */
7109 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*/;
7110 if (UNTAG_Bool(REGB0)) {
7111 } else {
7112 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1300);
7113 }
7114 /* ./parser//parser_prod.nit:1301 */
7115 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
7116 } else {
7117 /* ./parser//parser_prod.nit:1303 */
7118 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1303);
7119 }
7120 /* ./parser//parser_prod.nit:1305 */
7121 goto label1;
7122 }
7123 /* ./parser//parser_prod.nit:1307 */
7124 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
7125 if (UNTAG_Bool(REGB0)) {
7126 } else {
7127 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1307);
7128 }
7129 fra.me.REG[3] = ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0]);
7130 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
7131 if (UNTAG_Bool(REGB0)) {
7132 } else {
7133 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7134 REGB0 = REGB1;
7135 }
7136 if (UNTAG_Bool(REGB0)) {
7137 /* ./parser//parser_prod.nit:1308 */
7138 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7139 if (UNTAG_Bool(REGB0)) {
7140 } else {
7141 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7142 if (UNTAG_Bool(REGB1)) {
7143 REGB1 = TAG_Bool(false);
7144 REGB0 = REGB1;
7145 } else {
7146 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7147 REGB0 = REGB1;
7148 }
7149 }
7150 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7151 if (UNTAG_Bool(REGB0)) {
7152 /* ./parser//parser_prod.nit:1309 */
7153 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7154 if (UNTAG_Bool(REGB0)) {
7155 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1309);
7156 }
7157 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7158 /* ./parser//parser_prod.nit:1310 */
7159 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*/;
7160 if (UNTAG_Bool(REGB0)) {
7161 } else {
7162 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1310);
7163 }
7164 /* ./parser//parser_prod.nit:1311 */
7165 ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
7166 } else {
7167 /* ./parser//parser_prod.nit:1313 */
7168 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1313);
7169 }
7170 /* ./parser//parser_prod.nit:1315 */
7171 goto label1;
7172 }
7173 /* ./parser//parser_prod.nit:1317 */
7174 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
7175 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7176 if (UNTAG_Bool(REGB0)) {
7177 } else {
7178 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7179 if (UNTAG_Bool(REGB1)) {
7180 REGB1 = TAG_Bool(false);
7181 REGB0 = REGB1;
7182 } else {
7183 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7184 REGB0 = REGB1;
7185 }
7186 }
7187 if (UNTAG_Bool(REGB0)) {
7188 /* ./parser//parser_prod.nit:1318 */
7189 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7190 if (UNTAG_Bool(REGB0)) {
7191 } else {
7192 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7193 if (UNTAG_Bool(REGB1)) {
7194 REGB1 = TAG_Bool(false);
7195 REGB0 = REGB1;
7196 } else {
7197 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7198 REGB0 = REGB1;
7199 }
7200 }
7201 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7202 if (UNTAG_Bool(REGB0)) {
7203 /* ./parser//parser_prod.nit:1319 */
7204 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7205 if (UNTAG_Bool(REGB0)) {
7206 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1319);
7207 }
7208 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7209 /* ./parser//parser_prod.nit:1320 */
7210 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*/;
7211 if (UNTAG_Bool(REGB0)) {
7212 } else {
7213 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1320);
7214 }
7215 /* ./parser//parser_prod.nit:1321 */
7216 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
7217 } else {
7218 /* ./parser//parser_prod.nit:1323 */
7219 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1323);
7220 }
7221 /* ./parser//parser_prod.nit:1325 */
7222 goto label1;
7223 }
7224 /* ./parser//parser_prod.nit:1327 */
7225 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
7226 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7227 if (UNTAG_Bool(REGB0)) {
7228 } else {
7229 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7230 if (UNTAG_Bool(REGB1)) {
7231 REGB1 = TAG_Bool(false);
7232 REGB0 = REGB1;
7233 } else {
7234 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7235 REGB0 = REGB1;
7236 }
7237 }
7238 if (UNTAG_Bool(REGB0)) {
7239 /* ./parser//parser_prod.nit:1328 */
7240 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7241 if (UNTAG_Bool(REGB0)) {
7242 } else {
7243 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7244 if (UNTAG_Bool(REGB1)) {
7245 REGB1 = TAG_Bool(false);
7246 REGB0 = REGB1;
7247 } else {
7248 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7249 REGB0 = REGB1;
7250 }
7251 }
7252 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7253 if (UNTAG_Bool(REGB0)) {
7254 /* ./parser//parser_prod.nit:1329 */
7255 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7256 if (UNTAG_Bool(REGB0)) {
7257 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1329);
7258 }
7259 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7260 /* ./parser//parser_prod.nit:1330 */
7261 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*/;
7262 if (UNTAG_Bool(REGB0)) {
7263 } else {
7264 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1330);
7265 }
7266 /* ./parser//parser_prod.nit:1331 */
7267 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
7268 } else {
7269 /* ./parser//parser_prod.nit:1333 */
7270 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1333);
7271 }
7272 /* ./parser//parser_prod.nit:1335 */
7273 goto label1;
7274 }
7275 label1: while(0);
7276 stack_frame_head = fra.me.prev;
7277 return;
7278 }
7279 void parser___parser_prod___ADeferredMethPropdef___visit_all(val_t p0, val_t p1){
7280 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7281 val_t REGB0;
7282 val_t REGB1;
7283 val_t tmp;
7284 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7285 fra.me.file = LOCATE_parser___parser_prod;
7286 fra.me.line = 1339;
7287 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___visit_all;
7288 fra.me.has_broke = 0;
7289 fra.me.REG_size = 4;
7290 fra.me.REG[0] = NIT_NULL;
7291 fra.me.REG[1] = NIT_NULL;
7292 fra.me.REG[2] = NIT_NULL;
7293 fra.me.REG[3] = NIT_NULL;
7294 fra.me.REG[0] = p0;
7295 fra.me.REG[1] = p1;
7296 /* ./parser//parser_prod.nit:1339 */
7297 fra.me.REG[2] = fra.me.REG[0];
7298 /* ./parser//parser_prod.nit:1341 */
7299 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7300 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7301 if (UNTAG_Bool(REGB0)) {
7302 } else {
7303 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7304 if (UNTAG_Bool(REGB1)) {
7305 REGB1 = TAG_Bool(false);
7306 REGB0 = REGB1;
7307 } else {
7308 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7309 REGB0 = REGB1;
7310 }
7311 }
7312 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7313 if (UNTAG_Bool(REGB0)) {
7314 /* ./parser//parser_prod.nit:1342 */
7315 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7316 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*/;
7317 if (UNTAG_Bool(REGB0)) {
7318 } else {
7319 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1342);
7320 }
7321 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7322 }
7323 /* ./parser//parser_prod.nit:1344 */
7324 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
7325 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7326 if (UNTAG_Bool(REGB0)) {
7327 } else {
7328 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7329 if (UNTAG_Bool(REGB1)) {
7330 REGB1 = TAG_Bool(false);
7331 REGB0 = REGB1;
7332 } else {
7333 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7334 REGB0 = REGB1;
7335 }
7336 }
7337 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7338 if (UNTAG_Bool(REGB0)) {
7339 /* ./parser//parser_prod.nit:1345 */
7340 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
7341 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*/;
7342 if (UNTAG_Bool(REGB0)) {
7343 } else {
7344 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1345);
7345 }
7346 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7347 }
7348 /* ./parser//parser_prod.nit:1347 */
7349 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
7350 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7351 /* ./parser//parser_prod.nit:1348 */
7352 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
7353 if (UNTAG_Bool(REGB0)) {
7354 } else {
7355 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1348);
7356 }
7357 fra.me.REG[3] = ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[2]);
7358 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7359 /* ./parser//parser_prod.nit:1349 */
7360 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
7361 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7362 /* ./parser//parser_prod.nit:1350 */
7363 fra.me.REG[2] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
7364 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
7365 stack_frame_head = fra.me.prev;
7366 return;
7367 }
7368 void parser___parser_prod___AInternMethPropdef___empty_init(val_t p0, int* init_table){
7369 int itpos43 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInternMethPropdef].i;
7370 struct {struct stack_frame_t me;} fra;
7371 val_t tmp;
7372 if (init_table[itpos43]) return;
7373 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7374 fra.me.file = LOCATE_parser___parser_prod;
7375 fra.me.line = 1354;
7376 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___empty_init;
7377 fra.me.has_broke = 0;
7378 fra.me.REG_size = 1;
7379 fra.me.REG[0] = NIT_NULL;
7380 fra.me.REG[0] = p0;
7381 stack_frame_head = fra.me.prev;
7382 init_table[itpos43] = 1;
7383 return;
7384 }
7385 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){
7386 int itpos44 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInternMethPropdef].i;
7387 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
7388 val_t REGB0;
7389 val_t REGB1;
7390 val_t tmp;
7391 if (init_table[itpos44]) return;
7392 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7393 fra.me.file = LOCATE_parser___parser_prod;
7394 fra.me.line = 1356;
7395 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef;
7396 fra.me.has_broke = 0;
7397 fra.me.REG_size = 8;
7398 fra.me.REG[0] = NIT_NULL;
7399 fra.me.REG[1] = NIT_NULL;
7400 fra.me.REG[2] = NIT_NULL;
7401 fra.me.REG[3] = NIT_NULL;
7402 fra.me.REG[4] = NIT_NULL;
7403 fra.me.REG[5] = NIT_NULL;
7404 fra.me.REG[6] = NIT_NULL;
7405 fra.me.REG[7] = NIT_NULL;
7406 fra.me.REG[0] = p0;
7407 fra.me.REG[1] = p1;
7408 fra.me.REG[2] = p2;
7409 fra.me.REG[3] = p3;
7410 fra.me.REG[4] = p4;
7411 fra.me.REG[5] = p5;
7412 fra.me.REG[6] = p6;
7413 /* ./parser//parser_prod.nit:1356 */
7414 fra.me.REG[7] = fra.me.REG[0];
7415 /* ./parser//parser_prod.nit:1365 */
7416 CALL_parser___parser_prod___AInternMethPropdef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
7417 /* ./parser//parser_prod.nit:1366 */
7418 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[7]) = fra.me.REG[1];
7419 /* ./parser//parser_prod.nit:1367 */
7420 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7421 if (UNTAG_Bool(REGB0)) {
7422 } else {
7423 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7424 if (UNTAG_Bool(REGB1)) {
7425 REGB1 = TAG_Bool(false);
7426 REGB0 = REGB1;
7427 } else {
7428 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7429 REGB0 = REGB1;
7430 }
7431 }
7432 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7433 if (UNTAG_Bool(REGB0)) {
7434 /* ./parser//parser_prod.nit:1368 */
7435 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7436 if (UNTAG_Bool(REGB0)) {
7437 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1368);
7438 }
7439 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
7440 }
7441 /* ./parser//parser_prod.nit:1370 */
7442 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[7]) = fra.me.REG[2];
7443 /* ./parser//parser_prod.nit:1371 */
7444 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7445 if (UNTAG_Bool(REGB0)) {
7446 } else {
7447 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7448 if (UNTAG_Bool(REGB1)) {
7449 REGB1 = TAG_Bool(false);
7450 REGB0 = REGB1;
7451 } else {
7452 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7453 REGB0 = REGB1;
7454 }
7455 }
7456 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7457 if (UNTAG_Bool(REGB0)) {
7458 /* ./parser//parser_prod.nit:1372 */
7459 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7460 if (UNTAG_Bool(REGB0)) {
7461 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1372);
7462 }
7463 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
7464 }
7465 /* ./parser//parser_prod.nit:1374 */
7466 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
7467 if (UNTAG_Bool(REGB0)) {
7468 } else {
7469 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1374);
7470 }
7471 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[7]) = fra.me.REG[3];
7472 /* ./parser//parser_prod.nit:1375 */
7473 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7474 if (UNTAG_Bool(REGB0)) {
7475 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1375);
7476 }
7477 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
7478 /* ./parser//parser_prod.nit:1376 */
7479 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
7480 if (UNTAG_Bool(REGB0)) {
7481 } else {
7482 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1376);
7483 }
7484 ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[7]) = fra.me.REG[4];
7485 /* ./parser//parser_prod.nit:1377 */
7486 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7487 if (UNTAG_Bool(REGB0)) {
7488 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1377);
7489 }
7490 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
7491 /* ./parser//parser_prod.nit:1378 */
7492 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
7493 if (UNTAG_Bool(REGB0)) {
7494 } else {
7495 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1378);
7496 }
7497 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[7]) = fra.me.REG[5];
7498 /* ./parser//parser_prod.nit:1379 */
7499 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7500 if (UNTAG_Bool(REGB0)) {
7501 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1379);
7502 }
7503 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
7504 /* ./parser//parser_prod.nit:1380 */
7505 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
7506 if (UNTAG_Bool(REGB0)) {
7507 } else {
7508 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1380);
7509 }
7510 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[7]) = fra.me.REG[6];
7511 /* ./parser//parser_prod.nit:1381 */
7512 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
7513 if (UNTAG_Bool(REGB0)) {
7514 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1381);
7515 }
7516 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7517 stack_frame_head = fra.me.prev;
7518 init_table[itpos44] = 1;
7519 return;
7520 }
7521 void parser___parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
7522 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7523 val_t REGB0;
7524 val_t REGB1;
7525 val_t tmp;
7526 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7527 fra.me.file = LOCATE_parser___parser_prod;
7528 fra.me.line = 1384;
7529 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___replace_child;
7530 fra.me.has_broke = 0;
7531 fra.me.REG_size = 4;
7532 fra.me.REG[0] = NIT_NULL;
7533 fra.me.REG[1] = NIT_NULL;
7534 fra.me.REG[2] = NIT_NULL;
7535 fra.me.REG[3] = NIT_NULL;
7536 fra.me.REG[0] = p0;
7537 fra.me.REG[1] = p1;
7538 fra.me.REG[2] = p2;
7539 /* ./parser//parser_prod.nit:1386 */
7540 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
7541 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7542 if (UNTAG_Bool(REGB0)) {
7543 } else {
7544 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7545 if (UNTAG_Bool(REGB1)) {
7546 REGB1 = TAG_Bool(false);
7547 REGB0 = REGB1;
7548 } else {
7549 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7550 REGB0 = REGB1;
7551 }
7552 }
7553 if (UNTAG_Bool(REGB0)) {
7554 /* ./parser//parser_prod.nit:1387 */
7555 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7556 if (UNTAG_Bool(REGB0)) {
7557 } else {
7558 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7559 if (UNTAG_Bool(REGB1)) {
7560 REGB1 = TAG_Bool(false);
7561 REGB0 = REGB1;
7562 } else {
7563 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7564 REGB0 = REGB1;
7565 }
7566 }
7567 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7568 if (UNTAG_Bool(REGB0)) {
7569 /* ./parser//parser_prod.nit:1388 */
7570 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7571 if (UNTAG_Bool(REGB0)) {
7572 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1388);
7573 }
7574 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7575 /* ./parser//parser_prod.nit:1389 */
7576 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*/;
7577 if (UNTAG_Bool(REGB0)) {
7578 } else {
7579 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1389);
7580 }
7581 /* ./parser//parser_prod.nit:1390 */
7582 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
7583 } else {
7584 /* ./parser//parser_prod.nit:1392 */
7585 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
7586 }
7587 /* ./parser//parser_prod.nit:1394 */
7588 goto label1;
7589 }
7590 /* ./parser//parser_prod.nit:1396 */
7591 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
7592 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7593 if (UNTAG_Bool(REGB0)) {
7594 } else {
7595 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7596 if (UNTAG_Bool(REGB1)) {
7597 REGB1 = TAG_Bool(false);
7598 REGB0 = REGB1;
7599 } else {
7600 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7601 REGB0 = REGB1;
7602 }
7603 }
7604 if (UNTAG_Bool(REGB0)) {
7605 /* ./parser//parser_prod.nit:1397 */
7606 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7607 if (UNTAG_Bool(REGB0)) {
7608 } else {
7609 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7610 if (UNTAG_Bool(REGB1)) {
7611 REGB1 = TAG_Bool(false);
7612 REGB0 = REGB1;
7613 } else {
7614 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7615 REGB0 = REGB1;
7616 }
7617 }
7618 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7619 if (UNTAG_Bool(REGB0)) {
7620 /* ./parser//parser_prod.nit:1398 */
7621 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7622 if (UNTAG_Bool(REGB0)) {
7623 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1398);
7624 }
7625 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7626 /* ./parser//parser_prod.nit:1399 */
7627 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*/;
7628 if (UNTAG_Bool(REGB0)) {
7629 } else {
7630 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1399);
7631 }
7632 /* ./parser//parser_prod.nit:1400 */
7633 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
7634 } else {
7635 /* ./parser//parser_prod.nit:1402 */
7636 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
7637 }
7638 /* ./parser//parser_prod.nit:1404 */
7639 goto label1;
7640 }
7641 /* ./parser//parser_prod.nit:1406 */
7642 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
7643 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7644 if (UNTAG_Bool(REGB0)) {
7645 } else {
7646 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7647 if (UNTAG_Bool(REGB1)) {
7648 REGB1 = TAG_Bool(false);
7649 REGB0 = REGB1;
7650 } else {
7651 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7652 REGB0 = REGB1;
7653 }
7654 }
7655 if (UNTAG_Bool(REGB0)) {
7656 /* ./parser//parser_prod.nit:1407 */
7657 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7658 if (UNTAG_Bool(REGB0)) {
7659 } else {
7660 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7661 if (UNTAG_Bool(REGB1)) {
7662 REGB1 = TAG_Bool(false);
7663 REGB0 = REGB1;
7664 } else {
7665 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7666 REGB0 = REGB1;
7667 }
7668 }
7669 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7670 if (UNTAG_Bool(REGB0)) {
7671 /* ./parser//parser_prod.nit:1408 */
7672 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7673 if (UNTAG_Bool(REGB0)) {
7674 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1408);
7675 }
7676 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7677 /* ./parser//parser_prod.nit:1409 */
7678 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*/;
7679 if (UNTAG_Bool(REGB0)) {
7680 } else {
7681 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1409);
7682 }
7683 /* ./parser//parser_prod.nit:1410 */
7684 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
7685 } else {
7686 /* ./parser//parser_prod.nit:1412 */
7687 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1412);
7688 }
7689 /* ./parser//parser_prod.nit:1414 */
7690 goto label1;
7691 }
7692 /* ./parser//parser_prod.nit:1416 */
7693 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
7694 if (UNTAG_Bool(REGB0)) {
7695 } else {
7696 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1416);
7697 }
7698 fra.me.REG[3] = ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0]);
7699 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
7700 if (UNTAG_Bool(REGB0)) {
7701 } else {
7702 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7703 REGB0 = REGB1;
7704 }
7705 if (UNTAG_Bool(REGB0)) {
7706 /* ./parser//parser_prod.nit:1417 */
7707 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7708 if (UNTAG_Bool(REGB0)) {
7709 } else {
7710 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7711 if (UNTAG_Bool(REGB1)) {
7712 REGB1 = TAG_Bool(false);
7713 REGB0 = REGB1;
7714 } else {
7715 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7716 REGB0 = REGB1;
7717 }
7718 }
7719 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7720 if (UNTAG_Bool(REGB0)) {
7721 /* ./parser//parser_prod.nit:1418 */
7722 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7723 if (UNTAG_Bool(REGB0)) {
7724 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1418);
7725 }
7726 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7727 /* ./parser//parser_prod.nit:1419 */
7728 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*/;
7729 if (UNTAG_Bool(REGB0)) {
7730 } else {
7731 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1419);
7732 }
7733 /* ./parser//parser_prod.nit:1420 */
7734 ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
7735 } else {
7736 /* ./parser//parser_prod.nit:1422 */
7737 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1422);
7738 }
7739 /* ./parser//parser_prod.nit:1424 */
7740 goto label1;
7741 }
7742 /* ./parser//parser_prod.nit:1426 */
7743 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
7744 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7745 if (UNTAG_Bool(REGB0)) {
7746 } else {
7747 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7748 if (UNTAG_Bool(REGB1)) {
7749 REGB1 = TAG_Bool(false);
7750 REGB0 = REGB1;
7751 } else {
7752 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7753 REGB0 = REGB1;
7754 }
7755 }
7756 if (UNTAG_Bool(REGB0)) {
7757 /* ./parser//parser_prod.nit:1427 */
7758 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7759 if (UNTAG_Bool(REGB0)) {
7760 } else {
7761 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7762 if (UNTAG_Bool(REGB1)) {
7763 REGB1 = TAG_Bool(false);
7764 REGB0 = REGB1;
7765 } else {
7766 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7767 REGB0 = REGB1;
7768 }
7769 }
7770 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7771 if (UNTAG_Bool(REGB0)) {
7772 /* ./parser//parser_prod.nit:1428 */
7773 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7774 if (UNTAG_Bool(REGB0)) {
7775 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1428);
7776 }
7777 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7778 /* ./parser//parser_prod.nit:1429 */
7779 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*/;
7780 if (UNTAG_Bool(REGB0)) {
7781 } else {
7782 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1429);
7783 }
7784 /* ./parser//parser_prod.nit:1430 */
7785 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
7786 } else {
7787 /* ./parser//parser_prod.nit:1432 */
7788 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1432);
7789 }
7790 /* ./parser//parser_prod.nit:1434 */
7791 goto label1;
7792 }
7793 /* ./parser//parser_prod.nit:1436 */
7794 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
7795 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7796 if (UNTAG_Bool(REGB0)) {
7797 } else {
7798 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7799 if (UNTAG_Bool(REGB1)) {
7800 REGB1 = TAG_Bool(false);
7801 REGB0 = REGB1;
7802 } else {
7803 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7804 REGB0 = REGB1;
7805 }
7806 }
7807 if (UNTAG_Bool(REGB0)) {
7808 /* ./parser//parser_prod.nit:1437 */
7809 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7810 if (UNTAG_Bool(REGB0)) {
7811 } else {
7812 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7813 if (UNTAG_Bool(REGB1)) {
7814 REGB1 = TAG_Bool(false);
7815 REGB0 = REGB1;
7816 } else {
7817 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7818 REGB0 = REGB1;
7819 }
7820 }
7821 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7822 if (UNTAG_Bool(REGB0)) {
7823 /* ./parser//parser_prod.nit:1438 */
7824 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7825 if (UNTAG_Bool(REGB0)) {
7826 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1438);
7827 }
7828 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7829 /* ./parser//parser_prod.nit:1439 */
7830 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*/;
7831 if (UNTAG_Bool(REGB0)) {
7832 } else {
7833 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1439);
7834 }
7835 /* ./parser//parser_prod.nit:1440 */
7836 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
7837 } else {
7838 /* ./parser//parser_prod.nit:1442 */
7839 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1442);
7840 }
7841 /* ./parser//parser_prod.nit:1444 */
7842 goto label1;
7843 }
7844 label1: while(0);
7845 stack_frame_head = fra.me.prev;
7846 return;
7847 }
7848 void parser___parser_prod___AInternMethPropdef___visit_all(val_t p0, val_t p1){
7849 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7850 val_t REGB0;
7851 val_t REGB1;
7852 val_t tmp;
7853 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7854 fra.me.file = LOCATE_parser___parser_prod;
7855 fra.me.line = 1448;
7856 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___visit_all;
7857 fra.me.has_broke = 0;
7858 fra.me.REG_size = 4;
7859 fra.me.REG[0] = NIT_NULL;
7860 fra.me.REG[1] = NIT_NULL;
7861 fra.me.REG[2] = NIT_NULL;
7862 fra.me.REG[3] = NIT_NULL;
7863 fra.me.REG[0] = p0;
7864 fra.me.REG[1] = p1;
7865 /* ./parser//parser_prod.nit:1448 */
7866 fra.me.REG[2] = fra.me.REG[0];
7867 /* ./parser//parser_prod.nit:1450 */
7868 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7869 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7870 if (UNTAG_Bool(REGB0)) {
7871 } else {
7872 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7873 if (UNTAG_Bool(REGB1)) {
7874 REGB1 = TAG_Bool(false);
7875 REGB0 = REGB1;
7876 } else {
7877 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7878 REGB0 = REGB1;
7879 }
7880 }
7881 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7882 if (UNTAG_Bool(REGB0)) {
7883 /* ./parser//parser_prod.nit:1451 */
7884 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7885 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*/;
7886 if (UNTAG_Bool(REGB0)) {
7887 } else {
7888 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1451);
7889 }
7890 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7891 }
7892 /* ./parser//parser_prod.nit:1453 */
7893 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
7894 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7895 if (UNTAG_Bool(REGB0)) {
7896 } else {
7897 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7898 if (UNTAG_Bool(REGB1)) {
7899 REGB1 = TAG_Bool(false);
7900 REGB0 = REGB1;
7901 } else {
7902 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7903 REGB0 = REGB1;
7904 }
7905 }
7906 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7907 if (UNTAG_Bool(REGB0)) {
7908 /* ./parser//parser_prod.nit:1454 */
7909 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
7910 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*/;
7911 if (UNTAG_Bool(REGB0)) {
7912 } else {
7913 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1454);
7914 }
7915 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7916 }
7917 /* ./parser//parser_prod.nit:1456 */
7918 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
7919 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7920 /* ./parser//parser_prod.nit:1457 */
7921 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
7922 if (UNTAG_Bool(REGB0)) {
7923 } else {
7924 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1457);
7925 }
7926 fra.me.REG[3] = ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[2]);
7927 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7928 /* ./parser//parser_prod.nit:1458 */
7929 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
7930 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7931 /* ./parser//parser_prod.nit:1459 */
7932 fra.me.REG[2] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
7933 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
7934 stack_frame_head = fra.me.prev;
7935 return;
7936 }
7937 void parser___parser_prod___AExternMethPropdef___empty_init(val_t p0, int* init_table){
7938 int itpos45 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternMethPropdef].i;
7939 struct {struct stack_frame_t me;} fra;
7940 val_t tmp;
7941 if (init_table[itpos45]) return;
7942 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7943 fra.me.file = LOCATE_parser___parser_prod;
7944 fra.me.line = 1463;
7945 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___empty_init;
7946 fra.me.has_broke = 0;
7947 fra.me.REG_size = 1;
7948 fra.me.REG[0] = NIT_NULL;
7949 fra.me.REG[0] = p0;
7950 stack_frame_head = fra.me.prev;
7951 init_table[itpos45] = 1;
7952 return;
7953 }
7954 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){
7955 int itpos46 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternMethPropdef].i;
7956 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
7957 val_t REGB0;
7958 val_t REGB1;
7959 val_t tmp;
7960 if (init_table[itpos46]) return;
7961 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7962 fra.me.file = LOCATE_parser___parser_prod;
7963 fra.me.line = 1465;
7964 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef;
7965 fra.me.has_broke = 0;
7966 fra.me.REG_size = 10;
7967 fra.me.REG[0] = NIT_NULL;
7968 fra.me.REG[1] = NIT_NULL;
7969 fra.me.REG[2] = NIT_NULL;
7970 fra.me.REG[3] = NIT_NULL;
7971 fra.me.REG[4] = NIT_NULL;
7972 fra.me.REG[5] = NIT_NULL;
7973 fra.me.REG[6] = NIT_NULL;
7974 fra.me.REG[7] = NIT_NULL;
7975 fra.me.REG[8] = NIT_NULL;
7976 fra.me.REG[9] = NIT_NULL;
7977 fra.me.REG[0] = p0;
7978 fra.me.REG[1] = p1;
7979 fra.me.REG[2] = p2;
7980 fra.me.REG[3] = p3;
7981 fra.me.REG[4] = p4;
7982 fra.me.REG[5] = p5;
7983 fra.me.REG[6] = p6;
7984 fra.me.REG[7] = p7;
7985 fra.me.REG[8] = p8;
7986 /* ./parser//parser_prod.nit:1465 */
7987 fra.me.REG[9] = fra.me.REG[0];
7988 /* ./parser//parser_prod.nit:1476 */
7989 CALL_parser___parser_prod___AExternMethPropdef___empty_init(fra.me.REG[9])(fra.me.REG[9], init_table);
7990 /* ./parser//parser_prod.nit:1477 */
7991 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[9]) = fra.me.REG[1];
7992 /* ./parser//parser_prod.nit:1478 */
7993 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7994 if (UNTAG_Bool(REGB0)) {
7995 } else {
7996 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7997 if (UNTAG_Bool(REGB1)) {
7998 REGB1 = TAG_Bool(false);
7999 REGB0 = REGB1;
8000 } else {
8001 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8002 REGB0 = REGB1;
8003 }
8004 }
8005 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8006 if (UNTAG_Bool(REGB0)) {
8007 /* ./parser//parser_prod.nit:1479 */
8008 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8009 if (UNTAG_Bool(REGB0)) {
8010 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1479);
8011 }
8012 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
8013 }
8014 /* ./parser//parser_prod.nit:1481 */
8015 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[9]) = fra.me.REG[2];
8016 /* ./parser//parser_prod.nit:1482 */
8017 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8018 if (UNTAG_Bool(REGB0)) {
8019 } else {
8020 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8021 if (UNTAG_Bool(REGB1)) {
8022 REGB1 = TAG_Bool(false);
8023 REGB0 = REGB1;
8024 } else {
8025 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8026 REGB0 = REGB1;
8027 }
8028 }
8029 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8030 if (UNTAG_Bool(REGB0)) {
8031 /* ./parser//parser_prod.nit:1483 */
8032 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8033 if (UNTAG_Bool(REGB0)) {
8034 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1483);
8035 }
8036 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[9]);
8037 }
8038 /* ./parser//parser_prod.nit:1485 */
8039 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
8040 if (UNTAG_Bool(REGB0)) {
8041 } else {
8042 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1485);
8043 }
8044 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[9]) = fra.me.REG[3];
8045 /* ./parser//parser_prod.nit:1486 */
8046 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8047 if (UNTAG_Bool(REGB0)) {
8048 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1486);
8049 }
8050 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]);
8051 /* ./parser//parser_prod.nit:1487 */
8052 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8053 if (UNTAG_Bool(REGB0)) {
8054 } else {
8055 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1487);
8056 }
8057 ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[9]) = fra.me.REG[4];
8058 /* ./parser//parser_prod.nit:1488 */
8059 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8060 if (UNTAG_Bool(REGB0)) {
8061 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1488);
8062 }
8063 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
8064 /* ./parser//parser_prod.nit:1489 */
8065 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
8066 if (UNTAG_Bool(REGB0)) {
8067 } else {
8068 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1489);
8069 }
8070 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[9]) = fra.me.REG[5];
8071 /* ./parser//parser_prod.nit:1490 */
8072 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8073 if (UNTAG_Bool(REGB0)) {
8074 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1490);
8075 }
8076 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[9]);
8077 /* ./parser//parser_prod.nit:1491 */
8078 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
8079 if (UNTAG_Bool(REGB0)) {
8080 } else {
8081 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1491);
8082 }
8083 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[9]) = fra.me.REG[6];
8084 /* ./parser//parser_prod.nit:1492 */
8085 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8086 if (UNTAG_Bool(REGB0)) {
8087 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1492);
8088 }
8089 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
8090 /* ./parser//parser_prod.nit:1493 */
8091 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[9]) = fra.me.REG[7];
8092 /* ./parser//parser_prod.nit:1494 */
8093 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8094 if (UNTAG_Bool(REGB0)) {
8095 } else {
8096 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8097 if (UNTAG_Bool(REGB1)) {
8098 REGB1 = TAG_Bool(false);
8099 REGB0 = REGB1;
8100 } else {
8101 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
8102 REGB0 = REGB1;
8103 }
8104 }
8105 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8106 if (UNTAG_Bool(REGB0)) {
8107 /* ./parser//parser_prod.nit:1495 */
8108 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8109 if (UNTAG_Bool(REGB0)) {
8110 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1495);
8111 }
8112 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]);
8113 }
8114 /* ./parser//parser_prod.nit:1497 */
8115 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[9]) = fra.me.REG[8];
8116 /* ./parser//parser_prod.nit:1498 */
8117 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
8118 if (UNTAG_Bool(REGB0)) {
8119 } else {
8120 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
8121 if (UNTAG_Bool(REGB1)) {
8122 REGB1 = TAG_Bool(false);
8123 REGB0 = REGB1;
8124 } else {
8125 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
8126 REGB0 = REGB1;
8127 }
8128 }
8129 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8130 if (UNTAG_Bool(REGB0)) {
8131 /* ./parser//parser_prod.nit:1499 */
8132 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
8133 if (UNTAG_Bool(REGB0)) {
8134 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1499);
8135 }
8136 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
8137 }
8138 stack_frame_head = fra.me.prev;
8139 init_table[itpos46] = 1;
8140 return;
8141 }
8142 void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
8143 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8144 val_t REGB0;
8145 val_t REGB1;
8146 val_t tmp;
8147 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8148 fra.me.file = LOCATE_parser___parser_prod;
8149 fra.me.line = 1503;
8150 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___replace_child;
8151 fra.me.has_broke = 0;
8152 fra.me.REG_size = 4;
8153 fra.me.REG[0] = NIT_NULL;
8154 fra.me.REG[1] = NIT_NULL;
8155 fra.me.REG[2] = NIT_NULL;
8156 fra.me.REG[3] = NIT_NULL;
8157 fra.me.REG[0] = p0;
8158 fra.me.REG[1] = p1;
8159 fra.me.REG[2] = p2;
8160 /* ./parser//parser_prod.nit:1505 */
8161 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
8162 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8163 if (UNTAG_Bool(REGB0)) {
8164 } else {
8165 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8166 if (UNTAG_Bool(REGB1)) {
8167 REGB1 = TAG_Bool(false);
8168 REGB0 = REGB1;
8169 } else {
8170 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8171 REGB0 = REGB1;
8172 }
8173 }
8174 if (UNTAG_Bool(REGB0)) {
8175 /* ./parser//parser_prod.nit:1506 */
8176 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8177 if (UNTAG_Bool(REGB0)) {
8178 } else {
8179 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8180 if (UNTAG_Bool(REGB1)) {
8181 REGB1 = TAG_Bool(false);
8182 REGB0 = REGB1;
8183 } else {
8184 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8185 REGB0 = REGB1;
8186 }
8187 }
8188 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8189 if (UNTAG_Bool(REGB0)) {
8190 /* ./parser//parser_prod.nit:1507 */
8191 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8192 if (UNTAG_Bool(REGB0)) {
8193 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1507);
8194 }
8195 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8196 /* ./parser//parser_prod.nit:1508 */
8197 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*/;
8198 if (UNTAG_Bool(REGB0)) {
8199 } else {
8200 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1508);
8201 }
8202 /* ./parser//parser_prod.nit:1509 */
8203 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
8204 } else {
8205 /* ./parser//parser_prod.nit:1511 */
8206 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
8207 }
8208 /* ./parser//parser_prod.nit:1513 */
8209 goto label1;
8210 }
8211 /* ./parser//parser_prod.nit:1515 */
8212 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
8213 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8214 if (UNTAG_Bool(REGB0)) {
8215 } else {
8216 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8217 if (UNTAG_Bool(REGB1)) {
8218 REGB1 = TAG_Bool(false);
8219 REGB0 = REGB1;
8220 } else {
8221 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8222 REGB0 = REGB1;
8223 }
8224 }
8225 if (UNTAG_Bool(REGB0)) {
8226 /* ./parser//parser_prod.nit:1516 */
8227 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8228 if (UNTAG_Bool(REGB0)) {
8229 } else {
8230 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8231 if (UNTAG_Bool(REGB1)) {
8232 REGB1 = TAG_Bool(false);
8233 REGB0 = REGB1;
8234 } else {
8235 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8236 REGB0 = REGB1;
8237 }
8238 }
8239 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8240 if (UNTAG_Bool(REGB0)) {
8241 /* ./parser//parser_prod.nit:1517 */
8242 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8243 if (UNTAG_Bool(REGB0)) {
8244 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1517);
8245 }
8246 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8247 /* ./parser//parser_prod.nit:1518 */
8248 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*/;
8249 if (UNTAG_Bool(REGB0)) {
8250 } else {
8251 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1518);
8252 }
8253 /* ./parser//parser_prod.nit:1519 */
8254 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
8255 } else {
8256 /* ./parser//parser_prod.nit:1521 */
8257 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
8258 }
8259 /* ./parser//parser_prod.nit:1523 */
8260 goto label1;
8261 }
8262 /* ./parser//parser_prod.nit:1525 */
8263 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
8264 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8265 if (UNTAG_Bool(REGB0)) {
8266 } else {
8267 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8268 if (UNTAG_Bool(REGB1)) {
8269 REGB1 = TAG_Bool(false);
8270 REGB0 = REGB1;
8271 } else {
8272 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8273 REGB0 = REGB1;
8274 }
8275 }
8276 if (UNTAG_Bool(REGB0)) {
8277 /* ./parser//parser_prod.nit:1526 */
8278 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8279 if (UNTAG_Bool(REGB0)) {
8280 } else {
8281 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8282 if (UNTAG_Bool(REGB1)) {
8283 REGB1 = TAG_Bool(false);
8284 REGB0 = REGB1;
8285 } else {
8286 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8287 REGB0 = REGB1;
8288 }
8289 }
8290 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8291 if (UNTAG_Bool(REGB0)) {
8292 /* ./parser//parser_prod.nit:1527 */
8293 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8294 if (UNTAG_Bool(REGB0)) {
8295 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1527);
8296 }
8297 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8298 /* ./parser//parser_prod.nit:1528 */
8299 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*/;
8300 if (UNTAG_Bool(REGB0)) {
8301 } else {
8302 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1528);
8303 }
8304 /* ./parser//parser_prod.nit:1529 */
8305 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
8306 } else {
8307 /* ./parser//parser_prod.nit:1531 */
8308 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1531);
8309 }
8310 /* ./parser//parser_prod.nit:1533 */
8311 goto label1;
8312 }
8313 /* ./parser//parser_prod.nit:1535 */
8314 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
8315 if (UNTAG_Bool(REGB0)) {
8316 } else {
8317 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1535);
8318 }
8319 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]);
8320 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
8321 if (UNTAG_Bool(REGB0)) {
8322 } else {
8323 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8324 REGB0 = REGB1;
8325 }
8326 if (UNTAG_Bool(REGB0)) {
8327 /* ./parser//parser_prod.nit:1536 */
8328 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8329 if (UNTAG_Bool(REGB0)) {
8330 } else {
8331 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8332 if (UNTAG_Bool(REGB1)) {
8333 REGB1 = TAG_Bool(false);
8334 REGB0 = REGB1;
8335 } else {
8336 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8337 REGB0 = REGB1;
8338 }
8339 }
8340 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8341 if (UNTAG_Bool(REGB0)) {
8342 /* ./parser//parser_prod.nit:1537 */
8343 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8344 if (UNTAG_Bool(REGB0)) {
8345 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1537);
8346 }
8347 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8348 /* ./parser//parser_prod.nit:1538 */
8349 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*/;
8350 if (UNTAG_Bool(REGB0)) {
8351 } else {
8352 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1538);
8353 }
8354 /* ./parser//parser_prod.nit:1539 */
8355 ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
8356 } else {
8357 /* ./parser//parser_prod.nit:1541 */
8358 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1541);
8359 }
8360 /* ./parser//parser_prod.nit:1543 */
8361 goto label1;
8362 }
8363 /* ./parser//parser_prod.nit:1545 */
8364 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
8365 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8366 if (UNTAG_Bool(REGB0)) {
8367 } else {
8368 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8369 if (UNTAG_Bool(REGB1)) {
8370 REGB1 = TAG_Bool(false);
8371 REGB0 = REGB1;
8372 } else {
8373 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8374 REGB0 = REGB1;
8375 }
8376 }
8377 if (UNTAG_Bool(REGB0)) {
8378 /* ./parser//parser_prod.nit:1546 */
8379 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8380 if (UNTAG_Bool(REGB0)) {
8381 } else {
8382 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8383 if (UNTAG_Bool(REGB1)) {
8384 REGB1 = TAG_Bool(false);
8385 REGB0 = REGB1;
8386 } else {
8387 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8388 REGB0 = REGB1;
8389 }
8390 }
8391 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8392 if (UNTAG_Bool(REGB0)) {
8393 /* ./parser//parser_prod.nit:1547 */
8394 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8395 if (UNTAG_Bool(REGB0)) {
8396 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1547);
8397 }
8398 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8399 /* ./parser//parser_prod.nit:1548 */
8400 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*/;
8401 if (UNTAG_Bool(REGB0)) {
8402 } else {
8403 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1548);
8404 }
8405 /* ./parser//parser_prod.nit:1549 */
8406 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
8407 } else {
8408 /* ./parser//parser_prod.nit:1551 */
8409 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1551);
8410 }
8411 /* ./parser//parser_prod.nit:1553 */
8412 goto label1;
8413 }
8414 /* ./parser//parser_prod.nit:1555 */
8415 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
8416 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8417 if (UNTAG_Bool(REGB0)) {
8418 } else {
8419 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8420 if (UNTAG_Bool(REGB1)) {
8421 REGB1 = TAG_Bool(false);
8422 REGB0 = REGB1;
8423 } else {
8424 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8425 REGB0 = REGB1;
8426 }
8427 }
8428 if (UNTAG_Bool(REGB0)) {
8429 /* ./parser//parser_prod.nit:1556 */
8430 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8431 if (UNTAG_Bool(REGB0)) {
8432 } else {
8433 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8434 if (UNTAG_Bool(REGB1)) {
8435 REGB1 = TAG_Bool(false);
8436 REGB0 = REGB1;
8437 } else {
8438 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8439 REGB0 = REGB1;
8440 }
8441 }
8442 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8443 if (UNTAG_Bool(REGB0)) {
8444 /* ./parser//parser_prod.nit:1557 */
8445 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8446 if (UNTAG_Bool(REGB0)) {
8447 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1557);
8448 }
8449 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8450 /* ./parser//parser_prod.nit:1558 */
8451 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*/;
8452 if (UNTAG_Bool(REGB0)) {
8453 } else {
8454 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1558);
8455 }
8456 /* ./parser//parser_prod.nit:1559 */
8457 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
8458 } else {
8459 /* ./parser//parser_prod.nit:1561 */
8460 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1561);
8461 }
8462 /* ./parser//parser_prod.nit:1563 */
8463 goto label1;
8464 }
8465 /* ./parser//parser_prod.nit:1565 */
8466 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]);
8467 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8468 if (UNTAG_Bool(REGB0)) {
8469 } else {
8470 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8471 if (UNTAG_Bool(REGB1)) {
8472 REGB1 = TAG_Bool(false);
8473 REGB0 = REGB1;
8474 } else {
8475 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8476 REGB0 = REGB1;
8477 }
8478 }
8479 if (UNTAG_Bool(REGB0)) {
8480 /* ./parser//parser_prod.nit:1566 */
8481 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8482 if (UNTAG_Bool(REGB0)) {
8483 } else {
8484 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8485 if (UNTAG_Bool(REGB1)) {
8486 REGB1 = TAG_Bool(false);
8487 REGB0 = REGB1;
8488 } else {
8489 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8490 REGB0 = REGB1;
8491 }
8492 }
8493 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8494 if (UNTAG_Bool(REGB0)) {
8495 /* ./parser//parser_prod.nit:1567 */
8496 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8497 if (UNTAG_Bool(REGB0)) {
8498 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1567);
8499 }
8500 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8501 /* ./parser//parser_prod.nit:1568 */
8502 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*/;
8503 if (UNTAG_Bool(REGB0)) {
8504 } else {
8505 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1568);
8506 }
8507 /* ./parser//parser_prod.nit:1569 */
8508 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[2];
8509 } else {
8510 /* ./parser//parser_prod.nit:1571 */
8511 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = NIT_NULL;
8512 }
8513 /* ./parser//parser_prod.nit:1573 */
8514 goto label1;
8515 }
8516 /* ./parser//parser_prod.nit:1575 */
8517 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]);
8518 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8519 if (UNTAG_Bool(REGB0)) {
8520 } else {
8521 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8522 if (UNTAG_Bool(REGB1)) {
8523 REGB1 = TAG_Bool(false);
8524 REGB0 = REGB1;
8525 } else {
8526 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8527 REGB0 = REGB1;
8528 }
8529 }
8530 if (UNTAG_Bool(REGB0)) {
8531 /* ./parser//parser_prod.nit:1576 */
8532 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8533 if (UNTAG_Bool(REGB0)) {
8534 } else {
8535 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8536 if (UNTAG_Bool(REGB1)) {
8537 REGB1 = TAG_Bool(false);
8538 REGB0 = REGB1;
8539 } else {
8540 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8541 REGB0 = REGB1;
8542 }
8543 }
8544 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8545 if (UNTAG_Bool(REGB0)) {
8546 /* ./parser//parser_prod.nit:1577 */
8547 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8548 if (UNTAG_Bool(REGB0)) {
8549 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1577);
8550 }
8551 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8552 /* ./parser//parser_prod.nit:1578 */
8553 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*/;
8554 if (UNTAG_Bool(REGB0)) {
8555 } else {
8556 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1578);
8557 }
8558 /* ./parser//parser_prod.nit:1579 */
8559 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = fra.me.REG[2];
8560 } else {
8561 /* ./parser//parser_prod.nit:1581 */
8562 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = NIT_NULL;
8563 }
8564 /* ./parser//parser_prod.nit:1583 */
8565 goto label1;
8566 }
8567 label1: while(0);
8568 stack_frame_head = fra.me.prev;
8569 return;
8570 }
8571 void parser___parser_prod___AExternMethPropdef___visit_all(val_t p0, val_t p1){
8572 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8573 val_t REGB0;
8574 val_t REGB1;
8575 val_t tmp;
8576 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8577 fra.me.file = LOCATE_parser___parser_prod;
8578 fra.me.line = 1587;
8579 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___visit_all;
8580 fra.me.has_broke = 0;
8581 fra.me.REG_size = 4;
8582 fra.me.REG[0] = NIT_NULL;
8583 fra.me.REG[1] = NIT_NULL;
8584 fra.me.REG[2] = NIT_NULL;
8585 fra.me.REG[3] = NIT_NULL;
8586 fra.me.REG[0] = p0;
8587 fra.me.REG[1] = p1;
8588 /* ./parser//parser_prod.nit:1587 */
8589 fra.me.REG[2] = fra.me.REG[0];
8590 /* ./parser//parser_prod.nit:1589 */
8591 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
8592 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8593 if (UNTAG_Bool(REGB0)) {
8594 } else {
8595 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8596 if (UNTAG_Bool(REGB1)) {
8597 REGB1 = TAG_Bool(false);
8598 REGB0 = REGB1;
8599 } else {
8600 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8601 REGB0 = REGB1;
8602 }
8603 }
8604 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8605 if (UNTAG_Bool(REGB0)) {
8606 /* ./parser//parser_prod.nit:1590 */
8607 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
8608 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*/;
8609 if (UNTAG_Bool(REGB0)) {
8610 } else {
8611 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1590);
8612 }
8613 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8614 }
8615 /* ./parser//parser_prod.nit:1592 */
8616 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
8617 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8618 if (UNTAG_Bool(REGB0)) {
8619 } else {
8620 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8621 if (UNTAG_Bool(REGB1)) {
8622 REGB1 = TAG_Bool(false);
8623 REGB0 = REGB1;
8624 } else {
8625 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8626 REGB0 = REGB1;
8627 }
8628 }
8629 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8630 if (UNTAG_Bool(REGB0)) {
8631 /* ./parser//parser_prod.nit:1593 */
8632 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
8633 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*/;
8634 if (UNTAG_Bool(REGB0)) {
8635 } else {
8636 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1593);
8637 }
8638 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8639 }
8640 /* ./parser//parser_prod.nit:1595 */
8641 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
8642 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8643 /* ./parser//parser_prod.nit:1596 */
8644 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
8645 if (UNTAG_Bool(REGB0)) {
8646 } else {
8647 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1596);
8648 }
8649 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[2]);
8650 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8651 /* ./parser//parser_prod.nit:1597 */
8652 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
8653 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8654 /* ./parser//parser_prod.nit:1598 */
8655 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
8656 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8657 /* ./parser//parser_prod.nit:1599 */
8658 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
8659 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8660 if (UNTAG_Bool(REGB0)) {
8661 } else {
8662 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8663 if (UNTAG_Bool(REGB1)) {
8664 REGB1 = TAG_Bool(false);
8665 REGB0 = REGB1;
8666 } else {
8667 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8668 REGB0 = REGB1;
8669 }
8670 }
8671 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8672 if (UNTAG_Bool(REGB0)) {
8673 /* ./parser//parser_prod.nit:1600 */
8674 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
8675 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*/;
8676 if (UNTAG_Bool(REGB0)) {
8677 } else {
8678 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1600);
8679 }
8680 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8681 }
8682 /* ./parser//parser_prod.nit:1602 */
8683 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
8684 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8685 if (UNTAG_Bool(REGB0)) {
8686 } else {
8687 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8688 if (UNTAG_Bool(REGB1)) {
8689 REGB1 = TAG_Bool(false);
8690 REGB0 = REGB1;
8691 } else {
8692 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8693 REGB0 = REGB1;
8694 }
8695 }
8696 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8697 if (UNTAG_Bool(REGB0)) {
8698 /* ./parser//parser_prod.nit:1603 */
8699 fra.me.REG[2] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
8700 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*/;
8701 if (UNTAG_Bool(REGB0)) {
8702 } else {
8703 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1603);
8704 }
8705 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8706 }
8707 stack_frame_head = fra.me.prev;
8708 return;
8709 }
8710 void parser___parser_prod___AConcreteMethPropdef___empty_init(val_t p0, int* init_table){
8711 int itpos47 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteMethPropdef].i;
8712 struct {struct stack_frame_t me;} fra;
8713 val_t tmp;
8714 if (init_table[itpos47]) return;
8715 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8716 fra.me.file = LOCATE_parser___parser_prod;
8717 fra.me.line = 1608;
8718 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___empty_init;
8719 fra.me.has_broke = 0;
8720 fra.me.REG_size = 1;
8721 fra.me.REG[0] = NIT_NULL;
8722 fra.me.REG[0] = p0;
8723 stack_frame_head = fra.me.prev;
8724 init_table[itpos47] = 1;
8725 return;
8726 }
8727 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){
8728 int itpos48 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteMethPropdef].i;
8729 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
8730 val_t REGB0;
8731 val_t REGB1;
8732 val_t tmp;
8733 if (init_table[itpos48]) return;
8734 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8735 fra.me.file = LOCATE_parser___parser_prod;
8736 fra.me.line = 1610;
8737 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef;
8738 fra.me.has_broke = 0;
8739 fra.me.REG_size = 9;
8740 fra.me.REG[0] = NIT_NULL;
8741 fra.me.REG[1] = NIT_NULL;
8742 fra.me.REG[2] = NIT_NULL;
8743 fra.me.REG[3] = NIT_NULL;
8744 fra.me.REG[4] = NIT_NULL;
8745 fra.me.REG[5] = NIT_NULL;
8746 fra.me.REG[6] = NIT_NULL;
8747 fra.me.REG[7] = NIT_NULL;
8748 fra.me.REG[8] = NIT_NULL;
8749 fra.me.REG[0] = p0;
8750 fra.me.REG[1] = p1;
8751 fra.me.REG[2] = p2;
8752 fra.me.REG[3] = p3;
8753 fra.me.REG[4] = p4;
8754 fra.me.REG[5] = p5;
8755 fra.me.REG[6] = p6;
8756 fra.me.REG[7] = p7;
8757 /* ./parser//parser_prod.nit:1610 */
8758 fra.me.REG[8] = fra.me.REG[0];
8759 /* ./parser//parser_prod.nit:1620 */
8760 CALL_parser___parser_prod___AConcreteMethPropdef___empty_init(fra.me.REG[8])(fra.me.REG[8], init_table);
8761 /* ./parser//parser_prod.nit:1621 */
8762 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[8]) = fra.me.REG[1];
8763 /* ./parser//parser_prod.nit:1622 */
8764 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8765 if (UNTAG_Bool(REGB0)) {
8766 } else {
8767 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8768 if (UNTAG_Bool(REGB1)) {
8769 REGB1 = TAG_Bool(false);
8770 REGB0 = REGB1;
8771 } else {
8772 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8773 REGB0 = REGB1;
8774 }
8775 }
8776 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8777 if (UNTAG_Bool(REGB0)) {
8778 /* ./parser//parser_prod.nit:1623 */
8779 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8780 if (UNTAG_Bool(REGB0)) {
8781 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1623);
8782 }
8783 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
8784 }
8785 /* ./parser//parser_prod.nit:1625 */
8786 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[8]) = fra.me.REG[2];
8787 /* ./parser//parser_prod.nit:1626 */
8788 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8789 if (UNTAG_Bool(REGB0)) {
8790 } else {
8791 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8792 if (UNTAG_Bool(REGB1)) {
8793 REGB1 = TAG_Bool(false);
8794 REGB0 = REGB1;
8795 } else {
8796 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8797 REGB0 = REGB1;
8798 }
8799 }
8800 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8801 if (UNTAG_Bool(REGB0)) {
8802 /* ./parser//parser_prod.nit:1627 */
8803 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8804 if (UNTAG_Bool(REGB0)) {
8805 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1627);
8806 }
8807 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
8808 }
8809 /* ./parser//parser_prod.nit:1629 */
8810 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
8811 if (UNTAG_Bool(REGB0)) {
8812 } else {
8813 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1629);
8814 }
8815 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[8]) = fra.me.REG[3];
8816 /* ./parser//parser_prod.nit:1630 */
8817 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8818 if (UNTAG_Bool(REGB0)) {
8819 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1630);
8820 }
8821 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
8822 /* ./parser//parser_prod.nit:1631 */
8823 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8824 if (UNTAG_Bool(REGB0)) {
8825 } else {
8826 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1631);
8827 }
8828 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[8]) = fra.me.REG[4];
8829 /* ./parser//parser_prod.nit:1632 */
8830 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8831 if (UNTAG_Bool(REGB0)) {
8832 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1632);
8833 }
8834 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
8835 /* ./parser//parser_prod.nit:1633 */
8836 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
8837 if (UNTAG_Bool(REGB0)) {
8838 } else {
8839 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1633);
8840 }
8841 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[8]) = fra.me.REG[5];
8842 /* ./parser//parser_prod.nit:1634 */
8843 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8844 if (UNTAG_Bool(REGB0)) {
8845 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1634);
8846 }
8847 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
8848 /* ./parser//parser_prod.nit:1635 */
8849 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
8850 if (UNTAG_Bool(REGB0)) {
8851 } else {
8852 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1635);
8853 }
8854 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[8]) = fra.me.REG[6];
8855 /* ./parser//parser_prod.nit:1636 */
8856 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8857 if (UNTAG_Bool(REGB0)) {
8858 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1636);
8859 }
8860 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
8861 /* ./parser//parser_prod.nit:1637 */
8862 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[8]) = fra.me.REG[7];
8863 /* ./parser//parser_prod.nit:1638 */
8864 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8865 if (UNTAG_Bool(REGB0)) {
8866 } else {
8867 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8868 if (UNTAG_Bool(REGB1)) {
8869 REGB1 = TAG_Bool(false);
8870 REGB0 = REGB1;
8871 } else {
8872 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
8873 REGB0 = REGB1;
8874 }
8875 }
8876 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8877 if (UNTAG_Bool(REGB0)) {
8878 /* ./parser//parser_prod.nit:1639 */
8879 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8880 if (UNTAG_Bool(REGB0)) {
8881 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1639);
8882 }
8883 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
8884 }
8885 stack_frame_head = fra.me.prev;
8886 init_table[itpos48] = 1;
8887 return;
8888 }
8889 void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
8890 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8891 val_t REGB0;
8892 val_t REGB1;
8893 val_t tmp;
8894 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8895 fra.me.file = LOCATE_parser___parser_prod;
8896 fra.me.line = 1643;
8897 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___replace_child;
8898 fra.me.has_broke = 0;
8899 fra.me.REG_size = 4;
8900 fra.me.REG[0] = NIT_NULL;
8901 fra.me.REG[1] = NIT_NULL;
8902 fra.me.REG[2] = NIT_NULL;
8903 fra.me.REG[3] = NIT_NULL;
8904 fra.me.REG[0] = p0;
8905 fra.me.REG[1] = p1;
8906 fra.me.REG[2] = p2;
8907 /* ./parser//parser_prod.nit:1645 */
8908 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
8909 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8910 if (UNTAG_Bool(REGB0)) {
8911 } else {
8912 REGB1 = TAG_Bool(fra.me.REG[3]==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[3])(fra.me.REG[3], fra.me.REG[1]);
8918 REGB0 = REGB1;
8919 }
8920 }
8921 if (UNTAG_Bool(REGB0)) {
8922 /* ./parser//parser_prod.nit:1646 */
8923 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8924 if (UNTAG_Bool(REGB0)) {
8925 } else {
8926 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8927 if (UNTAG_Bool(REGB1)) {
8928 REGB1 = TAG_Bool(false);
8929 REGB0 = REGB1;
8930 } else {
8931 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8932 REGB0 = REGB1;
8933 }
8934 }
8935 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8936 if (UNTAG_Bool(REGB0)) {
8937 /* ./parser//parser_prod.nit:1647 */
8938 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8939 if (UNTAG_Bool(REGB0)) {
8940 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1647);
8941 }
8942 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8943 /* ./parser//parser_prod.nit:1648 */
8944 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*/;
8945 if (UNTAG_Bool(REGB0)) {
8946 } else {
8947 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1648);
8948 }
8949 /* ./parser//parser_prod.nit:1649 */
8950 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
8951 } else {
8952 /* ./parser//parser_prod.nit:1651 */
8953 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
8954 }
8955 /* ./parser//parser_prod.nit:1653 */
8956 goto label1;
8957 }
8958 /* ./parser//parser_prod.nit:1655 */
8959 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
8960 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8961 if (UNTAG_Bool(REGB0)) {
8962 } else {
8963 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8964 if (UNTAG_Bool(REGB1)) {
8965 REGB1 = TAG_Bool(false);
8966 REGB0 = REGB1;
8967 } else {
8968 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8969 REGB0 = REGB1;
8970 }
8971 }
8972 if (UNTAG_Bool(REGB0)) {
8973 /* ./parser//parser_prod.nit:1656 */
8974 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8975 if (UNTAG_Bool(REGB0)) {
8976 } else {
8977 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8978 if (UNTAG_Bool(REGB1)) {
8979 REGB1 = TAG_Bool(false);
8980 REGB0 = REGB1;
8981 } else {
8982 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8983 REGB0 = REGB1;
8984 }
8985 }
8986 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8987 if (UNTAG_Bool(REGB0)) {
8988 /* ./parser//parser_prod.nit:1657 */
8989 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8990 if (UNTAG_Bool(REGB0)) {
8991 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1657);
8992 }
8993 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8994 /* ./parser//parser_prod.nit:1658 */
8995 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*/;
8996 if (UNTAG_Bool(REGB0)) {
8997 } else {
8998 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1658);
8999 }
9000 /* ./parser//parser_prod.nit:1659 */
9001 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
9002 } else {
9003 /* ./parser//parser_prod.nit:1661 */
9004 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
9005 }
9006 /* ./parser//parser_prod.nit:1663 */
9007 goto label1;
9008 }
9009 /* ./parser//parser_prod.nit:1665 */
9010 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
9011 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9012 if (UNTAG_Bool(REGB0)) {
9013 } else {
9014 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9015 if (UNTAG_Bool(REGB1)) {
9016 REGB1 = TAG_Bool(false);
9017 REGB0 = REGB1;
9018 } else {
9019 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9020 REGB0 = REGB1;
9021 }
9022 }
9023 if (UNTAG_Bool(REGB0)) {
9024 /* ./parser//parser_prod.nit:1666 */
9025 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9026 if (UNTAG_Bool(REGB0)) {
9027 } else {
9028 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9029 if (UNTAG_Bool(REGB1)) {
9030 REGB1 = TAG_Bool(false);
9031 REGB0 = REGB1;
9032 } else {
9033 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9034 REGB0 = REGB1;
9035 }
9036 }
9037 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9038 if (UNTAG_Bool(REGB0)) {
9039 /* ./parser//parser_prod.nit:1667 */
9040 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9041 if (UNTAG_Bool(REGB0)) {
9042 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1667);
9043 }
9044 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9045 /* ./parser//parser_prod.nit:1668 */
9046 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*/;
9047 if (UNTAG_Bool(REGB0)) {
9048 } else {
9049 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1668);
9050 }
9051 /* ./parser//parser_prod.nit:1669 */
9052 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
9053 } else {
9054 /* ./parser//parser_prod.nit:1671 */
9055 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1671);
9056 }
9057 /* ./parser//parser_prod.nit:1673 */
9058 goto label1;
9059 }
9060 /* ./parser//parser_prod.nit:1675 */
9061 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]);
9062 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9063 if (UNTAG_Bool(REGB0)) {
9064 } else {
9065 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9066 if (UNTAG_Bool(REGB1)) {
9067 REGB1 = TAG_Bool(false);
9068 REGB0 = REGB1;
9069 } else {
9070 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9071 REGB0 = REGB1;
9072 }
9073 }
9074 if (UNTAG_Bool(REGB0)) {
9075 /* ./parser//parser_prod.nit:1676 */
9076 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9077 if (UNTAG_Bool(REGB0)) {
9078 } else {
9079 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9080 if (UNTAG_Bool(REGB1)) {
9081 REGB1 = TAG_Bool(false);
9082 REGB0 = REGB1;
9083 } else {
9084 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9085 REGB0 = REGB1;
9086 }
9087 }
9088 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9089 if (UNTAG_Bool(REGB0)) {
9090 /* ./parser//parser_prod.nit:1677 */
9091 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9092 if (UNTAG_Bool(REGB0)) {
9093 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1677);
9094 }
9095 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9096 /* ./parser//parser_prod.nit:1678 */
9097 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*/;
9098 if (UNTAG_Bool(REGB0)) {
9099 } else {
9100 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1678);
9101 }
9102 /* ./parser//parser_prod.nit:1679 */
9103 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
9104 } else {
9105 /* ./parser//parser_prod.nit:1681 */
9106 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1681);
9107 }
9108 /* ./parser//parser_prod.nit:1683 */
9109 goto label1;
9110 }
9111 /* ./parser//parser_prod.nit:1685 */
9112 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
9113 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9114 if (UNTAG_Bool(REGB0)) {
9115 } else {
9116 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9117 if (UNTAG_Bool(REGB1)) {
9118 REGB1 = TAG_Bool(false);
9119 REGB0 = REGB1;
9120 } else {
9121 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9122 REGB0 = REGB1;
9123 }
9124 }
9125 if (UNTAG_Bool(REGB0)) {
9126 /* ./parser//parser_prod.nit:1686 */
9127 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9128 if (UNTAG_Bool(REGB0)) {
9129 } else {
9130 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9131 if (UNTAG_Bool(REGB1)) {
9132 REGB1 = TAG_Bool(false);
9133 REGB0 = REGB1;
9134 } else {
9135 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9136 REGB0 = REGB1;
9137 }
9138 }
9139 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9140 if (UNTAG_Bool(REGB0)) {
9141 /* ./parser//parser_prod.nit:1687 */
9142 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9143 if (UNTAG_Bool(REGB0)) {
9144 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1687);
9145 }
9146 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9147 /* ./parser//parser_prod.nit:1688 */
9148 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*/;
9149 if (UNTAG_Bool(REGB0)) {
9150 } else {
9151 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1688);
9152 }
9153 /* ./parser//parser_prod.nit:1689 */
9154 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
9155 } else {
9156 /* ./parser//parser_prod.nit:1691 */
9157 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1691);
9158 }
9159 /* ./parser//parser_prod.nit:1693 */
9160 goto label1;
9161 }
9162 /* ./parser//parser_prod.nit:1695 */
9163 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
9164 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9165 if (UNTAG_Bool(REGB0)) {
9166 } else {
9167 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9168 if (UNTAG_Bool(REGB1)) {
9169 REGB1 = TAG_Bool(false);
9170 REGB0 = REGB1;
9171 } else {
9172 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9173 REGB0 = REGB1;
9174 }
9175 }
9176 if (UNTAG_Bool(REGB0)) {
9177 /* ./parser//parser_prod.nit:1696 */
9178 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9179 if (UNTAG_Bool(REGB0)) {
9180 } else {
9181 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9182 if (UNTAG_Bool(REGB1)) {
9183 REGB1 = TAG_Bool(false);
9184 REGB0 = REGB1;
9185 } else {
9186 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9187 REGB0 = REGB1;
9188 }
9189 }
9190 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9191 if (UNTAG_Bool(REGB0)) {
9192 /* ./parser//parser_prod.nit:1697 */
9193 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9194 if (UNTAG_Bool(REGB0)) {
9195 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1697);
9196 }
9197 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9198 /* ./parser//parser_prod.nit:1698 */
9199 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*/;
9200 if (UNTAG_Bool(REGB0)) {
9201 } else {
9202 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1698);
9203 }
9204 /* ./parser//parser_prod.nit:1699 */
9205 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
9206 } else {
9207 /* ./parser//parser_prod.nit:1701 */
9208 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1701);
9209 }
9210 /* ./parser//parser_prod.nit:1703 */
9211 goto label1;
9212 }
9213 /* ./parser//parser_prod.nit:1705 */
9214 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
9215 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9216 if (UNTAG_Bool(REGB0)) {
9217 } else {
9218 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9219 if (UNTAG_Bool(REGB1)) {
9220 REGB1 = TAG_Bool(false);
9221 REGB0 = REGB1;
9222 } else {
9223 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9224 REGB0 = REGB1;
9225 }
9226 }
9227 if (UNTAG_Bool(REGB0)) {
9228 /* ./parser//parser_prod.nit:1706 */
9229 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9230 if (UNTAG_Bool(REGB0)) {
9231 } else {
9232 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9233 if (UNTAG_Bool(REGB1)) {
9234 REGB1 = TAG_Bool(false);
9235 REGB0 = REGB1;
9236 } else {
9237 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9238 REGB0 = REGB1;
9239 }
9240 }
9241 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9242 if (UNTAG_Bool(REGB0)) {
9243 /* ./parser//parser_prod.nit:1707 */
9244 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9245 if (UNTAG_Bool(REGB0)) {
9246 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1707);
9247 }
9248 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9249 /* ./parser//parser_prod.nit:1708 */
9250 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
9251 if (UNTAG_Bool(REGB0)) {
9252 } else {
9253 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1708);
9254 }
9255 /* ./parser//parser_prod.nit:1709 */
9256 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
9257 } else {
9258 /* ./parser//parser_prod.nit:1711 */
9259 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
9260 }
9261 /* ./parser//parser_prod.nit:1713 */
9262 goto label1;
9263 }
9264 label1: while(0);
9265 stack_frame_head = fra.me.prev;
9266 return;
9267 }
9268 void parser___parser_prod___AConcreteMethPropdef___visit_all(val_t p0, val_t p1){
9269 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9270 val_t REGB0;
9271 val_t REGB1;
9272 val_t tmp;
9273 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9274 fra.me.file = LOCATE_parser___parser_prod;
9275 fra.me.line = 1717;
9276 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___visit_all;
9277 fra.me.has_broke = 0;
9278 fra.me.REG_size = 4;
9279 fra.me.REG[0] = NIT_NULL;
9280 fra.me.REG[1] = NIT_NULL;
9281 fra.me.REG[2] = NIT_NULL;
9282 fra.me.REG[3] = NIT_NULL;
9283 fra.me.REG[0] = p0;
9284 fra.me.REG[1] = p1;
9285 /* ./parser//parser_prod.nit:1717 */
9286 fra.me.REG[2] = fra.me.REG[0];
9287 /* ./parser//parser_prod.nit:1719 */
9288 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
9289 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9290 if (UNTAG_Bool(REGB0)) {
9291 } else {
9292 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9293 if (UNTAG_Bool(REGB1)) {
9294 REGB1 = TAG_Bool(false);
9295 REGB0 = REGB1;
9296 } else {
9297 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9298 REGB0 = REGB1;
9299 }
9300 }
9301 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9302 if (UNTAG_Bool(REGB0)) {
9303 /* ./parser//parser_prod.nit:1720 */
9304 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
9305 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*/;
9306 if (UNTAG_Bool(REGB0)) {
9307 } else {
9308 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1720);
9309 }
9310 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9311 }
9312 /* ./parser//parser_prod.nit:1722 */
9313 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
9314 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9315 if (UNTAG_Bool(REGB0)) {
9316 } else {
9317 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9318 if (UNTAG_Bool(REGB1)) {
9319 REGB1 = TAG_Bool(false);
9320 REGB0 = REGB1;
9321 } else {
9322 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9323 REGB0 = REGB1;
9324 }
9325 }
9326 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9327 if (UNTAG_Bool(REGB0)) {
9328 /* ./parser//parser_prod.nit:1723 */
9329 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
9330 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*/;
9331 if (UNTAG_Bool(REGB0)) {
9332 } else {
9333 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1723);
9334 }
9335 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9336 }
9337 /* ./parser//parser_prod.nit:1725 */
9338 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
9339 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9340 /* ./parser//parser_prod.nit:1726 */
9341 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[2]);
9342 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9343 /* ./parser//parser_prod.nit:1727 */
9344 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
9345 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9346 /* ./parser//parser_prod.nit:1728 */
9347 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
9348 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9349 /* ./parser//parser_prod.nit:1729 */
9350 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
9351 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9352 if (UNTAG_Bool(REGB0)) {
9353 } else {
9354 REGB1 = TAG_Bool(fra.me.REG[3]==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[3])(fra.me.REG[3], NIT_NULL);
9360 REGB0 = REGB1;
9361 }
9362 }
9363 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9364 if (UNTAG_Bool(REGB0)) {
9365 /* ./parser//parser_prod.nit:1730 */
9366 fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
9367 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
9368 if (UNTAG_Bool(REGB0)) {
9369 } else {
9370 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1730);
9371 }
9372 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9373 }
9374 stack_frame_head = fra.me.prev;
9375 return;
9376 }
9377 void parser___parser_prod___AConcreteInitPropdef___empty_init(val_t p0, int* init_table){
9378 int itpos49 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteInitPropdef].i;
9379 struct {struct stack_frame_t me;} fra;
9380 val_t tmp;
9381 if (init_table[itpos49]) return;
9382 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9383 fra.me.file = LOCATE_parser___parser_prod;
9384 fra.me.line = 1735;
9385 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___empty_init;
9386 fra.me.has_broke = 0;
9387 fra.me.REG_size = 1;
9388 fra.me.REG[0] = NIT_NULL;
9389 fra.me.REG[0] = p0;
9390 /* ./parser//parser_prod.nit:1735 */
9391 CALL_parser___parser_nodes___AInitPropdef___init(fra.me.REG[0])(fra.me.REG[0], init_table);
9392 stack_frame_head = fra.me.prev;
9393 init_table[itpos49] = 1;
9394 return;
9395 }
9396 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){
9397 int itpos50 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteInitPropdef].i;
9398 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
9399 val_t REGB0;
9400 val_t REGB1;
9401 val_t tmp;
9402 if (init_table[itpos50]) return;
9403 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9404 fra.me.file = LOCATE_parser___parser_prod;
9405 fra.me.line = 1737;
9406 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef;
9407 fra.me.has_broke = 0;
9408 fra.me.REG_size = 9;
9409 fra.me.REG[0] = NIT_NULL;
9410 fra.me.REG[1] = NIT_NULL;
9411 fra.me.REG[2] = NIT_NULL;
9412 fra.me.REG[3] = NIT_NULL;
9413 fra.me.REG[4] = NIT_NULL;
9414 fra.me.REG[5] = NIT_NULL;
9415 fra.me.REG[6] = NIT_NULL;
9416 fra.me.REG[7] = NIT_NULL;
9417 fra.me.REG[8] = NIT_NULL;
9418 fra.me.REG[0] = p0;
9419 fra.me.REG[1] = p1;
9420 fra.me.REG[2] = p2;
9421 fra.me.REG[3] = p3;
9422 fra.me.REG[4] = p4;
9423 fra.me.REG[5] = p5;
9424 fra.me.REG[6] = p6;
9425 fra.me.REG[7] = p7;
9426 /* ./parser//parser_prod.nit:1737 */
9427 fra.me.REG[8] = fra.me.REG[0];
9428 /* ./parser//parser_prod.nit:1747 */
9429 CALL_parser___parser_prod___AConcreteInitPropdef___empty_init(fra.me.REG[8])(fra.me.REG[8], init_table);
9430 /* ./parser//parser_prod.nit:1748 */
9431 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[8]) = fra.me.REG[1];
9432 /* ./parser//parser_prod.nit:1749 */
9433 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9434 if (UNTAG_Bool(REGB0)) {
9435 } else {
9436 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9437 if (UNTAG_Bool(REGB1)) {
9438 REGB1 = TAG_Bool(false);
9439 REGB0 = REGB1;
9440 } else {
9441 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9442 REGB0 = REGB1;
9443 }
9444 }
9445 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9446 if (UNTAG_Bool(REGB0)) {
9447 /* ./parser//parser_prod.nit:1750 */
9448 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9449 if (UNTAG_Bool(REGB0)) {
9450 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1750);
9451 }
9452 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
9453 }
9454 /* ./parser//parser_prod.nit:1752 */
9455 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[8]) = fra.me.REG[2];
9456 /* ./parser//parser_prod.nit:1753 */
9457 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9458 if (UNTAG_Bool(REGB0)) {
9459 } else {
9460 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9461 if (UNTAG_Bool(REGB1)) {
9462 REGB1 = TAG_Bool(false);
9463 REGB0 = REGB1;
9464 } else {
9465 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9466 REGB0 = REGB1;
9467 }
9468 }
9469 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9470 if (UNTAG_Bool(REGB0)) {
9471 /* ./parser//parser_prod.nit:1754 */
9472 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9473 if (UNTAG_Bool(REGB0)) {
9474 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1754);
9475 }
9476 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
9477 }
9478 /* ./parser//parser_prod.nit:1756 */
9479 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
9480 if (UNTAG_Bool(REGB0)) {
9481 } else {
9482 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1756);
9483 }
9484 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[8]) = fra.me.REG[3];
9485 /* ./parser//parser_prod.nit:1757 */
9486 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9487 if (UNTAG_Bool(REGB0)) {
9488 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1757);
9489 }
9490 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
9491 /* ./parser//parser_prod.nit:1758 */
9492 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
9493 if (UNTAG_Bool(REGB0)) {
9494 } else {
9495 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1758);
9496 }
9497 ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[8]) = fra.me.REG[4];
9498 /* ./parser//parser_prod.nit:1759 */
9499 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9500 if (UNTAG_Bool(REGB0)) {
9501 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1759);
9502 }
9503 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
9504 /* ./parser//parser_prod.nit:1760 */
9505 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[8]) = fra.me.REG[5];
9506 /* ./parser//parser_prod.nit:1761 */
9507 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9508 if (UNTAG_Bool(REGB0)) {
9509 } else {
9510 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9511 if (UNTAG_Bool(REGB1)) {
9512 REGB1 = TAG_Bool(false);
9513 REGB0 = REGB1;
9514 } else {
9515 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
9516 REGB0 = REGB1;
9517 }
9518 }
9519 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9520 if (UNTAG_Bool(REGB0)) {
9521 /* ./parser//parser_prod.nit:1762 */
9522 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9523 if (UNTAG_Bool(REGB0)) {
9524 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1762);
9525 }
9526 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
9527 }
9528 /* ./parser//parser_prod.nit:1764 */
9529 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
9530 if (UNTAG_Bool(REGB0)) {
9531 } else {
9532 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1764);
9533 }
9534 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[8]) = fra.me.REG[6];
9535 /* ./parser//parser_prod.nit:1765 */
9536 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
9537 if (UNTAG_Bool(REGB0)) {
9538 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1765);
9539 }
9540 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
9541 /* ./parser//parser_prod.nit:1766 */
9542 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[8]) = fra.me.REG[7];
9543 /* ./parser//parser_prod.nit:1767 */
9544 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9545 if (UNTAG_Bool(REGB0)) {
9546 } else {
9547 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9548 if (UNTAG_Bool(REGB1)) {
9549 REGB1 = TAG_Bool(false);
9550 REGB0 = REGB1;
9551 } else {
9552 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
9553 REGB0 = REGB1;
9554 }
9555 }
9556 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9557 if (UNTAG_Bool(REGB0)) {
9558 /* ./parser//parser_prod.nit:1768 */
9559 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9560 if (UNTAG_Bool(REGB0)) {
9561 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1768);
9562 }
9563 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
9564 }
9565 stack_frame_head = fra.me.prev;
9566 init_table[itpos50] = 1;
9567 return;
9568 }
9569 void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t p1, val_t p2){
9570 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9571 val_t REGB0;
9572 val_t REGB1;
9573 val_t tmp;
9574 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9575 fra.me.file = LOCATE_parser___parser_prod;
9576 fra.me.line = 1772;
9577 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___replace_child;
9578 fra.me.has_broke = 0;
9579 fra.me.REG_size = 4;
9580 fra.me.REG[0] = NIT_NULL;
9581 fra.me.REG[1] = NIT_NULL;
9582 fra.me.REG[2] = NIT_NULL;
9583 fra.me.REG[3] = NIT_NULL;
9584 fra.me.REG[0] = p0;
9585 fra.me.REG[1] = p1;
9586 fra.me.REG[2] = p2;
9587 /* ./parser//parser_prod.nit:1774 */
9588 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
9589 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9590 if (UNTAG_Bool(REGB0)) {
9591 } else {
9592 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9593 if (UNTAG_Bool(REGB1)) {
9594 REGB1 = TAG_Bool(false);
9595 REGB0 = REGB1;
9596 } else {
9597 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9598 REGB0 = REGB1;
9599 }
9600 }
9601 if (UNTAG_Bool(REGB0)) {
9602 /* ./parser//parser_prod.nit:1775 */
9603 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9604 if (UNTAG_Bool(REGB0)) {
9605 } else {
9606 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9607 if (UNTAG_Bool(REGB1)) {
9608 REGB1 = TAG_Bool(false);
9609 REGB0 = REGB1;
9610 } else {
9611 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9612 REGB0 = REGB1;
9613 }
9614 }
9615 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9616 if (UNTAG_Bool(REGB0)) {
9617 /* ./parser//parser_prod.nit:1776 */
9618 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9619 if (UNTAG_Bool(REGB0)) {
9620 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1776);
9621 }
9622 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9623 /* ./parser//parser_prod.nit:1777 */
9624 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*/;
9625 if (UNTAG_Bool(REGB0)) {
9626 } else {
9627 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1777);
9628 }
9629 /* ./parser//parser_prod.nit:1778 */
9630 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
9631 } else {
9632 /* ./parser//parser_prod.nit:1780 */
9633 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
9634 }
9635 /* ./parser//parser_prod.nit:1782 */
9636 goto label1;
9637 }
9638 /* ./parser//parser_prod.nit:1784 */
9639 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9640 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9641 if (UNTAG_Bool(REGB0)) {
9642 } else {
9643 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9644 if (UNTAG_Bool(REGB1)) {
9645 REGB1 = TAG_Bool(false);
9646 REGB0 = REGB1;
9647 } else {
9648 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9649 REGB0 = REGB1;
9650 }
9651 }
9652 if (UNTAG_Bool(REGB0)) {
9653 /* ./parser//parser_prod.nit:1785 */
9654 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9655 if (UNTAG_Bool(REGB0)) {
9656 } else {
9657 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9658 if (UNTAG_Bool(REGB1)) {
9659 REGB1 = TAG_Bool(false);
9660 REGB0 = REGB1;
9661 } else {
9662 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9663 REGB0 = REGB1;
9664 }
9665 }
9666 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9667 if (UNTAG_Bool(REGB0)) {
9668 /* ./parser//parser_prod.nit:1786 */
9669 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9670 if (UNTAG_Bool(REGB0)) {
9671 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1786);
9672 }
9673 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9674 /* ./parser//parser_prod.nit:1787 */
9675 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*/;
9676 if (UNTAG_Bool(REGB0)) {
9677 } else {
9678 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1787);
9679 }
9680 /* ./parser//parser_prod.nit:1788 */
9681 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
9682 } else {
9683 /* ./parser//parser_prod.nit:1790 */
9684 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
9685 }
9686 /* ./parser//parser_prod.nit:1792 */
9687 goto label1;
9688 }
9689 /* ./parser//parser_prod.nit:1794 */
9690 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
9691 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9692 if (UNTAG_Bool(REGB0)) {
9693 } else {
9694 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9695 if (UNTAG_Bool(REGB1)) {
9696 REGB1 = TAG_Bool(false);
9697 REGB0 = REGB1;
9698 } else {
9699 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9700 REGB0 = REGB1;
9701 }
9702 }
9703 if (UNTAG_Bool(REGB0)) {
9704 /* ./parser//parser_prod.nit:1795 */
9705 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9706 if (UNTAG_Bool(REGB0)) {
9707 } else {
9708 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9709 if (UNTAG_Bool(REGB1)) {
9710 REGB1 = TAG_Bool(false);
9711 REGB0 = REGB1;
9712 } else {
9713 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9714 REGB0 = REGB1;
9715 }
9716 }
9717 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9718 if (UNTAG_Bool(REGB0)) {
9719 /* ./parser//parser_prod.nit:1796 */
9720 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9721 if (UNTAG_Bool(REGB0)) {
9722 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1796);
9723 }
9724 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9725 /* ./parser//parser_prod.nit:1797 */
9726 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*/;
9727 if (UNTAG_Bool(REGB0)) {
9728 } else {
9729 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1797);
9730 }
9731 /* ./parser//parser_prod.nit:1798 */
9732 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
9733 } else {
9734 /* ./parser//parser_prod.nit:1800 */
9735 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1800);
9736 }
9737 /* ./parser//parser_prod.nit:1802 */
9738 goto label1;
9739 }
9740 /* ./parser//parser_prod.nit:1804 */
9741 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0])!=NIT_NULL);
9742 if (UNTAG_Bool(REGB0)) {
9743 } else {
9744 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 1804);
9745 }
9746 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]);
9747 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
9748 if (UNTAG_Bool(REGB0)) {
9749 } else {
9750 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9751 REGB0 = REGB1;
9752 }
9753 if (UNTAG_Bool(REGB0)) {
9754 /* ./parser//parser_prod.nit:1805 */
9755 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9756 if (UNTAG_Bool(REGB0)) {
9757 } else {
9758 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9759 if (UNTAG_Bool(REGB1)) {
9760 REGB1 = TAG_Bool(false);
9761 REGB0 = REGB1;
9762 } else {
9763 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9764 REGB0 = REGB1;
9765 }
9766 }
9767 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9768 if (UNTAG_Bool(REGB0)) {
9769 /* ./parser//parser_prod.nit:1806 */
9770 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9771 if (UNTAG_Bool(REGB0)) {
9772 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1806);
9773 }
9774 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9775 /* ./parser//parser_prod.nit:1807 */
9776 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*/;
9777 if (UNTAG_Bool(REGB0)) {
9778 } else {
9779 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1807);
9780 }
9781 /* ./parser//parser_prod.nit:1808 */
9782 ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]) = fra.me.REG[2];
9783 } else {
9784 /* ./parser//parser_prod.nit:1810 */
9785 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1810);
9786 }
9787 /* ./parser//parser_prod.nit:1812 */
9788 goto label1;
9789 }
9790 /* ./parser//parser_prod.nit:1814 */
9791 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
9792 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9793 if (UNTAG_Bool(REGB0)) {
9794 } else {
9795 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9796 if (UNTAG_Bool(REGB1)) {
9797 REGB1 = TAG_Bool(false);
9798 REGB0 = REGB1;
9799 } else {
9800 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9801 REGB0 = REGB1;
9802 }
9803 }
9804 if (UNTAG_Bool(REGB0)) {
9805 /* ./parser//parser_prod.nit:1815 */
9806 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9807 if (UNTAG_Bool(REGB0)) {
9808 } else {
9809 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9810 if (UNTAG_Bool(REGB1)) {
9811 REGB1 = TAG_Bool(false);
9812 REGB0 = REGB1;
9813 } else {
9814 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9815 REGB0 = REGB1;
9816 }
9817 }
9818 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9819 if (UNTAG_Bool(REGB0)) {
9820 /* ./parser//parser_prod.nit:1816 */
9821 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9822 if (UNTAG_Bool(REGB0)) {
9823 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1816);
9824 }
9825 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9826 /* ./parser//parser_prod.nit:1817 */
9827 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*/;
9828 if (UNTAG_Bool(REGB0)) {
9829 } else {
9830 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1817);
9831 }
9832 /* ./parser//parser_prod.nit:1818 */
9833 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
9834 } else {
9835 /* ./parser//parser_prod.nit:1820 */
9836 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = NIT_NULL;
9837 }
9838 /* ./parser//parser_prod.nit:1822 */
9839 goto label1;
9840 }
9841 /* ./parser//parser_prod.nit:1824 */
9842 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
9843 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9844 if (UNTAG_Bool(REGB0)) {
9845 } else {
9846 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9847 if (UNTAG_Bool(REGB1)) {
9848 REGB1 = TAG_Bool(false);
9849 REGB0 = REGB1;
9850 } else {
9851 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9852 REGB0 = REGB1;
9853 }
9854 }
9855 if (UNTAG_Bool(REGB0)) {
9856 /* ./parser//parser_prod.nit:1825 */
9857 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9858 if (UNTAG_Bool(REGB0)) {
9859 } else {
9860 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9861 if (UNTAG_Bool(REGB1)) {
9862 REGB1 = TAG_Bool(false);
9863 REGB0 = REGB1;
9864 } else {
9865 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9866 REGB0 = REGB1;
9867 }
9868 }
9869 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9870 if (UNTAG_Bool(REGB0)) {
9871 /* ./parser//parser_prod.nit:1826 */
9872 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9873 if (UNTAG_Bool(REGB0)) {
9874 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1826);
9875 }
9876 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9877 /* ./parser//parser_prod.nit:1827 */
9878 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*/;
9879 if (UNTAG_Bool(REGB0)) {
9880 } else {
9881 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1827);
9882 }
9883 /* ./parser//parser_prod.nit:1828 */
9884 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
9885 } else {
9886 /* ./parser//parser_prod.nit:1830 */
9887 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1830);
9888 }
9889 /* ./parser//parser_prod.nit:1832 */
9890 goto label1;
9891 }
9892 /* ./parser//parser_prod.nit:1834 */
9893 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
9894 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9895 if (UNTAG_Bool(REGB0)) {
9896 } else {
9897 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9898 if (UNTAG_Bool(REGB1)) {
9899 REGB1 = TAG_Bool(false);
9900 REGB0 = REGB1;
9901 } else {
9902 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9903 REGB0 = REGB1;
9904 }
9905 }
9906 if (UNTAG_Bool(REGB0)) {
9907 /* ./parser//parser_prod.nit:1835 */
9908 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9909 if (UNTAG_Bool(REGB0)) {
9910 } else {
9911 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9912 if (UNTAG_Bool(REGB1)) {
9913 REGB1 = TAG_Bool(false);
9914 REGB0 = REGB1;
9915 } else {
9916 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9917 REGB0 = REGB1;
9918 }
9919 }
9920 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9921 if (UNTAG_Bool(REGB0)) {
9922 /* ./parser//parser_prod.nit:1836 */
9923 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9924 if (UNTAG_Bool(REGB0)) {
9925 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1836);
9926 }
9927 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9928 /* ./parser//parser_prod.nit:1837 */
9929 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
9930 if (UNTAG_Bool(REGB0)) {
9931 } else {
9932 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1837);
9933 }
9934 /* ./parser//parser_prod.nit:1838 */
9935 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
9936 } else {
9937 /* ./parser//parser_prod.nit:1840 */
9938 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
9939 }
9940 /* ./parser//parser_prod.nit:1842 */
9941 goto label1;
9942 }
9943 label1: while(0);
9944 stack_frame_head = fra.me.prev;
9945 return;
9946 }
9947 void parser___parser_prod___AConcreteInitPropdef___visit_all(val_t p0, val_t p1){
9948 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9949 val_t REGB0;
9950 val_t REGB1;
9951 val_t tmp;
9952 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9953 fra.me.file = LOCATE_parser___parser_prod;
9954 fra.me.line = 1846;
9955 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___visit_all;
9956 fra.me.has_broke = 0;
9957 fra.me.REG_size = 4;
9958 fra.me.REG[0] = NIT_NULL;
9959 fra.me.REG[1] = NIT_NULL;
9960 fra.me.REG[2] = NIT_NULL;
9961 fra.me.REG[3] = NIT_NULL;
9962 fra.me.REG[0] = p0;
9963 fra.me.REG[1] = p1;
9964 /* ./parser//parser_prod.nit:1846 */
9965 fra.me.REG[2] = fra.me.REG[0];
9966 /* ./parser//parser_prod.nit:1848 */
9967 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
9968 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9969 if (UNTAG_Bool(REGB0)) {
9970 } else {
9971 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9972 if (UNTAG_Bool(REGB1)) {
9973 REGB1 = TAG_Bool(false);
9974 REGB0 = REGB1;
9975 } else {
9976 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9977 REGB0 = REGB1;
9978 }
9979 }
9980 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9981 if (UNTAG_Bool(REGB0)) {
9982 /* ./parser//parser_prod.nit:1849 */
9983 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
9984 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*/;
9985 if (UNTAG_Bool(REGB0)) {
9986 } else {
9987 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1849);
9988 }
9989 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9990 }
9991 /* ./parser//parser_prod.nit:1851 */
9992 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
9993 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9994 if (UNTAG_Bool(REGB0)) {
9995 } else {
9996 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9997 if (UNTAG_Bool(REGB1)) {
9998 REGB1 = TAG_Bool(false);
9999 REGB0 = REGB1;
10000 } else {
10001 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10002 REGB0 = REGB1;
10003 }
10004 }
10005 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10006 if (UNTAG_Bool(REGB0)) {
10007 /* ./parser//parser_prod.nit:1852 */
10008 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
10009 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*/;
10010 if (UNTAG_Bool(REGB0)) {
10011 } else {
10012 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1852);
10013 }
10014 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10015 }
10016 /* ./parser//parser_prod.nit:1854 */
10017 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
10018 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10019 /* ./parser//parser_prod.nit:1855 */
10020 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[2])!=NIT_NULL);
10021 if (UNTAG_Bool(REGB0)) {
10022 } else {
10023 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 1855);
10024 }
10025 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[2]);
10026 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10027 /* ./parser//parser_prod.nit:1856 */
10028 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
10029 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10030 if (UNTAG_Bool(REGB0)) {
10031 } else {
10032 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10033 if (UNTAG_Bool(REGB1)) {
10034 REGB1 = TAG_Bool(false);
10035 REGB0 = REGB1;
10036 } else {
10037 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10038 REGB0 = REGB1;
10039 }
10040 }
10041 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10042 if (UNTAG_Bool(REGB0)) {
10043 /* ./parser//parser_prod.nit:1857 */
10044 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
10045 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*/;
10046 if (UNTAG_Bool(REGB0)) {
10047 } else {
10048 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1857);
10049 }
10050 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10051 }
10052 /* ./parser//parser_prod.nit:1859 */
10053 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
10054 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10055 /* ./parser//parser_prod.nit:1860 */
10056 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
10057 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10058 if (UNTAG_Bool(REGB0)) {
10059 } else {
10060 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10061 if (UNTAG_Bool(REGB1)) {
10062 REGB1 = TAG_Bool(false);
10063 REGB0 = REGB1;
10064 } else {
10065 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10066 REGB0 = REGB1;
10067 }
10068 }
10069 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10070 if (UNTAG_Bool(REGB0)) {
10071 /* ./parser//parser_prod.nit:1861 */
10072 fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
10073 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
10074 if (UNTAG_Bool(REGB0)) {
10075 } else {
10076 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1861);
10077 }
10078 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10079 }
10080 stack_frame_head = fra.me.prev;
10081 return;
10082 }
10083 void parser___parser_prod___AExternInitPropdef___empty_init(val_t p0, int* init_table){
10084 int itpos51 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternInitPropdef].i;
10085 struct {struct stack_frame_t me;} fra;
10086 val_t tmp;
10087 if (init_table[itpos51]) return;
10088 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10089 fra.me.file = LOCATE_parser___parser_prod;
10090 fra.me.line = 1866;
10091 fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___empty_init;
10092 fra.me.has_broke = 0;
10093 fra.me.REG_size = 1;
10094 fra.me.REG[0] = NIT_NULL;
10095 fra.me.REG[0] = p0;
10096 /* ./parser//parser_prod.nit:1866 */
10097 CALL_parser___parser_nodes___AInitPropdef___init(fra.me.REG[0])(fra.me.REG[0], init_table);
10098 stack_frame_head = fra.me.prev;
10099 init_table[itpos51] = 1;
10100 return;
10101 }
10102 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){
10103 int itpos52 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternInitPropdef].i;
10104 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
10105 val_t REGB0;
10106 val_t REGB1;
10107 val_t tmp;
10108 if (init_table[itpos52]) return;
10109 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10110 fra.me.file = LOCATE_parser___parser_prod;
10111 fra.me.line = 1868;
10112 fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef;
10113 fra.me.has_broke = 0;
10114 fra.me.REG_size = 10;
10115 fra.me.REG[0] = NIT_NULL;
10116 fra.me.REG[1] = NIT_NULL;
10117 fra.me.REG[2] = NIT_NULL;
10118 fra.me.REG[3] = NIT_NULL;
10119 fra.me.REG[4] = NIT_NULL;
10120 fra.me.REG[5] = NIT_NULL;
10121 fra.me.REG[6] = NIT_NULL;
10122 fra.me.REG[7] = NIT_NULL;
10123 fra.me.REG[8] = NIT_NULL;
10124 fra.me.REG[9] = NIT_NULL;
10125 fra.me.REG[0] = p0;
10126 fra.me.REG[1] = p1;
10127 fra.me.REG[2] = p2;
10128 fra.me.REG[3] = p3;
10129 fra.me.REG[4] = p4;
10130 fra.me.REG[5] = p5;
10131 fra.me.REG[6] = p6;
10132 fra.me.REG[7] = p7;
10133 fra.me.REG[8] = p8;
10134 /* ./parser//parser_prod.nit:1868 */
10135 fra.me.REG[9] = fra.me.REG[0];
10136 /* ./parser//parser_prod.nit:1879 */
10137 CALL_parser___parser_prod___AExternInitPropdef___empty_init(fra.me.REG[9])(fra.me.REG[9], init_table);
10138 /* ./parser//parser_prod.nit:1880 */
10139 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[9]) = fra.me.REG[1];
10140 /* ./parser//parser_prod.nit:1881 */
10141 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10142 if (UNTAG_Bool(REGB0)) {
10143 } else {
10144 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10145 if (UNTAG_Bool(REGB1)) {
10146 REGB1 = TAG_Bool(false);
10147 REGB0 = REGB1;
10148 } else {
10149 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10150 REGB0 = REGB1;
10151 }
10152 }
10153 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10154 if (UNTAG_Bool(REGB0)) {
10155 /* ./parser//parser_prod.nit:1882 */
10156 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10157 if (UNTAG_Bool(REGB0)) {
10158 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1882);
10159 }
10160 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
10161 }
10162 /* ./parser//parser_prod.nit:1884 */
10163 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[9]) = fra.me.REG[2];
10164 /* ./parser//parser_prod.nit:1885 */
10165 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10166 if (UNTAG_Bool(REGB0)) {
10167 } else {
10168 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10169 if (UNTAG_Bool(REGB1)) {
10170 REGB1 = TAG_Bool(false);
10171 REGB0 = REGB1;
10172 } else {
10173 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10174 REGB0 = REGB1;
10175 }
10176 }
10177 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10178 if (UNTAG_Bool(REGB0)) {
10179 /* ./parser//parser_prod.nit:1886 */
10180 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10181 if (UNTAG_Bool(REGB0)) {
10182 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1886);
10183 }
10184 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[9]);
10185 }
10186 /* ./parser//parser_prod.nit:1888 */
10187 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
10188 if (UNTAG_Bool(REGB0)) {
10189 } else {
10190 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1888);
10191 }
10192 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[9]) = fra.me.REG[3];
10193 /* ./parser//parser_prod.nit:1889 */
10194 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10195 if (UNTAG_Bool(REGB0)) {
10196 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1889);
10197 }
10198 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]);
10199 /* ./parser//parser_prod.nit:1890 */
10200 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
10201 if (UNTAG_Bool(REGB0)) {
10202 } else {
10203 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1890);
10204 }
10205 ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[9]) = fra.me.REG[4];
10206 /* ./parser//parser_prod.nit:1891 */
10207 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
10208 if (UNTAG_Bool(REGB0)) {
10209 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1891);
10210 }
10211 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
10212 /* ./parser//parser_prod.nit:1892 */
10213 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[9]) = fra.me.REG[5];
10214 /* ./parser//parser_prod.nit:1893 */
10215 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10216 if (UNTAG_Bool(REGB0)) {
10217 } else {
10218 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10219 if (UNTAG_Bool(REGB1)) {
10220 REGB1 = TAG_Bool(false);
10221 REGB0 = REGB1;
10222 } else {
10223 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10224 REGB0 = REGB1;
10225 }
10226 }
10227 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10228 if (UNTAG_Bool(REGB0)) {
10229 /* ./parser//parser_prod.nit:1894 */
10230 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10231 if (UNTAG_Bool(REGB0)) {
10232 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1894);
10233 }
10234 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[9]);
10235 }
10236 /* ./parser//parser_prod.nit:1896 */
10237 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
10238 if (UNTAG_Bool(REGB0)) {
10239 } else {
10240 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1896);
10241 }
10242 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[9]) = fra.me.REG[6];
10243 /* ./parser//parser_prod.nit:1897 */
10244 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
10245 if (UNTAG_Bool(REGB0)) {
10246 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1897);
10247 }
10248 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
10249 /* ./parser//parser_prod.nit:1898 */
10250 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[9]) = fra.me.REG[7];
10251 /* ./parser//parser_prod.nit:1899 */
10252 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10253 if (UNTAG_Bool(REGB0)) {
10254 } else {
10255 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10256 if (UNTAG_Bool(REGB1)) {
10257 REGB1 = TAG_Bool(false);
10258 REGB0 = REGB1;
10259 } else {
10260 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
10261 REGB0 = REGB1;
10262 }
10263 }
10264 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10265 if (UNTAG_Bool(REGB0)) {
10266 /* ./parser//parser_prod.nit:1900 */
10267 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10268 if (UNTAG_Bool(REGB0)) {
10269 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1900);
10270 }
10271 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]);
10272 }
10273 /* ./parser//parser_prod.nit:1902 */
10274 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[9]) = fra.me.REG[8];
10275 /* ./parser//parser_prod.nit:1903 */
10276 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
10277 if (UNTAG_Bool(REGB0)) {
10278 } else {
10279 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
10280 if (UNTAG_Bool(REGB1)) {
10281 REGB1 = TAG_Bool(false);
10282 REGB0 = REGB1;
10283 } else {
10284 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
10285 REGB0 = REGB1;
10286 }
10287 }
10288 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10289 if (UNTAG_Bool(REGB0)) {
10290 /* ./parser//parser_prod.nit:1904 */
10291 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
10292 if (UNTAG_Bool(REGB0)) {
10293 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1904);
10294 }
10295 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
10296 }
10297 stack_frame_head = fra.me.prev;
10298 init_table[itpos52] = 1;
10299 return;
10300 }
10301 void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p1, val_t p2){
10302 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10303 val_t REGB0;
10304 val_t REGB1;
10305 val_t tmp;
10306 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10307 fra.me.file = LOCATE_parser___parser_prod;
10308 fra.me.line = 1908;
10309 fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___replace_child;
10310 fra.me.has_broke = 0;
10311 fra.me.REG_size = 4;
10312 fra.me.REG[0] = NIT_NULL;
10313 fra.me.REG[1] = NIT_NULL;
10314 fra.me.REG[2] = NIT_NULL;
10315 fra.me.REG[3] = NIT_NULL;
10316 fra.me.REG[0] = p0;
10317 fra.me.REG[1] = p1;
10318 fra.me.REG[2] = p2;
10319 /* ./parser//parser_prod.nit:1910 */
10320 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
10321 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10322 if (UNTAG_Bool(REGB0)) {
10323 } else {
10324 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10325 if (UNTAG_Bool(REGB1)) {
10326 REGB1 = TAG_Bool(false);
10327 REGB0 = REGB1;
10328 } else {
10329 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10330 REGB0 = REGB1;
10331 }
10332 }
10333 if (UNTAG_Bool(REGB0)) {
10334 /* ./parser//parser_prod.nit:1911 */
10335 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10336 if (UNTAG_Bool(REGB0)) {
10337 } else {
10338 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10339 if (UNTAG_Bool(REGB1)) {
10340 REGB1 = TAG_Bool(false);
10341 REGB0 = REGB1;
10342 } else {
10343 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10344 REGB0 = REGB1;
10345 }
10346 }
10347 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10348 if (UNTAG_Bool(REGB0)) {
10349 /* ./parser//parser_prod.nit:1912 */
10350 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10351 if (UNTAG_Bool(REGB0)) {
10352 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1912);
10353 }
10354 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10355 /* ./parser//parser_prod.nit:1913 */
10356 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*/;
10357 if (UNTAG_Bool(REGB0)) {
10358 } else {
10359 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1913);
10360 }
10361 /* ./parser//parser_prod.nit:1914 */
10362 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
10363 } else {
10364 /* ./parser//parser_prod.nit:1916 */
10365 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
10366 }
10367 /* ./parser//parser_prod.nit:1918 */
10368 goto label1;
10369 }
10370 /* ./parser//parser_prod.nit:1920 */
10371 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
10372 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10373 if (UNTAG_Bool(REGB0)) {
10374 } else {
10375 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10376 if (UNTAG_Bool(REGB1)) {
10377 REGB1 = TAG_Bool(false);
10378 REGB0 = REGB1;
10379 } else {
10380 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10381 REGB0 = REGB1;
10382 }
10383 }
10384 if (UNTAG_Bool(REGB0)) {
10385 /* ./parser//parser_prod.nit:1921 */
10386 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10387 if (UNTAG_Bool(REGB0)) {
10388 } else {
10389 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10390 if (UNTAG_Bool(REGB1)) {
10391 REGB1 = TAG_Bool(false);
10392 REGB0 = REGB1;
10393 } else {
10394 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10395 REGB0 = REGB1;
10396 }
10397 }
10398 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10399 if (UNTAG_Bool(REGB0)) {
10400 /* ./parser//parser_prod.nit:1922 */
10401 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10402 if (UNTAG_Bool(REGB0)) {
10403 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1922);
10404 }
10405 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10406 /* ./parser//parser_prod.nit:1923 */
10407 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*/;
10408 if (UNTAG_Bool(REGB0)) {
10409 } else {
10410 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1923);
10411 }
10412 /* ./parser//parser_prod.nit:1924 */
10413 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
10414 } else {
10415 /* ./parser//parser_prod.nit:1926 */
10416 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
10417 }
10418 /* ./parser//parser_prod.nit:1928 */
10419 goto label1;
10420 }
10421 /* ./parser//parser_prod.nit:1930 */
10422 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
10423 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10424 if (UNTAG_Bool(REGB0)) {
10425 } else {
10426 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10427 if (UNTAG_Bool(REGB1)) {
10428 REGB1 = TAG_Bool(false);
10429 REGB0 = REGB1;
10430 } else {
10431 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10432 REGB0 = REGB1;
10433 }
10434 }
10435 if (UNTAG_Bool(REGB0)) {
10436 /* ./parser//parser_prod.nit:1931 */
10437 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10438 if (UNTAG_Bool(REGB0)) {
10439 } else {
10440 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10441 if (UNTAG_Bool(REGB1)) {
10442 REGB1 = TAG_Bool(false);
10443 REGB0 = REGB1;
10444 } else {
10445 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10446 REGB0 = REGB1;
10447 }
10448 }
10449 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10450 if (UNTAG_Bool(REGB0)) {
10451 /* ./parser//parser_prod.nit:1932 */
10452 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10453 if (UNTAG_Bool(REGB0)) {
10454 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1932);
10455 }
10456 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10457 /* ./parser//parser_prod.nit:1933 */
10458 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*/;
10459 if (UNTAG_Bool(REGB0)) {
10460 } else {
10461 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1933);
10462 }
10463 /* ./parser//parser_prod.nit:1934 */
10464 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
10465 } else {
10466 /* ./parser//parser_prod.nit:1936 */
10467 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1936);
10468 }
10469 /* ./parser//parser_prod.nit:1938 */
10470 goto label1;
10471 }
10472 /* ./parser//parser_prod.nit:1940 */
10473 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[0])!=NIT_NULL);
10474 if (UNTAG_Bool(REGB0)) {
10475 } else {
10476 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 1940);
10477 }
10478 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[0]);
10479 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
10480 if (UNTAG_Bool(REGB0)) {
10481 } else {
10482 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10483 REGB0 = REGB1;
10484 }
10485 if (UNTAG_Bool(REGB0)) {
10486 /* ./parser//parser_prod.nit:1941 */
10487 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10488 if (UNTAG_Bool(REGB0)) {
10489 } else {
10490 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10491 if (UNTAG_Bool(REGB1)) {
10492 REGB1 = TAG_Bool(false);
10493 REGB0 = REGB1;
10494 } else {
10495 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10496 REGB0 = REGB1;
10497 }
10498 }
10499 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10500 if (UNTAG_Bool(REGB0)) {
10501 /* ./parser//parser_prod.nit:1942 */
10502 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10503 if (UNTAG_Bool(REGB0)) {
10504 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1942);
10505 }
10506 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10507 /* ./parser//parser_prod.nit:1943 */
10508 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*/;
10509 if (UNTAG_Bool(REGB0)) {
10510 } else {
10511 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1943);
10512 }
10513 /* ./parser//parser_prod.nit:1944 */
10514 ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[0]) = fra.me.REG[2];
10515 } else {
10516 /* ./parser//parser_prod.nit:1946 */
10517 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1946);
10518 }
10519 /* ./parser//parser_prod.nit:1948 */
10520 goto label1;
10521 }
10522 /* ./parser//parser_prod.nit:1950 */
10523 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
10524 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10525 if (UNTAG_Bool(REGB0)) {
10526 } else {
10527 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10528 if (UNTAG_Bool(REGB1)) {
10529 REGB1 = TAG_Bool(false);
10530 REGB0 = REGB1;
10531 } else {
10532 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10533 REGB0 = REGB1;
10534 }
10535 }
10536 if (UNTAG_Bool(REGB0)) {
10537 /* ./parser//parser_prod.nit:1951 */
10538 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10539 if (UNTAG_Bool(REGB0)) {
10540 } else {
10541 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10542 if (UNTAG_Bool(REGB1)) {
10543 REGB1 = TAG_Bool(false);
10544 REGB0 = REGB1;
10545 } else {
10546 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10547 REGB0 = REGB1;
10548 }
10549 }
10550 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10551 if (UNTAG_Bool(REGB0)) {
10552 /* ./parser//parser_prod.nit:1952 */
10553 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10554 if (UNTAG_Bool(REGB0)) {
10555 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1952);
10556 }
10557 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10558 /* ./parser//parser_prod.nit:1953 */
10559 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*/;
10560 if (UNTAG_Bool(REGB0)) {
10561 } else {
10562 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1953);
10563 }
10564 /* ./parser//parser_prod.nit:1954 */
10565 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
10566 } else {
10567 /* ./parser//parser_prod.nit:1956 */
10568 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = NIT_NULL;
10569 }
10570 /* ./parser//parser_prod.nit:1958 */
10571 goto label1;
10572 }
10573 /* ./parser//parser_prod.nit:1960 */
10574 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
10575 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10576 if (UNTAG_Bool(REGB0)) {
10577 } else {
10578 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10579 if (UNTAG_Bool(REGB1)) {
10580 REGB1 = TAG_Bool(false);
10581 REGB0 = REGB1;
10582 } else {
10583 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10584 REGB0 = REGB1;
10585 }
10586 }
10587 if (UNTAG_Bool(REGB0)) {
10588 /* ./parser//parser_prod.nit:1961 */
10589 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10590 if (UNTAG_Bool(REGB0)) {
10591 } else {
10592 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10593 if (UNTAG_Bool(REGB1)) {
10594 REGB1 = TAG_Bool(false);
10595 REGB0 = REGB1;
10596 } else {
10597 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10598 REGB0 = REGB1;
10599 }
10600 }
10601 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10602 if (UNTAG_Bool(REGB0)) {
10603 /* ./parser//parser_prod.nit:1962 */
10604 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10605 if (UNTAG_Bool(REGB0)) {
10606 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1962);
10607 }
10608 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10609 /* ./parser//parser_prod.nit:1963 */
10610 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*/;
10611 if (UNTAG_Bool(REGB0)) {
10612 } else {
10613 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1963);
10614 }
10615 /* ./parser//parser_prod.nit:1964 */
10616 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
10617 } else {
10618 /* ./parser//parser_prod.nit:1966 */
10619 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1966);
10620 }
10621 /* ./parser//parser_prod.nit:1968 */
10622 goto label1;
10623 }
10624 /* ./parser//parser_prod.nit:1970 */
10625 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]);
10626 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10627 if (UNTAG_Bool(REGB0)) {
10628 } else {
10629 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10630 if (UNTAG_Bool(REGB1)) {
10631 REGB1 = TAG_Bool(false);
10632 REGB0 = REGB1;
10633 } else {
10634 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10635 REGB0 = REGB1;
10636 }
10637 }
10638 if (UNTAG_Bool(REGB0)) {
10639 /* ./parser//parser_prod.nit:1971 */
10640 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10641 if (UNTAG_Bool(REGB0)) {
10642 } else {
10643 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10644 if (UNTAG_Bool(REGB1)) {
10645 REGB1 = TAG_Bool(false);
10646 REGB0 = REGB1;
10647 } else {
10648 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10649 REGB0 = REGB1;
10650 }
10651 }
10652 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10653 if (UNTAG_Bool(REGB0)) {
10654 /* ./parser//parser_prod.nit:1972 */
10655 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10656 if (UNTAG_Bool(REGB0)) {
10657 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1972);
10658 }
10659 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10660 /* ./parser//parser_prod.nit:1973 */
10661 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*/;
10662 if (UNTAG_Bool(REGB0)) {
10663 } else {
10664 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1973);
10665 }
10666 /* ./parser//parser_prod.nit:1974 */
10667 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[2];
10668 } else {
10669 /* ./parser//parser_prod.nit:1976 */
10670 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = NIT_NULL;
10671 }
10672 /* ./parser//parser_prod.nit:1978 */
10673 goto label1;
10674 }
10675 /* ./parser//parser_prod.nit:1980 */
10676 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]);
10677 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10678 if (UNTAG_Bool(REGB0)) {
10679 } else {
10680 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10681 if (UNTAG_Bool(REGB1)) {
10682 REGB1 = TAG_Bool(false);
10683 REGB0 = REGB1;
10684 } else {
10685 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10686 REGB0 = REGB1;
10687 }
10688 }
10689 if (UNTAG_Bool(REGB0)) {
10690 /* ./parser//parser_prod.nit:1981 */
10691 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10692 if (UNTAG_Bool(REGB0)) {
10693 } else {
10694 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10695 if (UNTAG_Bool(REGB1)) {
10696 REGB1 = TAG_Bool(false);
10697 REGB0 = REGB1;
10698 } else {
10699 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10700 REGB0 = REGB1;
10701 }
10702 }
10703 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10704 if (UNTAG_Bool(REGB0)) {
10705 /* ./parser//parser_prod.nit:1982 */
10706 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10707 if (UNTAG_Bool(REGB0)) {
10708 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1982);
10709 }
10710 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10711 /* ./parser//parser_prod.nit:1983 */
10712 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*/;
10713 if (UNTAG_Bool(REGB0)) {
10714 } else {
10715 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1983);
10716 }
10717 /* ./parser//parser_prod.nit:1984 */
10718 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = fra.me.REG[2];
10719 } else {
10720 /* ./parser//parser_prod.nit:1986 */
10721 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = NIT_NULL;
10722 }
10723 /* ./parser//parser_prod.nit:1988 */
10724 goto label1;
10725 }
10726 label1: while(0);
10727 stack_frame_head = fra.me.prev;
10728 return;
10729 }
10730 void parser___parser_prod___AExternInitPropdef___visit_all(val_t p0, val_t p1){
10731 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10732 val_t REGB0;
10733 val_t REGB1;
10734 val_t tmp;
10735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10736 fra.me.file = LOCATE_parser___parser_prod;
10737 fra.me.line = 1992;
10738 fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___visit_all;
10739 fra.me.has_broke = 0;
10740 fra.me.REG_size = 4;
10741 fra.me.REG[0] = NIT_NULL;
10742 fra.me.REG[1] = NIT_NULL;
10743 fra.me.REG[2] = NIT_NULL;
10744 fra.me.REG[3] = NIT_NULL;
10745 fra.me.REG[0] = p0;
10746 fra.me.REG[1] = p1;
10747 /* ./parser//parser_prod.nit:1992 */
10748 fra.me.REG[2] = fra.me.REG[0];
10749 /* ./parser//parser_prod.nit:1994 */
10750 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
10751 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10752 if (UNTAG_Bool(REGB0)) {
10753 } else {
10754 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10755 if (UNTAG_Bool(REGB1)) {
10756 REGB1 = TAG_Bool(false);
10757 REGB0 = REGB1;
10758 } else {
10759 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10760 REGB0 = REGB1;
10761 }
10762 }
10763 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10764 if (UNTAG_Bool(REGB0)) {
10765 /* ./parser//parser_prod.nit:1995 */
10766 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
10767 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*/;
10768 if (UNTAG_Bool(REGB0)) {
10769 } else {
10770 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1995);
10771 }
10772 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10773 }
10774 /* ./parser//parser_prod.nit:1997 */
10775 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
10776 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10777 if (UNTAG_Bool(REGB0)) {
10778 } else {
10779 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10780 if (UNTAG_Bool(REGB1)) {
10781 REGB1 = TAG_Bool(false);
10782 REGB0 = REGB1;
10783 } else {
10784 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10785 REGB0 = REGB1;
10786 }
10787 }
10788 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10789 if (UNTAG_Bool(REGB0)) {
10790 /* ./parser//parser_prod.nit:1998 */
10791 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
10792 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*/;
10793 if (UNTAG_Bool(REGB0)) {
10794 } else {
10795 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1998);
10796 }
10797 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10798 }
10799 /* ./parser//parser_prod.nit:2000 */
10800 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
10801 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10802 /* ./parser//parser_prod.nit:2001 */
10803 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[2])!=NIT_NULL);
10804 if (UNTAG_Bool(REGB0)) {
10805 } else {
10806 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 2001);
10807 }
10808 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[2]);
10809 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10810 /* ./parser//parser_prod.nit:2002 */
10811 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
10812 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10813 if (UNTAG_Bool(REGB0)) {
10814 } else {
10815 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10816 if (UNTAG_Bool(REGB1)) {
10817 REGB1 = TAG_Bool(false);
10818 REGB0 = REGB1;
10819 } else {
10820 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10821 REGB0 = REGB1;
10822 }
10823 }
10824 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10825 if (UNTAG_Bool(REGB0)) {
10826 /* ./parser//parser_prod.nit:2003 */
10827 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
10828 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*/;
10829 if (UNTAG_Bool(REGB0)) {
10830 } else {
10831 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2003);
10832 }
10833 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10834 }
10835 /* ./parser//parser_prod.nit:2005 */
10836 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
10837 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10838 /* ./parser//parser_prod.nit:2006 */
10839 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
10840 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10841 if (UNTAG_Bool(REGB0)) {
10842 } else {
10843 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10844 if (UNTAG_Bool(REGB1)) {
10845 REGB1 = TAG_Bool(false);
10846 REGB0 = REGB1;
10847 } else {
10848 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10849 REGB0 = REGB1;
10850 }
10851 }
10852 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10853 if (UNTAG_Bool(REGB0)) {
10854 /* ./parser//parser_prod.nit:2007 */
10855 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
10856 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*/;
10857 if (UNTAG_Bool(REGB0)) {
10858 } else {
10859 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2007);
10860 }
10861 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10862 }
10863 /* ./parser//parser_prod.nit:2009 */
10864 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
10865 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10866 if (UNTAG_Bool(REGB0)) {
10867 } else {
10868 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10869 if (UNTAG_Bool(REGB1)) {
10870 REGB1 = TAG_Bool(false);
10871 REGB0 = REGB1;
10872 } else {
10873 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10874 REGB0 = REGB1;
10875 }
10876 }
10877 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10878 if (UNTAG_Bool(REGB0)) {
10879 /* ./parser//parser_prod.nit:2010 */
10880 fra.me.REG[2] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
10881 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*/;
10882 if (UNTAG_Bool(REGB0)) {
10883 } else {
10884 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2010);
10885 }
10886 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10887 }
10888 stack_frame_head = fra.me.prev;
10889 return;
10890 }
10891 void parser___parser_prod___AMainMethPropdef___empty_init(val_t p0, int* init_table){
10892 int itpos53 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainMethPropdef].i;
10893 struct {struct stack_frame_t me;} fra;
10894 val_t tmp;
10895 if (init_table[itpos53]) return;
10896 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10897 fra.me.file = LOCATE_parser___parser_prod;
10898 fra.me.line = 2015;
10899 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___empty_init;
10900 fra.me.has_broke = 0;
10901 fra.me.REG_size = 1;
10902 fra.me.REG[0] = NIT_NULL;
10903 fra.me.REG[0] = p0;
10904 stack_frame_head = fra.me.prev;
10905 init_table[itpos53] = 1;
10906 return;
10907 }
10908 void parser___parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t p0, val_t p1, val_t p2, int* init_table){
10909 int itpos54 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainMethPropdef].i;
10910 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
10911 val_t REGB0;
10912 val_t REGB1;
10913 val_t tmp;
10914 if (init_table[itpos54]) return;
10915 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10916 fra.me.file = LOCATE_parser___parser_prod;
10917 fra.me.line = 2017;
10918 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___init_amainmethpropdef;
10919 fra.me.has_broke = 0;
10920 fra.me.REG_size = 3;
10921 fra.me.REG[0] = NIT_NULL;
10922 fra.me.REG[1] = NIT_NULL;
10923 fra.me.REG[2] = NIT_NULL;
10924 fra.me.REG[0] = p0;
10925 fra.me.REG[1] = p1;
10926 fra.me.REG[2] = p2;
10927 /* ./parser//parser_prod.nit:2022 */
10928 CALL_parser___parser_prod___AMainMethPropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
10929 /* ./parser//parser_prod.nit:2023 */
10930 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
10931 /* ./parser//parser_prod.nit:2024 */
10932 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10933 if (UNTAG_Bool(REGB0)) {
10934 } else {
10935 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10936 if (UNTAG_Bool(REGB1)) {
10937 REGB1 = TAG_Bool(false);
10938 REGB0 = REGB1;
10939 } else {
10940 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10941 REGB0 = REGB1;
10942 }
10943 }
10944 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10945 if (UNTAG_Bool(REGB0)) {
10946 /* ./parser//parser_prod.nit:2025 */
10947 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10948 if (UNTAG_Bool(REGB0)) {
10949 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2025);
10950 }
10951 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
10952 }
10953 /* ./parser//parser_prod.nit:2027 */
10954 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
10955 /* ./parser//parser_prod.nit:2028 */
10956 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10957 if (UNTAG_Bool(REGB0)) {
10958 } else {
10959 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10960 if (UNTAG_Bool(REGB1)) {
10961 REGB1 = TAG_Bool(false);
10962 REGB0 = REGB1;
10963 } else {
10964 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10965 REGB0 = REGB1;
10966 }
10967 }
10968 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10969 if (UNTAG_Bool(REGB0)) {
10970 /* ./parser//parser_prod.nit:2029 */
10971 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10972 if (UNTAG_Bool(REGB0)) {
10973 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2029);
10974 }
10975 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10976 }
10977 stack_frame_head = fra.me.prev;
10978 init_table[itpos54] = 1;
10979 return;
10980 }
10981 void parser___parser_prod___AMainMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
10982 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10983 val_t REGB0;
10984 val_t REGB1;
10985 val_t tmp;
10986 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10987 fra.me.file = LOCATE_parser___parser_prod;
10988 fra.me.line = 2033;
10989 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___replace_child;
10990 fra.me.has_broke = 0;
10991 fra.me.REG_size = 4;
10992 fra.me.REG[0] = NIT_NULL;
10993 fra.me.REG[1] = NIT_NULL;
10994 fra.me.REG[2] = NIT_NULL;
10995 fra.me.REG[3] = NIT_NULL;
10996 fra.me.REG[0] = p0;
10997 fra.me.REG[1] = p1;
10998 fra.me.REG[2] = p2;
10999 /* ./parser//parser_prod.nit:2035 */
11000 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
11001 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11002 if (UNTAG_Bool(REGB0)) {
11003 } else {
11004 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11005 if (UNTAG_Bool(REGB1)) {
11006 REGB1 = TAG_Bool(false);
11007 REGB0 = REGB1;
11008 } else {
11009 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11010 REGB0 = REGB1;
11011 }
11012 }
11013 if (UNTAG_Bool(REGB0)) {
11014 /* ./parser//parser_prod.nit:2036 */
11015 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11016 if (UNTAG_Bool(REGB0)) {
11017 } else {
11018 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11019 if (UNTAG_Bool(REGB1)) {
11020 REGB1 = TAG_Bool(false);
11021 REGB0 = REGB1;
11022 } else {
11023 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11024 REGB0 = REGB1;
11025 }
11026 }
11027 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11028 if (UNTAG_Bool(REGB0)) {
11029 /* ./parser//parser_prod.nit:2037 */
11030 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11031 if (UNTAG_Bool(REGB0)) {
11032 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2037);
11033 }
11034 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11035 /* ./parser//parser_prod.nit:2038 */
11036 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*/;
11037 if (UNTAG_Bool(REGB0)) {
11038 } else {
11039 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2038);
11040 }
11041 /* ./parser//parser_prod.nit:2039 */
11042 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
11043 } else {
11044 /* ./parser//parser_prod.nit:2041 */
11045 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
11046 }
11047 /* ./parser//parser_prod.nit:2043 */
11048 goto label1;
11049 }
11050 /* ./parser//parser_prod.nit:2045 */
11051 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
11052 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11053 if (UNTAG_Bool(REGB0)) {
11054 } else {
11055 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11056 if (UNTAG_Bool(REGB1)) {
11057 REGB1 = TAG_Bool(false);
11058 REGB0 = REGB1;
11059 } else {
11060 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11061 REGB0 = REGB1;
11062 }
11063 }
11064 if (UNTAG_Bool(REGB0)) {
11065 /* ./parser//parser_prod.nit:2046 */
11066 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11067 if (UNTAG_Bool(REGB0)) {
11068 } else {
11069 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11070 if (UNTAG_Bool(REGB1)) {
11071 REGB1 = TAG_Bool(false);
11072 REGB0 = REGB1;
11073 } else {
11074 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11075 REGB0 = REGB1;
11076 }
11077 }
11078 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11079 if (UNTAG_Bool(REGB0)) {
11080 /* ./parser//parser_prod.nit:2047 */
11081 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11082 if (UNTAG_Bool(REGB0)) {
11083 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2047);
11084 }
11085 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11086 /* ./parser//parser_prod.nit:2048 */
11087 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
11088 if (UNTAG_Bool(REGB0)) {
11089 } else {
11090 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2048);
11091 }
11092 /* ./parser//parser_prod.nit:2049 */
11093 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
11094 } else {
11095 /* ./parser//parser_prod.nit:2051 */
11096 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
11097 }
11098 /* ./parser//parser_prod.nit:2053 */
11099 goto label1;
11100 }
11101 label1: while(0);
11102 stack_frame_head = fra.me.prev;
11103 return;
11104 }
11105 void parser___parser_prod___AMainMethPropdef___visit_all(val_t p0, val_t p1){
11106 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11107 val_t REGB0;
11108 val_t REGB1;
11109 val_t tmp;
11110 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11111 fra.me.file = LOCATE_parser___parser_prod;
11112 fra.me.line = 2057;
11113 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___visit_all;
11114 fra.me.has_broke = 0;
11115 fra.me.REG_size = 4;
11116 fra.me.REG[0] = NIT_NULL;
11117 fra.me.REG[1] = NIT_NULL;
11118 fra.me.REG[2] = NIT_NULL;
11119 fra.me.REG[3] = NIT_NULL;
11120 fra.me.REG[0] = p0;
11121 fra.me.REG[1] = p1;
11122 /* ./parser//parser_prod.nit:2057 */
11123 fra.me.REG[2] = fra.me.REG[0];
11124 /* ./parser//parser_prod.nit:2059 */
11125 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
11126 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11127 if (UNTAG_Bool(REGB0)) {
11128 } else {
11129 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11130 if (UNTAG_Bool(REGB1)) {
11131 REGB1 = TAG_Bool(false);
11132 REGB0 = REGB1;
11133 } else {
11134 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11135 REGB0 = REGB1;
11136 }
11137 }
11138 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11139 if (UNTAG_Bool(REGB0)) {
11140 /* ./parser//parser_prod.nit:2060 */
11141 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
11142 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*/;
11143 if (UNTAG_Bool(REGB0)) {
11144 } else {
11145 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2060);
11146 }
11147 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11148 }
11149 /* ./parser//parser_prod.nit:2062 */
11150 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
11151 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11152 if (UNTAG_Bool(REGB0)) {
11153 } else {
11154 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11155 if (UNTAG_Bool(REGB1)) {
11156 REGB1 = TAG_Bool(false);
11157 REGB0 = REGB1;
11158 } else {
11159 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11160 REGB0 = REGB1;
11161 }
11162 }
11163 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11164 if (UNTAG_Bool(REGB0)) {
11165 /* ./parser//parser_prod.nit:2063 */
11166 fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
11167 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
11168 if (UNTAG_Bool(REGB0)) {
11169 } else {
11170 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2063);
11171 }
11172 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11173 }
11174 stack_frame_head = fra.me.prev;
11175 return;
11176 }
11177 void parser___parser_prod___ATypePropdef___empty_init(val_t p0, int* init_table){
11178 int itpos55 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATypePropdef].i;
11179 struct {struct stack_frame_t me;} fra;
11180 val_t tmp;
11181 if (init_table[itpos55]) return;
11182 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11183 fra.me.file = LOCATE_parser___parser_prod;
11184 fra.me.line = 2068;
11185 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___empty_init;
11186 fra.me.has_broke = 0;
11187 fra.me.REG_size = 1;
11188 fra.me.REG[0] = NIT_NULL;
11189 fra.me.REG[0] = p0;
11190 stack_frame_head = fra.me.prev;
11191 init_table[itpos55] = 1;
11192 return;
11193 }
11194 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){
11195 int itpos56 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATypePropdef].i;
11196 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
11197 val_t REGB0;
11198 val_t REGB1;
11199 val_t tmp;
11200 if (init_table[itpos56]) return;
11201 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11202 fra.me.file = LOCATE_parser___parser_prod;
11203 fra.me.line = 2070;
11204 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___init_atypepropdef;
11205 fra.me.has_broke = 0;
11206 fra.me.REG_size = 8;
11207 fra.me.REG[0] = NIT_NULL;
11208 fra.me.REG[1] = NIT_NULL;
11209 fra.me.REG[2] = NIT_NULL;
11210 fra.me.REG[3] = NIT_NULL;
11211 fra.me.REG[4] = NIT_NULL;
11212 fra.me.REG[5] = NIT_NULL;
11213 fra.me.REG[6] = NIT_NULL;
11214 fra.me.REG[7] = NIT_NULL;
11215 fra.me.REG[0] = p0;
11216 fra.me.REG[1] = p1;
11217 fra.me.REG[2] = p2;
11218 fra.me.REG[3] = p3;
11219 fra.me.REG[4] = p4;
11220 fra.me.REG[5] = p5;
11221 fra.me.REG[6] = p6;
11222 /* ./parser//parser_prod.nit:2070 */
11223 fra.me.REG[7] = fra.me.REG[0];
11224 /* ./parser//parser_prod.nit:2079 */
11225 CALL_parser___parser_prod___ATypePropdef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
11226 /* ./parser//parser_prod.nit:2080 */
11227 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[7]) = fra.me.REG[1];
11228 /* ./parser//parser_prod.nit:2081 */
11229 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11230 if (UNTAG_Bool(REGB0)) {
11231 } else {
11232 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11233 if (UNTAG_Bool(REGB1)) {
11234 REGB1 = TAG_Bool(false);
11235 REGB0 = REGB1;
11236 } else {
11237 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
11238 REGB0 = REGB1;
11239 }
11240 }
11241 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11242 if (UNTAG_Bool(REGB0)) {
11243 /* ./parser//parser_prod.nit:2082 */
11244 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11245 if (UNTAG_Bool(REGB0)) {
11246 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2082);
11247 }
11248 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
11249 }
11250 /* ./parser//parser_prod.nit:2084 */
11251 ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[7]) = fra.me.REG[2];
11252 /* ./parser//parser_prod.nit:2085 */
11253 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11254 if (UNTAG_Bool(REGB0)) {
11255 } else {
11256 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11257 if (UNTAG_Bool(REGB1)) {
11258 REGB1 = TAG_Bool(false);
11259 REGB0 = REGB1;
11260 } else {
11261 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11262 REGB0 = REGB1;
11263 }
11264 }
11265 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11266 if (UNTAG_Bool(REGB0)) {
11267 /* ./parser//parser_prod.nit:2086 */
11268 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11269 if (UNTAG_Bool(REGB0)) {
11270 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2086);
11271 }
11272 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
11273 }
11274 /* ./parser//parser_prod.nit:2088 */
11275 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
11276 if (UNTAG_Bool(REGB0)) {
11277 } else {
11278 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2088);
11279 }
11280 ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[7]) = fra.me.REG[3];
11281 /* ./parser//parser_prod.nit:2089 */
11282 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11283 if (UNTAG_Bool(REGB0)) {
11284 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2089);
11285 }
11286 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
11287 /* ./parser//parser_prod.nit:2090 */
11288 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
11289 if (UNTAG_Bool(REGB0)) {
11290 } else {
11291 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2090);
11292 }
11293 ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[7]) = fra.me.REG[4];
11294 /* ./parser//parser_prod.nit:2091 */
11295 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
11296 if (UNTAG_Bool(REGB0)) {
11297 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2091);
11298 }
11299 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
11300 /* ./parser//parser_prod.nit:2092 */
11301 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
11302 if (UNTAG_Bool(REGB0)) {
11303 } else {
11304 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2092);
11305 }
11306 ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[7]) = fra.me.REG[5];
11307 /* ./parser//parser_prod.nit:2093 */
11308 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
11309 if (UNTAG_Bool(REGB0)) {
11310 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2093);
11311 }
11312 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
11313 /* ./parser//parser_prod.nit:2094 */
11314 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
11315 if (UNTAG_Bool(REGB0)) {
11316 } else {
11317 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2094);
11318 }
11319 ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[7]) = fra.me.REG[6];
11320 /* ./parser//parser_prod.nit:2095 */
11321 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
11322 if (UNTAG_Bool(REGB0)) {
11323 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2095);
11324 }
11325 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
11326 stack_frame_head = fra.me.prev;
11327 init_table[itpos56] = 1;
11328 return;
11329 }
11330 void parser___parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val_t p2){
11331 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11332 val_t REGB0;
11333 val_t REGB1;
11334 val_t tmp;
11335 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11336 fra.me.file = LOCATE_parser___parser_prod;
11337 fra.me.line = 2098;
11338 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___replace_child;
11339 fra.me.has_broke = 0;
11340 fra.me.REG_size = 4;
11341 fra.me.REG[0] = NIT_NULL;
11342 fra.me.REG[1] = NIT_NULL;
11343 fra.me.REG[2] = NIT_NULL;
11344 fra.me.REG[3] = NIT_NULL;
11345 fra.me.REG[0] = p0;
11346 fra.me.REG[1] = p1;
11347 fra.me.REG[2] = p2;
11348 /* ./parser//parser_prod.nit:2100 */
11349 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
11350 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11351 if (UNTAG_Bool(REGB0)) {
11352 } else {
11353 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11354 if (UNTAG_Bool(REGB1)) {
11355 REGB1 = TAG_Bool(false);
11356 REGB0 = REGB1;
11357 } else {
11358 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11359 REGB0 = REGB1;
11360 }
11361 }
11362 if (UNTAG_Bool(REGB0)) {
11363 /* ./parser//parser_prod.nit:2101 */
11364 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11365 if (UNTAG_Bool(REGB0)) {
11366 } else {
11367 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11368 if (UNTAG_Bool(REGB1)) {
11369 REGB1 = TAG_Bool(false);
11370 REGB0 = REGB1;
11371 } else {
11372 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11373 REGB0 = REGB1;
11374 }
11375 }
11376 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11377 if (UNTAG_Bool(REGB0)) {
11378 /* ./parser//parser_prod.nit:2102 */
11379 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11380 if (UNTAG_Bool(REGB0)) {
11381 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2102);
11382 }
11383 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11384 /* ./parser//parser_prod.nit:2103 */
11385 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*/;
11386 if (UNTAG_Bool(REGB0)) {
11387 } else {
11388 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2103);
11389 }
11390 /* ./parser//parser_prod.nit:2104 */
11391 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
11392 } else {
11393 /* ./parser//parser_prod.nit:2106 */
11394 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
11395 }
11396 /* ./parser//parser_prod.nit:2108 */
11397 goto label1;
11398 }
11399 /* ./parser//parser_prod.nit:2110 */
11400 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]);
11401 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11402 if (UNTAG_Bool(REGB0)) {
11403 } else {
11404 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11405 if (UNTAG_Bool(REGB1)) {
11406 REGB1 = TAG_Bool(false);
11407 REGB0 = REGB1;
11408 } else {
11409 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11410 REGB0 = REGB1;
11411 }
11412 }
11413 if (UNTAG_Bool(REGB0)) {
11414 /* ./parser//parser_prod.nit:2111 */
11415 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11416 if (UNTAG_Bool(REGB0)) {
11417 } else {
11418 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11419 if (UNTAG_Bool(REGB1)) {
11420 REGB1 = TAG_Bool(false);
11421 REGB0 = REGB1;
11422 } else {
11423 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11424 REGB0 = REGB1;
11425 }
11426 }
11427 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11428 if (UNTAG_Bool(REGB0)) {
11429 /* ./parser//parser_prod.nit:2112 */
11430 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11431 if (UNTAG_Bool(REGB0)) {
11432 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2112);
11433 }
11434 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11435 /* ./parser//parser_prod.nit:2113 */
11436 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*/;
11437 if (UNTAG_Bool(REGB0)) {
11438 } else {
11439 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2113);
11440 }
11441 /* ./parser//parser_prod.nit:2114 */
11442 ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
11443 } else {
11444 /* ./parser//parser_prod.nit:2116 */
11445 ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
11446 }
11447 /* ./parser//parser_prod.nit:2118 */
11448 goto label1;
11449 }
11450 /* ./parser//parser_prod.nit:2120 */
11451 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
11452 if (UNTAG_Bool(REGB0)) {
11453 } else {
11454 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 2120);
11455 }
11456 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]);
11457 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11458 if (UNTAG_Bool(REGB0)) {
11459 } else {
11460 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11461 REGB0 = REGB1;
11462 }
11463 if (UNTAG_Bool(REGB0)) {
11464 /* ./parser//parser_prod.nit:2121 */
11465 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11466 if (UNTAG_Bool(REGB0)) {
11467 } else {
11468 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11469 if (UNTAG_Bool(REGB1)) {
11470 REGB1 = TAG_Bool(false);
11471 REGB0 = REGB1;
11472 } else {
11473 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11474 REGB0 = REGB1;
11475 }
11476 }
11477 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11478 if (UNTAG_Bool(REGB0)) {
11479 /* ./parser//parser_prod.nit:2122 */
11480 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11481 if (UNTAG_Bool(REGB0)) {
11482 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2122);
11483 }
11484 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11485 /* ./parser//parser_prod.nit:2123 */
11486 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*/;
11487 if (UNTAG_Bool(REGB0)) {
11488 } else {
11489 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2123);
11490 }
11491 /* ./parser//parser_prod.nit:2124 */
11492 ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
11493 } else {
11494 /* ./parser//parser_prod.nit:2126 */
11495 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2126);
11496 }
11497 /* ./parser//parser_prod.nit:2128 */
11498 goto label1;
11499 }
11500 /* ./parser//parser_prod.nit:2130 */
11501 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0])!=NIT_NULL);
11502 if (UNTAG_Bool(REGB0)) {
11503 } else {
11504 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 2130);
11505 }
11506 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]);
11507 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11508 if (UNTAG_Bool(REGB0)) {
11509 } else {
11510 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11511 REGB0 = REGB1;
11512 }
11513 if (UNTAG_Bool(REGB0)) {
11514 /* ./parser//parser_prod.nit:2131 */
11515 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11516 if (UNTAG_Bool(REGB0)) {
11517 } else {
11518 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11519 if (UNTAG_Bool(REGB1)) {
11520 REGB1 = TAG_Bool(false);
11521 REGB0 = REGB1;
11522 } else {
11523 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11524 REGB0 = REGB1;
11525 }
11526 }
11527 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11528 if (UNTAG_Bool(REGB0)) {
11529 /* ./parser//parser_prod.nit:2132 */
11530 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11531 if (UNTAG_Bool(REGB0)) {
11532 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2132);
11533 }
11534 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11535 /* ./parser//parser_prod.nit:2133 */
11536 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*/;
11537 if (UNTAG_Bool(REGB0)) {
11538 } else {
11539 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2133);
11540 }
11541 /* ./parser//parser_prod.nit:2134 */
11542 ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]) = fra.me.REG[2];
11543 } else {
11544 /* ./parser//parser_prod.nit:2136 */
11545 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2136);
11546 }
11547 /* ./parser//parser_prod.nit:2138 */
11548 goto label1;
11549 }
11550 /* ./parser//parser_prod.nit:2140 */
11551 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0])!=NIT_NULL);
11552 if (UNTAG_Bool(REGB0)) {
11553 } else {
11554 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2140);
11555 }
11556 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0]);
11557 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11558 if (UNTAG_Bool(REGB0)) {
11559 } else {
11560 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11561 REGB0 = REGB1;
11562 }
11563 if (UNTAG_Bool(REGB0)) {
11564 /* ./parser//parser_prod.nit:2141 */
11565 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11566 if (UNTAG_Bool(REGB0)) {
11567 } else {
11568 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11569 if (UNTAG_Bool(REGB1)) {
11570 REGB1 = TAG_Bool(false);
11571 REGB0 = REGB1;
11572 } else {
11573 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11574 REGB0 = REGB1;
11575 }
11576 }
11577 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11578 if (UNTAG_Bool(REGB0)) {
11579 /* ./parser//parser_prod.nit:2142 */
11580 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11581 if (UNTAG_Bool(REGB0)) {
11582 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2142);
11583 }
11584 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11585 /* ./parser//parser_prod.nit:2143 */
11586 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*/;
11587 if (UNTAG_Bool(REGB0)) {
11588 } else {
11589 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2143);
11590 }
11591 /* ./parser//parser_prod.nit:2144 */
11592 ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
11593 } else {
11594 /* ./parser//parser_prod.nit:2146 */
11595 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2146);
11596 }
11597 /* ./parser//parser_prod.nit:2148 */
11598 goto label1;
11599 }
11600 /* ./parser//parser_prod.nit:2150 */
11601 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0])!=NIT_NULL);
11602 if (UNTAG_Bool(REGB0)) {
11603 } else {
11604 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 2150);
11605 }
11606 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0]);
11607 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11608 if (UNTAG_Bool(REGB0)) {
11609 } else {
11610 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11611 REGB0 = REGB1;
11612 }
11613 if (UNTAG_Bool(REGB0)) {
11614 /* ./parser//parser_prod.nit:2151 */
11615 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11616 if (UNTAG_Bool(REGB0)) {
11617 } else {
11618 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11619 if (UNTAG_Bool(REGB1)) {
11620 REGB1 = TAG_Bool(false);
11621 REGB0 = REGB1;
11622 } else {
11623 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11624 REGB0 = REGB1;
11625 }
11626 }
11627 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11628 if (UNTAG_Bool(REGB0)) {
11629 /* ./parser//parser_prod.nit:2152 */
11630 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11631 if (UNTAG_Bool(REGB0)) {
11632 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2152);
11633 }
11634 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11635 /* ./parser//parser_prod.nit:2153 */
11636 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*/;
11637 if (UNTAG_Bool(REGB0)) {
11638 } else {
11639 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2153);
11640 }
11641 /* ./parser//parser_prod.nit:2154 */
11642 ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0]) = fra.me.REG[2];
11643 } else {
11644 /* ./parser//parser_prod.nit:2156 */
11645 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2156);
11646 }
11647 /* ./parser//parser_prod.nit:2158 */
11648 goto label1;
11649 }
11650 label1: while(0);
11651 stack_frame_head = fra.me.prev;
11652 return;
11653 }
11654 void parser___parser_prod___ATypePropdef___visit_all(val_t p0, val_t p1){
11655 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11656 val_t REGB0;
11657 val_t REGB1;
11658 val_t tmp;
11659 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11660 fra.me.file = LOCATE_parser___parser_prod;
11661 fra.me.line = 2162;
11662 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___visit_all;
11663 fra.me.has_broke = 0;
11664 fra.me.REG_size = 4;
11665 fra.me.REG[0] = NIT_NULL;
11666 fra.me.REG[1] = NIT_NULL;
11667 fra.me.REG[2] = NIT_NULL;
11668 fra.me.REG[3] = NIT_NULL;
11669 fra.me.REG[0] = p0;
11670 fra.me.REG[1] = p1;
11671 /* ./parser//parser_prod.nit:2162 */
11672 fra.me.REG[2] = fra.me.REG[0];
11673 /* ./parser//parser_prod.nit:2164 */
11674 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
11675 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11676 if (UNTAG_Bool(REGB0)) {
11677 } else {
11678 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11679 if (UNTAG_Bool(REGB1)) {
11680 REGB1 = TAG_Bool(false);
11681 REGB0 = REGB1;
11682 } else {
11683 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11684 REGB0 = REGB1;
11685 }
11686 }
11687 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11688 if (UNTAG_Bool(REGB0)) {
11689 /* ./parser//parser_prod.nit:2165 */
11690 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
11691 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*/;
11692 if (UNTAG_Bool(REGB0)) {
11693 } else {
11694 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2165);
11695 }
11696 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11697 }
11698 /* ./parser//parser_prod.nit:2167 */
11699 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[2]);
11700 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11701 if (UNTAG_Bool(REGB0)) {
11702 } else {
11703 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11704 if (UNTAG_Bool(REGB1)) {
11705 REGB1 = TAG_Bool(false);
11706 REGB0 = REGB1;
11707 } else {
11708 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11709 REGB0 = REGB1;
11710 }
11711 }
11712 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11713 if (UNTAG_Bool(REGB0)) {
11714 /* ./parser//parser_prod.nit:2168 */
11715 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[2]);
11716 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*/;
11717 if (UNTAG_Bool(REGB0)) {
11718 } else {
11719 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2168);
11720 }
11721 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11722 }
11723 /* ./parser//parser_prod.nit:2170 */
11724 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[2])!=NIT_NULL);
11725 if (UNTAG_Bool(REGB0)) {
11726 } else {
11727 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 2170);
11728 }
11729 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[2]);
11730 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11731 /* ./parser//parser_prod.nit:2171 */
11732 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[2])!=NIT_NULL);
11733 if (UNTAG_Bool(REGB0)) {
11734 } else {
11735 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 2171);
11736 }
11737 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[2]);
11738 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11739 /* ./parser//parser_prod.nit:2172 */
11740 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[2])!=NIT_NULL);
11741 if (UNTAG_Bool(REGB0)) {
11742 } else {
11743 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2172);
11744 }
11745 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[2]);
11746 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11747 /* ./parser//parser_prod.nit:2173 */
11748 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[2])!=NIT_NULL);
11749 if (UNTAG_Bool(REGB0)) {
11750 } else {
11751 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 2173);
11752 }
11753 fra.me.REG[2] = ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[2]);
11754 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11755 stack_frame_head = fra.me.prev;
11756 return;
11757 }
11758 void parser___parser_prod___AReadAble___empty_init(val_t p0, int* init_table){
11759 int itpos57 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReadAble].i;
11760 struct {struct stack_frame_t me;} fra;
11761 val_t tmp;
11762 if (init_table[itpos57]) return;
11763 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11764 fra.me.file = LOCATE_parser___parser_prod;
11765 fra.me.line = 2177;
11766 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___empty_init;
11767 fra.me.has_broke = 0;
11768 fra.me.REG_size = 1;
11769 fra.me.REG[0] = NIT_NULL;
11770 fra.me.REG[0] = p0;
11771 stack_frame_head = fra.me.prev;
11772 init_table[itpos57] = 1;
11773 return;
11774 }
11775 void parser___parser_prod___AReadAble___init_areadable(val_t p0, val_t p1, val_t p2, int* init_table){
11776 int itpos58 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReadAble].i;
11777 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11778 val_t REGB0;
11779 val_t REGB1;
11780 val_t tmp;
11781 if (init_table[itpos58]) return;
11782 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11783 fra.me.file = LOCATE_parser___parser_prod;
11784 fra.me.line = 2179;
11785 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___init_areadable;
11786 fra.me.has_broke = 0;
11787 fra.me.REG_size = 4;
11788 fra.me.REG[0] = NIT_NULL;
11789 fra.me.REG[1] = NIT_NULL;
11790 fra.me.REG[2] = NIT_NULL;
11791 fra.me.REG[3] = NIT_NULL;
11792 fra.me.REG[0] = p0;
11793 fra.me.REG[1] = p1;
11794 fra.me.REG[2] = p2;
11795 /* ./parser//parser_prod.nit:2179 */
11796 fra.me.REG[3] = fra.me.REG[0];
11797 /* ./parser//parser_prod.nit:2184 */
11798 CALL_parser___parser_prod___AReadAble___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
11799 /* ./parser//parser_prod.nit:2185 */
11800 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[3]) = fra.me.REG[1];
11801 /* ./parser//parser_prod.nit:2186 */
11802 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11803 if (UNTAG_Bool(REGB0)) {
11804 } else {
11805 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11806 if (UNTAG_Bool(REGB1)) {
11807 REGB1 = TAG_Bool(false);
11808 REGB0 = REGB1;
11809 } else {
11810 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
11811 REGB0 = REGB1;
11812 }
11813 }
11814 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11815 if (UNTAG_Bool(REGB0)) {
11816 /* ./parser//parser_prod.nit:2187 */
11817 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11818 if (UNTAG_Bool(REGB0)) {
11819 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2187);
11820 }
11821 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11822 }
11823 /* ./parser//parser_prod.nit:2189 */
11824 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
11825 if (UNTAG_Bool(REGB0)) {
11826 } else {
11827 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2189);
11828 }
11829 ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[3]) = fra.me.REG[2];
11830 /* ./parser//parser_prod.nit:2190 */
11831 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11832 if (UNTAG_Bool(REGB0)) {
11833 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2190);
11834 }
11835 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
11836 stack_frame_head = fra.me.prev;
11837 init_table[itpos58] = 1;
11838 return;
11839 }
11840 void parser___parser_prod___AReadAble___replace_child(val_t p0, val_t p1, val_t p2){
11841 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11842 val_t REGB0;
11843 val_t REGB1;
11844 val_t tmp;
11845 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11846 fra.me.file = LOCATE_parser___parser_prod;
11847 fra.me.line = 2193;
11848 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___replace_child;
11849 fra.me.has_broke = 0;
11850 fra.me.REG_size = 4;
11851 fra.me.REG[0] = NIT_NULL;
11852 fra.me.REG[1] = NIT_NULL;
11853 fra.me.REG[2] = NIT_NULL;
11854 fra.me.REG[3] = NIT_NULL;
11855 fra.me.REG[0] = p0;
11856 fra.me.REG[1] = p1;
11857 fra.me.REG[2] = p2;
11858 /* ./parser//parser_prod.nit:2195 */
11859 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
11860 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11861 if (UNTAG_Bool(REGB0)) {
11862 } else {
11863 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11864 if (UNTAG_Bool(REGB1)) {
11865 REGB1 = TAG_Bool(false);
11866 REGB0 = REGB1;
11867 } else {
11868 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11869 REGB0 = REGB1;
11870 }
11871 }
11872 if (UNTAG_Bool(REGB0)) {
11873 /* ./parser//parser_prod.nit:2196 */
11874 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11875 if (UNTAG_Bool(REGB0)) {
11876 } else {
11877 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11878 if (UNTAG_Bool(REGB1)) {
11879 REGB1 = TAG_Bool(false);
11880 REGB0 = REGB1;
11881 } else {
11882 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11883 REGB0 = REGB1;
11884 }
11885 }
11886 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11887 if (UNTAG_Bool(REGB0)) {
11888 /* ./parser//parser_prod.nit:2197 */
11889 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11890 if (UNTAG_Bool(REGB0)) {
11891 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2197);
11892 }
11893 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11894 /* ./parser//parser_prod.nit:2198 */
11895 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*/;
11896 if (UNTAG_Bool(REGB0)) {
11897 } else {
11898 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2198);
11899 }
11900 /* ./parser//parser_prod.nit:2199 */
11901 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
11902 } else {
11903 /* ./parser//parser_prod.nit:2201 */
11904 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = NIT_NULL;
11905 }
11906 /* ./parser//parser_prod.nit:2203 */
11907 goto label1;
11908 }
11909 /* ./parser//parser_prod.nit:2205 */
11910 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0])!=NIT_NULL);
11911 if (UNTAG_Bool(REGB0)) {
11912 } else {
11913 nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser___parser_prod, 2205);
11914 }
11915 fra.me.REG[3] = ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]);
11916 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11917 if (UNTAG_Bool(REGB0)) {
11918 } else {
11919 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11920 REGB0 = REGB1;
11921 }
11922 if (UNTAG_Bool(REGB0)) {
11923 /* ./parser//parser_prod.nit:2206 */
11924 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11925 if (UNTAG_Bool(REGB0)) {
11926 } else {
11927 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11928 if (UNTAG_Bool(REGB1)) {
11929 REGB1 = TAG_Bool(false);
11930 REGB0 = REGB1;
11931 } else {
11932 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11933 REGB0 = REGB1;
11934 }
11935 }
11936 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11937 if (UNTAG_Bool(REGB0)) {
11938 /* ./parser//parser_prod.nit:2207 */
11939 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11940 if (UNTAG_Bool(REGB0)) {
11941 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2207);
11942 }
11943 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11944 /* ./parser//parser_prod.nit:2208 */
11945 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*/;
11946 if (UNTAG_Bool(REGB0)) {
11947 } else {
11948 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2208);
11949 }
11950 /* ./parser//parser_prod.nit:2209 */
11951 ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]) = fra.me.REG[2];
11952 } else {
11953 /* ./parser//parser_prod.nit:2211 */
11954 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2211);
11955 }
11956 /* ./parser//parser_prod.nit:2213 */
11957 goto label1;
11958 }
11959 label1: while(0);
11960 stack_frame_head = fra.me.prev;
11961 return;
11962 }
11963 void parser___parser_prod___AReadAble___visit_all(val_t p0, val_t p1){
11964 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11965 val_t REGB0;
11966 val_t REGB1;
11967 val_t tmp;
11968 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11969 fra.me.file = LOCATE_parser___parser_prod;
11970 fra.me.line = 2217;
11971 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___visit_all;
11972 fra.me.has_broke = 0;
11973 fra.me.REG_size = 4;
11974 fra.me.REG[0] = NIT_NULL;
11975 fra.me.REG[1] = NIT_NULL;
11976 fra.me.REG[2] = NIT_NULL;
11977 fra.me.REG[3] = NIT_NULL;
11978 fra.me.REG[0] = p0;
11979 fra.me.REG[1] = p1;
11980 /* ./parser//parser_prod.nit:2217 */
11981 fra.me.REG[2] = fra.me.REG[0];
11982 /* ./parser//parser_prod.nit:2219 */
11983 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
11984 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11985 if (UNTAG_Bool(REGB0)) {
11986 } else {
11987 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11988 if (UNTAG_Bool(REGB1)) {
11989 REGB1 = TAG_Bool(false);
11990 REGB0 = REGB1;
11991 } else {
11992 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11993 REGB0 = REGB1;
11994 }
11995 }
11996 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11997 if (UNTAG_Bool(REGB0)) {
11998 /* ./parser//parser_prod.nit:2220 */
11999 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
12000 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*/;
12001 if (UNTAG_Bool(REGB0)) {
12002 } else {
12003 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2220);
12004 }
12005 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12006 }
12007 /* ./parser//parser_prod.nit:2222 */
12008 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[2])!=NIT_NULL);
12009 if (UNTAG_Bool(REGB0)) {
12010 } else {
12011 nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser___parser_prod, 2222);
12012 }
12013 fra.me.REG[2] = ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[2]);
12014 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12015 stack_frame_head = fra.me.prev;
12016 return;
12017 }
12018 void parser___parser_prod___AWriteAble___empty_init(val_t p0, int* init_table){
12019 int itpos59 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWriteAble].i;
12020 struct {struct stack_frame_t me;} fra;
12021 val_t tmp;
12022 if (init_table[itpos59]) return;
12023 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12024 fra.me.file = LOCATE_parser___parser_prod;
12025 fra.me.line = 2226;
12026 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___empty_init;
12027 fra.me.has_broke = 0;
12028 fra.me.REG_size = 1;
12029 fra.me.REG[0] = NIT_NULL;
12030 fra.me.REG[0] = p0;
12031 stack_frame_head = fra.me.prev;
12032 init_table[itpos59] = 1;
12033 return;
12034 }
12035 void parser___parser_prod___AWriteAble___init_awriteable(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
12036 int itpos60 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWriteAble].i;
12037 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
12038 val_t REGB0;
12039 val_t REGB1;
12040 val_t tmp;
12041 if (init_table[itpos60]) return;
12042 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12043 fra.me.file = LOCATE_parser___parser_prod;
12044 fra.me.line = 2228;
12045 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___init_awriteable;
12046 fra.me.has_broke = 0;
12047 fra.me.REG_size = 5;
12048 fra.me.REG[0] = NIT_NULL;
12049 fra.me.REG[1] = NIT_NULL;
12050 fra.me.REG[2] = NIT_NULL;
12051 fra.me.REG[3] = NIT_NULL;
12052 fra.me.REG[4] = NIT_NULL;
12053 fra.me.REG[0] = p0;
12054 fra.me.REG[1] = p1;
12055 fra.me.REG[2] = p2;
12056 fra.me.REG[3] = p3;
12057 /* ./parser//parser_prod.nit:2228 */
12058 fra.me.REG[4] = fra.me.REG[0];
12059 /* ./parser//parser_prod.nit:2234 */
12060 CALL_parser___parser_prod___AWriteAble___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
12061 /* ./parser//parser_prod.nit:2235 */
12062 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[4]) = fra.me.REG[1];
12063 /* ./parser//parser_prod.nit:2236 */
12064 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12065 if (UNTAG_Bool(REGB0)) {
12066 } else {
12067 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12068 if (UNTAG_Bool(REGB1)) {
12069 REGB1 = TAG_Bool(false);
12070 REGB0 = REGB1;
12071 } else {
12072 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
12073 REGB0 = REGB1;
12074 }
12075 }
12076 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12077 if (UNTAG_Bool(REGB0)) {
12078 /* ./parser//parser_prod.nit:2237 */
12079 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12080 if (UNTAG_Bool(REGB0)) {
12081 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2237);
12082 }
12083 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
12084 }
12085 /* ./parser//parser_prod.nit:2239 */
12086 ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[4]) = fra.me.REG[2];
12087 /* ./parser//parser_prod.nit:2240 */
12088 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12089 if (UNTAG_Bool(REGB0)) {
12090 } else {
12091 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12092 if (UNTAG_Bool(REGB1)) {
12093 REGB1 = TAG_Bool(false);
12094 REGB0 = REGB1;
12095 } else {
12096 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12097 REGB0 = REGB1;
12098 }
12099 }
12100 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12101 if (UNTAG_Bool(REGB0)) {
12102 /* ./parser//parser_prod.nit:2241 */
12103 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12104 if (UNTAG_Bool(REGB0)) {
12105 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2241);
12106 }
12107 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
12108 }
12109 /* ./parser//parser_prod.nit:2243 */
12110 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
12111 if (UNTAG_Bool(REGB0)) {
12112 } else {
12113 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2243);
12114 }
12115 ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[4]) = fra.me.REG[3];
12116 /* ./parser//parser_prod.nit:2244 */
12117 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12118 if (UNTAG_Bool(REGB0)) {
12119 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2244);
12120 }
12121 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
12122 stack_frame_head = fra.me.prev;
12123 init_table[itpos60] = 1;
12124 return;
12125 }
12126 void parser___parser_prod___AWriteAble___replace_child(val_t p0, val_t p1, val_t p2){
12127 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12128 val_t REGB0;
12129 val_t REGB1;
12130 val_t tmp;
12131 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12132 fra.me.file = LOCATE_parser___parser_prod;
12133 fra.me.line = 2247;
12134 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___replace_child;
12135 fra.me.has_broke = 0;
12136 fra.me.REG_size = 4;
12137 fra.me.REG[0] = NIT_NULL;
12138 fra.me.REG[1] = NIT_NULL;
12139 fra.me.REG[2] = NIT_NULL;
12140 fra.me.REG[3] = NIT_NULL;
12141 fra.me.REG[0] = p0;
12142 fra.me.REG[1] = p1;
12143 fra.me.REG[2] = p2;
12144 /* ./parser//parser_prod.nit:2249 */
12145 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
12146 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
12147 if (UNTAG_Bool(REGB0)) {
12148 } else {
12149 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12150 if (UNTAG_Bool(REGB1)) {
12151 REGB1 = TAG_Bool(false);
12152 REGB0 = REGB1;
12153 } else {
12154 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12155 REGB0 = REGB1;
12156 }
12157 }
12158 if (UNTAG_Bool(REGB0)) {
12159 /* ./parser//parser_prod.nit:2250 */
12160 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12161 if (UNTAG_Bool(REGB0)) {
12162 } else {
12163 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12164 if (UNTAG_Bool(REGB1)) {
12165 REGB1 = TAG_Bool(false);
12166 REGB0 = REGB1;
12167 } else {
12168 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12169 REGB0 = REGB1;
12170 }
12171 }
12172 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12173 if (UNTAG_Bool(REGB0)) {
12174 /* ./parser//parser_prod.nit:2251 */
12175 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12176 if (UNTAG_Bool(REGB0)) {
12177 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2251);
12178 }
12179 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12180 /* ./parser//parser_prod.nit:2252 */
12181 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*/;
12182 if (UNTAG_Bool(REGB0)) {
12183 } else {
12184 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2252);
12185 }
12186 /* ./parser//parser_prod.nit:2253 */
12187 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
12188 } else {
12189 /* ./parser//parser_prod.nit:2255 */
12190 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = NIT_NULL;
12191 }
12192 /* ./parser//parser_prod.nit:2257 */
12193 goto label1;
12194 }
12195 /* ./parser//parser_prod.nit:2259 */
12196 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]);
12197 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
12198 if (UNTAG_Bool(REGB0)) {
12199 } else {
12200 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12201 if (UNTAG_Bool(REGB1)) {
12202 REGB1 = TAG_Bool(false);
12203 REGB0 = REGB1;
12204 } else {
12205 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12206 REGB0 = REGB1;
12207 }
12208 }
12209 if (UNTAG_Bool(REGB0)) {
12210 /* ./parser//parser_prod.nit:2260 */
12211 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12212 if (UNTAG_Bool(REGB0)) {
12213 } else {
12214 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12215 if (UNTAG_Bool(REGB1)) {
12216 REGB1 = TAG_Bool(false);
12217 REGB0 = REGB1;
12218 } else {
12219 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12220 REGB0 = REGB1;
12221 }
12222 }
12223 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12224 if (UNTAG_Bool(REGB0)) {
12225 /* ./parser//parser_prod.nit:2261 */
12226 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12227 if (UNTAG_Bool(REGB0)) {
12228 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2261);
12229 }
12230 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12231 /* ./parser//parser_prod.nit:2262 */
12232 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*/;
12233 if (UNTAG_Bool(REGB0)) {
12234 } else {
12235 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2262);
12236 }
12237 /* ./parser//parser_prod.nit:2263 */
12238 ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
12239 } else {
12240 /* ./parser//parser_prod.nit:2265 */
12241 ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]) = NIT_NULL;
12242 }
12243 /* ./parser//parser_prod.nit:2267 */
12244 goto label1;
12245 }
12246 /* ./parser//parser_prod.nit:2269 */
12247 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0])!=NIT_NULL);
12248 if (UNTAG_Bool(REGB0)) {
12249 } else {
12250 nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser___parser_prod, 2269);
12251 }
12252 fra.me.REG[3] = ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]);
12253 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12254 if (UNTAG_Bool(REGB0)) {
12255 } else {
12256 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12257 REGB0 = REGB1;
12258 }
12259 if (UNTAG_Bool(REGB0)) {
12260 /* ./parser//parser_prod.nit:2270 */
12261 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12262 if (UNTAG_Bool(REGB0)) {
12263 } else {
12264 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12265 if (UNTAG_Bool(REGB1)) {
12266 REGB1 = TAG_Bool(false);
12267 REGB0 = REGB1;
12268 } else {
12269 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12270 REGB0 = REGB1;
12271 }
12272 }
12273 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12274 if (UNTAG_Bool(REGB0)) {
12275 /* ./parser//parser_prod.nit:2271 */
12276 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12277 if (UNTAG_Bool(REGB0)) {
12278 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2271);
12279 }
12280 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12281 /* ./parser//parser_prod.nit:2272 */
12282 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*/;
12283 if (UNTAG_Bool(REGB0)) {
12284 } else {
12285 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2272);
12286 }
12287 /* ./parser//parser_prod.nit:2273 */
12288 ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]) = fra.me.REG[2];
12289 } else {
12290 /* ./parser//parser_prod.nit:2275 */
12291 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2275);
12292 }
12293 /* ./parser//parser_prod.nit:2277 */
12294 goto label1;
12295 }
12296 label1: while(0);
12297 stack_frame_head = fra.me.prev;
12298 return;
12299 }
12300 void parser___parser_prod___AWriteAble___visit_all(val_t p0, val_t p1){
12301 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12302 val_t REGB0;
12303 val_t REGB1;
12304 val_t tmp;
12305 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12306 fra.me.file = LOCATE_parser___parser_prod;
12307 fra.me.line = 2281;
12308 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___visit_all;
12309 fra.me.has_broke = 0;
12310 fra.me.REG_size = 4;
12311 fra.me.REG[0] = NIT_NULL;
12312 fra.me.REG[1] = NIT_NULL;
12313 fra.me.REG[2] = NIT_NULL;
12314 fra.me.REG[3] = NIT_NULL;
12315 fra.me.REG[0] = p0;
12316 fra.me.REG[1] = p1;
12317 /* ./parser//parser_prod.nit:2281 */
12318 fra.me.REG[2] = fra.me.REG[0];
12319 /* ./parser//parser_prod.nit:2283 */
12320 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
12321 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12322 if (UNTAG_Bool(REGB0)) {
12323 } else {
12324 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12325 if (UNTAG_Bool(REGB1)) {
12326 REGB1 = TAG_Bool(false);
12327 REGB0 = REGB1;
12328 } else {
12329 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
12330 REGB0 = REGB1;
12331 }
12332 }
12333 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12334 if (UNTAG_Bool(REGB0)) {
12335 /* ./parser//parser_prod.nit:2284 */
12336 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
12337 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*/;
12338 if (UNTAG_Bool(REGB0)) {
12339 } else {
12340 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2284);
12341 }
12342 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12343 }
12344 /* ./parser//parser_prod.nit:2286 */
12345 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[2]);
12346 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12347 if (UNTAG_Bool(REGB0)) {
12348 } else {
12349 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12350 if (UNTAG_Bool(REGB1)) {
12351 REGB1 = TAG_Bool(false);
12352 REGB0 = REGB1;
12353 } else {
12354 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
12355 REGB0 = REGB1;
12356 }
12357 }
12358 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12359 if (UNTAG_Bool(REGB0)) {
12360 /* ./parser//parser_prod.nit:2287 */
12361 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[2]);
12362 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*/;
12363 if (UNTAG_Bool(REGB0)) {
12364 } else {
12365 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2287);
12366 }
12367 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12368 }
12369 /* ./parser//parser_prod.nit:2289 */
12370 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[2])!=NIT_NULL);
12371 if (UNTAG_Bool(REGB0)) {
12372 } else {
12373 nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser___parser_prod, 2289);
12374 }
12375 fra.me.REG[2] = ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[2]);
12376 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12377 stack_frame_head = fra.me.prev;
12378 return;
12379 }
12380 void parser___parser_prod___AIdMethid___empty_init(val_t p0, int* init_table){
12381 int itpos61 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIdMethid].i;
12382 struct {struct stack_frame_t me;} fra;
12383 val_t tmp;
12384 if (init_table[itpos61]) return;
12385 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12386 fra.me.file = LOCATE_parser___parser_prod;
12387 fra.me.line = 2293;
12388 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___empty_init;
12389 fra.me.has_broke = 0;
12390 fra.me.REG_size = 1;
12391 fra.me.REG[0] = NIT_NULL;
12392 fra.me.REG[0] = p0;
12393 stack_frame_head = fra.me.prev;
12394 init_table[itpos61] = 1;
12395 return;
12396 }
12397 void parser___parser_prod___AIdMethid___init_aidmethid(val_t p0, val_t p1, int* init_table){
12398 int itpos62 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIdMethid].i;
12399 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
12400 val_t REGB0;
12401 val_t tmp;
12402 if (init_table[itpos62]) return;
12403 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12404 fra.me.file = LOCATE_parser___parser_prod;
12405 fra.me.line = 2295;
12406 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___init_aidmethid;
12407 fra.me.has_broke = 0;
12408 fra.me.REG_size = 3;
12409 fra.me.REG[0] = NIT_NULL;
12410 fra.me.REG[1] = NIT_NULL;
12411 fra.me.REG[2] = NIT_NULL;
12412 fra.me.REG[0] = p0;
12413 fra.me.REG[1] = p1;
12414 /* ./parser//parser_prod.nit:2295 */
12415 fra.me.REG[2] = fra.me.REG[0];
12416 /* ./parser//parser_prod.nit:2299 */
12417 CALL_parser___parser_prod___AIdMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
12418 /* ./parser//parser_prod.nit:2300 */
12419 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12420 if (UNTAG_Bool(REGB0)) {
12421 } else {
12422 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2300);
12423 }
12424 ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[2]) = fra.me.REG[1];
12425 /* ./parser//parser_prod.nit:2301 */
12426 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12427 if (UNTAG_Bool(REGB0)) {
12428 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2301);
12429 }
12430 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12431 stack_frame_head = fra.me.prev;
12432 init_table[itpos62] = 1;
12433 return;
12434 }
12435 void parser___parser_prod___AIdMethid___replace_child(val_t p0, val_t p1, val_t p2){
12436 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12437 val_t REGB0;
12438 val_t REGB1;
12439 val_t tmp;
12440 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12441 fra.me.file = LOCATE_parser___parser_prod;
12442 fra.me.line = 2304;
12443 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___replace_child;
12444 fra.me.has_broke = 0;
12445 fra.me.REG_size = 4;
12446 fra.me.REG[0] = NIT_NULL;
12447 fra.me.REG[1] = NIT_NULL;
12448 fra.me.REG[2] = NIT_NULL;
12449 fra.me.REG[3] = NIT_NULL;
12450 fra.me.REG[0] = p0;
12451 fra.me.REG[1] = p1;
12452 fra.me.REG[2] = p2;
12453 /* ./parser//parser_prod.nit:2306 */
12454 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0])!=NIT_NULL);
12455 if (UNTAG_Bool(REGB0)) {
12456 } else {
12457 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2306);
12458 }
12459 fra.me.REG[3] = ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]);
12460 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12461 if (UNTAG_Bool(REGB0)) {
12462 } else {
12463 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12464 REGB0 = REGB1;
12465 }
12466 if (UNTAG_Bool(REGB0)) {
12467 /* ./parser//parser_prod.nit:2307 */
12468 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12469 if (UNTAG_Bool(REGB0)) {
12470 } else {
12471 REGB1 = TAG_Bool(fra.me.REG[2]==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[2])(fra.me.REG[2], NIT_NULL);
12477 REGB0 = REGB1;
12478 }
12479 }
12480 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12481 if (UNTAG_Bool(REGB0)) {
12482 /* ./parser//parser_prod.nit:2308 */
12483 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12484 if (UNTAG_Bool(REGB0)) {
12485 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2308);
12486 }
12487 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12488 /* ./parser//parser_prod.nit:2309 */
12489 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*/;
12490 if (UNTAG_Bool(REGB0)) {
12491 } else {
12492 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2309);
12493 }
12494 /* ./parser//parser_prod.nit:2310 */
12495 ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]) = fra.me.REG[2];
12496 } else {
12497 /* ./parser//parser_prod.nit:2312 */
12498 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2312);
12499 }
12500 /* ./parser//parser_prod.nit:2314 */
12501 goto label1;
12502 }
12503 label1: while(0);
12504 stack_frame_head = fra.me.prev;
12505 return;
12506 }
12507 void parser___parser_prod___AIdMethid___visit_all(val_t p0, val_t p1){
12508 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12509 val_t REGB0;
12510 val_t tmp;
12511 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12512 fra.me.file = LOCATE_parser___parser_prod;
12513 fra.me.line = 2318;
12514 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___visit_all;
12515 fra.me.has_broke = 0;
12516 fra.me.REG_size = 2;
12517 fra.me.REG[0] = NIT_NULL;
12518 fra.me.REG[1] = NIT_NULL;
12519 fra.me.REG[0] = p0;
12520 fra.me.REG[1] = p1;
12521 /* ./parser//parser_prod.nit:2320 */
12522 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0])!=NIT_NULL);
12523 if (UNTAG_Bool(REGB0)) {
12524 } else {
12525 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2320);
12526 }
12527 fra.me.REG[0] = ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]);
12528 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12529 stack_frame_head = fra.me.prev;
12530 return;
12531 }
12532 void parser___parser_prod___APlusMethid___empty_init(val_t p0, int* init_table){
12533 int itpos63 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusMethid].i;
12534 struct {struct stack_frame_t me;} fra;
12535 val_t tmp;
12536 if (init_table[itpos63]) return;
12537 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12538 fra.me.file = LOCATE_parser___parser_prod;
12539 fra.me.line = 2324;
12540 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___empty_init;
12541 fra.me.has_broke = 0;
12542 fra.me.REG_size = 1;
12543 fra.me.REG[0] = NIT_NULL;
12544 fra.me.REG[0] = p0;
12545 stack_frame_head = fra.me.prev;
12546 init_table[itpos63] = 1;
12547 return;
12548 }
12549 void parser___parser_prod___APlusMethid___init_aplusmethid(val_t p0, val_t p1, int* init_table){
12550 int itpos64 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusMethid].i;
12551 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
12552 val_t REGB0;
12553 val_t tmp;
12554 if (init_table[itpos64]) return;
12555 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12556 fra.me.file = LOCATE_parser___parser_prod;
12557 fra.me.line = 2326;
12558 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___init_aplusmethid;
12559 fra.me.has_broke = 0;
12560 fra.me.REG_size = 3;
12561 fra.me.REG[0] = NIT_NULL;
12562 fra.me.REG[1] = NIT_NULL;
12563 fra.me.REG[2] = NIT_NULL;
12564 fra.me.REG[0] = p0;
12565 fra.me.REG[1] = p1;
12566 /* ./parser//parser_prod.nit:2326 */
12567 fra.me.REG[2] = fra.me.REG[0];
12568 /* ./parser//parser_prod.nit:2330 */
12569 CALL_parser___parser_prod___APlusMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
12570 /* ./parser//parser_prod.nit:2331 */
12571 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12572 if (UNTAG_Bool(REGB0)) {
12573 } else {
12574 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2331);
12575 }
12576 ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[2]) = fra.me.REG[1];
12577 /* ./parser//parser_prod.nit:2332 */
12578 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12579 if (UNTAG_Bool(REGB0)) {
12580 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2332);
12581 }
12582 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12583 stack_frame_head = fra.me.prev;
12584 init_table[itpos64] = 1;
12585 return;
12586 }
12587 void parser___parser_prod___APlusMethid___replace_child(val_t p0, val_t p1, val_t p2){
12588 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12589 val_t REGB0;
12590 val_t REGB1;
12591 val_t tmp;
12592 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12593 fra.me.file = LOCATE_parser___parser_prod;
12594 fra.me.line = 2335;
12595 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___replace_child;
12596 fra.me.has_broke = 0;
12597 fra.me.REG_size = 4;
12598 fra.me.REG[0] = NIT_NULL;
12599 fra.me.REG[1] = NIT_NULL;
12600 fra.me.REG[2] = NIT_NULL;
12601 fra.me.REG[3] = NIT_NULL;
12602 fra.me.REG[0] = p0;
12603 fra.me.REG[1] = p1;
12604 fra.me.REG[2] = p2;
12605 /* ./parser//parser_prod.nit:2337 */
12606 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0])!=NIT_NULL);
12607 if (UNTAG_Bool(REGB0)) {
12608 } else {
12609 nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser___parser_prod, 2337);
12610 }
12611 fra.me.REG[3] = ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]);
12612 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12613 if (UNTAG_Bool(REGB0)) {
12614 } else {
12615 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12616 REGB0 = REGB1;
12617 }
12618 if (UNTAG_Bool(REGB0)) {
12619 /* ./parser//parser_prod.nit:2338 */
12620 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12621 if (UNTAG_Bool(REGB0)) {
12622 } else {
12623 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12624 if (UNTAG_Bool(REGB1)) {
12625 REGB1 = TAG_Bool(false);
12626 REGB0 = REGB1;
12627 } else {
12628 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12629 REGB0 = REGB1;
12630 }
12631 }
12632 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12633 if (UNTAG_Bool(REGB0)) {
12634 /* ./parser//parser_prod.nit:2339 */
12635 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12636 if (UNTAG_Bool(REGB0)) {
12637 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2339);
12638 }
12639 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12640 /* ./parser//parser_prod.nit:2340 */
12641 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*/;
12642 if (UNTAG_Bool(REGB0)) {
12643 } else {
12644 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2340);
12645 }
12646 /* ./parser//parser_prod.nit:2341 */
12647 ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]) = fra.me.REG[2];
12648 } else {
12649 /* ./parser//parser_prod.nit:2343 */
12650 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2343);
12651 }
12652 /* ./parser//parser_prod.nit:2345 */
12653 goto label1;
12654 }
12655 label1: while(0);
12656 stack_frame_head = fra.me.prev;
12657 return;
12658 }
12659 void parser___parser_prod___APlusMethid___visit_all(val_t p0, val_t p1){
12660 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12661 val_t REGB0;
12662 val_t tmp;
12663 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12664 fra.me.file = LOCATE_parser___parser_prod;
12665 fra.me.line = 2349;
12666 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___visit_all;
12667 fra.me.has_broke = 0;
12668 fra.me.REG_size = 2;
12669 fra.me.REG[0] = NIT_NULL;
12670 fra.me.REG[1] = NIT_NULL;
12671 fra.me.REG[0] = p0;
12672 fra.me.REG[1] = p1;
12673 /* ./parser//parser_prod.nit:2351 */
12674 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0])!=NIT_NULL);
12675 if (UNTAG_Bool(REGB0)) {
12676 } else {
12677 nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser___parser_prod, 2351);
12678 }
12679 fra.me.REG[0] = ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]);
12680 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12681 stack_frame_head = fra.me.prev;
12682 return;
12683 }
12684 void parser___parser_prod___AMinusMethid___empty_init(val_t p0, int* init_table){
12685 int itpos65 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusMethid].i;
12686 struct {struct stack_frame_t me;} fra;
12687 val_t tmp;
12688 if (init_table[itpos65]) return;
12689 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12690 fra.me.file = LOCATE_parser___parser_prod;
12691 fra.me.line = 2355;
12692 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___empty_init;
12693 fra.me.has_broke = 0;
12694 fra.me.REG_size = 1;
12695 fra.me.REG[0] = NIT_NULL;
12696 fra.me.REG[0] = p0;
12697 stack_frame_head = fra.me.prev;
12698 init_table[itpos65] = 1;
12699 return;
12700 }
12701 void parser___parser_prod___AMinusMethid___init_aminusmethid(val_t p0, val_t p1, int* init_table){
12702 int itpos66 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusMethid].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[itpos66]) 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 = 2357;
12710 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___init_aminusmethid;
12711 fra.me.has_broke = 0;
12712 fra.me.REG_size = 3;
12713 fra.me.REG[0] = NIT_NULL;
12714 fra.me.REG[1] = NIT_NULL;
12715 fra.me.REG[2] = NIT_NULL;
12716 fra.me.REG[0] = p0;
12717 fra.me.REG[1] = p1;
12718 /* ./parser//parser_prod.nit:2357 */
12719 fra.me.REG[2] = fra.me.REG[0];
12720 /* ./parser//parser_prod.nit:2361 */
12721 CALL_parser___parser_prod___AMinusMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
12722 /* ./parser//parser_prod.nit:2362 */
12723 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12724 if (UNTAG_Bool(REGB0)) {
12725 } else {
12726 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2362);
12727 }
12728 ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[2]) = fra.me.REG[1];
12729 /* ./parser//parser_prod.nit:2363 */
12730 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12731 if (UNTAG_Bool(REGB0)) {
12732 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2363);
12733 }
12734 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12735 stack_frame_head = fra.me.prev;
12736 init_table[itpos66] = 1;
12737 return;
12738 }
12739 void parser___parser_prod___AMinusMethid___replace_child(val_t p0, val_t p1, val_t p2){
12740 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12741 val_t REGB0;
12742 val_t REGB1;
12743 val_t tmp;
12744 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12745 fra.me.file = LOCATE_parser___parser_prod;
12746 fra.me.line = 2366;
12747 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___replace_child;
12748 fra.me.has_broke = 0;
12749 fra.me.REG_size = 4;
12750 fra.me.REG[0] = NIT_NULL;
12751 fra.me.REG[1] = NIT_NULL;
12752 fra.me.REG[2] = NIT_NULL;
12753 fra.me.REG[3] = NIT_NULL;
12754 fra.me.REG[0] = p0;
12755 fra.me.REG[1] = p1;
12756 fra.me.REG[2] = p2;
12757 /* ./parser//parser_prod.nit:2368 */
12758 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0])!=NIT_NULL);
12759 if (UNTAG_Bool(REGB0)) {
12760 } else {
12761 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 2368);
12762 }
12763 fra.me.REG[3] = ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]);
12764 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12765 if (UNTAG_Bool(REGB0)) {
12766 } else {
12767 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12768 REGB0 = REGB1;
12769 }
12770 if (UNTAG_Bool(REGB0)) {
12771 /* ./parser//parser_prod.nit:2369 */
12772 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12773 if (UNTAG_Bool(REGB0)) {
12774 } else {
12775 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12776 if (UNTAG_Bool(REGB1)) {
12777 REGB1 = TAG_Bool(false);
12778 REGB0 = REGB1;
12779 } else {
12780 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12781 REGB0 = REGB1;
12782 }
12783 }
12784 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12785 if (UNTAG_Bool(REGB0)) {
12786 /* ./parser//parser_prod.nit:2370 */
12787 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12788 if (UNTAG_Bool(REGB0)) {
12789 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2370);
12790 }
12791 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12792 /* ./parser//parser_prod.nit:2371 */
12793 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*/;
12794 if (UNTAG_Bool(REGB0)) {
12795 } else {
12796 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2371);
12797 }
12798 /* ./parser//parser_prod.nit:2372 */
12799 ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]) = fra.me.REG[2];
12800 } else {
12801 /* ./parser//parser_prod.nit:2374 */
12802 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2374);
12803 }
12804 /* ./parser//parser_prod.nit:2376 */
12805 goto label1;
12806 }
12807 label1: while(0);
12808 stack_frame_head = fra.me.prev;
12809 return;
12810 }
12811 void parser___parser_prod___AMinusMethid___visit_all(val_t p0, val_t p1){
12812 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12813 val_t REGB0;
12814 val_t tmp;
12815 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12816 fra.me.file = LOCATE_parser___parser_prod;
12817 fra.me.line = 2380;
12818 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___visit_all;
12819 fra.me.has_broke = 0;
12820 fra.me.REG_size = 2;
12821 fra.me.REG[0] = NIT_NULL;
12822 fra.me.REG[1] = NIT_NULL;
12823 fra.me.REG[0] = p0;
12824 fra.me.REG[1] = p1;
12825 /* ./parser//parser_prod.nit:2382 */
12826 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0])!=NIT_NULL);
12827 if (UNTAG_Bool(REGB0)) {
12828 } else {
12829 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 2382);
12830 }
12831 fra.me.REG[0] = ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]);
12832 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12833 stack_frame_head = fra.me.prev;
12834 return;
12835 }
12836 void parser___parser_prod___AStarMethid___empty_init(val_t p0, int* init_table){
12837 int itpos67 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarMethid].i;
12838 struct {struct stack_frame_t me;} fra;
12839 val_t tmp;
12840 if (init_table[itpos67]) return;
12841 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12842 fra.me.file = LOCATE_parser___parser_prod;
12843 fra.me.line = 2386;
12844 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___empty_init;
12845 fra.me.has_broke = 0;
12846 fra.me.REG_size = 1;
12847 fra.me.REG[0] = NIT_NULL;
12848 fra.me.REG[0] = p0;
12849 stack_frame_head = fra.me.prev;
12850 init_table[itpos67] = 1;
12851 return;
12852 }
12853 void parser___parser_prod___AStarMethid___init_astarmethid(val_t p0, val_t p1, int* init_table){
12854 int itpos68 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarMethid].i;
12855 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
12856 val_t REGB0;
12857 val_t tmp;
12858 if (init_table[itpos68]) return;
12859 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12860 fra.me.file = LOCATE_parser___parser_prod;
12861 fra.me.line = 2388;
12862 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___init_astarmethid;
12863 fra.me.has_broke = 0;
12864 fra.me.REG_size = 3;
12865 fra.me.REG[0] = NIT_NULL;
12866 fra.me.REG[1] = NIT_NULL;
12867 fra.me.REG[2] = NIT_NULL;
12868 fra.me.REG[0] = p0;
12869 fra.me.REG[1] = p1;
12870 /* ./parser//parser_prod.nit:2388 */
12871 fra.me.REG[2] = fra.me.REG[0];
12872 /* ./parser//parser_prod.nit:2392 */
12873 CALL_parser___parser_prod___AStarMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
12874 /* ./parser//parser_prod.nit:2393 */
12875 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12876 if (UNTAG_Bool(REGB0)) {
12877 } else {
12878 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2393);
12879 }
12880 ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[2]) = fra.me.REG[1];
12881 /* ./parser//parser_prod.nit:2394 */
12882 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12883 if (UNTAG_Bool(REGB0)) {
12884 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2394);
12885 }
12886 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12887 stack_frame_head = fra.me.prev;
12888 init_table[itpos68] = 1;
12889 return;
12890 }
12891 void parser___parser_prod___AStarMethid___replace_child(val_t p0, val_t p1, val_t p2){
12892 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12893 val_t REGB0;
12894 val_t REGB1;
12895 val_t tmp;
12896 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12897 fra.me.file = LOCATE_parser___parser_prod;
12898 fra.me.line = 2397;
12899 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___replace_child;
12900 fra.me.has_broke = 0;
12901 fra.me.REG_size = 4;
12902 fra.me.REG[0] = NIT_NULL;
12903 fra.me.REG[1] = NIT_NULL;
12904 fra.me.REG[2] = NIT_NULL;
12905 fra.me.REG[3] = NIT_NULL;
12906 fra.me.REG[0] = p0;
12907 fra.me.REG[1] = p1;
12908 fra.me.REG[2] = p2;
12909 /* ./parser//parser_prod.nit:2399 */
12910 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0])!=NIT_NULL);
12911 if (UNTAG_Bool(REGB0)) {
12912 } else {
12913 nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser___parser_prod, 2399);
12914 }
12915 fra.me.REG[3] = ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]);
12916 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12917 if (UNTAG_Bool(REGB0)) {
12918 } else {
12919 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12920 REGB0 = REGB1;
12921 }
12922 if (UNTAG_Bool(REGB0)) {
12923 /* ./parser//parser_prod.nit:2400 */
12924 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12925 if (UNTAG_Bool(REGB0)) {
12926 } else {
12927 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12928 if (UNTAG_Bool(REGB1)) {
12929 REGB1 = TAG_Bool(false);
12930 REGB0 = REGB1;
12931 } else {
12932 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12933 REGB0 = REGB1;
12934 }
12935 }
12936 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12937 if (UNTAG_Bool(REGB0)) {
12938 /* ./parser//parser_prod.nit:2401 */
12939 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12940 if (UNTAG_Bool(REGB0)) {
12941 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2401);
12942 }
12943 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12944 /* ./parser//parser_prod.nit:2402 */
12945 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*/;
12946 if (UNTAG_Bool(REGB0)) {
12947 } else {
12948 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2402);
12949 }
12950 /* ./parser//parser_prod.nit:2403 */
12951 ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]) = fra.me.REG[2];
12952 } else {
12953 /* ./parser//parser_prod.nit:2405 */
12954 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2405);
12955 }
12956 /* ./parser//parser_prod.nit:2407 */
12957 goto label1;
12958 }
12959 label1: while(0);
12960 stack_frame_head = fra.me.prev;
12961 return;
12962 }
12963 void parser___parser_prod___AStarMethid___visit_all(val_t p0, val_t p1){
12964 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12965 val_t REGB0;
12966 val_t tmp;
12967 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12968 fra.me.file = LOCATE_parser___parser_prod;
12969 fra.me.line = 2411;
12970 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___visit_all;
12971 fra.me.has_broke = 0;
12972 fra.me.REG_size = 2;
12973 fra.me.REG[0] = NIT_NULL;
12974 fra.me.REG[1] = NIT_NULL;
12975 fra.me.REG[0] = p0;
12976 fra.me.REG[1] = p1;
12977 /* ./parser//parser_prod.nit:2413 */
12978 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0])!=NIT_NULL);
12979 if (UNTAG_Bool(REGB0)) {
12980 } else {
12981 nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser___parser_prod, 2413);
12982 }
12983 fra.me.REG[0] = ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]);
12984 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12985 stack_frame_head = fra.me.prev;
12986 return;
12987 }
12988 void parser___parser_prod___ASlashMethid___empty_init(val_t p0, int* init_table){
12989 int itpos69 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashMethid].i;
12990 struct {struct stack_frame_t me;} fra;
12991 val_t tmp;
12992 if (init_table[itpos69]) return;
12993 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12994 fra.me.file = LOCATE_parser___parser_prod;
12995 fra.me.line = 2417;
12996 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___empty_init;
12997 fra.me.has_broke = 0;
12998 fra.me.REG_size = 1;
12999 fra.me.REG[0] = NIT_NULL;
13000 fra.me.REG[0] = p0;
13001 stack_frame_head = fra.me.prev;
13002 init_table[itpos69] = 1;
13003 return;
13004 }
13005 void parser___parser_prod___ASlashMethid___init_aslashmethid(val_t p0, val_t p1, int* init_table){
13006 int itpos70 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashMethid].i;
13007 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13008 val_t REGB0;
13009 val_t tmp;
13010 if (init_table[itpos70]) return;
13011 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13012 fra.me.file = LOCATE_parser___parser_prod;
13013 fra.me.line = 2419;
13014 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___init_aslashmethid;
13015 fra.me.has_broke = 0;
13016 fra.me.REG_size = 3;
13017 fra.me.REG[0] = NIT_NULL;
13018 fra.me.REG[1] = NIT_NULL;
13019 fra.me.REG[2] = NIT_NULL;
13020 fra.me.REG[0] = p0;
13021 fra.me.REG[1] = p1;
13022 /* ./parser//parser_prod.nit:2419 */
13023 fra.me.REG[2] = fra.me.REG[0];
13024 /* ./parser//parser_prod.nit:2423 */
13025 CALL_parser___parser_prod___ASlashMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13026 /* ./parser//parser_prod.nit:2424 */
13027 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13028 if (UNTAG_Bool(REGB0)) {
13029 } else {
13030 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2424);
13031 }
13032 ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[2]) = fra.me.REG[1];
13033 /* ./parser//parser_prod.nit:2425 */
13034 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13035 if (UNTAG_Bool(REGB0)) {
13036 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2425);
13037 }
13038 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13039 stack_frame_head = fra.me.prev;
13040 init_table[itpos70] = 1;
13041 return;
13042 }
13043 void parser___parser_prod___ASlashMethid___replace_child(val_t p0, val_t p1, val_t p2){
13044 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13045 val_t REGB0;
13046 val_t REGB1;
13047 val_t tmp;
13048 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13049 fra.me.file = LOCATE_parser___parser_prod;
13050 fra.me.line = 2428;
13051 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___replace_child;
13052 fra.me.has_broke = 0;
13053 fra.me.REG_size = 4;
13054 fra.me.REG[0] = NIT_NULL;
13055 fra.me.REG[1] = NIT_NULL;
13056 fra.me.REG[2] = NIT_NULL;
13057 fra.me.REG[3] = NIT_NULL;
13058 fra.me.REG[0] = p0;
13059 fra.me.REG[1] = p1;
13060 fra.me.REG[2] = p2;
13061 /* ./parser//parser_prod.nit:2430 */
13062 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0])!=NIT_NULL);
13063 if (UNTAG_Bool(REGB0)) {
13064 } else {
13065 nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser___parser_prod, 2430);
13066 }
13067 fra.me.REG[3] = ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]);
13068 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13069 if (UNTAG_Bool(REGB0)) {
13070 } else {
13071 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13072 REGB0 = REGB1;
13073 }
13074 if (UNTAG_Bool(REGB0)) {
13075 /* ./parser//parser_prod.nit:2431 */
13076 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13077 if (UNTAG_Bool(REGB0)) {
13078 } else {
13079 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13080 if (UNTAG_Bool(REGB1)) {
13081 REGB1 = TAG_Bool(false);
13082 REGB0 = REGB1;
13083 } else {
13084 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13085 REGB0 = REGB1;
13086 }
13087 }
13088 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13089 if (UNTAG_Bool(REGB0)) {
13090 /* ./parser//parser_prod.nit:2432 */
13091 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13092 if (UNTAG_Bool(REGB0)) {
13093 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2432);
13094 }
13095 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13096 /* ./parser//parser_prod.nit:2433 */
13097 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*/;
13098 if (UNTAG_Bool(REGB0)) {
13099 } else {
13100 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2433);
13101 }
13102 /* ./parser//parser_prod.nit:2434 */
13103 ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]) = fra.me.REG[2];
13104 } else {
13105 /* ./parser//parser_prod.nit:2436 */
13106 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2436);
13107 }
13108 /* ./parser//parser_prod.nit:2438 */
13109 goto label1;
13110 }
13111 label1: while(0);
13112 stack_frame_head = fra.me.prev;
13113 return;
13114 }
13115 void parser___parser_prod___ASlashMethid___visit_all(val_t p0, val_t p1){
13116 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13117 val_t REGB0;
13118 val_t tmp;
13119 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13120 fra.me.file = LOCATE_parser___parser_prod;
13121 fra.me.line = 2442;
13122 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___visit_all;
13123 fra.me.has_broke = 0;
13124 fra.me.REG_size = 2;
13125 fra.me.REG[0] = NIT_NULL;
13126 fra.me.REG[1] = NIT_NULL;
13127 fra.me.REG[0] = p0;
13128 fra.me.REG[1] = p1;
13129 /* ./parser//parser_prod.nit:2444 */
13130 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0])!=NIT_NULL);
13131 if (UNTAG_Bool(REGB0)) {
13132 } else {
13133 nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser___parser_prod, 2444);
13134 }
13135 fra.me.REG[0] = ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]);
13136 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13137 stack_frame_head = fra.me.prev;
13138 return;
13139 }
13140 void parser___parser_prod___APercentMethid___empty_init(val_t p0, int* init_table){
13141 int itpos71 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentMethid].i;
13142 struct {struct stack_frame_t me;} fra;
13143 val_t tmp;
13144 if (init_table[itpos71]) return;
13145 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13146 fra.me.file = LOCATE_parser___parser_prod;
13147 fra.me.line = 2448;
13148 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___empty_init;
13149 fra.me.has_broke = 0;
13150 fra.me.REG_size = 1;
13151 fra.me.REG[0] = NIT_NULL;
13152 fra.me.REG[0] = p0;
13153 stack_frame_head = fra.me.prev;
13154 init_table[itpos71] = 1;
13155 return;
13156 }
13157 void parser___parser_prod___APercentMethid___init_apercentmethid(val_t p0, val_t p1, int* init_table){
13158 int itpos72 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentMethid].i;
13159 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13160 val_t REGB0;
13161 val_t tmp;
13162 if (init_table[itpos72]) return;
13163 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13164 fra.me.file = LOCATE_parser___parser_prod;
13165 fra.me.line = 2450;
13166 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___init_apercentmethid;
13167 fra.me.has_broke = 0;
13168 fra.me.REG_size = 3;
13169 fra.me.REG[0] = NIT_NULL;
13170 fra.me.REG[1] = NIT_NULL;
13171 fra.me.REG[2] = NIT_NULL;
13172 fra.me.REG[0] = p0;
13173 fra.me.REG[1] = p1;
13174 /* ./parser//parser_prod.nit:2450 */
13175 fra.me.REG[2] = fra.me.REG[0];
13176 /* ./parser//parser_prod.nit:2454 */
13177 CALL_parser___parser_prod___APercentMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13178 /* ./parser//parser_prod.nit:2455 */
13179 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13180 if (UNTAG_Bool(REGB0)) {
13181 } else {
13182 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2455);
13183 }
13184 ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[2]) = fra.me.REG[1];
13185 /* ./parser//parser_prod.nit:2456 */
13186 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13187 if (UNTAG_Bool(REGB0)) {
13188 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2456);
13189 }
13190 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13191 stack_frame_head = fra.me.prev;
13192 init_table[itpos72] = 1;
13193 return;
13194 }
13195 void parser___parser_prod___APercentMethid___replace_child(val_t p0, val_t p1, val_t p2){
13196 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13197 val_t REGB0;
13198 val_t REGB1;
13199 val_t tmp;
13200 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13201 fra.me.file = LOCATE_parser___parser_prod;
13202 fra.me.line = 2459;
13203 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___replace_child;
13204 fra.me.has_broke = 0;
13205 fra.me.REG_size = 4;
13206 fra.me.REG[0] = NIT_NULL;
13207 fra.me.REG[1] = NIT_NULL;
13208 fra.me.REG[2] = NIT_NULL;
13209 fra.me.REG[3] = NIT_NULL;
13210 fra.me.REG[0] = p0;
13211 fra.me.REG[1] = p1;
13212 fra.me.REG[2] = p2;
13213 /* ./parser//parser_prod.nit:2461 */
13214 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0])!=NIT_NULL);
13215 if (UNTAG_Bool(REGB0)) {
13216 } else {
13217 nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser___parser_prod, 2461);
13218 }
13219 fra.me.REG[3] = ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]);
13220 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13221 if (UNTAG_Bool(REGB0)) {
13222 } else {
13223 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13224 REGB0 = REGB1;
13225 }
13226 if (UNTAG_Bool(REGB0)) {
13227 /* ./parser//parser_prod.nit:2462 */
13228 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13229 if (UNTAG_Bool(REGB0)) {
13230 } else {
13231 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13232 if (UNTAG_Bool(REGB1)) {
13233 REGB1 = TAG_Bool(false);
13234 REGB0 = REGB1;
13235 } else {
13236 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13237 REGB0 = REGB1;
13238 }
13239 }
13240 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13241 if (UNTAG_Bool(REGB0)) {
13242 /* ./parser//parser_prod.nit:2463 */
13243 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13244 if (UNTAG_Bool(REGB0)) {
13245 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2463);
13246 }
13247 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13248 /* ./parser//parser_prod.nit:2464 */
13249 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*/;
13250 if (UNTAG_Bool(REGB0)) {
13251 } else {
13252 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2464);
13253 }
13254 /* ./parser//parser_prod.nit:2465 */
13255 ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]) = fra.me.REG[2];
13256 } else {
13257 /* ./parser//parser_prod.nit:2467 */
13258 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2467);
13259 }
13260 /* ./parser//parser_prod.nit:2469 */
13261 goto label1;
13262 }
13263 label1: while(0);
13264 stack_frame_head = fra.me.prev;
13265 return;
13266 }
13267 void parser___parser_prod___APercentMethid___visit_all(val_t p0, val_t p1){
13268 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13269 val_t REGB0;
13270 val_t tmp;
13271 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13272 fra.me.file = LOCATE_parser___parser_prod;
13273 fra.me.line = 2473;
13274 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___visit_all;
13275 fra.me.has_broke = 0;
13276 fra.me.REG_size = 2;
13277 fra.me.REG[0] = NIT_NULL;
13278 fra.me.REG[1] = NIT_NULL;
13279 fra.me.REG[0] = p0;
13280 fra.me.REG[1] = p1;
13281 /* ./parser//parser_prod.nit:2475 */
13282 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0])!=NIT_NULL);
13283 if (UNTAG_Bool(REGB0)) {
13284 } else {
13285 nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser___parser_prod, 2475);
13286 }
13287 fra.me.REG[0] = ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]);
13288 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13289 stack_frame_head = fra.me.prev;
13290 return;
13291 }
13292 void parser___parser_prod___AEqMethid___empty_init(val_t p0, int* init_table){
13293 int itpos73 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqMethid].i;
13294 struct {struct stack_frame_t me;} fra;
13295 val_t tmp;
13296 if (init_table[itpos73]) return;
13297 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13298 fra.me.file = LOCATE_parser___parser_prod;
13299 fra.me.line = 2479;
13300 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___empty_init;
13301 fra.me.has_broke = 0;
13302 fra.me.REG_size = 1;
13303 fra.me.REG[0] = NIT_NULL;
13304 fra.me.REG[0] = p0;
13305 stack_frame_head = fra.me.prev;
13306 init_table[itpos73] = 1;
13307 return;
13308 }
13309 void parser___parser_prod___AEqMethid___init_aeqmethid(val_t p0, val_t p1, int* init_table){
13310 int itpos74 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqMethid].i;
13311 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13312 val_t REGB0;
13313 val_t tmp;
13314 if (init_table[itpos74]) return;
13315 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13316 fra.me.file = LOCATE_parser___parser_prod;
13317 fra.me.line = 2481;
13318 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___init_aeqmethid;
13319 fra.me.has_broke = 0;
13320 fra.me.REG_size = 3;
13321 fra.me.REG[0] = NIT_NULL;
13322 fra.me.REG[1] = NIT_NULL;
13323 fra.me.REG[2] = NIT_NULL;
13324 fra.me.REG[0] = p0;
13325 fra.me.REG[1] = p1;
13326 /* ./parser//parser_prod.nit:2481 */
13327 fra.me.REG[2] = fra.me.REG[0];
13328 /* ./parser//parser_prod.nit:2485 */
13329 CALL_parser___parser_prod___AEqMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13330 /* ./parser//parser_prod.nit:2486 */
13331 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13332 if (UNTAG_Bool(REGB0)) {
13333 } else {
13334 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2486);
13335 }
13336 ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[2]) = fra.me.REG[1];
13337 /* ./parser//parser_prod.nit:2487 */
13338 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13339 if (UNTAG_Bool(REGB0)) {
13340 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2487);
13341 }
13342 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13343 stack_frame_head = fra.me.prev;
13344 init_table[itpos74] = 1;
13345 return;
13346 }
13347 void parser___parser_prod___AEqMethid___replace_child(val_t p0, val_t p1, val_t p2){
13348 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13349 val_t REGB0;
13350 val_t REGB1;
13351 val_t tmp;
13352 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13353 fra.me.file = LOCATE_parser___parser_prod;
13354 fra.me.line = 2490;
13355 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___replace_child;
13356 fra.me.has_broke = 0;
13357 fra.me.REG_size = 4;
13358 fra.me.REG[0] = NIT_NULL;
13359 fra.me.REG[1] = NIT_NULL;
13360 fra.me.REG[2] = NIT_NULL;
13361 fra.me.REG[3] = NIT_NULL;
13362 fra.me.REG[0] = p0;
13363 fra.me.REG[1] = p1;
13364 fra.me.REG[2] = p2;
13365 /* ./parser//parser_prod.nit:2492 */
13366 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0])!=NIT_NULL);
13367 if (UNTAG_Bool(REGB0)) {
13368 } else {
13369 nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser___parser_prod, 2492);
13370 }
13371 fra.me.REG[3] = ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]);
13372 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13373 if (UNTAG_Bool(REGB0)) {
13374 } else {
13375 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13376 REGB0 = REGB1;
13377 }
13378 if (UNTAG_Bool(REGB0)) {
13379 /* ./parser//parser_prod.nit:2493 */
13380 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13381 if (UNTAG_Bool(REGB0)) {
13382 } else {
13383 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13384 if (UNTAG_Bool(REGB1)) {
13385 REGB1 = TAG_Bool(false);
13386 REGB0 = REGB1;
13387 } else {
13388 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13389 REGB0 = REGB1;
13390 }
13391 }
13392 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13393 if (UNTAG_Bool(REGB0)) {
13394 /* ./parser//parser_prod.nit:2494 */
13395 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13396 if (UNTAG_Bool(REGB0)) {
13397 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2494);
13398 }
13399 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13400 /* ./parser//parser_prod.nit:2495 */
13401 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*/;
13402 if (UNTAG_Bool(REGB0)) {
13403 } else {
13404 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2495);
13405 }
13406 /* ./parser//parser_prod.nit:2496 */
13407 ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]) = fra.me.REG[2];
13408 } else {
13409 /* ./parser//parser_prod.nit:2498 */
13410 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2498);
13411 }
13412 /* ./parser//parser_prod.nit:2500 */
13413 goto label1;
13414 }
13415 label1: while(0);
13416 stack_frame_head = fra.me.prev;
13417 return;
13418 }
13419 void parser___parser_prod___AEqMethid___visit_all(val_t p0, val_t p1){
13420 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13421 val_t REGB0;
13422 val_t tmp;
13423 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13424 fra.me.file = LOCATE_parser___parser_prod;
13425 fra.me.line = 2504;
13426 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___visit_all;
13427 fra.me.has_broke = 0;
13428 fra.me.REG_size = 2;
13429 fra.me.REG[0] = NIT_NULL;
13430 fra.me.REG[1] = NIT_NULL;
13431 fra.me.REG[0] = p0;
13432 fra.me.REG[1] = p1;
13433 /* ./parser//parser_prod.nit:2506 */
13434 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0])!=NIT_NULL);
13435 if (UNTAG_Bool(REGB0)) {
13436 } else {
13437 nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser___parser_prod, 2506);
13438 }
13439 fra.me.REG[0] = ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]);
13440 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13441 stack_frame_head = fra.me.prev;
13442 return;
13443 }
13444 void parser___parser_prod___ANeMethid___empty_init(val_t p0, int* init_table){
13445 int itpos75 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeMethid].i;
13446 struct {struct stack_frame_t me;} fra;
13447 val_t tmp;
13448 if (init_table[itpos75]) return;
13449 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13450 fra.me.file = LOCATE_parser___parser_prod;
13451 fra.me.line = 2510;
13452 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___empty_init;
13453 fra.me.has_broke = 0;
13454 fra.me.REG_size = 1;
13455 fra.me.REG[0] = NIT_NULL;
13456 fra.me.REG[0] = p0;
13457 stack_frame_head = fra.me.prev;
13458 init_table[itpos75] = 1;
13459 return;
13460 }
13461 void parser___parser_prod___ANeMethid___init_anemethid(val_t p0, val_t p1, int* init_table){
13462 int itpos76 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeMethid].i;
13463 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13464 val_t REGB0;
13465 val_t tmp;
13466 if (init_table[itpos76]) return;
13467 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13468 fra.me.file = LOCATE_parser___parser_prod;
13469 fra.me.line = 2512;
13470 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___init_anemethid;
13471 fra.me.has_broke = 0;
13472 fra.me.REG_size = 3;
13473 fra.me.REG[0] = NIT_NULL;
13474 fra.me.REG[1] = NIT_NULL;
13475 fra.me.REG[2] = NIT_NULL;
13476 fra.me.REG[0] = p0;
13477 fra.me.REG[1] = p1;
13478 /* ./parser//parser_prod.nit:2512 */
13479 fra.me.REG[2] = fra.me.REG[0];
13480 /* ./parser//parser_prod.nit:2516 */
13481 CALL_parser___parser_prod___ANeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13482 /* ./parser//parser_prod.nit:2517 */
13483 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13484 if (UNTAG_Bool(REGB0)) {
13485 } else {
13486 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2517);
13487 }
13488 ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[2]) = fra.me.REG[1];
13489 /* ./parser//parser_prod.nit:2518 */
13490 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13491 if (UNTAG_Bool(REGB0)) {
13492 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2518);
13493 }
13494 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13495 stack_frame_head = fra.me.prev;
13496 init_table[itpos76] = 1;
13497 return;
13498 }
13499 void parser___parser_prod___ANeMethid___replace_child(val_t p0, val_t p1, val_t p2){
13500 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13501 val_t REGB0;
13502 val_t REGB1;
13503 val_t tmp;
13504 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13505 fra.me.file = LOCATE_parser___parser_prod;
13506 fra.me.line = 2521;
13507 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___replace_child;
13508 fra.me.has_broke = 0;
13509 fra.me.REG_size = 4;
13510 fra.me.REG[0] = NIT_NULL;
13511 fra.me.REG[1] = NIT_NULL;
13512 fra.me.REG[2] = NIT_NULL;
13513 fra.me.REG[3] = NIT_NULL;
13514 fra.me.REG[0] = p0;
13515 fra.me.REG[1] = p1;
13516 fra.me.REG[2] = p2;
13517 /* ./parser//parser_prod.nit:2523 */
13518 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0])!=NIT_NULL);
13519 if (UNTAG_Bool(REGB0)) {
13520 } else {
13521 nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser___parser_prod, 2523);
13522 }
13523 fra.me.REG[3] = ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0]);
13524 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13525 if (UNTAG_Bool(REGB0)) {
13526 } else {
13527 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13528 REGB0 = REGB1;
13529 }
13530 if (UNTAG_Bool(REGB0)) {
13531 /* ./parser//parser_prod.nit:2524 */
13532 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13533 if (UNTAG_Bool(REGB0)) {
13534 } else {
13535 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13536 if (UNTAG_Bool(REGB1)) {
13537 REGB1 = TAG_Bool(false);
13538 REGB0 = REGB1;
13539 } else {
13540 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13541 REGB0 = REGB1;
13542 }
13543 }
13544 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13545 if (UNTAG_Bool(REGB0)) {
13546 /* ./parser//parser_prod.nit:2525 */
13547 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13548 if (UNTAG_Bool(REGB0)) {
13549 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2525);
13550 }
13551 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13552 /* ./parser//parser_prod.nit:2526 */
13553 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*/;
13554 if (UNTAG_Bool(REGB0)) {
13555 } else {
13556 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2526);
13557 }
13558 /* ./parser//parser_prod.nit:2527 */
13559 ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0]) = fra.me.REG[2];
13560 } else {
13561 /* ./parser//parser_prod.nit:2529 */
13562 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2529);
13563 }
13564 /* ./parser//parser_prod.nit:2531 */
13565 goto label1;
13566 }
13567 label1: while(0);
13568 stack_frame_head = fra.me.prev;
13569 return;
13570 }
13571 void parser___parser_prod___ANeMethid___visit_all(val_t p0, val_t p1){
13572 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13573 val_t REGB0;
13574 val_t tmp;
13575 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13576 fra.me.file = LOCATE_parser___parser_prod;
13577 fra.me.line = 2535;
13578 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___visit_all;
13579 fra.me.has_broke = 0;
13580 fra.me.REG_size = 2;
13581 fra.me.REG[0] = NIT_NULL;
13582 fra.me.REG[1] = NIT_NULL;
13583 fra.me.REG[0] = p0;
13584 fra.me.REG[1] = p1;
13585 /* ./parser//parser_prod.nit:2537 */
13586 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0])!=NIT_NULL);
13587 if (UNTAG_Bool(REGB0)) {
13588 } else {
13589 nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser___parser_prod, 2537);
13590 }
13591 fra.me.REG[0] = ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0]);
13592 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13593 stack_frame_head = fra.me.prev;
13594 return;
13595 }
13596 void parser___parser_prod___ALeMethid___empty_init(val_t p0, int* init_table){
13597 int itpos77 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeMethid].i;
13598 struct {struct stack_frame_t me;} fra;
13599 val_t tmp;
13600 if (init_table[itpos77]) return;
13601 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13602 fra.me.file = LOCATE_parser___parser_prod;
13603 fra.me.line = 2541;
13604 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___empty_init;
13605 fra.me.has_broke = 0;
13606 fra.me.REG_size = 1;
13607 fra.me.REG[0] = NIT_NULL;
13608 fra.me.REG[0] = p0;
13609 stack_frame_head = fra.me.prev;
13610 init_table[itpos77] = 1;
13611 return;
13612 }
13613 void parser___parser_prod___ALeMethid___init_alemethid(val_t p0, val_t p1, int* init_table){
13614 int itpos78 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeMethid].i;
13615 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13616 val_t REGB0;
13617 val_t tmp;
13618 if (init_table[itpos78]) return;
13619 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13620 fra.me.file = LOCATE_parser___parser_prod;
13621 fra.me.line = 2543;
13622 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___init_alemethid;
13623 fra.me.has_broke = 0;
13624 fra.me.REG_size = 3;
13625 fra.me.REG[0] = NIT_NULL;
13626 fra.me.REG[1] = NIT_NULL;
13627 fra.me.REG[2] = NIT_NULL;
13628 fra.me.REG[0] = p0;
13629 fra.me.REG[1] = p1;
13630 /* ./parser//parser_prod.nit:2543 */
13631 fra.me.REG[2] = fra.me.REG[0];
13632 /* ./parser//parser_prod.nit:2547 */
13633 CALL_parser___parser_prod___ALeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13634 /* ./parser//parser_prod.nit:2548 */
13635 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13636 if (UNTAG_Bool(REGB0)) {
13637 } else {
13638 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2548);
13639 }
13640 ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[2]) = fra.me.REG[1];
13641 /* ./parser//parser_prod.nit:2549 */
13642 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13643 if (UNTAG_Bool(REGB0)) {
13644 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2549);
13645 }
13646 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13647 stack_frame_head = fra.me.prev;
13648 init_table[itpos78] = 1;
13649 return;
13650 }
13651 void parser___parser_prod___ALeMethid___replace_child(val_t p0, val_t p1, val_t p2){
13652 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13653 val_t REGB0;
13654 val_t REGB1;
13655 val_t tmp;
13656 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13657 fra.me.file = LOCATE_parser___parser_prod;
13658 fra.me.line = 2552;
13659 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___replace_child;
13660 fra.me.has_broke = 0;
13661 fra.me.REG_size = 4;
13662 fra.me.REG[0] = NIT_NULL;
13663 fra.me.REG[1] = NIT_NULL;
13664 fra.me.REG[2] = NIT_NULL;
13665 fra.me.REG[3] = NIT_NULL;
13666 fra.me.REG[0] = p0;
13667 fra.me.REG[1] = p1;
13668 fra.me.REG[2] = p2;
13669 /* ./parser//parser_prod.nit:2554 */
13670 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0])!=NIT_NULL);
13671 if (UNTAG_Bool(REGB0)) {
13672 } else {
13673 nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser___parser_prod, 2554);
13674 }
13675 fra.me.REG[3] = ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0]);
13676 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13677 if (UNTAG_Bool(REGB0)) {
13678 } else {
13679 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13680 REGB0 = REGB1;
13681 }
13682 if (UNTAG_Bool(REGB0)) {
13683 /* ./parser//parser_prod.nit:2555 */
13684 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13685 if (UNTAG_Bool(REGB0)) {
13686 } else {
13687 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13688 if (UNTAG_Bool(REGB1)) {
13689 REGB1 = TAG_Bool(false);
13690 REGB0 = REGB1;
13691 } else {
13692 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13693 REGB0 = REGB1;
13694 }
13695 }
13696 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13697 if (UNTAG_Bool(REGB0)) {
13698 /* ./parser//parser_prod.nit:2556 */
13699 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13700 if (UNTAG_Bool(REGB0)) {
13701 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2556);
13702 }
13703 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13704 /* ./parser//parser_prod.nit:2557 */
13705 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*/;
13706 if (UNTAG_Bool(REGB0)) {
13707 } else {
13708 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2557);
13709 }
13710 /* ./parser//parser_prod.nit:2558 */
13711 ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0]) = fra.me.REG[2];
13712 } else {
13713 /* ./parser//parser_prod.nit:2560 */
13714 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2560);
13715 }
13716 /* ./parser//parser_prod.nit:2562 */
13717 goto label1;
13718 }
13719 label1: while(0);
13720 stack_frame_head = fra.me.prev;
13721 return;
13722 }
13723 void parser___parser_prod___ALeMethid___visit_all(val_t p0, val_t p1){
13724 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13725 val_t REGB0;
13726 val_t tmp;
13727 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13728 fra.me.file = LOCATE_parser___parser_prod;
13729 fra.me.line = 2566;
13730 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___visit_all;
13731 fra.me.has_broke = 0;
13732 fra.me.REG_size = 2;
13733 fra.me.REG[0] = NIT_NULL;
13734 fra.me.REG[1] = NIT_NULL;
13735 fra.me.REG[0] = p0;
13736 fra.me.REG[1] = p1;
13737 /* ./parser//parser_prod.nit:2568 */
13738 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0])!=NIT_NULL);
13739 if (UNTAG_Bool(REGB0)) {
13740 } else {
13741 nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser___parser_prod, 2568);
13742 }
13743 fra.me.REG[0] = ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0]);
13744 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13745 stack_frame_head = fra.me.prev;
13746 return;
13747 }
13748 void parser___parser_prod___AGeMethid___empty_init(val_t p0, int* init_table){
13749 int itpos79 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeMethid].i;
13750 struct {struct stack_frame_t me;} fra;
13751 val_t tmp;
13752 if (init_table[itpos79]) return;
13753 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13754 fra.me.file = LOCATE_parser___parser_prod;
13755 fra.me.line = 2572;
13756 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___empty_init;
13757 fra.me.has_broke = 0;
13758 fra.me.REG_size = 1;
13759 fra.me.REG[0] = NIT_NULL;
13760 fra.me.REG[0] = p0;
13761 stack_frame_head = fra.me.prev;
13762 init_table[itpos79] = 1;
13763 return;
13764 }
13765 void parser___parser_prod___AGeMethid___init_agemethid(val_t p0, val_t p1, int* init_table){
13766 int itpos80 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeMethid].i;
13767 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13768 val_t REGB0;
13769 val_t tmp;
13770 if (init_table[itpos80]) return;
13771 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13772 fra.me.file = LOCATE_parser___parser_prod;
13773 fra.me.line = 2574;
13774 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___init_agemethid;
13775 fra.me.has_broke = 0;
13776 fra.me.REG_size = 3;
13777 fra.me.REG[0] = NIT_NULL;
13778 fra.me.REG[1] = NIT_NULL;
13779 fra.me.REG[2] = NIT_NULL;
13780 fra.me.REG[0] = p0;
13781 fra.me.REG[1] = p1;
13782 /* ./parser//parser_prod.nit:2574 */
13783 fra.me.REG[2] = fra.me.REG[0];
13784 /* ./parser//parser_prod.nit:2578 */
13785 CALL_parser___parser_prod___AGeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13786 /* ./parser//parser_prod.nit:2579 */
13787 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13788 if (UNTAG_Bool(REGB0)) {
13789 } else {
13790 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2579);
13791 }
13792 ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[2]) = fra.me.REG[1];
13793 /* ./parser//parser_prod.nit:2580 */
13794 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13795 if (UNTAG_Bool(REGB0)) {
13796 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2580);
13797 }
13798 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13799 stack_frame_head = fra.me.prev;
13800 init_table[itpos80] = 1;
13801 return;
13802 }
13803 void parser___parser_prod___AGeMethid___replace_child(val_t p0, val_t p1, val_t p2){
13804 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13805 val_t REGB0;
13806 val_t REGB1;
13807 val_t tmp;
13808 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13809 fra.me.file = LOCATE_parser___parser_prod;
13810 fra.me.line = 2583;
13811 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___replace_child;
13812 fra.me.has_broke = 0;
13813 fra.me.REG_size = 4;
13814 fra.me.REG[0] = NIT_NULL;
13815 fra.me.REG[1] = NIT_NULL;
13816 fra.me.REG[2] = NIT_NULL;
13817 fra.me.REG[3] = NIT_NULL;
13818 fra.me.REG[0] = p0;
13819 fra.me.REG[1] = p1;
13820 fra.me.REG[2] = p2;
13821 /* ./parser//parser_prod.nit:2585 */
13822 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0])!=NIT_NULL);
13823 if (UNTAG_Bool(REGB0)) {
13824 } else {
13825 nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser___parser_prod, 2585);
13826 }
13827 fra.me.REG[3] = ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0]);
13828 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13829 if (UNTAG_Bool(REGB0)) {
13830 } else {
13831 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13832 REGB0 = REGB1;
13833 }
13834 if (UNTAG_Bool(REGB0)) {
13835 /* ./parser//parser_prod.nit:2586 */
13836 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13837 if (UNTAG_Bool(REGB0)) {
13838 } else {
13839 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13840 if (UNTAG_Bool(REGB1)) {
13841 REGB1 = TAG_Bool(false);
13842 REGB0 = REGB1;
13843 } else {
13844 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13845 REGB0 = REGB1;
13846 }
13847 }
13848 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13849 if (UNTAG_Bool(REGB0)) {
13850 /* ./parser//parser_prod.nit:2587 */
13851 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13852 if (UNTAG_Bool(REGB0)) {
13853 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2587);
13854 }
13855 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13856 /* ./parser//parser_prod.nit:2588 */
13857 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*/;
13858 if (UNTAG_Bool(REGB0)) {
13859 } else {
13860 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2588);
13861 }
13862 /* ./parser//parser_prod.nit:2589 */
13863 ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0]) = fra.me.REG[2];
13864 } else {
13865 /* ./parser//parser_prod.nit:2591 */
13866 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2591);
13867 }
13868 /* ./parser//parser_prod.nit:2593 */
13869 goto label1;
13870 }
13871 label1: while(0);
13872 stack_frame_head = fra.me.prev;
13873 return;
13874 }
13875 void parser___parser_prod___AGeMethid___visit_all(val_t p0, val_t p1){
13876 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13877 val_t REGB0;
13878 val_t tmp;
13879 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13880 fra.me.file = LOCATE_parser___parser_prod;
13881 fra.me.line = 2597;
13882 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___visit_all;
13883 fra.me.has_broke = 0;
13884 fra.me.REG_size = 2;
13885 fra.me.REG[0] = NIT_NULL;
13886 fra.me.REG[1] = NIT_NULL;
13887 fra.me.REG[0] = p0;
13888 fra.me.REG[1] = p1;
13889 /* ./parser//parser_prod.nit:2599 */
13890 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0])!=NIT_NULL);
13891 if (UNTAG_Bool(REGB0)) {
13892 } else {
13893 nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser___parser_prod, 2599);
13894 }
13895 fra.me.REG[0] = ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0]);
13896 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13897 stack_frame_head = fra.me.prev;
13898 return;
13899 }
13900 void parser___parser_prod___ALtMethid___empty_init(val_t p0, int* init_table){
13901 int itpos81 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtMethid].i;
13902 struct {struct stack_frame_t me;} fra;
13903 val_t tmp;
13904 if (init_table[itpos81]) return;
13905 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13906 fra.me.file = LOCATE_parser___parser_prod;
13907 fra.me.line = 2603;
13908 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___empty_init;
13909 fra.me.has_broke = 0;
13910 fra.me.REG_size = 1;
13911 fra.me.REG[0] = NIT_NULL;
13912 fra.me.REG[0] = p0;
13913 stack_frame_head = fra.me.prev;
13914 init_table[itpos81] = 1;
13915 return;
13916 }
13917 void parser___parser_prod___ALtMethid___init_altmethid(val_t p0, val_t p1, int* init_table){
13918 int itpos82 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtMethid].i;
13919 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13920 val_t REGB0;
13921 val_t tmp;
13922 if (init_table[itpos82]) return;
13923 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13924 fra.me.file = LOCATE_parser___parser_prod;
13925 fra.me.line = 2605;
13926 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___init_altmethid;
13927 fra.me.has_broke = 0;
13928 fra.me.REG_size = 3;
13929 fra.me.REG[0] = NIT_NULL;
13930 fra.me.REG[1] = NIT_NULL;
13931 fra.me.REG[2] = NIT_NULL;
13932 fra.me.REG[0] = p0;
13933 fra.me.REG[1] = p1;
13934 /* ./parser//parser_prod.nit:2605 */
13935 fra.me.REG[2] = fra.me.REG[0];
13936 /* ./parser//parser_prod.nit:2609 */
13937 CALL_parser___parser_prod___ALtMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13938 /* ./parser//parser_prod.nit:2610 */
13939 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13940 if (UNTAG_Bool(REGB0)) {
13941 } else {
13942 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2610);
13943 }
13944 ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[2]) = fra.me.REG[1];
13945 /* ./parser//parser_prod.nit:2611 */
13946 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13947 if (UNTAG_Bool(REGB0)) {
13948 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2611);
13949 }
13950 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13951 stack_frame_head = fra.me.prev;
13952 init_table[itpos82] = 1;
13953 return;
13954 }
13955 void parser___parser_prod___ALtMethid___replace_child(val_t p0, val_t p1, val_t p2){
13956 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13957 val_t REGB0;
13958 val_t REGB1;
13959 val_t tmp;
13960 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13961 fra.me.file = LOCATE_parser___parser_prod;
13962 fra.me.line = 2614;
13963 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___replace_child;
13964 fra.me.has_broke = 0;
13965 fra.me.REG_size = 4;
13966 fra.me.REG[0] = NIT_NULL;
13967 fra.me.REG[1] = NIT_NULL;
13968 fra.me.REG[2] = NIT_NULL;
13969 fra.me.REG[3] = NIT_NULL;
13970 fra.me.REG[0] = p0;
13971 fra.me.REG[1] = p1;
13972 fra.me.REG[2] = p2;
13973 /* ./parser//parser_prod.nit:2616 */
13974 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0])!=NIT_NULL);
13975 if (UNTAG_Bool(REGB0)) {
13976 } else {
13977 nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser___parser_prod, 2616);
13978 }
13979 fra.me.REG[3] = ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0]);
13980 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13981 if (UNTAG_Bool(REGB0)) {
13982 } else {
13983 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13984 REGB0 = REGB1;
13985 }
13986 if (UNTAG_Bool(REGB0)) {
13987 /* ./parser//parser_prod.nit:2617 */
13988 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13989 if (UNTAG_Bool(REGB0)) {
13990 } else {
13991 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13992 if (UNTAG_Bool(REGB1)) {
13993 REGB1 = TAG_Bool(false);
13994 REGB0 = REGB1;
13995 } else {
13996 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13997 REGB0 = REGB1;
13998 }
13999 }
14000 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14001 if (UNTAG_Bool(REGB0)) {
14002 /* ./parser//parser_prod.nit:2618 */
14003 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14004 if (UNTAG_Bool(REGB0)) {
14005 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2618);
14006 }
14007 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14008 /* ./parser//parser_prod.nit:2619 */
14009 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*/;
14010 if (UNTAG_Bool(REGB0)) {
14011 } else {
14012 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2619);
14013 }
14014 /* ./parser//parser_prod.nit:2620 */
14015 ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0]) = fra.me.REG[2];
14016 } else {
14017 /* ./parser//parser_prod.nit:2622 */
14018 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2622);
14019 }
14020 /* ./parser//parser_prod.nit:2624 */
14021 goto label1;
14022 }
14023 label1: while(0);
14024 stack_frame_head = fra.me.prev;
14025 return;
14026 }
14027 void parser___parser_prod___ALtMethid___visit_all(val_t p0, val_t p1){
14028 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14029 val_t REGB0;
14030 val_t tmp;
14031 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14032 fra.me.file = LOCATE_parser___parser_prod;
14033 fra.me.line = 2628;
14034 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___visit_all;
14035 fra.me.has_broke = 0;
14036 fra.me.REG_size = 2;
14037 fra.me.REG[0] = NIT_NULL;
14038 fra.me.REG[1] = NIT_NULL;
14039 fra.me.REG[0] = p0;
14040 fra.me.REG[1] = p1;
14041 /* ./parser//parser_prod.nit:2630 */
14042 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0])!=NIT_NULL);
14043 if (UNTAG_Bool(REGB0)) {
14044 } else {
14045 nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser___parser_prod, 2630);
14046 }
14047 fra.me.REG[0] = ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0]);
14048 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14049 stack_frame_head = fra.me.prev;
14050 return;
14051 }
14052 void parser___parser_prod___AGtMethid___empty_init(val_t p0, int* init_table){
14053 int itpos83 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtMethid].i;
14054 struct {struct stack_frame_t me;} fra;
14055 val_t tmp;
14056 if (init_table[itpos83]) return;
14057 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14058 fra.me.file = LOCATE_parser___parser_prod;
14059 fra.me.line = 2634;
14060 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___empty_init;
14061 fra.me.has_broke = 0;
14062 fra.me.REG_size = 1;
14063 fra.me.REG[0] = NIT_NULL;
14064 fra.me.REG[0] = p0;
14065 stack_frame_head = fra.me.prev;
14066 init_table[itpos83] = 1;
14067 return;
14068 }
14069 void parser___parser_prod___AGtMethid___init_agtmethid(val_t p0, val_t p1, int* init_table){
14070 int itpos84 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtMethid].i;
14071 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14072 val_t REGB0;
14073 val_t tmp;
14074 if (init_table[itpos84]) return;
14075 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14076 fra.me.file = LOCATE_parser___parser_prod;
14077 fra.me.line = 2636;
14078 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___init_agtmethid;
14079 fra.me.has_broke = 0;
14080 fra.me.REG_size = 3;
14081 fra.me.REG[0] = NIT_NULL;
14082 fra.me.REG[1] = NIT_NULL;
14083 fra.me.REG[2] = NIT_NULL;
14084 fra.me.REG[0] = p0;
14085 fra.me.REG[1] = p1;
14086 /* ./parser//parser_prod.nit:2636 */
14087 fra.me.REG[2] = fra.me.REG[0];
14088 /* ./parser//parser_prod.nit:2640 */
14089 CALL_parser___parser_prod___AGtMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14090 /* ./parser//parser_prod.nit:2641 */
14091 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14092 if (UNTAG_Bool(REGB0)) {
14093 } else {
14094 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2641);
14095 }
14096 ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[2]) = fra.me.REG[1];
14097 /* ./parser//parser_prod.nit:2642 */
14098 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14099 if (UNTAG_Bool(REGB0)) {
14100 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2642);
14101 }
14102 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14103 stack_frame_head = fra.me.prev;
14104 init_table[itpos84] = 1;
14105 return;
14106 }
14107 void parser___parser_prod___AGtMethid___replace_child(val_t p0, val_t p1, val_t p2){
14108 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14109 val_t REGB0;
14110 val_t REGB1;
14111 val_t tmp;
14112 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14113 fra.me.file = LOCATE_parser___parser_prod;
14114 fra.me.line = 2645;
14115 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___replace_child;
14116 fra.me.has_broke = 0;
14117 fra.me.REG_size = 4;
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[3] = NIT_NULL;
14122 fra.me.REG[0] = p0;
14123 fra.me.REG[1] = p1;
14124 fra.me.REG[2] = p2;
14125 /* ./parser//parser_prod.nit:2647 */
14126 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0])!=NIT_NULL);
14127 if (UNTAG_Bool(REGB0)) {
14128 } else {
14129 nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser___parser_prod, 2647);
14130 }
14131 fra.me.REG[3] = ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0]);
14132 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14133 if (UNTAG_Bool(REGB0)) {
14134 } else {
14135 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14136 REGB0 = REGB1;
14137 }
14138 if (UNTAG_Bool(REGB0)) {
14139 /* ./parser//parser_prod.nit:2648 */
14140 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14141 if (UNTAG_Bool(REGB0)) {
14142 } else {
14143 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14144 if (UNTAG_Bool(REGB1)) {
14145 REGB1 = TAG_Bool(false);
14146 REGB0 = REGB1;
14147 } else {
14148 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14149 REGB0 = REGB1;
14150 }
14151 }
14152 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14153 if (UNTAG_Bool(REGB0)) {
14154 /* ./parser//parser_prod.nit:2649 */
14155 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14156 if (UNTAG_Bool(REGB0)) {
14157 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2649);
14158 }
14159 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14160 /* ./parser//parser_prod.nit:2650 */
14161 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*/;
14162 if (UNTAG_Bool(REGB0)) {
14163 } else {
14164 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2650);
14165 }
14166 /* ./parser//parser_prod.nit:2651 */
14167 ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0]) = fra.me.REG[2];
14168 } else {
14169 /* ./parser//parser_prod.nit:2653 */
14170 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2653);
14171 }
14172 /* ./parser//parser_prod.nit:2655 */
14173 goto label1;
14174 }
14175 label1: while(0);
14176 stack_frame_head = fra.me.prev;
14177 return;
14178 }
14179 void parser___parser_prod___AGtMethid___visit_all(val_t p0, val_t p1){
14180 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14181 val_t REGB0;
14182 val_t tmp;
14183 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14184 fra.me.file = LOCATE_parser___parser_prod;
14185 fra.me.line = 2659;
14186 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___visit_all;
14187 fra.me.has_broke = 0;
14188 fra.me.REG_size = 2;
14189 fra.me.REG[0] = NIT_NULL;
14190 fra.me.REG[1] = NIT_NULL;
14191 fra.me.REG[0] = p0;
14192 fra.me.REG[1] = p1;
14193 /* ./parser//parser_prod.nit:2661 */
14194 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0])!=NIT_NULL);
14195 if (UNTAG_Bool(REGB0)) {
14196 } else {
14197 nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser___parser_prod, 2661);
14198 }
14199 fra.me.REG[0] = ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0]);
14200 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14201 stack_frame_head = fra.me.prev;
14202 return;
14203 }
14204 void parser___parser_prod___ALlMethid___empty_init(val_t p0, int* init_table){
14205 int itpos85 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlMethid].i;
14206 struct {struct stack_frame_t me;} fra;
14207 val_t tmp;
14208 if (init_table[itpos85]) return;
14209 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14210 fra.me.file = LOCATE_parser___parser_prod;
14211 fra.me.line = 2665;
14212 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___empty_init;
14213 fra.me.has_broke = 0;
14214 fra.me.REG_size = 1;
14215 fra.me.REG[0] = NIT_NULL;
14216 fra.me.REG[0] = p0;
14217 stack_frame_head = fra.me.prev;
14218 init_table[itpos85] = 1;
14219 return;
14220 }
14221 void parser___parser_prod___ALlMethid___init_allmethid(val_t p0, val_t p1, int* init_table){
14222 int itpos86 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlMethid].i;
14223 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14224 val_t REGB0;
14225 val_t tmp;
14226 if (init_table[itpos86]) return;
14227 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14228 fra.me.file = LOCATE_parser___parser_prod;
14229 fra.me.line = 2667;
14230 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___init_allmethid;
14231 fra.me.has_broke = 0;
14232 fra.me.REG_size = 3;
14233 fra.me.REG[0] = NIT_NULL;
14234 fra.me.REG[1] = NIT_NULL;
14235 fra.me.REG[2] = NIT_NULL;
14236 fra.me.REG[0] = p0;
14237 fra.me.REG[1] = p1;
14238 /* ./parser//parser_prod.nit:2667 */
14239 fra.me.REG[2] = fra.me.REG[0];
14240 /* ./parser//parser_prod.nit:2671 */
14241 CALL_parser___parser_prod___ALlMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14242 /* ./parser//parser_prod.nit:2672 */
14243 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14244 if (UNTAG_Bool(REGB0)) {
14245 } else {
14246 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2672);
14247 }
14248 ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[2]) = fra.me.REG[1];
14249 /* ./parser//parser_prod.nit:2673 */
14250 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14251 if (UNTAG_Bool(REGB0)) {
14252 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2673);
14253 }
14254 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14255 stack_frame_head = fra.me.prev;
14256 init_table[itpos86] = 1;
14257 return;
14258 }
14259 void parser___parser_prod___ALlMethid___replace_child(val_t p0, val_t p1, val_t p2){
14260 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14261 val_t REGB0;
14262 val_t REGB1;
14263 val_t tmp;
14264 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14265 fra.me.file = LOCATE_parser___parser_prod;
14266 fra.me.line = 2676;
14267 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___replace_child;
14268 fra.me.has_broke = 0;
14269 fra.me.REG_size = 4;
14270 fra.me.REG[0] = NIT_NULL;
14271 fra.me.REG[1] = NIT_NULL;
14272 fra.me.REG[2] = NIT_NULL;
14273 fra.me.REG[3] = NIT_NULL;
14274 fra.me.REG[0] = p0;
14275 fra.me.REG[1] = p1;
14276 fra.me.REG[2] = p2;
14277 /* ./parser//parser_prod.nit:2678 */
14278 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0])!=NIT_NULL);
14279 if (UNTAG_Bool(REGB0)) {
14280 } else {
14281 nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser___parser_prod, 2678);
14282 }
14283 fra.me.REG[3] = ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]);
14284 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14285 if (UNTAG_Bool(REGB0)) {
14286 } else {
14287 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14288 REGB0 = REGB1;
14289 }
14290 if (UNTAG_Bool(REGB0)) {
14291 /* ./parser//parser_prod.nit:2679 */
14292 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14293 if (UNTAG_Bool(REGB0)) {
14294 } else {
14295 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14296 if (UNTAG_Bool(REGB1)) {
14297 REGB1 = TAG_Bool(false);
14298 REGB0 = REGB1;
14299 } else {
14300 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14301 REGB0 = REGB1;
14302 }
14303 }
14304 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14305 if (UNTAG_Bool(REGB0)) {
14306 /* ./parser//parser_prod.nit:2680 */
14307 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14308 if (UNTAG_Bool(REGB0)) {
14309 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2680);
14310 }
14311 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14312 /* ./parser//parser_prod.nit:2681 */
14313 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*/;
14314 if (UNTAG_Bool(REGB0)) {
14315 } else {
14316 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2681);
14317 }
14318 /* ./parser//parser_prod.nit:2682 */
14319 ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]) = fra.me.REG[2];
14320 } else {
14321 /* ./parser//parser_prod.nit:2684 */
14322 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2684);
14323 }
14324 /* ./parser//parser_prod.nit:2686 */
14325 goto label1;
14326 }
14327 label1: while(0);
14328 stack_frame_head = fra.me.prev;
14329 return;
14330 }
14331 void parser___parser_prod___ALlMethid___visit_all(val_t p0, val_t p1){
14332 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14333 val_t REGB0;
14334 val_t tmp;
14335 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14336 fra.me.file = LOCATE_parser___parser_prod;
14337 fra.me.line = 2690;
14338 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___visit_all;
14339 fra.me.has_broke = 0;
14340 fra.me.REG_size = 2;
14341 fra.me.REG[0] = NIT_NULL;
14342 fra.me.REG[1] = NIT_NULL;
14343 fra.me.REG[0] = p0;
14344 fra.me.REG[1] = p1;
14345 /* ./parser//parser_prod.nit:2692 */
14346 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0])!=NIT_NULL);
14347 if (UNTAG_Bool(REGB0)) {
14348 } else {
14349 nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser___parser_prod, 2692);
14350 }
14351 fra.me.REG[0] = ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]);
14352 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14353 stack_frame_head = fra.me.prev;
14354 return;
14355 }
14356 void parser___parser_prod___AGgMethid___empty_init(val_t p0, int* init_table){
14357 int itpos87 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgMethid].i;
14358 struct {struct stack_frame_t me;} fra;
14359 val_t tmp;
14360 if (init_table[itpos87]) return;
14361 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14362 fra.me.file = LOCATE_parser___parser_prod;
14363 fra.me.line = 2696;
14364 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___empty_init;
14365 fra.me.has_broke = 0;
14366 fra.me.REG_size = 1;
14367 fra.me.REG[0] = NIT_NULL;
14368 fra.me.REG[0] = p0;
14369 stack_frame_head = fra.me.prev;
14370 init_table[itpos87] = 1;
14371 return;
14372 }
14373 void parser___parser_prod___AGgMethid___init_aggmethid(val_t p0, val_t p1, int* init_table){
14374 int itpos88 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgMethid].i;
14375 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14376 val_t REGB0;
14377 val_t tmp;
14378 if (init_table[itpos88]) return;
14379 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14380 fra.me.file = LOCATE_parser___parser_prod;
14381 fra.me.line = 2698;
14382 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___init_aggmethid;
14383 fra.me.has_broke = 0;
14384 fra.me.REG_size = 3;
14385 fra.me.REG[0] = NIT_NULL;
14386 fra.me.REG[1] = NIT_NULL;
14387 fra.me.REG[2] = NIT_NULL;
14388 fra.me.REG[0] = p0;
14389 fra.me.REG[1] = p1;
14390 /* ./parser//parser_prod.nit:2698 */
14391 fra.me.REG[2] = fra.me.REG[0];
14392 /* ./parser//parser_prod.nit:2702 */
14393 CALL_parser___parser_prod___AGgMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14394 /* ./parser//parser_prod.nit:2703 */
14395 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14396 if (UNTAG_Bool(REGB0)) {
14397 } else {
14398 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2703);
14399 }
14400 ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[2]) = fra.me.REG[1];
14401 /* ./parser//parser_prod.nit:2704 */
14402 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14403 if (UNTAG_Bool(REGB0)) {
14404 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2704);
14405 }
14406 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14407 stack_frame_head = fra.me.prev;
14408 init_table[itpos88] = 1;
14409 return;
14410 }
14411 void parser___parser_prod___AGgMethid___replace_child(val_t p0, val_t p1, val_t p2){
14412 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14413 val_t REGB0;
14414 val_t REGB1;
14415 val_t tmp;
14416 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14417 fra.me.file = LOCATE_parser___parser_prod;
14418 fra.me.line = 2707;
14419 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___replace_child;
14420 fra.me.has_broke = 0;
14421 fra.me.REG_size = 4;
14422 fra.me.REG[0] = NIT_NULL;
14423 fra.me.REG[1] = NIT_NULL;
14424 fra.me.REG[2] = NIT_NULL;
14425 fra.me.REG[3] = NIT_NULL;
14426 fra.me.REG[0] = p0;
14427 fra.me.REG[1] = p1;
14428 fra.me.REG[2] = p2;
14429 /* ./parser//parser_prod.nit:2709 */
14430 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0])!=NIT_NULL);
14431 if (UNTAG_Bool(REGB0)) {
14432 } else {
14433 nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser___parser_prod, 2709);
14434 }
14435 fra.me.REG[3] = ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]);
14436 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14437 if (UNTAG_Bool(REGB0)) {
14438 } else {
14439 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14440 REGB0 = REGB1;
14441 }
14442 if (UNTAG_Bool(REGB0)) {
14443 /* ./parser//parser_prod.nit:2710 */
14444 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14445 if (UNTAG_Bool(REGB0)) {
14446 } else {
14447 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14448 if (UNTAG_Bool(REGB1)) {
14449 REGB1 = TAG_Bool(false);
14450 REGB0 = REGB1;
14451 } else {
14452 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14453 REGB0 = REGB1;
14454 }
14455 }
14456 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14457 if (UNTAG_Bool(REGB0)) {
14458 /* ./parser//parser_prod.nit:2711 */
14459 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14460 if (UNTAG_Bool(REGB0)) {
14461 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2711);
14462 }
14463 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14464 /* ./parser//parser_prod.nit:2712 */
14465 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*/;
14466 if (UNTAG_Bool(REGB0)) {
14467 } else {
14468 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2712);
14469 }
14470 /* ./parser//parser_prod.nit:2713 */
14471 ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]) = fra.me.REG[2];
14472 } else {
14473 /* ./parser//parser_prod.nit:2715 */
14474 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2715);
14475 }
14476 /* ./parser//parser_prod.nit:2717 */
14477 goto label1;
14478 }
14479 label1: while(0);
14480 stack_frame_head = fra.me.prev;
14481 return;
14482 }
14483 void parser___parser_prod___AGgMethid___visit_all(val_t p0, val_t p1){
14484 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14485 val_t REGB0;
14486 val_t tmp;
14487 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14488 fra.me.file = LOCATE_parser___parser_prod;
14489 fra.me.line = 2721;
14490 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___visit_all;
14491 fra.me.has_broke = 0;
14492 fra.me.REG_size = 2;
14493 fra.me.REG[0] = NIT_NULL;
14494 fra.me.REG[1] = NIT_NULL;
14495 fra.me.REG[0] = p0;
14496 fra.me.REG[1] = p1;
14497 /* ./parser//parser_prod.nit:2723 */
14498 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0])!=NIT_NULL);
14499 if (UNTAG_Bool(REGB0)) {
14500 } else {
14501 nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser___parser_prod, 2723);
14502 }
14503 fra.me.REG[0] = ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]);
14504 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14505 stack_frame_head = fra.me.prev;
14506 return;
14507 }
14508 void parser___parser_prod___ABraMethid___empty_init(val_t p0, int* init_table){
14509 int itpos89 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraMethid].i;
14510 struct {struct stack_frame_t me;} fra;
14511 val_t tmp;
14512 if (init_table[itpos89]) return;
14513 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14514 fra.me.file = LOCATE_parser___parser_prod;
14515 fra.me.line = 2727;
14516 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___empty_init;
14517 fra.me.has_broke = 0;
14518 fra.me.REG_size = 1;
14519 fra.me.REG[0] = NIT_NULL;
14520 fra.me.REG[0] = p0;
14521 stack_frame_head = fra.me.prev;
14522 init_table[itpos89] = 1;
14523 return;
14524 }
14525 void parser___parser_prod___ABraMethid___init_abramethid(val_t p0, val_t p1, val_t p2, int* init_table){
14526 int itpos90 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraMethid].i;
14527 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14528 val_t REGB0;
14529 val_t tmp;
14530 if (init_table[itpos90]) return;
14531 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14532 fra.me.file = LOCATE_parser___parser_prod;
14533 fra.me.line = 2729;
14534 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___init_abramethid;
14535 fra.me.has_broke = 0;
14536 fra.me.REG_size = 4;
14537 fra.me.REG[0] = NIT_NULL;
14538 fra.me.REG[1] = NIT_NULL;
14539 fra.me.REG[2] = NIT_NULL;
14540 fra.me.REG[3] = NIT_NULL;
14541 fra.me.REG[0] = p0;
14542 fra.me.REG[1] = p1;
14543 fra.me.REG[2] = p2;
14544 /* ./parser//parser_prod.nit:2729 */
14545 fra.me.REG[3] = fra.me.REG[0];
14546 /* ./parser//parser_prod.nit:2734 */
14547 CALL_parser___parser_prod___ABraMethid___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
14548 /* ./parser//parser_prod.nit:2735 */
14549 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14550 if (UNTAG_Bool(REGB0)) {
14551 } else {
14552 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2735);
14553 }
14554 ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[3]) = fra.me.REG[1];
14555 /* ./parser//parser_prod.nit:2736 */
14556 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14557 if (UNTAG_Bool(REGB0)) {
14558 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2736);
14559 }
14560 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14561 /* ./parser//parser_prod.nit:2737 */
14562 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
14563 if (UNTAG_Bool(REGB0)) {
14564 } else {
14565 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2737);
14566 }
14567 ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[3]) = fra.me.REG[2];
14568 /* ./parser//parser_prod.nit:2738 */
14569 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14570 if (UNTAG_Bool(REGB0)) {
14571 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2738);
14572 }
14573 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14574 stack_frame_head = fra.me.prev;
14575 init_table[itpos90] = 1;
14576 return;
14577 }
14578 void parser___parser_prod___ABraMethid___replace_child(val_t p0, val_t p1, val_t p2){
14579 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14580 val_t REGB0;
14581 val_t REGB1;
14582 val_t tmp;
14583 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14584 fra.me.file = LOCATE_parser___parser_prod;
14585 fra.me.line = 2741;
14586 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___replace_child;
14587 fra.me.has_broke = 0;
14588 fra.me.REG_size = 4;
14589 fra.me.REG[0] = NIT_NULL;
14590 fra.me.REG[1] = NIT_NULL;
14591 fra.me.REG[2] = NIT_NULL;
14592 fra.me.REG[3] = NIT_NULL;
14593 fra.me.REG[0] = p0;
14594 fra.me.REG[1] = p1;
14595 fra.me.REG[2] = p2;
14596 /* ./parser//parser_prod.nit:2743 */
14597 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
14598 if (UNTAG_Bool(REGB0)) {
14599 } else {
14600 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2743);
14601 }
14602 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]);
14603 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14604 if (UNTAG_Bool(REGB0)) {
14605 } else {
14606 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14607 REGB0 = REGB1;
14608 }
14609 if (UNTAG_Bool(REGB0)) {
14610 /* ./parser//parser_prod.nit:2744 */
14611 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14612 if (UNTAG_Bool(REGB0)) {
14613 } else {
14614 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14615 if (UNTAG_Bool(REGB1)) {
14616 REGB1 = TAG_Bool(false);
14617 REGB0 = REGB1;
14618 } else {
14619 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14620 REGB0 = REGB1;
14621 }
14622 }
14623 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14624 if (UNTAG_Bool(REGB0)) {
14625 /* ./parser//parser_prod.nit:2745 */
14626 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14627 if (UNTAG_Bool(REGB0)) {
14628 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2745);
14629 }
14630 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14631 /* ./parser//parser_prod.nit:2746 */
14632 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*/;
14633 if (UNTAG_Bool(REGB0)) {
14634 } else {
14635 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2746);
14636 }
14637 /* ./parser//parser_prod.nit:2747 */
14638 ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]) = fra.me.REG[2];
14639 } else {
14640 /* ./parser//parser_prod.nit:2749 */
14641 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2749);
14642 }
14643 /* ./parser//parser_prod.nit:2751 */
14644 goto label1;
14645 }
14646 /* ./parser//parser_prod.nit:2753 */
14647 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
14648 if (UNTAG_Bool(REGB0)) {
14649 } else {
14650 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2753);
14651 }
14652 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]);
14653 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14654 if (UNTAG_Bool(REGB0)) {
14655 } else {
14656 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14657 REGB0 = REGB1;
14658 }
14659 if (UNTAG_Bool(REGB0)) {
14660 /* ./parser//parser_prod.nit:2754 */
14661 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14662 if (UNTAG_Bool(REGB0)) {
14663 } else {
14664 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14665 if (UNTAG_Bool(REGB1)) {
14666 REGB1 = TAG_Bool(false);
14667 REGB0 = REGB1;
14668 } else {
14669 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14670 REGB0 = REGB1;
14671 }
14672 }
14673 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14674 if (UNTAG_Bool(REGB0)) {
14675 /* ./parser//parser_prod.nit:2755 */
14676 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14677 if (UNTAG_Bool(REGB0)) {
14678 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2755);
14679 }
14680 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14681 /* ./parser//parser_prod.nit:2756 */
14682 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*/;
14683 if (UNTAG_Bool(REGB0)) {
14684 } else {
14685 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2756);
14686 }
14687 /* ./parser//parser_prod.nit:2757 */
14688 ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
14689 } else {
14690 /* ./parser//parser_prod.nit:2759 */
14691 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2759);
14692 }
14693 /* ./parser//parser_prod.nit:2761 */
14694 goto label1;
14695 }
14696 label1: while(0);
14697 stack_frame_head = fra.me.prev;
14698 return;
14699 }
14700 void parser___parser_prod___ABraMethid___visit_all(val_t p0, val_t p1){
14701 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14702 val_t REGB0;
14703 val_t tmp;
14704 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14705 fra.me.file = LOCATE_parser___parser_prod;
14706 fra.me.line = 2765;
14707 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___visit_all;
14708 fra.me.has_broke = 0;
14709 fra.me.REG_size = 3;
14710 fra.me.REG[0] = NIT_NULL;
14711 fra.me.REG[1] = NIT_NULL;
14712 fra.me.REG[2] = NIT_NULL;
14713 fra.me.REG[0] = p0;
14714 fra.me.REG[1] = p1;
14715 /* ./parser//parser_prod.nit:2767 */
14716 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
14717 if (UNTAG_Bool(REGB0)) {
14718 } else {
14719 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2767);
14720 }
14721 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]);
14722 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14723 /* ./parser//parser_prod.nit:2768 */
14724 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
14725 if (UNTAG_Bool(REGB0)) {
14726 } else {
14727 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2768);
14728 }
14729 fra.me.REG[0] = ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]);
14730 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14731 stack_frame_head = fra.me.prev;
14732 return;
14733 }
14734 void parser___parser_prod___AStarshipMethid___empty_init(val_t p0, int* init_table){
14735 int itpos91 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipMethid].i;
14736 struct {struct stack_frame_t me;} fra;
14737 val_t tmp;
14738 if (init_table[itpos91]) return;
14739 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14740 fra.me.file = LOCATE_parser___parser_prod;
14741 fra.me.line = 2772;
14742 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___empty_init;
14743 fra.me.has_broke = 0;
14744 fra.me.REG_size = 1;
14745 fra.me.REG[0] = NIT_NULL;
14746 fra.me.REG[0] = p0;
14747 stack_frame_head = fra.me.prev;
14748 init_table[itpos91] = 1;
14749 return;
14750 }
14751 void parser___parser_prod___AStarshipMethid___init_astarshipmethid(val_t p0, val_t p1, int* init_table){
14752 int itpos92 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipMethid].i;
14753 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14754 val_t REGB0;
14755 val_t tmp;
14756 if (init_table[itpos92]) return;
14757 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14758 fra.me.file = LOCATE_parser___parser_prod;
14759 fra.me.line = 2774;
14760 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___init_astarshipmethid;
14761 fra.me.has_broke = 0;
14762 fra.me.REG_size = 3;
14763 fra.me.REG[0] = NIT_NULL;
14764 fra.me.REG[1] = NIT_NULL;
14765 fra.me.REG[2] = NIT_NULL;
14766 fra.me.REG[0] = p0;
14767 fra.me.REG[1] = p1;
14768 /* ./parser//parser_prod.nit:2774 */
14769 fra.me.REG[2] = fra.me.REG[0];
14770 /* ./parser//parser_prod.nit:2778 */
14771 CALL_parser___parser_prod___AStarshipMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14772 /* ./parser//parser_prod.nit:2779 */
14773 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14774 if (UNTAG_Bool(REGB0)) {
14775 } else {
14776 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2779);
14777 }
14778 ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[2]) = fra.me.REG[1];
14779 /* ./parser//parser_prod.nit:2780 */
14780 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14781 if (UNTAG_Bool(REGB0)) {
14782 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2780);
14783 }
14784 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14785 stack_frame_head = fra.me.prev;
14786 init_table[itpos92] = 1;
14787 return;
14788 }
14789 void parser___parser_prod___AStarshipMethid___replace_child(val_t p0, val_t p1, val_t p2){
14790 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14791 val_t REGB0;
14792 val_t REGB1;
14793 val_t tmp;
14794 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14795 fra.me.file = LOCATE_parser___parser_prod;
14796 fra.me.line = 2783;
14797 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___replace_child;
14798 fra.me.has_broke = 0;
14799 fra.me.REG_size = 4;
14800 fra.me.REG[0] = NIT_NULL;
14801 fra.me.REG[1] = NIT_NULL;
14802 fra.me.REG[2] = NIT_NULL;
14803 fra.me.REG[3] = NIT_NULL;
14804 fra.me.REG[0] = p0;
14805 fra.me.REG[1] = p1;
14806 fra.me.REG[2] = p2;
14807 /* ./parser//parser_prod.nit:2785 */
14808 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0])!=NIT_NULL);
14809 if (UNTAG_Bool(REGB0)) {
14810 } else {
14811 nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser___parser_prod, 2785);
14812 }
14813 fra.me.REG[3] = ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]);
14814 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14815 if (UNTAG_Bool(REGB0)) {
14816 } else {
14817 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14818 REGB0 = REGB1;
14819 }
14820 if (UNTAG_Bool(REGB0)) {
14821 /* ./parser//parser_prod.nit:2786 */
14822 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14823 if (UNTAG_Bool(REGB0)) {
14824 } else {
14825 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14826 if (UNTAG_Bool(REGB1)) {
14827 REGB1 = TAG_Bool(false);
14828 REGB0 = REGB1;
14829 } else {
14830 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14831 REGB0 = REGB1;
14832 }
14833 }
14834 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14835 if (UNTAG_Bool(REGB0)) {
14836 /* ./parser//parser_prod.nit:2787 */
14837 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14838 if (UNTAG_Bool(REGB0)) {
14839 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2787);
14840 }
14841 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14842 /* ./parser//parser_prod.nit:2788 */
14843 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*/;
14844 if (UNTAG_Bool(REGB0)) {
14845 } else {
14846 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2788);
14847 }
14848 /* ./parser//parser_prod.nit:2789 */
14849 ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]) = fra.me.REG[2];
14850 } else {
14851 /* ./parser//parser_prod.nit:2791 */
14852 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2791);
14853 }
14854 /* ./parser//parser_prod.nit:2793 */
14855 goto label1;
14856 }
14857 label1: while(0);
14858 stack_frame_head = fra.me.prev;
14859 return;
14860 }
14861 void parser___parser_prod___AStarshipMethid___visit_all(val_t p0, val_t p1){
14862 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14863 val_t REGB0;
14864 val_t tmp;
14865 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14866 fra.me.file = LOCATE_parser___parser_prod;
14867 fra.me.line = 2797;
14868 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___visit_all;
14869 fra.me.has_broke = 0;
14870 fra.me.REG_size = 2;
14871 fra.me.REG[0] = NIT_NULL;
14872 fra.me.REG[1] = NIT_NULL;
14873 fra.me.REG[0] = p0;
14874 fra.me.REG[1] = p1;
14875 /* ./parser//parser_prod.nit:2799 */
14876 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0])!=NIT_NULL);
14877 if (UNTAG_Bool(REGB0)) {
14878 } else {
14879 nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser___parser_prod, 2799);
14880 }
14881 fra.me.REG[0] = ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]);
14882 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14883 stack_frame_head = fra.me.prev;
14884 return;
14885 }
14886 void parser___parser_prod___AAssignMethid___empty_init(val_t p0, int* init_table){
14887 int itpos93 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssignMethid].i;
14888 struct {struct stack_frame_t me;} fra;
14889 val_t tmp;
14890 if (init_table[itpos93]) return;
14891 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14892 fra.me.file = LOCATE_parser___parser_prod;
14893 fra.me.line = 2803;
14894 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___empty_init;
14895 fra.me.has_broke = 0;
14896 fra.me.REG_size = 1;
14897 fra.me.REG[0] = NIT_NULL;
14898 fra.me.REG[0] = p0;
14899 stack_frame_head = fra.me.prev;
14900 init_table[itpos93] = 1;
14901 return;
14902 }
14903 void parser___parser_prod___AAssignMethid___init_aassignmethid(val_t p0, val_t p1, val_t p2, int* init_table){
14904 int itpos94 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssignMethid].i;
14905 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14906 val_t REGB0;
14907 val_t tmp;
14908 if (init_table[itpos94]) return;
14909 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14910 fra.me.file = LOCATE_parser___parser_prod;
14911 fra.me.line = 2805;
14912 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___init_aassignmethid;
14913 fra.me.has_broke = 0;
14914 fra.me.REG_size = 4;
14915 fra.me.REG[0] = NIT_NULL;
14916 fra.me.REG[1] = NIT_NULL;
14917 fra.me.REG[2] = NIT_NULL;
14918 fra.me.REG[3] = NIT_NULL;
14919 fra.me.REG[0] = p0;
14920 fra.me.REG[1] = p1;
14921 fra.me.REG[2] = p2;
14922 /* ./parser//parser_prod.nit:2805 */
14923 fra.me.REG[3] = fra.me.REG[0];
14924 /* ./parser//parser_prod.nit:2810 */
14925 CALL_parser___parser_prod___AAssignMethid___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
14926 /* ./parser//parser_prod.nit:2811 */
14927 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14928 if (UNTAG_Bool(REGB0)) {
14929 } else {
14930 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2811);
14931 }
14932 ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[3]) = fra.me.REG[1];
14933 /* ./parser//parser_prod.nit:2812 */
14934 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14935 if (UNTAG_Bool(REGB0)) {
14936 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2812);
14937 }
14938 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14939 /* ./parser//parser_prod.nit:2813 */
14940 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
14941 if (UNTAG_Bool(REGB0)) {
14942 } else {
14943 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2813);
14944 }
14945 ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[3]) = fra.me.REG[2];
14946 /* ./parser//parser_prod.nit:2814 */
14947 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14948 if (UNTAG_Bool(REGB0)) {
14949 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2814);
14950 }
14951 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
14952 stack_frame_head = fra.me.prev;
14953 init_table[itpos94] = 1;
14954 return;
14955 }
14956 void parser___parser_prod___AAssignMethid___replace_child(val_t p0, val_t p1, val_t p2){
14957 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14958 val_t REGB0;
14959 val_t REGB1;
14960 val_t tmp;
14961 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14962 fra.me.file = LOCATE_parser___parser_prod;
14963 fra.me.line = 2817;
14964 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___replace_child;
14965 fra.me.has_broke = 0;
14966 fra.me.REG_size = 4;
14967 fra.me.REG[0] = NIT_NULL;
14968 fra.me.REG[1] = NIT_NULL;
14969 fra.me.REG[2] = NIT_NULL;
14970 fra.me.REG[3] = NIT_NULL;
14971 fra.me.REG[0] = p0;
14972 fra.me.REG[1] = p1;
14973 fra.me.REG[2] = p2;
14974 /* ./parser//parser_prod.nit:2819 */
14975 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0])!=NIT_NULL);
14976 if (UNTAG_Bool(REGB0)) {
14977 } else {
14978 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2819);
14979 }
14980 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]);
14981 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14982 if (UNTAG_Bool(REGB0)) {
14983 } else {
14984 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14985 REGB0 = REGB1;
14986 }
14987 if (UNTAG_Bool(REGB0)) {
14988 /* ./parser//parser_prod.nit:2820 */
14989 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14990 if (UNTAG_Bool(REGB0)) {
14991 } else {
14992 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14993 if (UNTAG_Bool(REGB1)) {
14994 REGB1 = TAG_Bool(false);
14995 REGB0 = REGB1;
14996 } else {
14997 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14998 REGB0 = REGB1;
14999 }
15000 }
15001 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15002 if (UNTAG_Bool(REGB0)) {
15003 /* ./parser//parser_prod.nit:2821 */
15004 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15005 if (UNTAG_Bool(REGB0)) {
15006 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2821);
15007 }
15008 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15009 /* ./parser//parser_prod.nit:2822 */
15010 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*/;
15011 if (UNTAG_Bool(REGB0)) {
15012 } else {
15013 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2822);
15014 }
15015 /* ./parser//parser_prod.nit:2823 */
15016 ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]) = fra.me.REG[2];
15017 } else {
15018 /* ./parser//parser_prod.nit:2825 */
15019 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2825);
15020 }
15021 /* ./parser//parser_prod.nit:2827 */
15022 goto label1;
15023 }
15024 /* ./parser//parser_prod.nit:2829 */
15025 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
15026 if (UNTAG_Bool(REGB0)) {
15027 } else {
15028 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2829);
15029 }
15030 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]);
15031 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15032 if (UNTAG_Bool(REGB0)) {
15033 } else {
15034 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15035 REGB0 = REGB1;
15036 }
15037 if (UNTAG_Bool(REGB0)) {
15038 /* ./parser//parser_prod.nit:2830 */
15039 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15040 if (UNTAG_Bool(REGB0)) {
15041 } else {
15042 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15043 if (UNTAG_Bool(REGB1)) {
15044 REGB1 = TAG_Bool(false);
15045 REGB0 = REGB1;
15046 } else {
15047 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15048 REGB0 = REGB1;
15049 }
15050 }
15051 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15052 if (UNTAG_Bool(REGB0)) {
15053 /* ./parser//parser_prod.nit:2831 */
15054 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15055 if (UNTAG_Bool(REGB0)) {
15056 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2831);
15057 }
15058 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15059 /* ./parser//parser_prod.nit:2832 */
15060 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*/;
15061 if (UNTAG_Bool(REGB0)) {
15062 } else {
15063 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2832);
15064 }
15065 /* ./parser//parser_prod.nit:2833 */
15066 ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[2];
15067 } else {
15068 /* ./parser//parser_prod.nit:2835 */
15069 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2835);
15070 }
15071 /* ./parser//parser_prod.nit:2837 */
15072 goto label1;
15073 }
15074 label1: while(0);
15075 stack_frame_head = fra.me.prev;
15076 return;
15077 }
15078 void parser___parser_prod___AAssignMethid___visit_all(val_t p0, val_t p1){
15079 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15080 val_t REGB0;
15081 val_t tmp;
15082 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15083 fra.me.file = LOCATE_parser___parser_prod;
15084 fra.me.line = 2841;
15085 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___visit_all;
15086 fra.me.has_broke = 0;
15087 fra.me.REG_size = 3;
15088 fra.me.REG[0] = NIT_NULL;
15089 fra.me.REG[1] = NIT_NULL;
15090 fra.me.REG[2] = NIT_NULL;
15091 fra.me.REG[0] = p0;
15092 fra.me.REG[1] = p1;
15093 /* ./parser//parser_prod.nit:2843 */
15094 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0])!=NIT_NULL);
15095 if (UNTAG_Bool(REGB0)) {
15096 } else {
15097 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2843);
15098 }
15099 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]);
15100 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15101 /* ./parser//parser_prod.nit:2844 */
15102 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
15103 if (UNTAG_Bool(REGB0)) {
15104 } else {
15105 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2844);
15106 }
15107 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]);
15108 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15109 stack_frame_head = fra.me.prev;
15110 return;
15111 }
15112 void parser___parser_prod___ABraassignMethid___empty_init(val_t p0, int* init_table){
15113 int itpos95 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraassignMethid].i;
15114 struct {struct stack_frame_t me;} fra;
15115 val_t tmp;
15116 if (init_table[itpos95]) return;
15117 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15118 fra.me.file = LOCATE_parser___parser_prod;
15119 fra.me.line = 2848;
15120 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___empty_init;
15121 fra.me.has_broke = 0;
15122 fra.me.REG_size = 1;
15123 fra.me.REG[0] = NIT_NULL;
15124 fra.me.REG[0] = p0;
15125 stack_frame_head = fra.me.prev;
15126 init_table[itpos95] = 1;
15127 return;
15128 }
15129 void parser___parser_prod___ABraassignMethid___init_abraassignmethid(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
15130 int itpos96 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraassignMethid].i;
15131 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
15132 val_t REGB0;
15133 val_t tmp;
15134 if (init_table[itpos96]) return;
15135 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15136 fra.me.file = LOCATE_parser___parser_prod;
15137 fra.me.line = 2850;
15138 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___init_abraassignmethid;
15139 fra.me.has_broke = 0;
15140 fra.me.REG_size = 5;
15141 fra.me.REG[0] = NIT_NULL;
15142 fra.me.REG[1] = NIT_NULL;
15143 fra.me.REG[2] = NIT_NULL;
15144 fra.me.REG[3] = NIT_NULL;
15145 fra.me.REG[4] = NIT_NULL;
15146 fra.me.REG[0] = p0;
15147 fra.me.REG[1] = p1;
15148 fra.me.REG[2] = p2;
15149 fra.me.REG[3] = p3;
15150 /* ./parser//parser_prod.nit:2850 */
15151 fra.me.REG[4] = fra.me.REG[0];
15152 /* ./parser//parser_prod.nit:2856 */
15153 CALL_parser___parser_prod___ABraassignMethid___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
15154 /* ./parser//parser_prod.nit:2857 */
15155 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
15156 if (UNTAG_Bool(REGB0)) {
15157 } else {
15158 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2857);
15159 }
15160 ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[4]) = fra.me.REG[1];
15161 /* ./parser//parser_prod.nit:2858 */
15162 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15163 if (UNTAG_Bool(REGB0)) {
15164 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2858);
15165 }
15166 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15167 /* ./parser//parser_prod.nit:2859 */
15168 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
15169 if (UNTAG_Bool(REGB0)) {
15170 } else {
15171 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2859);
15172 }
15173 ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[4]) = fra.me.REG[2];
15174 /* ./parser//parser_prod.nit:2860 */
15175 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15176 if (UNTAG_Bool(REGB0)) {
15177 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2860);
15178 }
15179 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15180 /* ./parser//parser_prod.nit:2861 */
15181 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
15182 if (UNTAG_Bool(REGB0)) {
15183 } else {
15184 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2861);
15185 }
15186 ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[4]) = fra.me.REG[3];
15187 /* ./parser//parser_prod.nit:2862 */
15188 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15189 if (UNTAG_Bool(REGB0)) {
15190 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2862);
15191 }
15192 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
15193 stack_frame_head = fra.me.prev;
15194 init_table[itpos96] = 1;
15195 return;
15196 }
15197 void parser___parser_prod___ABraassignMethid___replace_child(val_t p0, val_t p1, val_t p2){
15198 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15199 val_t REGB0;
15200 val_t REGB1;
15201 val_t tmp;
15202 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15203 fra.me.file = LOCATE_parser___parser_prod;
15204 fra.me.line = 2865;
15205 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___replace_child;
15206 fra.me.has_broke = 0;
15207 fra.me.REG_size = 4;
15208 fra.me.REG[0] = NIT_NULL;
15209 fra.me.REG[1] = NIT_NULL;
15210 fra.me.REG[2] = NIT_NULL;
15211 fra.me.REG[3] = NIT_NULL;
15212 fra.me.REG[0] = p0;
15213 fra.me.REG[1] = p1;
15214 fra.me.REG[2] = p2;
15215 /* ./parser//parser_prod.nit:2867 */
15216 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
15217 if (UNTAG_Bool(REGB0)) {
15218 } else {
15219 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2867);
15220 }
15221 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]);
15222 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15223 if (UNTAG_Bool(REGB0)) {
15224 } else {
15225 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15226 REGB0 = REGB1;
15227 }
15228 if (UNTAG_Bool(REGB0)) {
15229 /* ./parser//parser_prod.nit:2868 */
15230 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15231 if (UNTAG_Bool(REGB0)) {
15232 } else {
15233 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15234 if (UNTAG_Bool(REGB1)) {
15235 REGB1 = TAG_Bool(false);
15236 REGB0 = REGB1;
15237 } else {
15238 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15239 REGB0 = REGB1;
15240 }
15241 }
15242 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15243 if (UNTAG_Bool(REGB0)) {
15244 /* ./parser//parser_prod.nit:2869 */
15245 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15246 if (UNTAG_Bool(REGB0)) {
15247 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2869);
15248 }
15249 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15250 /* ./parser//parser_prod.nit:2870 */
15251 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*/;
15252 if (UNTAG_Bool(REGB0)) {
15253 } else {
15254 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2870);
15255 }
15256 /* ./parser//parser_prod.nit:2871 */
15257 ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]) = fra.me.REG[2];
15258 } else {
15259 /* ./parser//parser_prod.nit:2873 */
15260 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2873);
15261 }
15262 /* ./parser//parser_prod.nit:2875 */
15263 goto label1;
15264 }
15265 /* ./parser//parser_prod.nit:2877 */
15266 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
15267 if (UNTAG_Bool(REGB0)) {
15268 } else {
15269 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2877);
15270 }
15271 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]);
15272 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15273 if (UNTAG_Bool(REGB0)) {
15274 } else {
15275 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15276 REGB0 = REGB1;
15277 }
15278 if (UNTAG_Bool(REGB0)) {
15279 /* ./parser//parser_prod.nit:2878 */
15280 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15281 if (UNTAG_Bool(REGB0)) {
15282 } else {
15283 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15284 if (UNTAG_Bool(REGB1)) {
15285 REGB1 = TAG_Bool(false);
15286 REGB0 = REGB1;
15287 } else {
15288 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15289 REGB0 = REGB1;
15290 }
15291 }
15292 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15293 if (UNTAG_Bool(REGB0)) {
15294 /* ./parser//parser_prod.nit:2879 */
15295 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15296 if (UNTAG_Bool(REGB0)) {
15297 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2879);
15298 }
15299 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15300 /* ./parser//parser_prod.nit:2880 */
15301 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*/;
15302 if (UNTAG_Bool(REGB0)) {
15303 } else {
15304 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2880);
15305 }
15306 /* ./parser//parser_prod.nit:2881 */
15307 ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
15308 } else {
15309 /* ./parser//parser_prod.nit:2883 */
15310 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2883);
15311 }
15312 /* ./parser//parser_prod.nit:2885 */
15313 goto label1;
15314 }
15315 /* ./parser//parser_prod.nit:2887 */
15316 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
15317 if (UNTAG_Bool(REGB0)) {
15318 } else {
15319 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2887);
15320 }
15321 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]);
15322 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15323 if (UNTAG_Bool(REGB0)) {
15324 } else {
15325 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15326 REGB0 = REGB1;
15327 }
15328 if (UNTAG_Bool(REGB0)) {
15329 /* ./parser//parser_prod.nit:2888 */
15330 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15331 if (UNTAG_Bool(REGB0)) {
15332 } else {
15333 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15334 if (UNTAG_Bool(REGB1)) {
15335 REGB1 = TAG_Bool(false);
15336 REGB0 = REGB1;
15337 } else {
15338 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15339 REGB0 = REGB1;
15340 }
15341 }
15342 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15343 if (UNTAG_Bool(REGB0)) {
15344 /* ./parser//parser_prod.nit:2889 */
15345 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15346 if (UNTAG_Bool(REGB0)) {
15347 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2889);
15348 }
15349 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15350 /* ./parser//parser_prod.nit:2890 */
15351 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*/;
15352 if (UNTAG_Bool(REGB0)) {
15353 } else {
15354 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2890);
15355 }
15356 /* ./parser//parser_prod.nit:2891 */
15357 ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[2];
15358 } else {
15359 /* ./parser//parser_prod.nit:2893 */
15360 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2893);
15361 }
15362 /* ./parser//parser_prod.nit:2895 */
15363 goto label1;
15364 }
15365 label1: while(0);
15366 stack_frame_head = fra.me.prev;
15367 return;
15368 }
15369 void parser___parser_prod___ABraassignMethid___visit_all(val_t p0, val_t p1){
15370 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15371 val_t REGB0;
15372 val_t tmp;
15373 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15374 fra.me.file = LOCATE_parser___parser_prod;
15375 fra.me.line = 2899;
15376 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___visit_all;
15377 fra.me.has_broke = 0;
15378 fra.me.REG_size = 3;
15379 fra.me.REG[0] = NIT_NULL;
15380 fra.me.REG[1] = NIT_NULL;
15381 fra.me.REG[2] = NIT_NULL;
15382 fra.me.REG[0] = p0;
15383 fra.me.REG[1] = p1;
15384 /* ./parser//parser_prod.nit:2901 */
15385 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
15386 if (UNTAG_Bool(REGB0)) {
15387 } else {
15388 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2901);
15389 }
15390 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]);
15391 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15392 /* ./parser//parser_prod.nit:2902 */
15393 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
15394 if (UNTAG_Bool(REGB0)) {
15395 } else {
15396 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2902);
15397 }
15398 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]);
15399 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15400 /* ./parser//parser_prod.nit:2903 */
15401 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
15402 if (UNTAG_Bool(REGB0)) {
15403 } else {
15404 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2903);
15405 }
15406 fra.me.REG[0] = ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]);
15407 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15408 stack_frame_head = fra.me.prev;
15409 return;
15410 }
15411 void parser___parser_prod___ASignature___empty_init(val_t p0, int* init_table){
15412 int itpos97 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASignature].i;
15413 struct {struct stack_frame_t me;} fra;
15414 val_t tmp;
15415 if (init_table[itpos97]) return;
15416 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15417 fra.me.file = LOCATE_parser___parser_prod;
15418 fra.me.line = 2907;
15419 fra.me.meth = LOCATE_parser___parser_prod___ASignature___empty_init;
15420 fra.me.has_broke = 0;
15421 fra.me.REG_size = 1;
15422 fra.me.REG[0] = NIT_NULL;
15423 fra.me.REG[0] = p0;
15424 stack_frame_head = fra.me.prev;
15425 init_table[itpos97] = 1;
15426 return;
15427 }
15428 void parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
15429 int itpos98 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASignature].i;
15430 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15431 val_t REGB0;
15432 val_t REGB1;
15433 val_t tmp;
15434 if (init_table[itpos98]) return;
15435 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15436 fra.me.file = LOCATE_parser___parser_prod;
15437 fra.me.line = 2909;
15438 fra.me.meth = LOCATE_parser___parser_prod___ASignature___init_asignature;
15439 fra.me.has_broke = 0;
15440 fra.me.REG_size = 4;
15441 fra.me.REG[0] = NIT_NULL;
15442 fra.me.REG[1] = NIT_NULL;
15443 fra.me.REG[2] = NIT_NULL;
15444 fra.me.REG[3] = NIT_NULL;
15445 fra.me.REG[0] = p0;
15446 fra.me.REG[1] = p1;
15447 fra.me.REG[2] = p2;
15448 fra.me.REG[3] = p3;
15449 /* ./parser//parser_prod.nit:2915 */
15450 CALL_parser___parser_prod___ASignature___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
15451 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));
15452 /* ./parser//parser_prod.nit:2921 */
15453 ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[2];
15454 /* ./parser//parser_prod.nit:2922 */
15455 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15456 if (UNTAG_Bool(REGB0)) {
15457 } else {
15458 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15459 if (UNTAG_Bool(REGB1)) {
15460 REGB1 = TAG_Bool(false);
15461 REGB0 = REGB1;
15462 } else {
15463 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15464 REGB0 = REGB1;
15465 }
15466 }
15467 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15468 if (UNTAG_Bool(REGB0)) {
15469 /* ./parser//parser_prod.nit:2923 */
15470 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15471 if (UNTAG_Bool(REGB0)) {
15472 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2923);
15473 }
15474 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15475 }
15476 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));
15477 stack_frame_head = fra.me.prev;
15478 init_table[itpos98] = 1;
15479 return;
15480 }
15481 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){
15482 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15483 val_t REGB0;
15484 fun_t CREG[1];
15485 val_t tmp;
15486 /* ./parser//parser_prod.nit:2916 */
15487 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15488 fra.me.file = LOCATE_parser___parser_prod;
15489 fra.me.line = 0;
15490 fra.me.meth = LOCATE_parser___parser_prod___ASignature___init_asignature;
15491 fra.me.has_broke = 0;
15492 fra.me.REG_size = 2;
15493 fra.me.REG[0] = NIT_NULL;
15494 fra.me.REG[1] = NIT_NULL;
15495 fra.me.closure_ctx = closctx_param;
15496 fra.me.closure_funs = CREG;
15497 fra.me.REG[0] = p0;
15498 CREG[0] = clos_fun0;
15499 /* ./parser//parser_prod.nit:2917 */
15500 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AParam, ID_parser___parser_nodes___AParam)) /*cast AParam*/;
15501 if (UNTAG_Bool(REGB0)) {
15502 } else {
15503 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2917);
15504 }
15505 /* ./parser//parser_prod.nit:2918 */
15506 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(closctx->REG[0])!=NIT_NULL);
15507 if (UNTAG_Bool(REGB0)) {
15508 } else {
15509 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2918);
15510 }
15511 fra.me.REG[1] = ATTR_parser___parser_nodes___ASignature____n_params(closctx->REG[0]);
15512 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15513 /* ./parser//parser_prod.nit:2919 */
15514 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
15515 stack_frame_head = fra.me.prev;
15516 return;
15517 }
15518 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){
15519 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15520 val_t REGB0;
15521 fun_t CREG[1];
15522 val_t tmp;
15523 /* ./parser//parser_prod.nit:2925 */
15524 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15525 fra.me.file = LOCATE_parser___parser_prod;
15526 fra.me.line = 0;
15527 fra.me.meth = LOCATE_parser___parser_prod___ASignature___init_asignature;
15528 fra.me.has_broke = 0;
15529 fra.me.REG_size = 2;
15530 fra.me.REG[0] = NIT_NULL;
15531 fra.me.REG[1] = NIT_NULL;
15532 fra.me.closure_ctx = closctx_param;
15533 fra.me.closure_funs = CREG;
15534 fra.me.REG[0] = p0;
15535 CREG[0] = clos_fun0;
15536 /* ./parser//parser_prod.nit:2926 */
15537 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDecl, ID_parser___parser_nodes___AClosureDecl)) /*cast AClosureDecl*/;
15538 if (UNTAG_Bool(REGB0)) {
15539 } else {
15540 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2926);
15541 }
15542 /* ./parser//parser_prod.nit:2927 */
15543 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(closctx->REG[0])!=NIT_NULL);
15544 if (UNTAG_Bool(REGB0)) {
15545 } else {
15546 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2927);
15547 }
15548 fra.me.REG[1] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(closctx->REG[0]);
15549 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15550 /* ./parser//parser_prod.nit:2928 */
15551 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
15552 stack_frame_head = fra.me.prev;
15553 return;
15554 }
15555 void parser___parser_prod___ASignature___replace_child(val_t p0, val_t p1, val_t p2){
15556 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15557 val_t REGB0;
15558 val_t REGB1;
15559 val_t REGB2;
15560 val_t REGB3;
15561 val_t REGB4;
15562 val_t tmp;
15563 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15564 fra.me.file = LOCATE_parser___parser_prod;
15565 fra.me.line = 2932;
15566 fra.me.meth = LOCATE_parser___parser_prod___ASignature___replace_child;
15567 fra.me.has_broke = 0;
15568 fra.me.REG_size = 4;
15569 fra.me.REG[0] = NIT_NULL;
15570 fra.me.REG[1] = NIT_NULL;
15571 fra.me.REG[2] = NIT_NULL;
15572 fra.me.REG[3] = NIT_NULL;
15573 fra.me.REG[0] = p0;
15574 fra.me.REG[1] = p1;
15575 fra.me.REG[2] = p2;
15576 /* ./parser//parser_prod.nit:2934 */
15577 REGB0 = TAG_Int(0);
15578 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
15579 if (UNTAG_Bool(REGB1)) {
15580 } else {
15581 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2934);
15582 }
15583 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
15584 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
15585 /* ./../lib/standard//kernel.nit:352 */
15586 while(1) {
15587 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
15588 if (UNTAG_Bool(REGB2)) {
15589 } else {
15590 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15591 }
15592 /* ./../lib/standard//kernel.nit:232 */
15593 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
15594 /* ./../lib/standard//kernel.nit:352 */
15595 if (UNTAG_Bool(REGB2)) {
15596 /* ./parser//parser_prod.nit:2934 */
15597 REGB2 = REGB0;
15598 /* ./parser//parser_prod.nit:2935 */
15599 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
15600 if (UNTAG_Bool(REGB3)) {
15601 } else {
15602 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2935);
15603 }
15604 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
15605 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
15606 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
15607 if (UNTAG_Bool(REGB3)) {
15608 } else {
15609 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15610 if (UNTAG_Bool(REGB4)) {
15611 REGB4 = TAG_Bool(false);
15612 REGB3 = REGB4;
15613 } else {
15614 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15615 REGB3 = REGB4;
15616 }
15617 }
15618 if (UNTAG_Bool(REGB3)) {
15619 /* ./parser//parser_prod.nit:2936 */
15620 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15621 if (UNTAG_Bool(REGB3)) {
15622 } else {
15623 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15624 if (UNTAG_Bool(REGB4)) {
15625 REGB4 = TAG_Bool(false);
15626 REGB3 = REGB4;
15627 } else {
15628 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15629 REGB3 = REGB4;
15630 }
15631 }
15632 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
15633 if (UNTAG_Bool(REGB3)) {
15634 /* ./parser//parser_prod.nit:2937 */
15635 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*/;
15636 if (UNTAG_Bool(REGB3)) {
15637 } else {
15638 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2937);
15639 }
15640 /* ./parser//parser_prod.nit:2938 */
15641 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
15642 if (UNTAG_Bool(REGB3)) {
15643 } else {
15644 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2938);
15645 }
15646 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
15647 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
15648 /* ./parser//parser_prod.nit:2939 */
15649 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15650 if (UNTAG_Bool(REGB3)) {
15651 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2939);
15652 }
15653 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15654 } else {
15655 /* ./parser//parser_prod.nit:2941 */
15656 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
15657 if (UNTAG_Bool(REGB3)) {
15658 } else {
15659 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2941);
15660 }
15661 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
15662 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
15663 }
15664 /* ./parser//parser_prod.nit:2943 */
15665 goto label1;
15666 }
15667 /* ./../lib/standard//kernel.nit:354 */
15668 REGB2 = TAG_Int(1);
15669 /* ./../lib/standard//kernel.nit:235 */
15670 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
15671 /* ./../lib/standard//kernel.nit:354 */
15672 REGB0 = REGB2;
15673 } else {
15674 /* ./../lib/standard//kernel.nit:352 */
15675 goto label2;
15676 }
15677 }
15678 label2: while(0);
15679 /* ./parser//parser_prod.nit:2946 */
15680 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]);
15681 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
15682 if (UNTAG_Bool(REGB0)) {
15683 } else {
15684 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15685 if (UNTAG_Bool(REGB1)) {
15686 REGB1 = TAG_Bool(false);
15687 REGB0 = REGB1;
15688 } else {
15689 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15690 REGB0 = REGB1;
15691 }
15692 }
15693 if (UNTAG_Bool(REGB0)) {
15694 /* ./parser//parser_prod.nit:2947 */
15695 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15696 if (UNTAG_Bool(REGB0)) {
15697 } else {
15698 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15699 if (UNTAG_Bool(REGB1)) {
15700 REGB1 = TAG_Bool(false);
15701 REGB0 = REGB1;
15702 } else {
15703 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15704 REGB0 = REGB1;
15705 }
15706 }
15707 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15708 if (UNTAG_Bool(REGB0)) {
15709 /* ./parser//parser_prod.nit:2948 */
15710 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15711 if (UNTAG_Bool(REGB0)) {
15712 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2948);
15713 }
15714 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15715 /* ./parser//parser_prod.nit:2949 */
15716 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*/;
15717 if (UNTAG_Bool(REGB0)) {
15718 } else {
15719 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2949);
15720 }
15721 /* ./parser//parser_prod.nit:2950 */
15722 ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[2];
15723 } else {
15724 /* ./parser//parser_prod.nit:2952 */
15725 ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = NIT_NULL;
15726 }
15727 /* ./parser//parser_prod.nit:2954 */
15728 goto label1;
15729 }
15730 /* ./parser//parser_prod.nit:2956 */
15731 REGB0 = TAG_Int(0);
15732 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
15733 if (UNTAG_Bool(REGB1)) {
15734 } else {
15735 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2956);
15736 }
15737 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
15738 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
15739 /* ./../lib/standard//kernel.nit:352 */
15740 while(1) {
15741 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
15742 if (UNTAG_Bool(REGB2)) {
15743 } else {
15744 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
15745 }
15746 /* ./../lib/standard//kernel.nit:232 */
15747 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
15748 /* ./../lib/standard//kernel.nit:352 */
15749 if (UNTAG_Bool(REGB2)) {
15750 /* ./parser//parser_prod.nit:2956 */
15751 REGB2 = REGB0;
15752 /* ./parser//parser_prod.nit:2957 */
15753 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
15754 if (UNTAG_Bool(REGB3)) {
15755 } else {
15756 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2957);
15757 }
15758 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
15759 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
15760 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
15761 if (UNTAG_Bool(REGB3)) {
15762 } else {
15763 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15764 if (UNTAG_Bool(REGB4)) {
15765 REGB4 = TAG_Bool(false);
15766 REGB3 = REGB4;
15767 } else {
15768 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15769 REGB3 = REGB4;
15770 }
15771 }
15772 if (UNTAG_Bool(REGB3)) {
15773 /* ./parser//parser_prod.nit:2958 */
15774 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15775 if (UNTAG_Bool(REGB3)) {
15776 } else {
15777 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15778 if (UNTAG_Bool(REGB4)) {
15779 REGB4 = TAG_Bool(false);
15780 REGB3 = REGB4;
15781 } else {
15782 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15783 REGB3 = REGB4;
15784 }
15785 }
15786 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
15787 if (UNTAG_Bool(REGB3)) {
15788 /* ./parser//parser_prod.nit:2959 */
15789 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*/;
15790 if (UNTAG_Bool(REGB3)) {
15791 } else {
15792 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2959);
15793 }
15794 /* ./parser//parser_prod.nit:2960 */
15795 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
15796 if (UNTAG_Bool(REGB3)) {
15797 } else {
15798 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2960);
15799 }
15800 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
15801 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
15802 /* ./parser//parser_prod.nit:2961 */
15803 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15804 if (UNTAG_Bool(REGB3)) {
15805 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2961);
15806 }
15807 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15808 } else {
15809 /* ./parser//parser_prod.nit:2963 */
15810 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
15811 if (UNTAG_Bool(REGB3)) {
15812 } else {
15813 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2963);
15814 }
15815 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
15816 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
15817 }
15818 /* ./parser//parser_prod.nit:2965 */
15819 goto label1;
15820 }
15821 /* ./../lib/standard//kernel.nit:354 */
15822 REGB2 = TAG_Int(1);
15823 /* ./../lib/standard//kernel.nit:235 */
15824 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
15825 /* ./../lib/standard//kernel.nit:354 */
15826 REGB0 = REGB2;
15827 } else {
15828 /* ./../lib/standard//kernel.nit:352 */
15829 goto label3;
15830 }
15831 }
15832 label3: while(0);
15833 label1: while(0);
15834 stack_frame_head = fra.me.prev;
15835 return;
15836 }
15837 void parser___parser_prod___ASignature___visit_all(val_t p0, val_t p1){
15838 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15839 val_t REGB0;
15840 val_t REGB1;
15841 val_t tmp;
15842 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15843 fra.me.file = LOCATE_parser___parser_prod;
15844 fra.me.line = 2970;
15845 fra.me.meth = LOCATE_parser___parser_prod___ASignature___visit_all;
15846 fra.me.has_broke = 0;
15847 fra.me.REG_size = 4;
15848 fra.me.REG[0] = NIT_NULL;
15849 fra.me.REG[1] = NIT_NULL;
15850 fra.me.REG[2] = NIT_NULL;
15851 fra.me.REG[3] = NIT_NULL;
15852 fra.me.REG[0] = p0;
15853 fra.me.REG[1] = p1;
15854 /* ./parser//parser_prod.nit:2970 */
15855 fra.me.REG[2] = fra.me.REG[0];
15856 /* ./parser//parser_prod.nit:2972 */
15857 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[2])!=NIT_NULL);
15858 if (UNTAG_Bool(REGB0)) {
15859 } else {
15860 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2972);
15861 }
15862 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[2]);
15863 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));
15864 /* ./parser//parser_prod.nit:2975 */
15865 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[2]);
15866 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15867 if (UNTAG_Bool(REGB0)) {
15868 } else {
15869 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15870 if (UNTAG_Bool(REGB1)) {
15871 REGB1 = TAG_Bool(false);
15872 REGB0 = REGB1;
15873 } else {
15874 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
15875 REGB0 = REGB1;
15876 }
15877 }
15878 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15879 if (UNTAG_Bool(REGB0)) {
15880 /* ./parser//parser_prod.nit:2976 */
15881 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[2]);
15882 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*/;
15883 if (UNTAG_Bool(REGB0)) {
15884 } else {
15885 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2976);
15886 }
15887 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15888 }
15889 /* ./parser//parser_prod.nit:2978 */
15890 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[2])!=NIT_NULL);
15891 if (UNTAG_Bool(REGB0)) {
15892 } else {
15893 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2978);
15894 }
15895 fra.me.REG[2] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[2]);
15896 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));
15897 stack_frame_head = fra.me.prev;
15898 return;
15899 }
15900 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){
15901 struct {struct stack_frame_t me;} fra;
15902 fun_t CREG[1];
15903 val_t tmp;
15904 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15905 fra.me.file = LOCATE_parser___parser_prod;
15906 fra.me.line = 0;
15907 fra.me.meth = LOCATE_parser___parser_prod___ASignature___visit_all;
15908 fra.me.has_broke = 0;
15909 fra.me.REG_size = 1;
15910 fra.me.REG[0] = NIT_NULL;
15911 fra.me.closure_ctx = closctx_param;
15912 fra.me.closure_funs = CREG;
15913 fra.me.REG[0] = p0;
15914 CREG[0] = clos_fun0;
15915 /* ./parser//parser_prod.nit:2973 */
15916 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
15917 stack_frame_head = fra.me.prev;
15918 return;
15919 }
15920 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){
15921 struct {struct stack_frame_t me;} fra;
15922 fun_t CREG[1];
15923 val_t tmp;
15924 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15925 fra.me.file = LOCATE_parser___parser_prod;
15926 fra.me.line = 0;
15927 fra.me.meth = LOCATE_parser___parser_prod___ASignature___visit_all;
15928 fra.me.has_broke = 0;
15929 fra.me.REG_size = 1;
15930 fra.me.REG[0] = NIT_NULL;
15931 fra.me.closure_ctx = closctx_param;
15932 fra.me.closure_funs = CREG;
15933 fra.me.REG[0] = p0;
15934 CREG[0] = clos_fun0;
15935 /* ./parser//parser_prod.nit:2979 */
15936 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
15937 stack_frame_head = fra.me.prev;
15938 return;
15939 }
15940 void parser___parser_prod___AParam___empty_init(val_t p0, int* init_table){
15941 int itpos99 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParam].i;
15942 struct {struct stack_frame_t me;} fra;
15943 val_t tmp;
15944 if (init_table[itpos99]) return;
15945 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15946 fra.me.file = LOCATE_parser___parser_prod;
15947 fra.me.line = 2984;
15948 fra.me.meth = LOCATE_parser___parser_prod___AParam___empty_init;
15949 fra.me.has_broke = 0;
15950 fra.me.REG_size = 1;
15951 fra.me.REG[0] = NIT_NULL;
15952 fra.me.REG[0] = p0;
15953 stack_frame_head = fra.me.prev;
15954 init_table[itpos99] = 1;
15955 return;
15956 }
15957 void parser___parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
15958 int itpos100 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParam].i;
15959 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
15960 val_t REGB0;
15961 val_t REGB1;
15962 val_t tmp;
15963 if (init_table[itpos100]) return;
15964 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15965 fra.me.file = LOCATE_parser___parser_prod;
15966 fra.me.line = 2986;
15967 fra.me.meth = LOCATE_parser___parser_prod___AParam___init_aparam;
15968 fra.me.has_broke = 0;
15969 fra.me.REG_size = 5;
15970 fra.me.REG[0] = NIT_NULL;
15971 fra.me.REG[1] = NIT_NULL;
15972 fra.me.REG[2] = NIT_NULL;
15973 fra.me.REG[3] = NIT_NULL;
15974 fra.me.REG[4] = NIT_NULL;
15975 fra.me.REG[0] = p0;
15976 fra.me.REG[1] = p1;
15977 fra.me.REG[2] = p2;
15978 fra.me.REG[3] = p3;
15979 /* ./parser//parser_prod.nit:2986 */
15980 fra.me.REG[4] = fra.me.REG[0];
15981 /* ./parser//parser_prod.nit:2992 */
15982 CALL_parser___parser_prod___AParam___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
15983 /* ./parser//parser_prod.nit:2993 */
15984 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
15985 if (UNTAG_Bool(REGB0)) {
15986 } else {
15987 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2993);
15988 }
15989 ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[4]) = fra.me.REG[1];
15990 /* ./parser//parser_prod.nit:2994 */
15991 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15992 if (UNTAG_Bool(REGB0)) {
15993 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2994);
15994 }
15995 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15996 /* ./parser//parser_prod.nit:2995 */
15997 ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[4]) = fra.me.REG[2];
15998 /* ./parser//parser_prod.nit:2996 */
15999 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16000 if (UNTAG_Bool(REGB0)) {
16001 } else {
16002 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16003 if (UNTAG_Bool(REGB1)) {
16004 REGB1 = TAG_Bool(false);
16005 REGB0 = REGB1;
16006 } else {
16007 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16008 REGB0 = REGB1;
16009 }
16010 }
16011 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16012 if (UNTAG_Bool(REGB0)) {
16013 /* ./parser//parser_prod.nit:2997 */
16014 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16015 if (UNTAG_Bool(REGB0)) {
16016 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2997);
16017 }
16018 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
16019 }
16020 /* ./parser//parser_prod.nit:2999 */
16021 ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[4]) = fra.me.REG[3];
16022 /* ./parser//parser_prod.nit:3000 */
16023 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16024 if (UNTAG_Bool(REGB0)) {
16025 } else {
16026 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16027 if (UNTAG_Bool(REGB1)) {
16028 REGB1 = TAG_Bool(false);
16029 REGB0 = REGB1;
16030 } else {
16031 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
16032 REGB0 = REGB1;
16033 }
16034 }
16035 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16036 if (UNTAG_Bool(REGB0)) {
16037 /* ./parser//parser_prod.nit:3001 */
16038 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16039 if (UNTAG_Bool(REGB0)) {
16040 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3001);
16041 }
16042 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
16043 }
16044 stack_frame_head = fra.me.prev;
16045 init_table[itpos100] = 1;
16046 return;
16047 }
16048 void parser___parser_prod___AParam___replace_child(val_t p0, val_t p1, val_t p2){
16049 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16050 val_t REGB0;
16051 val_t REGB1;
16052 val_t tmp;
16053 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16054 fra.me.file = LOCATE_parser___parser_prod;
16055 fra.me.line = 3005;
16056 fra.me.meth = LOCATE_parser___parser_prod___AParam___replace_child;
16057 fra.me.has_broke = 0;
16058 fra.me.REG_size = 4;
16059 fra.me.REG[0] = NIT_NULL;
16060 fra.me.REG[1] = NIT_NULL;
16061 fra.me.REG[2] = NIT_NULL;
16062 fra.me.REG[3] = NIT_NULL;
16063 fra.me.REG[0] = p0;
16064 fra.me.REG[1] = p1;
16065 fra.me.REG[2] = p2;
16066 /* ./parser//parser_prod.nit:3007 */
16067 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0])!=NIT_NULL);
16068 if (UNTAG_Bool(REGB0)) {
16069 } else {
16070 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3007);
16071 }
16072 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0]);
16073 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16074 if (UNTAG_Bool(REGB0)) {
16075 } else {
16076 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16077 REGB0 = REGB1;
16078 }
16079 if (UNTAG_Bool(REGB0)) {
16080 /* ./parser//parser_prod.nit:3008 */
16081 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16082 if (UNTAG_Bool(REGB0)) {
16083 } else {
16084 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16085 if (UNTAG_Bool(REGB1)) {
16086 REGB1 = TAG_Bool(false);
16087 REGB0 = REGB1;
16088 } else {
16089 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16090 REGB0 = REGB1;
16091 }
16092 }
16093 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16094 if (UNTAG_Bool(REGB0)) {
16095 /* ./parser//parser_prod.nit:3009 */
16096 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16097 if (UNTAG_Bool(REGB0)) {
16098 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3009);
16099 }
16100 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16101 /* ./parser//parser_prod.nit:3010 */
16102 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*/;
16103 if (UNTAG_Bool(REGB0)) {
16104 } else {
16105 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3010);
16106 }
16107 /* ./parser//parser_prod.nit:3011 */
16108 ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0]) = fra.me.REG[2];
16109 } else {
16110 /* ./parser//parser_prod.nit:3013 */
16111 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3013);
16112 }
16113 /* ./parser//parser_prod.nit:3015 */
16114 goto label1;
16115 }
16116 /* ./parser//parser_prod.nit:3017 */
16117 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]);
16118 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16119 if (UNTAG_Bool(REGB0)) {
16120 } else {
16121 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16122 if (UNTAG_Bool(REGB1)) {
16123 REGB1 = TAG_Bool(false);
16124 REGB0 = REGB1;
16125 } else {
16126 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16127 REGB0 = REGB1;
16128 }
16129 }
16130 if (UNTAG_Bool(REGB0)) {
16131 /* ./parser//parser_prod.nit:3018 */
16132 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16133 if (UNTAG_Bool(REGB0)) {
16134 } else {
16135 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16136 if (UNTAG_Bool(REGB1)) {
16137 REGB1 = TAG_Bool(false);
16138 REGB0 = REGB1;
16139 } else {
16140 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16141 REGB0 = REGB1;
16142 }
16143 }
16144 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16145 if (UNTAG_Bool(REGB0)) {
16146 /* ./parser//parser_prod.nit:3019 */
16147 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16148 if (UNTAG_Bool(REGB0)) {
16149 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3019);
16150 }
16151 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16152 /* ./parser//parser_prod.nit:3020 */
16153 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*/;
16154 if (UNTAG_Bool(REGB0)) {
16155 } else {
16156 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3020);
16157 }
16158 /* ./parser//parser_prod.nit:3021 */
16159 ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]) = fra.me.REG[2];
16160 } else {
16161 /* ./parser//parser_prod.nit:3023 */
16162 ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]) = NIT_NULL;
16163 }
16164 /* ./parser//parser_prod.nit:3025 */
16165 goto label1;
16166 }
16167 /* ./parser//parser_prod.nit:3027 */
16168 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]);
16169 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16170 if (UNTAG_Bool(REGB0)) {
16171 } else {
16172 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16173 if (UNTAG_Bool(REGB1)) {
16174 REGB1 = TAG_Bool(false);
16175 REGB0 = REGB1;
16176 } else {
16177 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16178 REGB0 = REGB1;
16179 }
16180 }
16181 if (UNTAG_Bool(REGB0)) {
16182 /* ./parser//parser_prod.nit:3028 */
16183 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16184 if (UNTAG_Bool(REGB0)) {
16185 } else {
16186 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16187 if (UNTAG_Bool(REGB1)) {
16188 REGB1 = TAG_Bool(false);
16189 REGB0 = REGB1;
16190 } else {
16191 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16192 REGB0 = REGB1;
16193 }
16194 }
16195 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16196 if (UNTAG_Bool(REGB0)) {
16197 /* ./parser//parser_prod.nit:3029 */
16198 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16199 if (UNTAG_Bool(REGB0)) {
16200 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3029);
16201 }
16202 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16203 /* ./parser//parser_prod.nit:3030 */
16204 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*/;
16205 if (UNTAG_Bool(REGB0)) {
16206 } else {
16207 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3030);
16208 }
16209 /* ./parser//parser_prod.nit:3031 */
16210 ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = fra.me.REG[2];
16211 } else {
16212 /* ./parser//parser_prod.nit:3033 */
16213 ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = NIT_NULL;
16214 }
16215 /* ./parser//parser_prod.nit:3035 */
16216 goto label1;
16217 }
16218 label1: while(0);
16219 stack_frame_head = fra.me.prev;
16220 return;
16221 }
16222 void parser___parser_prod___AParam___visit_all(val_t p0, val_t p1){
16223 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16224 val_t REGB0;
16225 val_t REGB1;
16226 val_t tmp;
16227 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16228 fra.me.file = LOCATE_parser___parser_prod;
16229 fra.me.line = 3039;
16230 fra.me.meth = LOCATE_parser___parser_prod___AParam___visit_all;
16231 fra.me.has_broke = 0;
16232 fra.me.REG_size = 4;
16233 fra.me.REG[0] = NIT_NULL;
16234 fra.me.REG[1] = NIT_NULL;
16235 fra.me.REG[2] = NIT_NULL;
16236 fra.me.REG[3] = NIT_NULL;
16237 fra.me.REG[0] = p0;
16238 fra.me.REG[1] = p1;
16239 /* ./parser//parser_prod.nit:3039 */
16240 fra.me.REG[2] = fra.me.REG[0];
16241 /* ./parser//parser_prod.nit:3041 */
16242 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[2])!=NIT_NULL);
16243 if (UNTAG_Bool(REGB0)) {
16244 } else {
16245 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3041);
16246 }
16247 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[2]);
16248 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16249 /* ./parser//parser_prod.nit:3042 */
16250 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[2]);
16251 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16252 if (UNTAG_Bool(REGB0)) {
16253 } else {
16254 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16255 if (UNTAG_Bool(REGB1)) {
16256 REGB1 = TAG_Bool(false);
16257 REGB0 = REGB1;
16258 } else {
16259 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
16260 REGB0 = REGB1;
16261 }
16262 }
16263 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16264 if (UNTAG_Bool(REGB0)) {
16265 /* ./parser//parser_prod.nit:3043 */
16266 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[2]);
16267 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*/;
16268 if (UNTAG_Bool(REGB0)) {
16269 } else {
16270 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3043);
16271 }
16272 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16273 }
16274 /* ./parser//parser_prod.nit:3045 */
16275 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[2]);
16276 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16277 if (UNTAG_Bool(REGB0)) {
16278 } else {
16279 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16280 if (UNTAG_Bool(REGB1)) {
16281 REGB1 = TAG_Bool(false);
16282 REGB0 = REGB1;
16283 } else {
16284 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
16285 REGB0 = REGB1;
16286 }
16287 }
16288 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16289 if (UNTAG_Bool(REGB0)) {
16290 /* ./parser//parser_prod.nit:3046 */
16291 fra.me.REG[2] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[2]);
16292 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*/;
16293 if (UNTAG_Bool(REGB0)) {
16294 } else {
16295 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3046);
16296 }
16297 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16298 }
16299 stack_frame_head = fra.me.prev;
16300 return;
16301 }
16302 void parser___parser_prod___AClosureDecl___empty_init(val_t p0, int* init_table){
16303 int itpos101 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDecl].i;
16304 struct {struct stack_frame_t me;} fra;
16305 val_t tmp;
16306 if (init_table[itpos101]) return;
16307 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16308 fra.me.file = LOCATE_parser___parser_prod;
16309 fra.me.line = 3051;
16310 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___empty_init;
16311 fra.me.has_broke = 0;
16312 fra.me.REG_size = 1;
16313 fra.me.REG[0] = NIT_NULL;
16314 fra.me.REG[0] = p0;
16315 stack_frame_head = fra.me.prev;
16316 init_table[itpos101] = 1;
16317 return;
16318 }
16319 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){
16320 int itpos102 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDecl].i;
16321 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
16322 val_t REGB0;
16323 val_t REGB1;
16324 val_t tmp;
16325 if (init_table[itpos102]) return;
16326 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16327 fra.me.file = LOCATE_parser___parser_prod;
16328 fra.me.line = 3053;
16329 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___init_aclosuredecl;
16330 fra.me.has_broke = 0;
16331 fra.me.REG_size = 7;
16332 fra.me.REG[0] = NIT_NULL;
16333 fra.me.REG[1] = NIT_NULL;
16334 fra.me.REG[2] = NIT_NULL;
16335 fra.me.REG[3] = NIT_NULL;
16336 fra.me.REG[4] = NIT_NULL;
16337 fra.me.REG[5] = NIT_NULL;
16338 fra.me.REG[6] = NIT_NULL;
16339 fra.me.REG[0] = p0;
16340 fra.me.REG[1] = p1;
16341 fra.me.REG[2] = p2;
16342 fra.me.REG[3] = p3;
16343 fra.me.REG[4] = p4;
16344 fra.me.REG[5] = p5;
16345 /* ./parser//parser_prod.nit:3053 */
16346 fra.me.REG[6] = fra.me.REG[0];
16347 /* ./parser//parser_prod.nit:3061 */
16348 CALL_parser___parser_prod___AClosureDecl___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
16349 /* ./parser//parser_prod.nit:3062 */
16350 ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[6]) = fra.me.REG[1];
16351 /* ./parser//parser_prod.nit:3063 */
16352 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16353 if (UNTAG_Bool(REGB0)) {
16354 } else {
16355 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16356 if (UNTAG_Bool(REGB1)) {
16357 REGB1 = TAG_Bool(false);
16358 REGB0 = REGB1;
16359 } else {
16360 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
16361 REGB0 = REGB1;
16362 }
16363 }
16364 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16365 if (UNTAG_Bool(REGB0)) {
16366 /* ./parser//parser_prod.nit:3064 */
16367 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16368 if (UNTAG_Bool(REGB0)) {
16369 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3064);
16370 }
16371 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
16372 }
16373 /* ./parser//parser_prod.nit:3066 */
16374 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
16375 if (UNTAG_Bool(REGB0)) {
16376 } else {
16377 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3066);
16378 }
16379 ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[6]) = fra.me.REG[2];
16380 /* ./parser//parser_prod.nit:3067 */
16381 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16382 if (UNTAG_Bool(REGB0)) {
16383 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3067);
16384 }
16385 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
16386 /* ./parser//parser_prod.nit:3068 */
16387 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
16388 if (UNTAG_Bool(REGB0)) {
16389 } else {
16390 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3068);
16391 }
16392 ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[6]) = fra.me.REG[3];
16393 /* ./parser//parser_prod.nit:3069 */
16394 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16395 if (UNTAG_Bool(REGB0)) {
16396 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3069);
16397 }
16398 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
16399 /* ./parser//parser_prod.nit:3070 */
16400 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
16401 if (UNTAG_Bool(REGB0)) {
16402 } else {
16403 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3070);
16404 }
16405 ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[6]) = fra.me.REG[4];
16406 /* ./parser//parser_prod.nit:3071 */
16407 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
16408 if (UNTAG_Bool(REGB0)) {
16409 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3071);
16410 }
16411 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
16412 /* ./parser//parser_prod.nit:3072 */
16413 ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[6]) = fra.me.REG[5];
16414 /* ./parser//parser_prod.nit:3073 */
16415 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
16416 if (UNTAG_Bool(REGB0)) {
16417 } else {
16418 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
16419 if (UNTAG_Bool(REGB1)) {
16420 REGB1 = TAG_Bool(false);
16421 REGB0 = REGB1;
16422 } else {
16423 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
16424 REGB0 = REGB1;
16425 }
16426 }
16427 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16428 if (UNTAG_Bool(REGB0)) {
16429 /* ./parser//parser_prod.nit:3074 */
16430 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
16431 if (UNTAG_Bool(REGB0)) {
16432 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3074);
16433 }
16434 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
16435 }
16436 stack_frame_head = fra.me.prev;
16437 init_table[itpos102] = 1;
16438 return;
16439 }
16440 void parser___parser_prod___AClosureDecl___replace_child(val_t p0, val_t p1, val_t p2){
16441 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16442 val_t REGB0;
16443 val_t REGB1;
16444 val_t tmp;
16445 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16446 fra.me.file = LOCATE_parser___parser_prod;
16447 fra.me.line = 3078;
16448 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___replace_child;
16449 fra.me.has_broke = 0;
16450 fra.me.REG_size = 4;
16451 fra.me.REG[0] = NIT_NULL;
16452 fra.me.REG[1] = NIT_NULL;
16453 fra.me.REG[2] = NIT_NULL;
16454 fra.me.REG[3] = NIT_NULL;
16455 fra.me.REG[0] = p0;
16456 fra.me.REG[1] = p1;
16457 fra.me.REG[2] = p2;
16458 /* ./parser//parser_prod.nit:3080 */
16459 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]);
16460 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16461 if (UNTAG_Bool(REGB0)) {
16462 } else {
16463 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16464 if (UNTAG_Bool(REGB1)) {
16465 REGB1 = TAG_Bool(false);
16466 REGB0 = REGB1;
16467 } else {
16468 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16469 REGB0 = REGB1;
16470 }
16471 }
16472 if (UNTAG_Bool(REGB0)) {
16473 /* ./parser//parser_prod.nit:3081 */
16474 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16475 if (UNTAG_Bool(REGB0)) {
16476 } else {
16477 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16478 if (UNTAG_Bool(REGB1)) {
16479 REGB1 = TAG_Bool(false);
16480 REGB0 = REGB1;
16481 } else {
16482 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16483 REGB0 = REGB1;
16484 }
16485 }
16486 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16487 if (UNTAG_Bool(REGB0)) {
16488 /* ./parser//parser_prod.nit:3082 */
16489 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16490 if (UNTAG_Bool(REGB0)) {
16491 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3082);
16492 }
16493 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16494 /* ./parser//parser_prod.nit:3083 */
16495 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*/;
16496 if (UNTAG_Bool(REGB0)) {
16497 } else {
16498 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3083);
16499 }
16500 /* ./parser//parser_prod.nit:3084 */
16501 ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
16502 } else {
16503 /* ./parser//parser_prod.nit:3086 */
16504 ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = NIT_NULL;
16505 }
16506 /* ./parser//parser_prod.nit:3088 */
16507 goto label1;
16508 }
16509 /* ./parser//parser_prod.nit:3090 */
16510 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0])!=NIT_NULL);
16511 if (UNTAG_Bool(REGB0)) {
16512 } else {
16513 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 3090);
16514 }
16515 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]);
16516 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16517 if (UNTAG_Bool(REGB0)) {
16518 } else {
16519 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16520 REGB0 = REGB1;
16521 }
16522 if (UNTAG_Bool(REGB0)) {
16523 /* ./parser//parser_prod.nit:3091 */
16524 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16525 if (UNTAG_Bool(REGB0)) {
16526 } else {
16527 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16528 if (UNTAG_Bool(REGB1)) {
16529 REGB1 = TAG_Bool(false);
16530 REGB0 = REGB1;
16531 } else {
16532 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16533 REGB0 = REGB1;
16534 }
16535 }
16536 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16537 if (UNTAG_Bool(REGB0)) {
16538 /* ./parser//parser_prod.nit:3092 */
16539 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16540 if (UNTAG_Bool(REGB0)) {
16541 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3092);
16542 }
16543 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16544 /* ./parser//parser_prod.nit:3093 */
16545 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*/;
16546 if (UNTAG_Bool(REGB0)) {
16547 } else {
16548 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3093);
16549 }
16550 /* ./parser//parser_prod.nit:3094 */
16551 ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]) = fra.me.REG[2];
16552 } else {
16553 /* ./parser//parser_prod.nit:3096 */
16554 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3096);
16555 }
16556 /* ./parser//parser_prod.nit:3098 */
16557 goto label1;
16558 }
16559 /* ./parser//parser_prod.nit:3100 */
16560 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0])!=NIT_NULL);
16561 if (UNTAG_Bool(REGB0)) {
16562 } else {
16563 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3100);
16564 }
16565 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0]);
16566 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16567 if (UNTAG_Bool(REGB0)) {
16568 } else {
16569 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16570 REGB0 = REGB1;
16571 }
16572 if (UNTAG_Bool(REGB0)) {
16573 /* ./parser//parser_prod.nit:3101 */
16574 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16575 if (UNTAG_Bool(REGB0)) {
16576 } else {
16577 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16578 if (UNTAG_Bool(REGB1)) {
16579 REGB1 = TAG_Bool(false);
16580 REGB0 = REGB1;
16581 } else {
16582 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16583 REGB0 = REGB1;
16584 }
16585 }
16586 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16587 if (UNTAG_Bool(REGB0)) {
16588 /* ./parser//parser_prod.nit:3102 */
16589 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16590 if (UNTAG_Bool(REGB0)) {
16591 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3102);
16592 }
16593 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16594 /* ./parser//parser_prod.nit:3103 */
16595 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*/;
16596 if (UNTAG_Bool(REGB0)) {
16597 } else {
16598 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3103);
16599 }
16600 /* ./parser//parser_prod.nit:3104 */
16601 ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0]) = fra.me.REG[2];
16602 } else {
16603 /* ./parser//parser_prod.nit:3106 */
16604 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3106);
16605 }
16606 /* ./parser//parser_prod.nit:3108 */
16607 goto label1;
16608 }
16609 /* ./parser//parser_prod.nit:3110 */
16610 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0])!=NIT_NULL);
16611 if (UNTAG_Bool(REGB0)) {
16612 } else {
16613 nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser___parser_prod, 3110);
16614 }
16615 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]);
16616 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16617 if (UNTAG_Bool(REGB0)) {
16618 } else {
16619 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16620 REGB0 = REGB1;
16621 }
16622 if (UNTAG_Bool(REGB0)) {
16623 /* ./parser//parser_prod.nit:3111 */
16624 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16625 if (UNTAG_Bool(REGB0)) {
16626 } else {
16627 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16628 if (UNTAG_Bool(REGB1)) {
16629 REGB1 = TAG_Bool(false);
16630 REGB0 = REGB1;
16631 } else {
16632 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16633 REGB0 = REGB1;
16634 }
16635 }
16636 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16637 if (UNTAG_Bool(REGB0)) {
16638 /* ./parser//parser_prod.nit:3112 */
16639 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16640 if (UNTAG_Bool(REGB0)) {
16641 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3112);
16642 }
16643 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16644 /* ./parser//parser_prod.nit:3113 */
16645 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*/;
16646 if (UNTAG_Bool(REGB0)) {
16647 } else {
16648 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3113);
16649 }
16650 /* ./parser//parser_prod.nit:3114 */
16651 ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]) = fra.me.REG[2];
16652 } else {
16653 /* ./parser//parser_prod.nit:3116 */
16654 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3116);
16655 }
16656 /* ./parser//parser_prod.nit:3118 */
16657 goto label1;
16658 }
16659 /* ./parser//parser_prod.nit:3120 */
16660 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]);
16661 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16662 if (UNTAG_Bool(REGB0)) {
16663 } else {
16664 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16665 if (UNTAG_Bool(REGB1)) {
16666 REGB1 = TAG_Bool(false);
16667 REGB0 = REGB1;
16668 } else {
16669 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16670 REGB0 = REGB1;
16671 }
16672 }
16673 if (UNTAG_Bool(REGB0)) {
16674 /* ./parser//parser_prod.nit:3121 */
16675 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16676 if (UNTAG_Bool(REGB0)) {
16677 } else {
16678 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16679 if (UNTAG_Bool(REGB1)) {
16680 REGB1 = TAG_Bool(false);
16681 REGB0 = REGB1;
16682 } else {
16683 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16684 REGB0 = REGB1;
16685 }
16686 }
16687 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16688 if (UNTAG_Bool(REGB0)) {
16689 /* ./parser//parser_prod.nit:3122 */
16690 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16691 if (UNTAG_Bool(REGB0)) {
16692 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3122);
16693 }
16694 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16695 /* ./parser//parser_prod.nit:3123 */
16696 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
16697 if (UNTAG_Bool(REGB0)) {
16698 } else {
16699 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3123);
16700 }
16701 /* ./parser//parser_prod.nit:3124 */
16702 ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = fra.me.REG[2];
16703 } else {
16704 /* ./parser//parser_prod.nit:3126 */
16705 ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = NIT_NULL;
16706 }
16707 /* ./parser//parser_prod.nit:3128 */
16708 goto label1;
16709 }
16710 label1: while(0);
16711 stack_frame_head = fra.me.prev;
16712 return;
16713 }
16714 void parser___parser_prod___AClosureDecl___visit_all(val_t p0, val_t p1){
16715 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16716 val_t REGB0;
16717 val_t REGB1;
16718 val_t tmp;
16719 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16720 fra.me.file = LOCATE_parser___parser_prod;
16721 fra.me.line = 3132;
16722 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___visit_all;
16723 fra.me.has_broke = 0;
16724 fra.me.REG_size = 4;
16725 fra.me.REG[0] = NIT_NULL;
16726 fra.me.REG[1] = NIT_NULL;
16727 fra.me.REG[2] = NIT_NULL;
16728 fra.me.REG[3] = NIT_NULL;
16729 fra.me.REG[0] = p0;
16730 fra.me.REG[1] = p1;
16731 /* ./parser//parser_prod.nit:3132 */
16732 fra.me.REG[2] = fra.me.REG[0];
16733 /* ./parser//parser_prod.nit:3134 */
16734 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[2]);
16735 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16736 if (UNTAG_Bool(REGB0)) {
16737 } else {
16738 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16739 if (UNTAG_Bool(REGB1)) {
16740 REGB1 = TAG_Bool(false);
16741 REGB0 = REGB1;
16742 } else {
16743 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
16744 REGB0 = REGB1;
16745 }
16746 }
16747 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16748 if (UNTAG_Bool(REGB0)) {
16749 /* ./parser//parser_prod.nit:3135 */
16750 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[2]);
16751 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*/;
16752 if (UNTAG_Bool(REGB0)) {
16753 } else {
16754 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3135);
16755 }
16756 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16757 }
16758 /* ./parser//parser_prod.nit:3137 */
16759 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[2])!=NIT_NULL);
16760 if (UNTAG_Bool(REGB0)) {
16761 } else {
16762 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 3137);
16763 }
16764 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[2]);
16765 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16766 /* ./parser//parser_prod.nit:3138 */
16767 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[2])!=NIT_NULL);
16768 if (UNTAG_Bool(REGB0)) {
16769 } else {
16770 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3138);
16771 }
16772 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[2]);
16773 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16774 /* ./parser//parser_prod.nit:3139 */
16775 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[2])!=NIT_NULL);
16776 if (UNTAG_Bool(REGB0)) {
16777 } else {
16778 nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser___parser_prod, 3139);
16779 }
16780 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[2]);
16781 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16782 /* ./parser//parser_prod.nit:3140 */
16783 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[2]);
16784 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16785 if (UNTAG_Bool(REGB0)) {
16786 } else {
16787 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16788 if (UNTAG_Bool(REGB1)) {
16789 REGB1 = TAG_Bool(false);
16790 REGB0 = REGB1;
16791 } else {
16792 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
16793 REGB0 = REGB1;
16794 }
16795 }
16796 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16797 if (UNTAG_Bool(REGB0)) {
16798 /* ./parser//parser_prod.nit:3141 */
16799 fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[2]);
16800 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
16801 if (UNTAG_Bool(REGB0)) {
16802 } else {
16803 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3141);
16804 }
16805 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16806 }
16807 stack_frame_head = fra.me.prev;
16808 return;
16809 }
16810 void parser___parser_prod___AType___empty_init(val_t p0, int* init_table){
16811 int itpos103 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AType].i;
16812 struct {struct stack_frame_t me;} fra;
16813 val_t tmp;
16814 if (init_table[itpos103]) return;
16815 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16816 fra.me.file = LOCATE_parser___parser_prod;
16817 fra.me.line = 3146;
16818 fra.me.meth = LOCATE_parser___parser_prod___AType___empty_init;
16819 fra.me.has_broke = 0;
16820 fra.me.REG_size = 1;
16821 fra.me.REG[0] = NIT_NULL;
16822 fra.me.REG[0] = p0;
16823 stack_frame_head = fra.me.prev;
16824 init_table[itpos103] = 1;
16825 return;
16826 }
16827 void parser___parser_prod___AType___init_atype(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
16828 int itpos104 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AType].i;
16829 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
16830 val_t REGB0;
16831 val_t REGB1;
16832 val_t tmp;
16833 if (init_table[itpos104]) return;
16834 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16835 fra.me.file = LOCATE_parser___parser_prod;
16836 fra.me.line = 3148;
16837 fra.me.meth = LOCATE_parser___parser_prod___AType___init_atype;
16838 fra.me.has_broke = 0;
16839 fra.me.REG_size = 5;
16840 fra.me.REG[0] = NIT_NULL;
16841 fra.me.REG[1] = NIT_NULL;
16842 fra.me.REG[2] = NIT_NULL;
16843 fra.me.REG[3] = NIT_NULL;
16844 fra.me.REG[4] = NIT_NULL;
16845 fra.me.REG[0] = p0;
16846 fra.me.REG[1] = p1;
16847 fra.me.REG[2] = p2;
16848 fra.me.REG[3] = p3;
16849 /* ./parser//parser_prod.nit:3148 */
16850 fra.me.REG[4] = fra.me.REG[0];
16851 /* ./parser//parser_prod.nit:3154 */
16852 CALL_parser___parser_prod___AType___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
16853 /* ./parser//parser_prod.nit:3155 */
16854 ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[4]) = fra.me.REG[1];
16855 /* ./parser//parser_prod.nit:3156 */
16856 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16857 if (UNTAG_Bool(REGB0)) {
16858 } else {
16859 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16860 if (UNTAG_Bool(REGB1)) {
16861 REGB1 = TAG_Bool(false);
16862 REGB0 = REGB1;
16863 } else {
16864 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
16865 REGB0 = REGB1;
16866 }
16867 }
16868 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16869 if (UNTAG_Bool(REGB0)) {
16870 /* ./parser//parser_prod.nit:3157 */
16871 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16872 if (UNTAG_Bool(REGB0)) {
16873 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3157);
16874 }
16875 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
16876 }
16877 /* ./parser//parser_prod.nit:3159 */
16878 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
16879 if (UNTAG_Bool(REGB0)) {
16880 } else {
16881 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3159);
16882 }
16883 ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[4]) = fra.me.REG[2];
16884 /* ./parser//parser_prod.nit:3160 */
16885 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16886 if (UNTAG_Bool(REGB0)) {
16887 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3160);
16888 }
16889 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
16890 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));
16891 stack_frame_head = fra.me.prev;
16892 init_table[itpos104] = 1;
16893 return;
16894 }
16895 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){
16896 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16897 val_t REGB0;
16898 fun_t CREG[1];
16899 val_t tmp;
16900 /* ./parser//parser_prod.nit:3161 */
16901 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16902 fra.me.file = LOCATE_parser___parser_prod;
16903 fra.me.line = 0;
16904 fra.me.meth = LOCATE_parser___parser_prod___AType___init_atype;
16905 fra.me.has_broke = 0;
16906 fra.me.REG_size = 2;
16907 fra.me.REG[0] = NIT_NULL;
16908 fra.me.REG[1] = NIT_NULL;
16909 fra.me.closure_ctx = closctx_param;
16910 fra.me.closure_funs = CREG;
16911 fra.me.REG[0] = p0;
16912 CREG[0] = clos_fun0;
16913 /* ./parser//parser_prod.nit:3162 */
16914 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
16915 if (UNTAG_Bool(REGB0)) {
16916 } else {
16917 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3162);
16918 }
16919 /* ./parser//parser_prod.nit:3163 */
16920 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(closctx->REG[4])!=NIT_NULL);
16921 if (UNTAG_Bool(REGB0)) {
16922 } else {
16923 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3163);
16924 }
16925 fra.me.REG[1] = ATTR_parser___parser_nodes___AType____n_types(closctx->REG[4]);
16926 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16927 /* ./parser//parser_prod.nit:3164 */
16928 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
16929 stack_frame_head = fra.me.prev;
16930 return;
16931 }
16932 void parser___parser_prod___AType___replace_child(val_t p0, val_t p1, val_t p2){
16933 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16934 val_t REGB0;
16935 val_t REGB1;
16936 val_t REGB2;
16937 val_t REGB3;
16938 val_t REGB4;
16939 val_t tmp;
16940 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16941 fra.me.file = LOCATE_parser___parser_prod;
16942 fra.me.line = 3168;
16943 fra.me.meth = LOCATE_parser___parser_prod___AType___replace_child;
16944 fra.me.has_broke = 0;
16945 fra.me.REG_size = 4;
16946 fra.me.REG[0] = NIT_NULL;
16947 fra.me.REG[1] = NIT_NULL;
16948 fra.me.REG[2] = NIT_NULL;
16949 fra.me.REG[3] = NIT_NULL;
16950 fra.me.REG[0] = p0;
16951 fra.me.REG[1] = p1;
16952 fra.me.REG[2] = p2;
16953 /* ./parser//parser_prod.nit:3170 */
16954 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]);
16955 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16956 if (UNTAG_Bool(REGB0)) {
16957 } else {
16958 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16959 if (UNTAG_Bool(REGB1)) {
16960 REGB1 = TAG_Bool(false);
16961 REGB0 = REGB1;
16962 } else {
16963 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16964 REGB0 = REGB1;
16965 }
16966 }
16967 if (UNTAG_Bool(REGB0)) {
16968 /* ./parser//parser_prod.nit:3171 */
16969 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16970 if (UNTAG_Bool(REGB0)) {
16971 } else {
16972 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16973 if (UNTAG_Bool(REGB1)) {
16974 REGB1 = TAG_Bool(false);
16975 REGB0 = REGB1;
16976 } else {
16977 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16978 REGB0 = REGB1;
16979 }
16980 }
16981 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16982 if (UNTAG_Bool(REGB0)) {
16983 /* ./parser//parser_prod.nit:3172 */
16984 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16985 if (UNTAG_Bool(REGB0)) {
16986 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3172);
16987 }
16988 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16989 /* ./parser//parser_prod.nit:3173 */
16990 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*/;
16991 if (UNTAG_Bool(REGB0)) {
16992 } else {
16993 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3173);
16994 }
16995 /* ./parser//parser_prod.nit:3174 */
16996 ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
16997 } else {
16998 /* ./parser//parser_prod.nit:3176 */
16999 ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = NIT_NULL;
17000 }
17001 /* ./parser//parser_prod.nit:3178 */
17002 goto label1;
17003 }
17004 /* ./parser//parser_prod.nit:3180 */
17005 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0])!=NIT_NULL);
17006 if (UNTAG_Bool(REGB0)) {
17007 } else {
17008 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3180);
17009 }
17010 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0]);
17011 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17012 if (UNTAG_Bool(REGB0)) {
17013 } else {
17014 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17015 REGB0 = REGB1;
17016 }
17017 if (UNTAG_Bool(REGB0)) {
17018 /* ./parser//parser_prod.nit:3181 */
17019 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17020 if (UNTAG_Bool(REGB0)) {
17021 } else {
17022 REGB1 = TAG_Bool(fra.me.REG[2]==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[2])(fra.me.REG[2], NIT_NULL);
17028 REGB0 = REGB1;
17029 }
17030 }
17031 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17032 if (UNTAG_Bool(REGB0)) {
17033 /* ./parser//parser_prod.nit:3182 */
17034 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17035 if (UNTAG_Bool(REGB0)) {
17036 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3182);
17037 }
17038 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17039 /* ./parser//parser_prod.nit:3183 */
17040 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*/;
17041 if (UNTAG_Bool(REGB0)) {
17042 } else {
17043 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3183);
17044 }
17045 /* ./parser//parser_prod.nit:3184 */
17046 ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0]) = fra.me.REG[2];
17047 } else {
17048 /* ./parser//parser_prod.nit:3186 */
17049 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3186);
17050 }
17051 /* ./parser//parser_prod.nit:3188 */
17052 goto label1;
17053 }
17054 /* ./parser//parser_prod.nit:3190 */
17055 REGB0 = TAG_Int(0);
17056 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
17057 if (UNTAG_Bool(REGB1)) {
17058 } else {
17059 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3190);
17060 }
17061 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
17062 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
17063 /* ./../lib/standard//kernel.nit:352 */
17064 while(1) {
17065 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
17066 if (UNTAG_Bool(REGB2)) {
17067 } else {
17068 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
17069 }
17070 /* ./../lib/standard//kernel.nit:232 */
17071 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
17072 /* ./../lib/standard//kernel.nit:352 */
17073 if (UNTAG_Bool(REGB2)) {
17074 /* ./parser//parser_prod.nit:3190 */
17075 REGB2 = REGB0;
17076 /* ./parser//parser_prod.nit:3191 */
17077 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
17078 if (UNTAG_Bool(REGB3)) {
17079 } else {
17080 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3191);
17081 }
17082 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
17083 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
17084 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17085 if (UNTAG_Bool(REGB3)) {
17086 } else {
17087 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17088 if (UNTAG_Bool(REGB4)) {
17089 REGB4 = TAG_Bool(false);
17090 REGB3 = REGB4;
17091 } else {
17092 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17093 REGB3 = REGB4;
17094 }
17095 }
17096 if (UNTAG_Bool(REGB3)) {
17097 /* ./parser//parser_prod.nit:3192 */
17098 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17099 if (UNTAG_Bool(REGB3)) {
17100 } else {
17101 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17102 if (UNTAG_Bool(REGB4)) {
17103 REGB4 = TAG_Bool(false);
17104 REGB3 = REGB4;
17105 } else {
17106 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17107 REGB3 = REGB4;
17108 }
17109 }
17110 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
17111 if (UNTAG_Bool(REGB3)) {
17112 /* ./parser//parser_prod.nit:3193 */
17113 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*/;
17114 if (UNTAG_Bool(REGB3)) {
17115 } else {
17116 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3193);
17117 }
17118 /* ./parser//parser_prod.nit:3194 */
17119 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
17120 if (UNTAG_Bool(REGB3)) {
17121 } else {
17122 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3194);
17123 }
17124 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
17125 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
17126 /* ./parser//parser_prod.nit:3195 */
17127 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17128 if (UNTAG_Bool(REGB3)) {
17129 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3195);
17130 }
17131 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17132 } else {
17133 /* ./parser//parser_prod.nit:3197 */
17134 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
17135 if (UNTAG_Bool(REGB3)) {
17136 } else {
17137 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3197);
17138 }
17139 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
17140 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
17141 }
17142 /* ./parser//parser_prod.nit:3199 */
17143 goto label1;
17144 }
17145 /* ./../lib/standard//kernel.nit:354 */
17146 REGB2 = TAG_Int(1);
17147 /* ./../lib/standard//kernel.nit:235 */
17148 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
17149 /* ./../lib/standard//kernel.nit:354 */
17150 REGB0 = REGB2;
17151 } else {
17152 /* ./../lib/standard//kernel.nit:352 */
17153 goto label2;
17154 }
17155 }
17156 label2: while(0);
17157 label1: while(0);
17158 stack_frame_head = fra.me.prev;
17159 return;
17160 }
17161 void parser___parser_prod___AType___visit_all(val_t p0, val_t p1){
17162 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17163 val_t REGB0;
17164 val_t REGB1;
17165 val_t tmp;
17166 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17167 fra.me.file = LOCATE_parser___parser_prod;
17168 fra.me.line = 3204;
17169 fra.me.meth = LOCATE_parser___parser_prod___AType___visit_all;
17170 fra.me.has_broke = 0;
17171 fra.me.REG_size = 4;
17172 fra.me.REG[0] = NIT_NULL;
17173 fra.me.REG[1] = NIT_NULL;
17174 fra.me.REG[2] = NIT_NULL;
17175 fra.me.REG[3] = NIT_NULL;
17176 fra.me.REG[0] = p0;
17177 fra.me.REG[1] = p1;
17178 /* ./parser//parser_prod.nit:3204 */
17179 fra.me.REG[2] = fra.me.REG[0];
17180 /* ./parser//parser_prod.nit:3206 */
17181 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[2]);
17182 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17183 if (UNTAG_Bool(REGB0)) {
17184 } else {
17185 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17186 if (UNTAG_Bool(REGB1)) {
17187 REGB1 = TAG_Bool(false);
17188 REGB0 = REGB1;
17189 } else {
17190 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17191 REGB0 = REGB1;
17192 }
17193 }
17194 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17195 if (UNTAG_Bool(REGB0)) {
17196 /* ./parser//parser_prod.nit:3207 */
17197 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[2]);
17198 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*/;
17199 if (UNTAG_Bool(REGB0)) {
17200 } else {
17201 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3207);
17202 }
17203 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17204 }
17205 /* ./parser//parser_prod.nit:3209 */
17206 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[2])!=NIT_NULL);
17207 if (UNTAG_Bool(REGB0)) {
17208 } else {
17209 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3209);
17210 }
17211 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[2]);
17212 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17213 /* ./parser//parser_prod.nit:3210 */
17214 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[2])!=NIT_NULL);
17215 if (UNTAG_Bool(REGB0)) {
17216 } else {
17217 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3210);
17218 }
17219 fra.me.REG[2] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[2]);
17220 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));
17221 stack_frame_head = fra.me.prev;
17222 return;
17223 }
17224 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){
17225 struct {struct stack_frame_t me;} fra;
17226 fun_t CREG[1];
17227 val_t tmp;
17228 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17229 fra.me.file = LOCATE_parser___parser_prod;
17230 fra.me.line = 0;
17231 fra.me.meth = LOCATE_parser___parser_prod___AType___visit_all;
17232 fra.me.has_broke = 0;
17233 fra.me.REG_size = 1;
17234 fra.me.REG[0] = NIT_NULL;
17235 fra.me.closure_ctx = closctx_param;
17236 fra.me.closure_funs = CREG;
17237 fra.me.REG[0] = p0;
17238 CREG[0] = clos_fun0;
17239 /* ./parser//parser_prod.nit:3211 */
17240 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
17241 stack_frame_head = fra.me.prev;
17242 return;
17243 }
17244 void parser___parser_prod___ALabel___empty_init(val_t p0, int* init_table){
17245 int itpos105 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALabel].i;
17246 struct {struct stack_frame_t me;} fra;
17247 val_t tmp;
17248 if (init_table[itpos105]) return;
17249 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17250 fra.me.file = LOCATE_parser___parser_prod;
17251 fra.me.line = 3216;
17252 fra.me.meth = LOCATE_parser___parser_prod___ALabel___empty_init;
17253 fra.me.has_broke = 0;
17254 fra.me.REG_size = 1;
17255 fra.me.REG[0] = NIT_NULL;
17256 fra.me.REG[0] = p0;
17257 stack_frame_head = fra.me.prev;
17258 init_table[itpos105] = 1;
17259 return;
17260 }
17261 void parser___parser_prod___ALabel___init_alabel(val_t p0, val_t p1, val_t p2, int* init_table){
17262 int itpos106 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALabel].i;
17263 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17264 val_t REGB0;
17265 val_t tmp;
17266 if (init_table[itpos106]) return;
17267 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17268 fra.me.file = LOCATE_parser___parser_prod;
17269 fra.me.line = 3218;
17270 fra.me.meth = LOCATE_parser___parser_prod___ALabel___init_alabel;
17271 fra.me.has_broke = 0;
17272 fra.me.REG_size = 4;
17273 fra.me.REG[0] = NIT_NULL;
17274 fra.me.REG[1] = NIT_NULL;
17275 fra.me.REG[2] = NIT_NULL;
17276 fra.me.REG[3] = NIT_NULL;
17277 fra.me.REG[0] = p0;
17278 fra.me.REG[1] = p1;
17279 fra.me.REG[2] = p2;
17280 /* ./parser//parser_prod.nit:3218 */
17281 fra.me.REG[3] = fra.me.REG[0];
17282 /* ./parser//parser_prod.nit:3223 */
17283 CALL_parser___parser_prod___ALabel___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
17284 /* ./parser//parser_prod.nit:3224 */
17285 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
17286 if (UNTAG_Bool(REGB0)) {
17287 } else {
17288 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3224);
17289 }
17290 ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[3]) = fra.me.REG[1];
17291 /* ./parser//parser_prod.nit:3225 */
17292 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17293 if (UNTAG_Bool(REGB0)) {
17294 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3225);
17295 }
17296 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17297 /* ./parser//parser_prod.nit:3226 */
17298 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
17299 if (UNTAG_Bool(REGB0)) {
17300 } else {
17301 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3226);
17302 }
17303 ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[3]) = fra.me.REG[2];
17304 /* ./parser//parser_prod.nit:3227 */
17305 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17306 if (UNTAG_Bool(REGB0)) {
17307 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3227);
17308 }
17309 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
17310 stack_frame_head = fra.me.prev;
17311 init_table[itpos106] = 1;
17312 return;
17313 }
17314 void parser___parser_prod___ALabel___replace_child(val_t p0, val_t p1, val_t p2){
17315 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17316 val_t REGB0;
17317 val_t REGB1;
17318 val_t tmp;
17319 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17320 fra.me.file = LOCATE_parser___parser_prod;
17321 fra.me.line = 3230;
17322 fra.me.meth = LOCATE_parser___parser_prod___ALabel___replace_child;
17323 fra.me.has_broke = 0;
17324 fra.me.REG_size = 4;
17325 fra.me.REG[0] = NIT_NULL;
17326 fra.me.REG[1] = NIT_NULL;
17327 fra.me.REG[2] = NIT_NULL;
17328 fra.me.REG[3] = NIT_NULL;
17329 fra.me.REG[0] = p0;
17330 fra.me.REG[1] = p1;
17331 fra.me.REG[2] = p2;
17332 /* ./parser//parser_prod.nit:3232 */
17333 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0])!=NIT_NULL);
17334 if (UNTAG_Bool(REGB0)) {
17335 } else {
17336 nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser___parser_prod, 3232);
17337 }
17338 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]);
17339 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17340 if (UNTAG_Bool(REGB0)) {
17341 } else {
17342 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17343 REGB0 = REGB1;
17344 }
17345 if (UNTAG_Bool(REGB0)) {
17346 /* ./parser//parser_prod.nit:3233 */
17347 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17348 if (UNTAG_Bool(REGB0)) {
17349 } else {
17350 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17351 if (UNTAG_Bool(REGB1)) {
17352 REGB1 = TAG_Bool(false);
17353 REGB0 = REGB1;
17354 } else {
17355 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17356 REGB0 = REGB1;
17357 }
17358 }
17359 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17360 if (UNTAG_Bool(REGB0)) {
17361 /* ./parser//parser_prod.nit:3234 */
17362 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17363 if (UNTAG_Bool(REGB0)) {
17364 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3234);
17365 }
17366 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17367 /* ./parser//parser_prod.nit:3235 */
17368 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*/;
17369 if (UNTAG_Bool(REGB0)) {
17370 } else {
17371 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3235);
17372 }
17373 /* ./parser//parser_prod.nit:3236 */
17374 ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]) = fra.me.REG[2];
17375 } else {
17376 /* ./parser//parser_prod.nit:3238 */
17377 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3238);
17378 }
17379 /* ./parser//parser_prod.nit:3240 */
17380 goto label1;
17381 }
17382 /* ./parser//parser_prod.nit:3242 */
17383 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0])!=NIT_NULL);
17384 if (UNTAG_Bool(REGB0)) {
17385 } else {
17386 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3242);
17387 }
17388 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]);
17389 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17390 if (UNTAG_Bool(REGB0)) {
17391 } else {
17392 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17393 REGB0 = REGB1;
17394 }
17395 if (UNTAG_Bool(REGB0)) {
17396 /* ./parser//parser_prod.nit:3243 */
17397 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17398 if (UNTAG_Bool(REGB0)) {
17399 } else {
17400 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17401 if (UNTAG_Bool(REGB1)) {
17402 REGB1 = TAG_Bool(false);
17403 REGB0 = REGB1;
17404 } else {
17405 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17406 REGB0 = REGB1;
17407 }
17408 }
17409 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17410 if (UNTAG_Bool(REGB0)) {
17411 /* ./parser//parser_prod.nit:3244 */
17412 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17413 if (UNTAG_Bool(REGB0)) {
17414 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3244);
17415 }
17416 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17417 /* ./parser//parser_prod.nit:3245 */
17418 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*/;
17419 if (UNTAG_Bool(REGB0)) {
17420 } else {
17421 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3245);
17422 }
17423 /* ./parser//parser_prod.nit:3246 */
17424 ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]) = fra.me.REG[2];
17425 } else {
17426 /* ./parser//parser_prod.nit:3248 */
17427 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3248);
17428 }
17429 /* ./parser//parser_prod.nit:3250 */
17430 goto label1;
17431 }
17432 label1: while(0);
17433 stack_frame_head = fra.me.prev;
17434 return;
17435 }
17436 void parser___parser_prod___ALabel___visit_all(val_t p0, val_t p1){
17437 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
17438 val_t REGB0;
17439 val_t tmp;
17440 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17441 fra.me.file = LOCATE_parser___parser_prod;
17442 fra.me.line = 3254;
17443 fra.me.meth = LOCATE_parser___parser_prod___ALabel___visit_all;
17444 fra.me.has_broke = 0;
17445 fra.me.REG_size = 3;
17446 fra.me.REG[0] = NIT_NULL;
17447 fra.me.REG[1] = NIT_NULL;
17448 fra.me.REG[2] = NIT_NULL;
17449 fra.me.REG[0] = p0;
17450 fra.me.REG[1] = p1;
17451 /* ./parser//parser_prod.nit:3256 */
17452 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0])!=NIT_NULL);
17453 if (UNTAG_Bool(REGB0)) {
17454 } else {
17455 nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser___parser_prod, 3256);
17456 }
17457 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]);
17458 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17459 /* ./parser//parser_prod.nit:3257 */
17460 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0])!=NIT_NULL);
17461 if (UNTAG_Bool(REGB0)) {
17462 } else {
17463 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3257);
17464 }
17465 fra.me.REG[0] = ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]);
17466 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17467 stack_frame_head = fra.me.prev;
17468 return;
17469 }
17470 void parser___parser_prod___ABlockExpr___empty_init(val_t p0, int* init_table){
17471 int itpos107 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABlockExpr].i;
17472 struct {struct stack_frame_t me;} fra;
17473 val_t tmp;
17474 if (init_table[itpos107]) return;
17475 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17476 fra.me.file = LOCATE_parser___parser_prod;
17477 fra.me.line = 3261;
17478 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___empty_init;
17479 fra.me.has_broke = 0;
17480 fra.me.REG_size = 1;
17481 fra.me.REG[0] = NIT_NULL;
17482 fra.me.REG[0] = p0;
17483 stack_frame_head = fra.me.prev;
17484 init_table[itpos107] = 1;
17485 return;
17486 }
17487 void parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0, val_t p1, int* init_table){
17488 int itpos108 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABlockExpr].i;
17489 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17490 val_t tmp;
17491 if (init_table[itpos108]) return;
17492 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17493 fra.me.file = LOCATE_parser___parser_prod;
17494 fra.me.line = 3263;
17495 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___init_ablockexpr;
17496 fra.me.has_broke = 0;
17497 fra.me.REG_size = 2;
17498 fra.me.REG[0] = NIT_NULL;
17499 fra.me.REG[1] = NIT_NULL;
17500 fra.me.REG[0] = p0;
17501 fra.me.REG[1] = p1;
17502 /* ./parser//parser_prod.nit:3267 */
17503 CALL_parser___parser_prod___ABlockExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
17504 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));
17505 stack_frame_head = fra.me.prev;
17506 init_table[itpos108] = 1;
17507 return;
17508 }
17509 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){
17510 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17511 val_t REGB0;
17512 fun_t CREG[1];
17513 val_t tmp;
17514 /* ./parser//parser_prod.nit:3268 */
17515 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17516 fra.me.file = LOCATE_parser___parser_prod;
17517 fra.me.line = 0;
17518 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___init_ablockexpr;
17519 fra.me.has_broke = 0;
17520 fra.me.REG_size = 2;
17521 fra.me.REG[0] = NIT_NULL;
17522 fra.me.REG[1] = NIT_NULL;
17523 fra.me.closure_ctx = closctx_param;
17524 fra.me.closure_funs = CREG;
17525 fra.me.REG[0] = p0;
17526 CREG[0] = clos_fun0;
17527 /* ./parser//parser_prod.nit:3269 */
17528 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
17529 if (UNTAG_Bool(REGB0)) {
17530 } else {
17531 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3269);
17532 }
17533 /* ./parser//parser_prod.nit:3270 */
17534 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(closctx->REG[0])!=NIT_NULL);
17535 if (UNTAG_Bool(REGB0)) {
17536 } else {
17537 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3270);
17538 }
17539 fra.me.REG[1] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(closctx->REG[0]);
17540 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17541 /* ./parser//parser_prod.nit:3271 */
17542 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
17543 stack_frame_head = fra.me.prev;
17544 return;
17545 }
17546 void parser___parser_prod___ABlockExpr___replace_child(val_t p0, val_t p1, val_t p2){
17547 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17548 val_t REGB0;
17549 val_t REGB1;
17550 val_t REGB2;
17551 val_t REGB3;
17552 val_t REGB4;
17553 val_t tmp;
17554 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17555 fra.me.file = LOCATE_parser___parser_prod;
17556 fra.me.line = 3275;
17557 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___replace_child;
17558 fra.me.has_broke = 0;
17559 fra.me.REG_size = 4;
17560 fra.me.REG[0] = NIT_NULL;
17561 fra.me.REG[1] = NIT_NULL;
17562 fra.me.REG[2] = NIT_NULL;
17563 fra.me.REG[3] = NIT_NULL;
17564 fra.me.REG[0] = p0;
17565 fra.me.REG[1] = p1;
17566 fra.me.REG[2] = p2;
17567 /* ./parser//parser_prod.nit:3277 */
17568 REGB0 = TAG_Int(0);
17569 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
17570 if (UNTAG_Bool(REGB1)) {
17571 } else {
17572 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3277);
17573 }
17574 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
17575 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
17576 /* ./../lib/standard//kernel.nit:352 */
17577 while(1) {
17578 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
17579 if (UNTAG_Bool(REGB2)) {
17580 } else {
17581 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
17582 }
17583 /* ./../lib/standard//kernel.nit:232 */
17584 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
17585 /* ./../lib/standard//kernel.nit:352 */
17586 if (UNTAG_Bool(REGB2)) {
17587 /* ./parser//parser_prod.nit:3277 */
17588 REGB2 = REGB0;
17589 /* ./parser//parser_prod.nit:3278 */
17590 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
17591 if (UNTAG_Bool(REGB3)) {
17592 } else {
17593 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3278);
17594 }
17595 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
17596 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
17597 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17598 if (UNTAG_Bool(REGB3)) {
17599 } else {
17600 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17601 if (UNTAG_Bool(REGB4)) {
17602 REGB4 = TAG_Bool(false);
17603 REGB3 = REGB4;
17604 } else {
17605 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17606 REGB3 = REGB4;
17607 }
17608 }
17609 if (UNTAG_Bool(REGB3)) {
17610 /* ./parser//parser_prod.nit:3279 */
17611 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17612 if (UNTAG_Bool(REGB3)) {
17613 } else {
17614 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17615 if (UNTAG_Bool(REGB4)) {
17616 REGB4 = TAG_Bool(false);
17617 REGB3 = REGB4;
17618 } else {
17619 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17620 REGB3 = REGB4;
17621 }
17622 }
17623 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
17624 if (UNTAG_Bool(REGB3)) {
17625 /* ./parser//parser_prod.nit:3280 */
17626 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*/;
17627 if (UNTAG_Bool(REGB3)) {
17628 } else {
17629 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3280);
17630 }
17631 /* ./parser//parser_prod.nit:3281 */
17632 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
17633 if (UNTAG_Bool(REGB3)) {
17634 } else {
17635 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3281);
17636 }
17637 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
17638 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
17639 /* ./parser//parser_prod.nit:3282 */
17640 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17641 if (UNTAG_Bool(REGB3)) {
17642 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3282);
17643 }
17644 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17645 } else {
17646 /* ./parser//parser_prod.nit:3284 */
17647 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
17648 if (UNTAG_Bool(REGB3)) {
17649 } else {
17650 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3284);
17651 }
17652 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
17653 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
17654 }
17655 /* ./parser//parser_prod.nit:3286 */
17656 goto label1;
17657 }
17658 /* ./../lib/standard//kernel.nit:354 */
17659 REGB2 = TAG_Int(1);
17660 /* ./../lib/standard//kernel.nit:235 */
17661 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
17662 /* ./../lib/standard//kernel.nit:354 */
17663 REGB0 = REGB2;
17664 } else {
17665 /* ./../lib/standard//kernel.nit:352 */
17666 goto label2;
17667 }
17668 }
17669 label2: while(0);
17670 label1: while(0);
17671 stack_frame_head = fra.me.prev;
17672 return;
17673 }
17674 void parser___parser_prod___ABlockExpr___visit_all(val_t p0, val_t p1){
17675 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17676 val_t REGB0;
17677 val_t tmp;
17678 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17679 fra.me.file = LOCATE_parser___parser_prod;
17680 fra.me.line = 3291;
17681 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___visit_all;
17682 fra.me.has_broke = 0;
17683 fra.me.REG_size = 2;
17684 fra.me.REG[0] = NIT_NULL;
17685 fra.me.REG[1] = NIT_NULL;
17686 fra.me.REG[0] = p0;
17687 fra.me.REG[1] = p1;
17688 /* ./parser//parser_prod.nit:3293 */
17689 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
17690 if (UNTAG_Bool(REGB0)) {
17691 } else {
17692 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3293);
17693 }
17694 fra.me.REG[0] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
17695 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));
17696 stack_frame_head = fra.me.prev;
17697 return;
17698 }
17699 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){
17700 struct {struct stack_frame_t me;} fra;
17701 fun_t CREG[1];
17702 val_t tmp;
17703 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17704 fra.me.file = LOCATE_parser___parser_prod;
17705 fra.me.line = 0;
17706 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___visit_all;
17707 fra.me.has_broke = 0;
17708 fra.me.REG_size = 1;
17709 fra.me.REG[0] = NIT_NULL;
17710 fra.me.closure_ctx = closctx_param;
17711 fra.me.closure_funs = CREG;
17712 fra.me.REG[0] = p0;
17713 CREG[0] = clos_fun0;
17714 /* ./parser//parser_prod.nit:3294 */
17715 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
17716 stack_frame_head = fra.me.prev;
17717 return;
17718 }
17719 void parser___parser_prod___AVardeclExpr___empty_init(val_t p0, int* init_table){
17720 int itpos109 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVardeclExpr].i;
17721 struct {struct stack_frame_t me;} fra;
17722 val_t tmp;
17723 if (init_table[itpos109]) return;
17724 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17725 fra.me.file = LOCATE_parser___parser_prod;
17726 fra.me.line = 3299;
17727 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___empty_init;
17728 fra.me.has_broke = 0;
17729 fra.me.REG_size = 1;
17730 fra.me.REG[0] = NIT_NULL;
17731 fra.me.REG[0] = p0;
17732 stack_frame_head = fra.me.prev;
17733 init_table[itpos109] = 1;
17734 return;
17735 }
17736 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){
17737 int itpos110 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVardeclExpr].i;
17738 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
17739 val_t REGB0;
17740 val_t REGB1;
17741 val_t tmp;
17742 if (init_table[itpos110]) return;
17743 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17744 fra.me.file = LOCATE_parser___parser_prod;
17745 fra.me.line = 3301;
17746 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___init_avardeclexpr;
17747 fra.me.has_broke = 0;
17748 fra.me.REG_size = 7;
17749 fra.me.REG[0] = NIT_NULL;
17750 fra.me.REG[1] = NIT_NULL;
17751 fra.me.REG[2] = NIT_NULL;
17752 fra.me.REG[3] = NIT_NULL;
17753 fra.me.REG[4] = NIT_NULL;
17754 fra.me.REG[5] = NIT_NULL;
17755 fra.me.REG[6] = NIT_NULL;
17756 fra.me.REG[0] = p0;
17757 fra.me.REG[1] = p1;
17758 fra.me.REG[2] = p2;
17759 fra.me.REG[3] = p3;
17760 fra.me.REG[4] = p4;
17761 fra.me.REG[5] = p5;
17762 /* ./parser//parser_prod.nit:3301 */
17763 fra.me.REG[6] = fra.me.REG[0];
17764 /* ./parser//parser_prod.nit:3309 */
17765 CALL_parser___parser_prod___AVardeclExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
17766 /* ./parser//parser_prod.nit:3310 */
17767 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
17768 if (UNTAG_Bool(REGB0)) {
17769 } else {
17770 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3310);
17771 }
17772 ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[6]) = fra.me.REG[1];
17773 /* ./parser//parser_prod.nit:3311 */
17774 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17775 if (UNTAG_Bool(REGB0)) {
17776 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3311);
17777 }
17778 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
17779 /* ./parser//parser_prod.nit:3312 */
17780 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
17781 if (UNTAG_Bool(REGB0)) {
17782 } else {
17783 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3312);
17784 }
17785 ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[6]) = fra.me.REG[2];
17786 /* ./parser//parser_prod.nit:3313 */
17787 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17788 if (UNTAG_Bool(REGB0)) {
17789 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3313);
17790 }
17791 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
17792 /* ./parser//parser_prod.nit:3314 */
17793 ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[6]) = fra.me.REG[3];
17794 /* ./parser//parser_prod.nit:3315 */
17795 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17796 if (UNTAG_Bool(REGB0)) {
17797 } else {
17798 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17799 if (UNTAG_Bool(REGB1)) {
17800 REGB1 = TAG_Bool(false);
17801 REGB0 = REGB1;
17802 } else {
17803 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17804 REGB0 = REGB1;
17805 }
17806 }
17807 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17808 if (UNTAG_Bool(REGB0)) {
17809 /* ./parser//parser_prod.nit:3316 */
17810 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17811 if (UNTAG_Bool(REGB0)) {
17812 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3316);
17813 }
17814 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
17815 }
17816 /* ./parser//parser_prod.nit:3318 */
17817 ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[6]) = fra.me.REG[4];
17818 /* ./parser//parser_prod.nit:3319 */
17819 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
17820 if (UNTAG_Bool(REGB0)) {
17821 } else {
17822 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
17823 if (UNTAG_Bool(REGB1)) {
17824 REGB1 = TAG_Bool(false);
17825 REGB0 = REGB1;
17826 } else {
17827 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
17828 REGB0 = REGB1;
17829 }
17830 }
17831 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17832 if (UNTAG_Bool(REGB0)) {
17833 /* ./parser//parser_prod.nit:3320 */
17834 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
17835 if (UNTAG_Bool(REGB0)) {
17836 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3320);
17837 }
17838 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
17839 }
17840 /* ./parser//parser_prod.nit:3322 */
17841 ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[6]) = fra.me.REG[5];
17842 /* ./parser//parser_prod.nit:3323 */
17843 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
17844 if (UNTAG_Bool(REGB0)) {
17845 } else {
17846 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
17847 if (UNTAG_Bool(REGB1)) {
17848 REGB1 = TAG_Bool(false);
17849 REGB0 = REGB1;
17850 } else {
17851 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
17852 REGB0 = REGB1;
17853 }
17854 }
17855 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17856 if (UNTAG_Bool(REGB0)) {
17857 /* ./parser//parser_prod.nit:3324 */
17858 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
17859 if (UNTAG_Bool(REGB0)) {
17860 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3324);
17861 }
17862 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
17863 }
17864 stack_frame_head = fra.me.prev;
17865 init_table[itpos110] = 1;
17866 return;
17867 }
17868 void parser___parser_prod___AVardeclExpr___replace_child(val_t p0, val_t p1, val_t p2){
17869 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17870 val_t REGB0;
17871 val_t REGB1;
17872 val_t tmp;
17873 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17874 fra.me.file = LOCATE_parser___parser_prod;
17875 fra.me.line = 3328;
17876 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___replace_child;
17877 fra.me.has_broke = 0;
17878 fra.me.REG_size = 4;
17879 fra.me.REG[0] = NIT_NULL;
17880 fra.me.REG[1] = NIT_NULL;
17881 fra.me.REG[2] = NIT_NULL;
17882 fra.me.REG[3] = NIT_NULL;
17883 fra.me.REG[0] = p0;
17884 fra.me.REG[1] = p1;
17885 fra.me.REG[2] = p2;
17886 /* ./parser//parser_prod.nit:3330 */
17887 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0])!=NIT_NULL);
17888 if (UNTAG_Bool(REGB0)) {
17889 } else {
17890 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 3330);
17891 }
17892 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]);
17893 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17894 if (UNTAG_Bool(REGB0)) {
17895 } else {
17896 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17897 REGB0 = REGB1;
17898 }
17899 if (UNTAG_Bool(REGB0)) {
17900 /* ./parser//parser_prod.nit:3331 */
17901 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17902 if (UNTAG_Bool(REGB0)) {
17903 } else {
17904 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17905 if (UNTAG_Bool(REGB1)) {
17906 REGB1 = TAG_Bool(false);
17907 REGB0 = REGB1;
17908 } else {
17909 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17910 REGB0 = REGB1;
17911 }
17912 }
17913 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17914 if (UNTAG_Bool(REGB0)) {
17915 /* ./parser//parser_prod.nit:3332 */
17916 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17917 if (UNTAG_Bool(REGB0)) {
17918 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3332);
17919 }
17920 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17921 /* ./parser//parser_prod.nit:3333 */
17922 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*/;
17923 if (UNTAG_Bool(REGB0)) {
17924 } else {
17925 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3333);
17926 }
17927 /* ./parser//parser_prod.nit:3334 */
17928 ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]) = fra.me.REG[2];
17929 } else {
17930 /* ./parser//parser_prod.nit:3336 */
17931 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3336);
17932 }
17933 /* ./parser//parser_prod.nit:3338 */
17934 goto label1;
17935 }
17936 /* ./parser//parser_prod.nit:3340 */
17937 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0])!=NIT_NULL);
17938 if (UNTAG_Bool(REGB0)) {
17939 } else {
17940 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3340);
17941 }
17942 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]);
17943 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17944 if (UNTAG_Bool(REGB0)) {
17945 } else {
17946 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17947 REGB0 = REGB1;
17948 }
17949 if (UNTAG_Bool(REGB0)) {
17950 /* ./parser//parser_prod.nit:3341 */
17951 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17952 if (UNTAG_Bool(REGB0)) {
17953 } else {
17954 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17955 if (UNTAG_Bool(REGB1)) {
17956 REGB1 = TAG_Bool(false);
17957 REGB0 = REGB1;
17958 } else {
17959 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17960 REGB0 = REGB1;
17961 }
17962 }
17963 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17964 if (UNTAG_Bool(REGB0)) {
17965 /* ./parser//parser_prod.nit:3342 */
17966 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17967 if (UNTAG_Bool(REGB0)) {
17968 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3342);
17969 }
17970 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17971 /* ./parser//parser_prod.nit:3343 */
17972 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*/;
17973 if (UNTAG_Bool(REGB0)) {
17974 } else {
17975 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3343);
17976 }
17977 /* ./parser//parser_prod.nit:3344 */
17978 ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
17979 } else {
17980 /* ./parser//parser_prod.nit:3346 */
17981 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3346);
17982 }
17983 /* ./parser//parser_prod.nit:3348 */
17984 goto label1;
17985 }
17986 /* ./parser//parser_prod.nit:3350 */
17987 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]);
17988 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17989 if (UNTAG_Bool(REGB0)) {
17990 } else {
17991 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17992 if (UNTAG_Bool(REGB1)) {
17993 REGB1 = TAG_Bool(false);
17994 REGB0 = REGB1;
17995 } else {
17996 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17997 REGB0 = REGB1;
17998 }
17999 }
18000 if (UNTAG_Bool(REGB0)) {
18001 /* ./parser//parser_prod.nit:3351 */
18002 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18003 if (UNTAG_Bool(REGB0)) {
18004 } else {
18005 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18006 if (UNTAG_Bool(REGB1)) {
18007 REGB1 = TAG_Bool(false);
18008 REGB0 = REGB1;
18009 } else {
18010 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18011 REGB0 = REGB1;
18012 }
18013 }
18014 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18015 if (UNTAG_Bool(REGB0)) {
18016 /* ./parser//parser_prod.nit:3352 */
18017 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18018 if (UNTAG_Bool(REGB0)) {
18019 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3352);
18020 }
18021 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18022 /* ./parser//parser_prod.nit:3353 */
18023 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*/;
18024 if (UNTAG_Bool(REGB0)) {
18025 } else {
18026 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3353);
18027 }
18028 /* ./parser//parser_prod.nit:3354 */
18029 ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
18030 } else {
18031 /* ./parser//parser_prod.nit:3356 */
18032 ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = NIT_NULL;
18033 }
18034 /* ./parser//parser_prod.nit:3358 */
18035 goto label1;
18036 }
18037 /* ./parser//parser_prod.nit:3360 */
18038 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]);
18039 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18040 if (UNTAG_Bool(REGB0)) {
18041 } else {
18042 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18043 if (UNTAG_Bool(REGB1)) {
18044 REGB1 = TAG_Bool(false);
18045 REGB0 = REGB1;
18046 } else {
18047 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18048 REGB0 = REGB1;
18049 }
18050 }
18051 if (UNTAG_Bool(REGB0)) {
18052 /* ./parser//parser_prod.nit:3361 */
18053 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18054 if (UNTAG_Bool(REGB0)) {
18055 } else {
18056 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18057 if (UNTAG_Bool(REGB1)) {
18058 REGB1 = TAG_Bool(false);
18059 REGB0 = REGB1;
18060 } else {
18061 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18062 REGB0 = REGB1;
18063 }
18064 }
18065 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18066 if (UNTAG_Bool(REGB0)) {
18067 /* ./parser//parser_prod.nit:3362 */
18068 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18069 if (UNTAG_Bool(REGB0)) {
18070 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3362);
18071 }
18072 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18073 /* ./parser//parser_prod.nit:3363 */
18074 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*/;
18075 if (UNTAG_Bool(REGB0)) {
18076 } else {
18077 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3363);
18078 }
18079 /* ./parser//parser_prod.nit:3364 */
18080 ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
18081 } else {
18082 /* ./parser//parser_prod.nit:3366 */
18083 ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = NIT_NULL;
18084 }
18085 /* ./parser//parser_prod.nit:3368 */
18086 goto label1;
18087 }
18088 /* ./parser//parser_prod.nit:3370 */
18089 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]);
18090 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18091 if (UNTAG_Bool(REGB0)) {
18092 } else {
18093 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18094 if (UNTAG_Bool(REGB1)) {
18095 REGB1 = TAG_Bool(false);
18096 REGB0 = REGB1;
18097 } else {
18098 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18099 REGB0 = REGB1;
18100 }
18101 }
18102 if (UNTAG_Bool(REGB0)) {
18103 /* ./parser//parser_prod.nit:3371 */
18104 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18105 if (UNTAG_Bool(REGB0)) {
18106 } else {
18107 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18108 if (UNTAG_Bool(REGB1)) {
18109 REGB1 = TAG_Bool(false);
18110 REGB0 = REGB1;
18111 } else {
18112 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18113 REGB0 = REGB1;
18114 }
18115 }
18116 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18117 if (UNTAG_Bool(REGB0)) {
18118 /* ./parser//parser_prod.nit:3372 */
18119 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18120 if (UNTAG_Bool(REGB0)) {
18121 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3372);
18122 }
18123 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18124 /* ./parser//parser_prod.nit:3373 */
18125 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
18126 if (UNTAG_Bool(REGB0)) {
18127 } else {
18128 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3373);
18129 }
18130 /* ./parser//parser_prod.nit:3374 */
18131 ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
18132 } else {
18133 /* ./parser//parser_prod.nit:3376 */
18134 ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
18135 }
18136 /* ./parser//parser_prod.nit:3378 */
18137 goto label1;
18138 }
18139 label1: while(0);
18140 stack_frame_head = fra.me.prev;
18141 return;
18142 }
18143 void parser___parser_prod___AVardeclExpr___visit_all(val_t p0, val_t p1){
18144 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18145 val_t REGB0;
18146 val_t REGB1;
18147 val_t tmp;
18148 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18149 fra.me.file = LOCATE_parser___parser_prod;
18150 fra.me.line = 3382;
18151 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___visit_all;
18152 fra.me.has_broke = 0;
18153 fra.me.REG_size = 4;
18154 fra.me.REG[0] = NIT_NULL;
18155 fra.me.REG[1] = NIT_NULL;
18156 fra.me.REG[2] = NIT_NULL;
18157 fra.me.REG[3] = NIT_NULL;
18158 fra.me.REG[0] = p0;
18159 fra.me.REG[1] = p1;
18160 /* ./parser//parser_prod.nit:3382 */
18161 fra.me.REG[2] = fra.me.REG[0];
18162 /* ./parser//parser_prod.nit:3384 */
18163 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[2])!=NIT_NULL);
18164 if (UNTAG_Bool(REGB0)) {
18165 } else {
18166 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 3384);
18167 }
18168 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[2]);
18169 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18170 /* ./parser//parser_prod.nit:3385 */
18171 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[2])!=NIT_NULL);
18172 if (UNTAG_Bool(REGB0)) {
18173 } else {
18174 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3385);
18175 }
18176 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[2]);
18177 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18178 /* ./parser//parser_prod.nit:3386 */
18179 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[2]);
18180 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18181 if (UNTAG_Bool(REGB0)) {
18182 } else {
18183 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18184 if (UNTAG_Bool(REGB1)) {
18185 REGB1 = TAG_Bool(false);
18186 REGB0 = REGB1;
18187 } else {
18188 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18189 REGB0 = REGB1;
18190 }
18191 }
18192 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18193 if (UNTAG_Bool(REGB0)) {
18194 /* ./parser//parser_prod.nit:3387 */
18195 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[2]);
18196 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*/;
18197 if (UNTAG_Bool(REGB0)) {
18198 } else {
18199 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3387);
18200 }
18201 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18202 }
18203 /* ./parser//parser_prod.nit:3389 */
18204 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[2]);
18205 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18206 if (UNTAG_Bool(REGB0)) {
18207 } else {
18208 REGB1 = TAG_Bool(fra.me.REG[3]==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[3])(fra.me.REG[3], NIT_NULL);
18214 REGB0 = REGB1;
18215 }
18216 }
18217 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18218 if (UNTAG_Bool(REGB0)) {
18219 /* ./parser//parser_prod.nit:3390 */
18220 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[2]);
18221 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*/;
18222 if (UNTAG_Bool(REGB0)) {
18223 } else {
18224 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3390);
18225 }
18226 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18227 }
18228 /* ./parser//parser_prod.nit:3392 */
18229 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[2]);
18230 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18231 if (UNTAG_Bool(REGB0)) {
18232 } else {
18233 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18234 if (UNTAG_Bool(REGB1)) {
18235 REGB1 = TAG_Bool(false);
18236 REGB0 = REGB1;
18237 } else {
18238 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18239 REGB0 = REGB1;
18240 }
18241 }
18242 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18243 if (UNTAG_Bool(REGB0)) {
18244 /* ./parser//parser_prod.nit:3393 */
18245 fra.me.REG[2] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[2]);
18246 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
18247 if (UNTAG_Bool(REGB0)) {
18248 } else {
18249 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3393);
18250 }
18251 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18252 }
18253 stack_frame_head = fra.me.prev;
18254 return;
18255 }
18256 void parser___parser_prod___AReturnExpr___empty_init(val_t p0, int* init_table){
18257 int itpos111 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReturnExpr].i;
18258 struct {struct stack_frame_t me;} fra;
18259 val_t tmp;
18260 if (init_table[itpos111]) return;
18261 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18262 fra.me.file = LOCATE_parser___parser_prod;
18263 fra.me.line = 3398;
18264 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___empty_init;
18265 fra.me.has_broke = 0;
18266 fra.me.REG_size = 1;
18267 fra.me.REG[0] = NIT_NULL;
18268 fra.me.REG[0] = p0;
18269 stack_frame_head = fra.me.prev;
18270 init_table[itpos111] = 1;
18271 return;
18272 }
18273 void parser___parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1, val_t p2, int* init_table){
18274 int itpos112 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReturnExpr].i;
18275 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
18276 val_t REGB0;
18277 val_t REGB1;
18278 val_t tmp;
18279 if (init_table[itpos112]) return;
18280 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18281 fra.me.file = LOCATE_parser___parser_prod;
18282 fra.me.line = 3400;
18283 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___init_areturnexpr;
18284 fra.me.has_broke = 0;
18285 fra.me.REG_size = 3;
18286 fra.me.REG[0] = NIT_NULL;
18287 fra.me.REG[1] = NIT_NULL;
18288 fra.me.REG[2] = NIT_NULL;
18289 fra.me.REG[0] = p0;
18290 fra.me.REG[1] = p1;
18291 fra.me.REG[2] = p2;
18292 /* ./parser//parser_prod.nit:3405 */
18293 CALL_parser___parser_prod___AReturnExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
18294 /* ./parser//parser_prod.nit:3406 */
18295 ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[1];
18296 /* ./parser//parser_prod.nit:3407 */
18297 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18298 if (UNTAG_Bool(REGB0)) {
18299 } else {
18300 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18301 if (UNTAG_Bool(REGB1)) {
18302 REGB1 = TAG_Bool(false);
18303 REGB0 = REGB1;
18304 } else {
18305 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
18306 REGB0 = REGB1;
18307 }
18308 }
18309 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18310 if (UNTAG_Bool(REGB0)) {
18311 /* ./parser//parser_prod.nit:3408 */
18312 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18313 if (UNTAG_Bool(REGB0)) {
18314 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3408);
18315 }
18316 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18317 }
18318 /* ./parser//parser_prod.nit:3410 */
18319 ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
18320 /* ./parser//parser_prod.nit:3411 */
18321 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18322 if (UNTAG_Bool(REGB0)) {
18323 } else {
18324 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18325 if (UNTAG_Bool(REGB1)) {
18326 REGB1 = TAG_Bool(false);
18327 REGB0 = REGB1;
18328 } else {
18329 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18330 REGB0 = REGB1;
18331 }
18332 }
18333 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18334 if (UNTAG_Bool(REGB0)) {
18335 /* ./parser//parser_prod.nit:3412 */
18336 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18337 if (UNTAG_Bool(REGB0)) {
18338 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3412);
18339 }
18340 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18341 }
18342 stack_frame_head = fra.me.prev;
18343 init_table[itpos112] = 1;
18344 return;
18345 }
18346 void parser___parser_prod___AReturnExpr___replace_child(val_t p0, val_t p1, val_t p2){
18347 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18348 val_t REGB0;
18349 val_t REGB1;
18350 val_t tmp;
18351 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18352 fra.me.file = LOCATE_parser___parser_prod;
18353 fra.me.line = 3416;
18354 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___replace_child;
18355 fra.me.has_broke = 0;
18356 fra.me.REG_size = 4;
18357 fra.me.REG[0] = NIT_NULL;
18358 fra.me.REG[1] = NIT_NULL;
18359 fra.me.REG[2] = NIT_NULL;
18360 fra.me.REG[3] = NIT_NULL;
18361 fra.me.REG[0] = p0;
18362 fra.me.REG[1] = p1;
18363 fra.me.REG[2] = p2;
18364 /* ./parser//parser_prod.nit:3418 */
18365 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]);
18366 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18367 if (UNTAG_Bool(REGB0)) {
18368 } else {
18369 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18370 if (UNTAG_Bool(REGB1)) {
18371 REGB1 = TAG_Bool(false);
18372 REGB0 = REGB1;
18373 } else {
18374 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18375 REGB0 = REGB1;
18376 }
18377 }
18378 if (UNTAG_Bool(REGB0)) {
18379 /* ./parser//parser_prod.nit:3419 */
18380 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18381 if (UNTAG_Bool(REGB0)) {
18382 } else {
18383 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18384 if (UNTAG_Bool(REGB1)) {
18385 REGB1 = TAG_Bool(false);
18386 REGB0 = REGB1;
18387 } else {
18388 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18389 REGB0 = REGB1;
18390 }
18391 }
18392 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18393 if (UNTAG_Bool(REGB0)) {
18394 /* ./parser//parser_prod.nit:3420 */
18395 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18396 if (UNTAG_Bool(REGB0)) {
18397 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3420);
18398 }
18399 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18400 /* ./parser//parser_prod.nit:3421 */
18401 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*/;
18402 if (UNTAG_Bool(REGB0)) {
18403 } else {
18404 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3421);
18405 }
18406 /* ./parser//parser_prod.nit:3422 */
18407 ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[2];
18408 } else {
18409 /* ./parser//parser_prod.nit:3424 */
18410 ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = NIT_NULL;
18411 }
18412 /* ./parser//parser_prod.nit:3426 */
18413 goto label1;
18414 }
18415 /* ./parser//parser_prod.nit:3428 */
18416 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]);
18417 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18418 if (UNTAG_Bool(REGB0)) {
18419 } else {
18420 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18421 if (UNTAG_Bool(REGB1)) {
18422 REGB1 = TAG_Bool(false);
18423 REGB0 = REGB1;
18424 } else {
18425 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18426 REGB0 = REGB1;
18427 }
18428 }
18429 if (UNTAG_Bool(REGB0)) {
18430 /* ./parser//parser_prod.nit:3429 */
18431 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18432 if (UNTAG_Bool(REGB0)) {
18433 } else {
18434 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18435 if (UNTAG_Bool(REGB1)) {
18436 REGB1 = TAG_Bool(false);
18437 REGB0 = REGB1;
18438 } else {
18439 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18440 REGB0 = REGB1;
18441 }
18442 }
18443 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18444 if (UNTAG_Bool(REGB0)) {
18445 /* ./parser//parser_prod.nit:3430 */
18446 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18447 if (UNTAG_Bool(REGB0)) {
18448 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3430);
18449 }
18450 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18451 /* ./parser//parser_prod.nit:3431 */
18452 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
18453 if (UNTAG_Bool(REGB0)) {
18454 } else {
18455 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3431);
18456 }
18457 /* ./parser//parser_prod.nit:3432 */
18458 ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
18459 } else {
18460 /* ./parser//parser_prod.nit:3434 */
18461 ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
18462 }
18463 /* ./parser//parser_prod.nit:3436 */
18464 goto label1;
18465 }
18466 label1: while(0);
18467 stack_frame_head = fra.me.prev;
18468 return;
18469 }
18470 void parser___parser_prod___AReturnExpr___visit_all(val_t p0, val_t p1){
18471 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18472 val_t REGB0;
18473 val_t REGB1;
18474 val_t tmp;
18475 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18476 fra.me.file = LOCATE_parser___parser_prod;
18477 fra.me.line = 3440;
18478 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___visit_all;
18479 fra.me.has_broke = 0;
18480 fra.me.REG_size = 4;
18481 fra.me.REG[0] = NIT_NULL;
18482 fra.me.REG[1] = NIT_NULL;
18483 fra.me.REG[2] = NIT_NULL;
18484 fra.me.REG[3] = NIT_NULL;
18485 fra.me.REG[0] = p0;
18486 fra.me.REG[1] = p1;
18487 /* ./parser//parser_prod.nit:3440 */
18488 fra.me.REG[2] = fra.me.REG[0];
18489 /* ./parser//parser_prod.nit:3442 */
18490 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[2]);
18491 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18492 if (UNTAG_Bool(REGB0)) {
18493 } else {
18494 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18495 if (UNTAG_Bool(REGB1)) {
18496 REGB1 = TAG_Bool(false);
18497 REGB0 = REGB1;
18498 } else {
18499 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18500 REGB0 = REGB1;
18501 }
18502 }
18503 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18504 if (UNTAG_Bool(REGB0)) {
18505 /* ./parser//parser_prod.nit:3443 */
18506 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[2]);
18507 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*/;
18508 if (UNTAG_Bool(REGB0)) {
18509 } else {
18510 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3443);
18511 }
18512 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18513 }
18514 /* ./parser//parser_prod.nit:3445 */
18515 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[2]);
18516 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18517 if (UNTAG_Bool(REGB0)) {
18518 } else {
18519 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18520 if (UNTAG_Bool(REGB1)) {
18521 REGB1 = TAG_Bool(false);
18522 REGB0 = REGB1;
18523 } else {
18524 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18525 REGB0 = REGB1;
18526 }
18527 }
18528 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18529 if (UNTAG_Bool(REGB0)) {
18530 /* ./parser//parser_prod.nit:3446 */
18531 fra.me.REG[2] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[2]);
18532 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
18533 if (UNTAG_Bool(REGB0)) {
18534 } else {
18535 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3446);
18536 }
18537 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18538 }
18539 stack_frame_head = fra.me.prev;
18540 return;
18541 }
18542 void parser___parser_prod___ABreakExpr___empty_init(val_t p0, int* init_table){
18543 int itpos113 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakExpr].i;
18544 struct {struct stack_frame_t me;} fra;
18545 val_t tmp;
18546 if (init_table[itpos113]) return;
18547 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18548 fra.me.file = LOCATE_parser___parser_prod;
18549 fra.me.line = 3451;
18550 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___empty_init;
18551 fra.me.has_broke = 0;
18552 fra.me.REG_size = 1;
18553 fra.me.REG[0] = NIT_NULL;
18554 fra.me.REG[0] = p0;
18555 stack_frame_head = fra.me.prev;
18556 init_table[itpos113] = 1;
18557 return;
18558 }
18559 void parser___parser_prod___ABreakExpr___init_abreakexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
18560 int itpos114 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakExpr].i;
18561 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
18562 val_t REGB0;
18563 val_t REGB1;
18564 val_t tmp;
18565 if (init_table[itpos114]) return;
18566 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18567 fra.me.file = LOCATE_parser___parser_prod;
18568 fra.me.line = 3453;
18569 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___init_abreakexpr;
18570 fra.me.has_broke = 0;
18571 fra.me.REG_size = 5;
18572 fra.me.REG[0] = NIT_NULL;
18573 fra.me.REG[1] = NIT_NULL;
18574 fra.me.REG[2] = NIT_NULL;
18575 fra.me.REG[3] = NIT_NULL;
18576 fra.me.REG[4] = NIT_NULL;
18577 fra.me.REG[0] = p0;
18578 fra.me.REG[1] = p1;
18579 fra.me.REG[2] = p2;
18580 fra.me.REG[3] = p3;
18581 /* ./parser//parser_prod.nit:3453 */
18582 fra.me.REG[4] = fra.me.REG[0];
18583 /* ./parser//parser_prod.nit:3459 */
18584 CALL_parser___parser_prod___ABreakExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
18585 /* ./parser//parser_prod.nit:3460 */
18586 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
18587 if (UNTAG_Bool(REGB0)) {
18588 } else {
18589 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3460);
18590 }
18591 ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[4]) = fra.me.REG[1];
18592 /* ./parser//parser_prod.nit:3461 */
18593 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18594 if (UNTAG_Bool(REGB0)) {
18595 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3461);
18596 }
18597 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
18598 /* ./parser//parser_prod.nit:3462 */
18599 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[2];
18600 /* ./parser//parser_prod.nit:3463 */
18601 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18602 if (UNTAG_Bool(REGB0)) {
18603 } else {
18604 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18605 if (UNTAG_Bool(REGB1)) {
18606 REGB1 = TAG_Bool(false);
18607 REGB0 = REGB1;
18608 } else {
18609 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18610 REGB0 = REGB1;
18611 }
18612 }
18613 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18614 if (UNTAG_Bool(REGB0)) {
18615 /* ./parser//parser_prod.nit:3464 */
18616 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18617 if (UNTAG_Bool(REGB0)) {
18618 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3464);
18619 }
18620 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
18621 }
18622 /* ./parser//parser_prod.nit:3466 */
18623 ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[4]) = fra.me.REG[3];
18624 /* ./parser//parser_prod.nit:3467 */
18625 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18626 if (UNTAG_Bool(REGB0)) {
18627 } else {
18628 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18629 if (UNTAG_Bool(REGB1)) {
18630 REGB1 = TAG_Bool(false);
18631 REGB0 = REGB1;
18632 } else {
18633 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18634 REGB0 = REGB1;
18635 }
18636 }
18637 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18638 if (UNTAG_Bool(REGB0)) {
18639 /* ./parser//parser_prod.nit:3468 */
18640 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18641 if (UNTAG_Bool(REGB0)) {
18642 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3468);
18643 }
18644 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
18645 }
18646 stack_frame_head = fra.me.prev;
18647 init_table[itpos114] = 1;
18648 return;
18649 }
18650 void parser___parser_prod___ABreakExpr___replace_child(val_t p0, val_t p1, val_t p2){
18651 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18652 val_t REGB0;
18653 val_t REGB1;
18654 val_t tmp;
18655 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18656 fra.me.file = LOCATE_parser___parser_prod;
18657 fra.me.line = 3472;
18658 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___replace_child;
18659 fra.me.has_broke = 0;
18660 fra.me.REG_size = 4;
18661 fra.me.REG[0] = NIT_NULL;
18662 fra.me.REG[1] = NIT_NULL;
18663 fra.me.REG[2] = NIT_NULL;
18664 fra.me.REG[3] = NIT_NULL;
18665 fra.me.REG[0] = p0;
18666 fra.me.REG[1] = p1;
18667 fra.me.REG[2] = p2;
18668 /* ./parser//parser_prod.nit:3474 */
18669 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
18670 if (UNTAG_Bool(REGB0)) {
18671 } else {
18672 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 3474);
18673 }
18674 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]);
18675 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18676 if (UNTAG_Bool(REGB0)) {
18677 } else {
18678 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18679 REGB0 = REGB1;
18680 }
18681 if (UNTAG_Bool(REGB0)) {
18682 /* ./parser//parser_prod.nit:3475 */
18683 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18684 if (UNTAG_Bool(REGB0)) {
18685 } else {
18686 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18687 if (UNTAG_Bool(REGB1)) {
18688 REGB1 = TAG_Bool(false);
18689 REGB0 = REGB1;
18690 } else {
18691 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18692 REGB0 = REGB1;
18693 }
18694 }
18695 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18696 if (UNTAG_Bool(REGB0)) {
18697 /* ./parser//parser_prod.nit:3476 */
18698 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18699 if (UNTAG_Bool(REGB0)) {
18700 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3476);
18701 }
18702 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18703 /* ./parser//parser_prod.nit:3477 */
18704 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*/;
18705 if (UNTAG_Bool(REGB0)) {
18706 } else {
18707 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3477);
18708 }
18709 /* ./parser//parser_prod.nit:3478 */
18710 ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
18711 } else {
18712 /* ./parser//parser_prod.nit:3480 */
18713 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3480);
18714 }
18715 /* ./parser//parser_prod.nit:3482 */
18716 goto label1;
18717 }
18718 /* ./parser//parser_prod.nit:3484 */
18719 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
18720 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18721 if (UNTAG_Bool(REGB0)) {
18722 } else {
18723 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18724 if (UNTAG_Bool(REGB1)) {
18725 REGB1 = TAG_Bool(false);
18726 REGB0 = REGB1;
18727 } else {
18728 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18729 REGB0 = REGB1;
18730 }
18731 }
18732 if (UNTAG_Bool(REGB0)) {
18733 /* ./parser//parser_prod.nit:3485 */
18734 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18735 if (UNTAG_Bool(REGB0)) {
18736 } else {
18737 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18738 if (UNTAG_Bool(REGB1)) {
18739 REGB1 = TAG_Bool(false);
18740 REGB0 = REGB1;
18741 } else {
18742 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18743 REGB0 = REGB1;
18744 }
18745 }
18746 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18747 if (UNTAG_Bool(REGB0)) {
18748 /* ./parser//parser_prod.nit:3486 */
18749 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18750 if (UNTAG_Bool(REGB0)) {
18751 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3486);
18752 }
18753 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18754 /* ./parser//parser_prod.nit:3487 */
18755 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*/;
18756 if (UNTAG_Bool(REGB0)) {
18757 } else {
18758 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3487);
18759 }
18760 /* ./parser//parser_prod.nit:3488 */
18761 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
18762 } else {
18763 /* ./parser//parser_prod.nit:3490 */
18764 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
18765 }
18766 /* ./parser//parser_prod.nit:3492 */
18767 goto label1;
18768 }
18769 /* ./parser//parser_prod.nit:3494 */
18770 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]);
18771 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18772 if (UNTAG_Bool(REGB0)) {
18773 } else {
18774 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18775 if (UNTAG_Bool(REGB1)) {
18776 REGB1 = TAG_Bool(false);
18777 REGB0 = REGB1;
18778 } else {
18779 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18780 REGB0 = REGB1;
18781 }
18782 }
18783 if (UNTAG_Bool(REGB0)) {
18784 /* ./parser//parser_prod.nit:3495 */
18785 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18786 if (UNTAG_Bool(REGB0)) {
18787 } else {
18788 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18789 if (UNTAG_Bool(REGB1)) {
18790 REGB1 = TAG_Bool(false);
18791 REGB0 = REGB1;
18792 } else {
18793 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18794 REGB0 = REGB1;
18795 }
18796 }
18797 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18798 if (UNTAG_Bool(REGB0)) {
18799 /* ./parser//parser_prod.nit:3496 */
18800 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18801 if (UNTAG_Bool(REGB0)) {
18802 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3496);
18803 }
18804 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18805 /* ./parser//parser_prod.nit:3497 */
18806 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
18807 if (UNTAG_Bool(REGB0)) {
18808 } else {
18809 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3497);
18810 }
18811 /* ./parser//parser_prod.nit:3498 */
18812 ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
18813 } else {
18814 /* ./parser//parser_prod.nit:3500 */
18815 ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
18816 }
18817 /* ./parser//parser_prod.nit:3502 */
18818 goto label1;
18819 }
18820 label1: while(0);
18821 stack_frame_head = fra.me.prev;
18822 return;
18823 }
18824 void parser___parser_prod___ABreakExpr___visit_all(val_t p0, val_t p1){
18825 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18826 val_t REGB0;
18827 val_t REGB1;
18828 val_t tmp;
18829 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18830 fra.me.file = LOCATE_parser___parser_prod;
18831 fra.me.line = 3506;
18832 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___visit_all;
18833 fra.me.has_broke = 0;
18834 fra.me.REG_size = 4;
18835 fra.me.REG[0] = NIT_NULL;
18836 fra.me.REG[1] = NIT_NULL;
18837 fra.me.REG[2] = NIT_NULL;
18838 fra.me.REG[3] = NIT_NULL;
18839 fra.me.REG[0] = p0;
18840 fra.me.REG[1] = p1;
18841 /* ./parser//parser_prod.nit:3506 */
18842 fra.me.REG[2] = fra.me.REG[0];
18843 /* ./parser//parser_prod.nit:3508 */
18844 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[2])!=NIT_NULL);
18845 if (UNTAG_Bool(REGB0)) {
18846 } else {
18847 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 3508);
18848 }
18849 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[2]);
18850 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18851 /* ./parser//parser_prod.nit:3509 */
18852 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
18853 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18854 if (UNTAG_Bool(REGB0)) {
18855 } else {
18856 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18857 if (UNTAG_Bool(REGB1)) {
18858 REGB1 = TAG_Bool(false);
18859 REGB0 = REGB1;
18860 } else {
18861 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18862 REGB0 = REGB1;
18863 }
18864 }
18865 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18866 if (UNTAG_Bool(REGB0)) {
18867 /* ./parser//parser_prod.nit:3510 */
18868 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
18869 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*/;
18870 if (UNTAG_Bool(REGB0)) {
18871 } else {
18872 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3510);
18873 }
18874 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18875 }
18876 /* ./parser//parser_prod.nit:3512 */
18877 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[2]);
18878 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18879 if (UNTAG_Bool(REGB0)) {
18880 } else {
18881 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18882 if (UNTAG_Bool(REGB1)) {
18883 REGB1 = TAG_Bool(false);
18884 REGB0 = REGB1;
18885 } else {
18886 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18887 REGB0 = REGB1;
18888 }
18889 }
18890 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18891 if (UNTAG_Bool(REGB0)) {
18892 /* ./parser//parser_prod.nit:3513 */
18893 fra.me.REG[2] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[2]);
18894 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
18895 if (UNTAG_Bool(REGB0)) {
18896 } else {
18897 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3513);
18898 }
18899 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18900 }
18901 stack_frame_head = fra.me.prev;
18902 return;
18903 }
18904 void parser___parser_prod___AAbortExpr___empty_init(val_t p0, int* init_table){
18905 int itpos115 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbortExpr].i;
18906 struct {struct stack_frame_t me;} fra;
18907 val_t tmp;
18908 if (init_table[itpos115]) return;
18909 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18910 fra.me.file = LOCATE_parser___parser_prod;
18911 fra.me.line = 3518;
18912 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___empty_init;
18913 fra.me.has_broke = 0;
18914 fra.me.REG_size = 1;
18915 fra.me.REG[0] = NIT_NULL;
18916 fra.me.REG[0] = p0;
18917 stack_frame_head = fra.me.prev;
18918 init_table[itpos115] = 1;
18919 return;
18920 }
18921 void parser___parser_prod___AAbortExpr___init_aabortexpr(val_t p0, val_t p1, int* init_table){
18922 int itpos116 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbortExpr].i;
18923 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
18924 val_t REGB0;
18925 val_t tmp;
18926 if (init_table[itpos116]) return;
18927 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18928 fra.me.file = LOCATE_parser___parser_prod;
18929 fra.me.line = 3520;
18930 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___init_aabortexpr;
18931 fra.me.has_broke = 0;
18932 fra.me.REG_size = 3;
18933 fra.me.REG[0] = NIT_NULL;
18934 fra.me.REG[1] = NIT_NULL;
18935 fra.me.REG[2] = NIT_NULL;
18936 fra.me.REG[0] = p0;
18937 fra.me.REG[1] = p1;
18938 /* ./parser//parser_prod.nit:3520 */
18939 fra.me.REG[2] = fra.me.REG[0];
18940 /* ./parser//parser_prod.nit:3524 */
18941 CALL_parser___parser_prod___AAbortExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
18942 /* ./parser//parser_prod.nit:3525 */
18943 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
18944 if (UNTAG_Bool(REGB0)) {
18945 } else {
18946 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3525);
18947 }
18948 ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[2]) = fra.me.REG[1];
18949 /* ./parser//parser_prod.nit:3526 */
18950 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18951 if (UNTAG_Bool(REGB0)) {
18952 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3526);
18953 }
18954 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18955 stack_frame_head = fra.me.prev;
18956 init_table[itpos116] = 1;
18957 return;
18958 }
18959 void parser___parser_prod___AAbortExpr___replace_child(val_t p0, val_t p1, val_t p2){
18960 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18961 val_t REGB0;
18962 val_t REGB1;
18963 val_t tmp;
18964 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18965 fra.me.file = LOCATE_parser___parser_prod;
18966 fra.me.line = 3529;
18967 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___replace_child;
18968 fra.me.has_broke = 0;
18969 fra.me.REG_size = 4;
18970 fra.me.REG[0] = NIT_NULL;
18971 fra.me.REG[1] = NIT_NULL;
18972 fra.me.REG[2] = NIT_NULL;
18973 fra.me.REG[3] = NIT_NULL;
18974 fra.me.REG[0] = p0;
18975 fra.me.REG[1] = p1;
18976 fra.me.REG[2] = p2;
18977 /* ./parser//parser_prod.nit:3531 */
18978 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0])!=NIT_NULL);
18979 if (UNTAG_Bool(REGB0)) {
18980 } else {
18981 nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser___parser_prod, 3531);
18982 }
18983 fra.me.REG[3] = ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]);
18984 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18985 if (UNTAG_Bool(REGB0)) {
18986 } else {
18987 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18988 REGB0 = REGB1;
18989 }
18990 if (UNTAG_Bool(REGB0)) {
18991 /* ./parser//parser_prod.nit:3532 */
18992 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18993 if (UNTAG_Bool(REGB0)) {
18994 } else {
18995 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18996 if (UNTAG_Bool(REGB1)) {
18997 REGB1 = TAG_Bool(false);
18998 REGB0 = REGB1;
18999 } else {
19000 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19001 REGB0 = REGB1;
19002 }
19003 }
19004 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19005 if (UNTAG_Bool(REGB0)) {
19006 /* ./parser//parser_prod.nit:3533 */
19007 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19008 if (UNTAG_Bool(REGB0)) {
19009 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3533);
19010 }
19011 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19012 /* ./parser//parser_prod.nit:3534 */
19013 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*/;
19014 if (UNTAG_Bool(REGB0)) {
19015 } else {
19016 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3534);
19017 }
19018 /* ./parser//parser_prod.nit:3535 */
19019 ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]) = fra.me.REG[2];
19020 } else {
19021 /* ./parser//parser_prod.nit:3537 */
19022 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3537);
19023 }
19024 /* ./parser//parser_prod.nit:3539 */
19025 goto label1;
19026 }
19027 label1: while(0);
19028 stack_frame_head = fra.me.prev;
19029 return;
19030 }
19031 void parser___parser_prod___AAbortExpr___visit_all(val_t p0, val_t p1){
19032 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19033 val_t REGB0;
19034 val_t tmp;
19035 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19036 fra.me.file = LOCATE_parser___parser_prod;
19037 fra.me.line = 3543;
19038 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___visit_all;
19039 fra.me.has_broke = 0;
19040 fra.me.REG_size = 2;
19041 fra.me.REG[0] = NIT_NULL;
19042 fra.me.REG[1] = NIT_NULL;
19043 fra.me.REG[0] = p0;
19044 fra.me.REG[1] = p1;
19045 /* ./parser//parser_prod.nit:3545 */
19046 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0])!=NIT_NULL);
19047 if (UNTAG_Bool(REGB0)) {
19048 } else {
19049 nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser___parser_prod, 3545);
19050 }
19051 fra.me.REG[0] = ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]);
19052 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
19053 stack_frame_head = fra.me.prev;
19054 return;
19055 }
19056 void parser___parser_prod___AContinueExpr___empty_init(val_t p0, int* init_table){
19057 int itpos117 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AContinueExpr].i;
19058 struct {struct stack_frame_t me;} fra;
19059 val_t tmp;
19060 if (init_table[itpos117]) return;
19061 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19062 fra.me.file = LOCATE_parser___parser_prod;
19063 fra.me.line = 3549;
19064 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___empty_init;
19065 fra.me.has_broke = 0;
19066 fra.me.REG_size = 1;
19067 fra.me.REG[0] = NIT_NULL;
19068 fra.me.REG[0] = p0;
19069 stack_frame_head = fra.me.prev;
19070 init_table[itpos117] = 1;
19071 return;
19072 }
19073 void parser___parser_prod___AContinueExpr___init_acontinueexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
19074 int itpos118 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AContinueExpr].i;
19075 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19076 val_t REGB0;
19077 val_t REGB1;
19078 val_t tmp;
19079 if (init_table[itpos118]) return;
19080 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19081 fra.me.file = LOCATE_parser___parser_prod;
19082 fra.me.line = 3551;
19083 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___init_acontinueexpr;
19084 fra.me.has_broke = 0;
19085 fra.me.REG_size = 4;
19086 fra.me.REG[0] = NIT_NULL;
19087 fra.me.REG[1] = NIT_NULL;
19088 fra.me.REG[2] = NIT_NULL;
19089 fra.me.REG[3] = NIT_NULL;
19090 fra.me.REG[0] = p0;
19091 fra.me.REG[1] = p1;
19092 fra.me.REG[2] = p2;
19093 fra.me.REG[3] = p3;
19094 /* ./parser//parser_prod.nit:3557 */
19095 CALL_parser___parser_prod___AContinueExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
19096 /* ./parser//parser_prod.nit:3558 */
19097 ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = fra.me.REG[1];
19098 /* ./parser//parser_prod.nit:3559 */
19099 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19100 if (UNTAG_Bool(REGB0)) {
19101 } else {
19102 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19103 if (UNTAG_Bool(REGB1)) {
19104 REGB1 = TAG_Bool(false);
19105 REGB0 = REGB1;
19106 } else {
19107 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
19108 REGB0 = REGB1;
19109 }
19110 }
19111 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19112 if (UNTAG_Bool(REGB0)) {
19113 /* ./parser//parser_prod.nit:3560 */
19114 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19115 if (UNTAG_Bool(REGB0)) {
19116 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3560);
19117 }
19118 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
19119 }
19120 /* ./parser//parser_prod.nit:3562 */
19121 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
19122 /* ./parser//parser_prod.nit:3563 */
19123 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19124 if (UNTAG_Bool(REGB0)) {
19125 } else {
19126 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19127 if (UNTAG_Bool(REGB1)) {
19128 REGB1 = TAG_Bool(false);
19129 REGB0 = REGB1;
19130 } else {
19131 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19132 REGB0 = REGB1;
19133 }
19134 }
19135 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19136 if (UNTAG_Bool(REGB0)) {
19137 /* ./parser//parser_prod.nit:3564 */
19138 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19139 if (UNTAG_Bool(REGB0)) {
19140 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3564);
19141 }
19142 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19143 }
19144 /* ./parser//parser_prod.nit:3566 */
19145 ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = fra.me.REG[3];
19146 /* ./parser//parser_prod.nit:3567 */
19147 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19148 if (UNTAG_Bool(REGB0)) {
19149 } else {
19150 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19151 if (UNTAG_Bool(REGB1)) {
19152 REGB1 = TAG_Bool(false);
19153 REGB0 = REGB1;
19154 } else {
19155 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19156 REGB0 = REGB1;
19157 }
19158 }
19159 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19160 if (UNTAG_Bool(REGB0)) {
19161 /* ./parser//parser_prod.nit:3568 */
19162 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19163 if (UNTAG_Bool(REGB0)) {
19164 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3568);
19165 }
19166 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
19167 }
19168 stack_frame_head = fra.me.prev;
19169 init_table[itpos118] = 1;
19170 return;
19171 }
19172 void parser___parser_prod___AContinueExpr___replace_child(val_t p0, val_t p1, val_t p2){
19173 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19174 val_t REGB0;
19175 val_t REGB1;
19176 val_t tmp;
19177 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19178 fra.me.file = LOCATE_parser___parser_prod;
19179 fra.me.line = 3572;
19180 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___replace_child;
19181 fra.me.has_broke = 0;
19182 fra.me.REG_size = 4;
19183 fra.me.REG[0] = NIT_NULL;
19184 fra.me.REG[1] = NIT_NULL;
19185 fra.me.REG[2] = NIT_NULL;
19186 fra.me.REG[3] = NIT_NULL;
19187 fra.me.REG[0] = p0;
19188 fra.me.REG[1] = p1;
19189 fra.me.REG[2] = p2;
19190 /* ./parser//parser_prod.nit:3574 */
19191 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]);
19192 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19193 if (UNTAG_Bool(REGB0)) {
19194 } else {
19195 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19196 if (UNTAG_Bool(REGB1)) {
19197 REGB1 = TAG_Bool(false);
19198 REGB0 = REGB1;
19199 } else {
19200 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19201 REGB0 = REGB1;
19202 }
19203 }
19204 if (UNTAG_Bool(REGB0)) {
19205 /* ./parser//parser_prod.nit:3575 */
19206 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19207 if (UNTAG_Bool(REGB0)) {
19208 } else {
19209 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19210 if (UNTAG_Bool(REGB1)) {
19211 REGB1 = TAG_Bool(false);
19212 REGB0 = REGB1;
19213 } else {
19214 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19215 REGB0 = REGB1;
19216 }
19217 }
19218 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19219 if (UNTAG_Bool(REGB0)) {
19220 /* ./parser//parser_prod.nit:3576 */
19221 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19222 if (UNTAG_Bool(REGB0)) {
19223 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3576);
19224 }
19225 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19226 /* ./parser//parser_prod.nit:3577 */
19227 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*/;
19228 if (UNTAG_Bool(REGB0)) {
19229 } else {
19230 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3577);
19231 }
19232 /* ./parser//parser_prod.nit:3578 */
19233 ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = fra.me.REG[2];
19234 } else {
19235 /* ./parser//parser_prod.nit:3580 */
19236 ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = NIT_NULL;
19237 }
19238 /* ./parser//parser_prod.nit:3582 */
19239 goto label1;
19240 }
19241 /* ./parser//parser_prod.nit:3584 */
19242 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
19243 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19244 if (UNTAG_Bool(REGB0)) {
19245 } else {
19246 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19247 if (UNTAG_Bool(REGB1)) {
19248 REGB1 = TAG_Bool(false);
19249 REGB0 = REGB1;
19250 } else {
19251 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19252 REGB0 = REGB1;
19253 }
19254 }
19255 if (UNTAG_Bool(REGB0)) {
19256 /* ./parser//parser_prod.nit:3585 */
19257 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19258 if (UNTAG_Bool(REGB0)) {
19259 } else {
19260 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19261 if (UNTAG_Bool(REGB1)) {
19262 REGB1 = TAG_Bool(false);
19263 REGB0 = REGB1;
19264 } else {
19265 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19266 REGB0 = REGB1;
19267 }
19268 }
19269 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19270 if (UNTAG_Bool(REGB0)) {
19271 /* ./parser//parser_prod.nit:3586 */
19272 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19273 if (UNTAG_Bool(REGB0)) {
19274 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3586);
19275 }
19276 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19277 /* ./parser//parser_prod.nit:3587 */
19278 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*/;
19279 if (UNTAG_Bool(REGB0)) {
19280 } else {
19281 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3587);
19282 }
19283 /* ./parser//parser_prod.nit:3588 */
19284 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
19285 } else {
19286 /* ./parser//parser_prod.nit:3590 */
19287 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
19288 }
19289 /* ./parser//parser_prod.nit:3592 */
19290 goto label1;
19291 }
19292 /* ./parser//parser_prod.nit:3594 */
19293 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]);
19294 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19295 if (UNTAG_Bool(REGB0)) {
19296 } else {
19297 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19298 if (UNTAG_Bool(REGB1)) {
19299 REGB1 = TAG_Bool(false);
19300 REGB0 = REGB1;
19301 } else {
19302 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19303 REGB0 = REGB1;
19304 }
19305 }
19306 if (UNTAG_Bool(REGB0)) {
19307 /* ./parser//parser_prod.nit:3595 */
19308 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19309 if (UNTAG_Bool(REGB0)) {
19310 } else {
19311 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19312 if (UNTAG_Bool(REGB1)) {
19313 REGB1 = TAG_Bool(false);
19314 REGB0 = REGB1;
19315 } else {
19316 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19317 REGB0 = REGB1;
19318 }
19319 }
19320 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19321 if (UNTAG_Bool(REGB0)) {
19322 /* ./parser//parser_prod.nit:3596 */
19323 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19324 if (UNTAG_Bool(REGB0)) {
19325 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3596);
19326 }
19327 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19328 /* ./parser//parser_prod.nit:3597 */
19329 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19330 if (UNTAG_Bool(REGB0)) {
19331 } else {
19332 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3597);
19333 }
19334 /* ./parser//parser_prod.nit:3598 */
19335 ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
19336 } else {
19337 /* ./parser//parser_prod.nit:3600 */
19338 ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
19339 }
19340 /* ./parser//parser_prod.nit:3602 */
19341 goto label1;
19342 }
19343 label1: while(0);
19344 stack_frame_head = fra.me.prev;
19345 return;
19346 }
19347 void parser___parser_prod___AContinueExpr___visit_all(val_t p0, val_t p1){
19348 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19349 val_t REGB0;
19350 val_t REGB1;
19351 val_t tmp;
19352 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19353 fra.me.file = LOCATE_parser___parser_prod;
19354 fra.me.line = 3606;
19355 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___visit_all;
19356 fra.me.has_broke = 0;
19357 fra.me.REG_size = 4;
19358 fra.me.REG[0] = NIT_NULL;
19359 fra.me.REG[1] = NIT_NULL;
19360 fra.me.REG[2] = NIT_NULL;
19361 fra.me.REG[3] = NIT_NULL;
19362 fra.me.REG[0] = p0;
19363 fra.me.REG[1] = p1;
19364 /* ./parser//parser_prod.nit:3606 */
19365 fra.me.REG[2] = fra.me.REG[0];
19366 /* ./parser//parser_prod.nit:3608 */
19367 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[2]);
19368 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19369 if (UNTAG_Bool(REGB0)) {
19370 } else {
19371 REGB1 = TAG_Bool(fra.me.REG[3]==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[3])(fra.me.REG[3], NIT_NULL);
19377 REGB0 = REGB1;
19378 }
19379 }
19380 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19381 if (UNTAG_Bool(REGB0)) {
19382 /* ./parser//parser_prod.nit:3609 */
19383 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[2]);
19384 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*/;
19385 if (UNTAG_Bool(REGB0)) {
19386 } else {
19387 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3609);
19388 }
19389 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19390 }
19391 /* ./parser//parser_prod.nit:3611 */
19392 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
19393 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19394 if (UNTAG_Bool(REGB0)) {
19395 } else {
19396 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19397 if (UNTAG_Bool(REGB1)) {
19398 REGB1 = TAG_Bool(false);
19399 REGB0 = REGB1;
19400 } else {
19401 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19402 REGB0 = REGB1;
19403 }
19404 }
19405 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19406 if (UNTAG_Bool(REGB0)) {
19407 /* ./parser//parser_prod.nit:3612 */
19408 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
19409 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*/;
19410 if (UNTAG_Bool(REGB0)) {
19411 } else {
19412 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3612);
19413 }
19414 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19415 }
19416 /* ./parser//parser_prod.nit:3614 */
19417 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[2]);
19418 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19419 if (UNTAG_Bool(REGB0)) {
19420 } else {
19421 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19422 if (UNTAG_Bool(REGB1)) {
19423 REGB1 = TAG_Bool(false);
19424 REGB0 = REGB1;
19425 } else {
19426 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19427 REGB0 = REGB1;
19428 }
19429 }
19430 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19431 if (UNTAG_Bool(REGB0)) {
19432 /* ./parser//parser_prod.nit:3615 */
19433 fra.me.REG[2] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[2]);
19434 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19435 if (UNTAG_Bool(REGB0)) {
19436 } else {
19437 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3615);
19438 }
19439 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19440 }
19441 stack_frame_head = fra.me.prev;
19442 return;
19443 }
19444 void parser___parser_prod___ADoExpr___empty_init(val_t p0, int* init_table){
19445 int itpos119 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoExpr].i;
19446 struct {struct stack_frame_t me;} fra;
19447 val_t tmp;
19448 if (init_table[itpos119]) return;
19449 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19450 fra.me.file = LOCATE_parser___parser_prod;
19451 fra.me.line = 3620;
19452 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___empty_init;
19453 fra.me.has_broke = 0;
19454 fra.me.REG_size = 1;
19455 fra.me.REG[0] = NIT_NULL;
19456 fra.me.REG[0] = p0;
19457 stack_frame_head = fra.me.prev;
19458 init_table[itpos119] = 1;
19459 return;
19460 }
19461 void parser___parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
19462 int itpos120 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoExpr].i;
19463 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
19464 val_t REGB0;
19465 val_t REGB1;
19466 val_t tmp;
19467 if (init_table[itpos120]) return;
19468 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19469 fra.me.file = LOCATE_parser___parser_prod;
19470 fra.me.line = 3622;
19471 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___init_adoexpr;
19472 fra.me.has_broke = 0;
19473 fra.me.REG_size = 5;
19474 fra.me.REG[0] = NIT_NULL;
19475 fra.me.REG[1] = NIT_NULL;
19476 fra.me.REG[2] = NIT_NULL;
19477 fra.me.REG[3] = NIT_NULL;
19478 fra.me.REG[4] = NIT_NULL;
19479 fra.me.REG[0] = p0;
19480 fra.me.REG[1] = p1;
19481 fra.me.REG[2] = p2;
19482 fra.me.REG[3] = p3;
19483 /* ./parser//parser_prod.nit:3622 */
19484 fra.me.REG[4] = fra.me.REG[0];
19485 /* ./parser//parser_prod.nit:3628 */
19486 CALL_parser___parser_prod___ADoExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
19487 /* ./parser//parser_prod.nit:3629 */
19488 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
19489 if (UNTAG_Bool(REGB0)) {
19490 } else {
19491 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3629);
19492 }
19493 ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[4]) = fra.me.REG[1];
19494 /* ./parser//parser_prod.nit:3630 */
19495 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19496 if (UNTAG_Bool(REGB0)) {
19497 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3630);
19498 }
19499 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
19500 /* ./parser//parser_prod.nit:3631 */
19501 ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[4]) = fra.me.REG[2];
19502 /* ./parser//parser_prod.nit:3632 */
19503 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19504 if (UNTAG_Bool(REGB0)) {
19505 } else {
19506 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19507 if (UNTAG_Bool(REGB1)) {
19508 REGB1 = TAG_Bool(false);
19509 REGB0 = REGB1;
19510 } else {
19511 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19512 REGB0 = REGB1;
19513 }
19514 }
19515 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19516 if (UNTAG_Bool(REGB0)) {
19517 /* ./parser//parser_prod.nit:3633 */
19518 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19519 if (UNTAG_Bool(REGB0)) {
19520 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3633);
19521 }
19522 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
19523 }
19524 /* ./parser//parser_prod.nit:3635 */
19525 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[3];
19526 /* ./parser//parser_prod.nit:3636 */
19527 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19528 if (UNTAG_Bool(REGB0)) {
19529 } else {
19530 REGB1 = TAG_Bool(fra.me.REG[3]==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[3])(fra.me.REG[3], NIT_NULL);
19536 REGB0 = REGB1;
19537 }
19538 }
19539 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19540 if (UNTAG_Bool(REGB0)) {
19541 /* ./parser//parser_prod.nit:3637 */
19542 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19543 if (UNTAG_Bool(REGB0)) {
19544 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3637);
19545 }
19546 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
19547 }
19548 stack_frame_head = fra.me.prev;
19549 init_table[itpos120] = 1;
19550 return;
19551 }
19552 void parser___parser_prod___ADoExpr___replace_child(val_t p0, val_t p1, val_t p2){
19553 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19554 val_t REGB0;
19555 val_t REGB1;
19556 val_t tmp;
19557 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19558 fra.me.file = LOCATE_parser___parser_prod;
19559 fra.me.line = 3641;
19560 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___replace_child;
19561 fra.me.has_broke = 0;
19562 fra.me.REG_size = 4;
19563 fra.me.REG[0] = NIT_NULL;
19564 fra.me.REG[1] = NIT_NULL;
19565 fra.me.REG[2] = NIT_NULL;
19566 fra.me.REG[3] = NIT_NULL;
19567 fra.me.REG[0] = p0;
19568 fra.me.REG[1] = p1;
19569 fra.me.REG[2] = p2;
19570 /* ./parser//parser_prod.nit:3643 */
19571 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
19572 if (UNTAG_Bool(REGB0)) {
19573 } else {
19574 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3643);
19575 }
19576 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]);
19577 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19578 if (UNTAG_Bool(REGB0)) {
19579 } else {
19580 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19581 REGB0 = REGB1;
19582 }
19583 if (UNTAG_Bool(REGB0)) {
19584 /* ./parser//parser_prod.nit:3644 */
19585 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19586 if (UNTAG_Bool(REGB0)) {
19587 } else {
19588 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19589 if (UNTAG_Bool(REGB1)) {
19590 REGB1 = TAG_Bool(false);
19591 REGB0 = REGB1;
19592 } else {
19593 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19594 REGB0 = REGB1;
19595 }
19596 }
19597 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19598 if (UNTAG_Bool(REGB0)) {
19599 /* ./parser//parser_prod.nit:3645 */
19600 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19601 if (UNTAG_Bool(REGB0)) {
19602 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3645);
19603 }
19604 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19605 /* ./parser//parser_prod.nit:3646 */
19606 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*/;
19607 if (UNTAG_Bool(REGB0)) {
19608 } else {
19609 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3646);
19610 }
19611 /* ./parser//parser_prod.nit:3647 */
19612 ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
19613 } else {
19614 /* ./parser//parser_prod.nit:3649 */
19615 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3649);
19616 }
19617 /* ./parser//parser_prod.nit:3651 */
19618 goto label1;
19619 }
19620 /* ./parser//parser_prod.nit:3653 */
19621 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]);
19622 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19623 if (UNTAG_Bool(REGB0)) {
19624 } else {
19625 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19626 if (UNTAG_Bool(REGB1)) {
19627 REGB1 = TAG_Bool(false);
19628 REGB0 = REGB1;
19629 } else {
19630 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19631 REGB0 = REGB1;
19632 }
19633 }
19634 if (UNTAG_Bool(REGB0)) {
19635 /* ./parser//parser_prod.nit:3654 */
19636 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19637 if (UNTAG_Bool(REGB0)) {
19638 } else {
19639 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19640 if (UNTAG_Bool(REGB1)) {
19641 REGB1 = TAG_Bool(false);
19642 REGB0 = REGB1;
19643 } else {
19644 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19645 REGB0 = REGB1;
19646 }
19647 }
19648 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19649 if (UNTAG_Bool(REGB0)) {
19650 /* ./parser//parser_prod.nit:3655 */
19651 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19652 if (UNTAG_Bool(REGB0)) {
19653 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3655);
19654 }
19655 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19656 /* ./parser//parser_prod.nit:3656 */
19657 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19658 if (UNTAG_Bool(REGB0)) {
19659 } else {
19660 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3656);
19661 }
19662 /* ./parser//parser_prod.nit:3657 */
19663 ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
19664 } else {
19665 /* ./parser//parser_prod.nit:3659 */
19666 ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = NIT_NULL;
19667 }
19668 /* ./parser//parser_prod.nit:3661 */
19669 goto label1;
19670 }
19671 /* ./parser//parser_prod.nit:3663 */
19672 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
19673 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19674 if (UNTAG_Bool(REGB0)) {
19675 } else {
19676 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19677 if (UNTAG_Bool(REGB1)) {
19678 REGB1 = TAG_Bool(false);
19679 REGB0 = REGB1;
19680 } else {
19681 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19682 REGB0 = REGB1;
19683 }
19684 }
19685 if (UNTAG_Bool(REGB0)) {
19686 /* ./parser//parser_prod.nit:3664 */
19687 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19688 if (UNTAG_Bool(REGB0)) {
19689 } else {
19690 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19691 if (UNTAG_Bool(REGB1)) {
19692 REGB1 = TAG_Bool(false);
19693 REGB0 = REGB1;
19694 } else {
19695 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19696 REGB0 = REGB1;
19697 }
19698 }
19699 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19700 if (UNTAG_Bool(REGB0)) {
19701 /* ./parser//parser_prod.nit:3665 */
19702 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19703 if (UNTAG_Bool(REGB0)) {
19704 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3665);
19705 }
19706 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19707 /* ./parser//parser_prod.nit:3666 */
19708 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*/;
19709 if (UNTAG_Bool(REGB0)) {
19710 } else {
19711 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3666);
19712 }
19713 /* ./parser//parser_prod.nit:3667 */
19714 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
19715 } else {
19716 /* ./parser//parser_prod.nit:3669 */
19717 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
19718 }
19719 /* ./parser//parser_prod.nit:3671 */
19720 goto label1;
19721 }
19722 label1: while(0);
19723 stack_frame_head = fra.me.prev;
19724 return;
19725 }
19726 void parser___parser_prod___ADoExpr___visit_all(val_t p0, val_t p1){
19727 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19728 val_t REGB0;
19729 val_t REGB1;
19730 val_t tmp;
19731 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19732 fra.me.file = LOCATE_parser___parser_prod;
19733 fra.me.line = 3675;
19734 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___visit_all;
19735 fra.me.has_broke = 0;
19736 fra.me.REG_size = 4;
19737 fra.me.REG[0] = NIT_NULL;
19738 fra.me.REG[1] = NIT_NULL;
19739 fra.me.REG[2] = NIT_NULL;
19740 fra.me.REG[3] = NIT_NULL;
19741 fra.me.REG[0] = p0;
19742 fra.me.REG[1] = p1;
19743 /* ./parser//parser_prod.nit:3675 */
19744 fra.me.REG[2] = fra.me.REG[0];
19745 /* ./parser//parser_prod.nit:3677 */
19746 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
19747 if (UNTAG_Bool(REGB0)) {
19748 } else {
19749 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3677);
19750 }
19751 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[2]);
19752 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19753 /* ./parser//parser_prod.nit:3678 */
19754 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[2]);
19755 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19756 if (UNTAG_Bool(REGB0)) {
19757 } else {
19758 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19759 if (UNTAG_Bool(REGB1)) {
19760 REGB1 = TAG_Bool(false);
19761 REGB0 = REGB1;
19762 } else {
19763 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19764 REGB0 = REGB1;
19765 }
19766 }
19767 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19768 if (UNTAG_Bool(REGB0)) {
19769 /* ./parser//parser_prod.nit:3679 */
19770 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[2]);
19771 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*/;
19772 if (UNTAG_Bool(REGB0)) {
19773 } else {
19774 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3679);
19775 }
19776 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19777 }
19778 /* ./parser//parser_prod.nit:3681 */
19779 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
19780 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19781 if (UNTAG_Bool(REGB0)) {
19782 } else {
19783 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19784 if (UNTAG_Bool(REGB1)) {
19785 REGB1 = TAG_Bool(false);
19786 REGB0 = REGB1;
19787 } else {
19788 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19789 REGB0 = REGB1;
19790 }
19791 }
19792 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19793 if (UNTAG_Bool(REGB0)) {
19794 /* ./parser//parser_prod.nit:3682 */
19795 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
19796 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*/;
19797 if (UNTAG_Bool(REGB0)) {
19798 } else {
19799 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3682);
19800 }
19801 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19802 }
19803 stack_frame_head = fra.me.prev;
19804 return;
19805 }
19806 void parser___parser_prod___AIfExpr___empty_init(val_t p0, int* init_table){
19807 int itpos121 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfExpr].i;
19808 struct {struct stack_frame_t me;} fra;
19809 val_t tmp;
19810 if (init_table[itpos121]) return;
19811 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19812 fra.me.file = LOCATE_parser___parser_prod;
19813 fra.me.line = 3687;
19814 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___empty_init;
19815 fra.me.has_broke = 0;
19816 fra.me.REG_size = 1;
19817 fra.me.REG[0] = NIT_NULL;
19818 fra.me.REG[0] = p0;
19819 stack_frame_head = fra.me.prev;
19820 init_table[itpos121] = 1;
19821 return;
19822 }
19823 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){
19824 int itpos122 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfExpr].i;
19825 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
19826 val_t REGB0;
19827 val_t REGB1;
19828 val_t tmp;
19829 if (init_table[itpos122]) return;
19830 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19831 fra.me.file = LOCATE_parser___parser_prod;
19832 fra.me.line = 3689;
19833 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___init_aifexpr;
19834 fra.me.has_broke = 0;
19835 fra.me.REG_size = 6;
19836 fra.me.REG[0] = NIT_NULL;
19837 fra.me.REG[1] = NIT_NULL;
19838 fra.me.REG[2] = NIT_NULL;
19839 fra.me.REG[3] = NIT_NULL;
19840 fra.me.REG[4] = NIT_NULL;
19841 fra.me.REG[5] = NIT_NULL;
19842 fra.me.REG[0] = p0;
19843 fra.me.REG[1] = p1;
19844 fra.me.REG[2] = p2;
19845 fra.me.REG[3] = p3;
19846 fra.me.REG[4] = p4;
19847 /* ./parser//parser_prod.nit:3689 */
19848 fra.me.REG[5] = fra.me.REG[0];
19849 /* ./parser//parser_prod.nit:3696 */
19850 CALL_parser___parser_prod___AIfExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
19851 /* ./parser//parser_prod.nit:3697 */
19852 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
19853 if (UNTAG_Bool(REGB0)) {
19854 } else {
19855 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3697);
19856 }
19857 ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[5]) = fra.me.REG[1];
19858 /* ./parser//parser_prod.nit:3698 */
19859 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19860 if (UNTAG_Bool(REGB0)) {
19861 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3698);
19862 }
19863 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
19864 /* ./parser//parser_prod.nit:3699 */
19865 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
19866 if (UNTAG_Bool(REGB0)) {
19867 } else {
19868 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3699);
19869 }
19870 ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[5]) = fra.me.REG[2];
19871 /* ./parser//parser_prod.nit:3700 */
19872 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19873 if (UNTAG_Bool(REGB0)) {
19874 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3700);
19875 }
19876 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
19877 /* ./parser//parser_prod.nit:3701 */
19878 ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[5]) = fra.me.REG[3];
19879 /* ./parser//parser_prod.nit:3702 */
19880 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19881 if (UNTAG_Bool(REGB0)) {
19882 } else {
19883 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19884 if (UNTAG_Bool(REGB1)) {
19885 REGB1 = TAG_Bool(false);
19886 REGB0 = REGB1;
19887 } else {
19888 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19889 REGB0 = REGB1;
19890 }
19891 }
19892 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19893 if (UNTAG_Bool(REGB0)) {
19894 /* ./parser//parser_prod.nit:3703 */
19895 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19896 if (UNTAG_Bool(REGB0)) {
19897 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3703);
19898 }
19899 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
19900 }
19901 /* ./parser//parser_prod.nit:3705 */
19902 ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[5]) = fra.me.REG[4];
19903 /* ./parser//parser_prod.nit:3706 */
19904 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
19905 if (UNTAG_Bool(REGB0)) {
19906 } else {
19907 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
19908 if (UNTAG_Bool(REGB1)) {
19909 REGB1 = TAG_Bool(false);
19910 REGB0 = REGB1;
19911 } else {
19912 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
19913 REGB0 = REGB1;
19914 }
19915 }
19916 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19917 if (UNTAG_Bool(REGB0)) {
19918 /* ./parser//parser_prod.nit:3707 */
19919 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
19920 if (UNTAG_Bool(REGB0)) {
19921 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3707);
19922 }
19923 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
19924 }
19925 stack_frame_head = fra.me.prev;
19926 init_table[itpos122] = 1;
19927 return;
19928 }
19929 void parser___parser_prod___AIfExpr___replace_child(val_t p0, val_t p1, val_t p2){
19930 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19931 val_t REGB0;
19932 val_t REGB1;
19933 val_t tmp;
19934 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19935 fra.me.file = LOCATE_parser___parser_prod;
19936 fra.me.line = 3711;
19937 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___replace_child;
19938 fra.me.has_broke = 0;
19939 fra.me.REG_size = 4;
19940 fra.me.REG[0] = NIT_NULL;
19941 fra.me.REG[1] = NIT_NULL;
19942 fra.me.REG[2] = NIT_NULL;
19943 fra.me.REG[3] = NIT_NULL;
19944 fra.me.REG[0] = p0;
19945 fra.me.REG[1] = p1;
19946 fra.me.REG[2] = p2;
19947 /* ./parser//parser_prod.nit:3713 */
19948 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
19949 if (UNTAG_Bool(REGB0)) {
19950 } else {
19951 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3713);
19952 }
19953 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]);
19954 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19955 if (UNTAG_Bool(REGB0)) {
19956 } else {
19957 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19958 REGB0 = REGB1;
19959 }
19960 if (UNTAG_Bool(REGB0)) {
19961 /* ./parser//parser_prod.nit:3714 */
19962 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19963 if (UNTAG_Bool(REGB0)) {
19964 } else {
19965 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19966 if (UNTAG_Bool(REGB1)) {
19967 REGB1 = TAG_Bool(false);
19968 REGB0 = REGB1;
19969 } else {
19970 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19971 REGB0 = REGB1;
19972 }
19973 }
19974 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19975 if (UNTAG_Bool(REGB0)) {
19976 /* ./parser//parser_prod.nit:3715 */
19977 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19978 if (UNTAG_Bool(REGB0)) {
19979 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3715);
19980 }
19981 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19982 /* ./parser//parser_prod.nit:3716 */
19983 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*/;
19984 if (UNTAG_Bool(REGB0)) {
19985 } else {
19986 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3716);
19987 }
19988 /* ./parser//parser_prod.nit:3717 */
19989 ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[2];
19990 } else {
19991 /* ./parser//parser_prod.nit:3719 */
19992 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3719);
19993 }
19994 /* ./parser//parser_prod.nit:3721 */
19995 goto label1;
19996 }
19997 /* ./parser//parser_prod.nit:3723 */
19998 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
19999 if (UNTAG_Bool(REGB0)) {
20000 } else {
20001 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3723);
20002 }
20003 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0]);
20004 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20005 if (UNTAG_Bool(REGB0)) {
20006 } else {
20007 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20008 REGB0 = REGB1;
20009 }
20010 if (UNTAG_Bool(REGB0)) {
20011 /* ./parser//parser_prod.nit:3724 */
20012 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20013 if (UNTAG_Bool(REGB0)) {
20014 } else {
20015 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20016 if (UNTAG_Bool(REGB1)) {
20017 REGB1 = TAG_Bool(false);
20018 REGB0 = REGB1;
20019 } else {
20020 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20021 REGB0 = REGB1;
20022 }
20023 }
20024 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20025 if (UNTAG_Bool(REGB0)) {
20026 /* ./parser//parser_prod.nit:3725 */
20027 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20028 if (UNTAG_Bool(REGB0)) {
20029 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3725);
20030 }
20031 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20032 /* ./parser//parser_prod.nit:3726 */
20033 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20034 if (UNTAG_Bool(REGB0)) {
20035 } else {
20036 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3726);
20037 }
20038 /* ./parser//parser_prod.nit:3727 */
20039 ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
20040 } else {
20041 /* ./parser//parser_prod.nit:3729 */
20042 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3729);
20043 }
20044 /* ./parser//parser_prod.nit:3731 */
20045 goto label1;
20046 }
20047 /* ./parser//parser_prod.nit:3733 */
20048 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]);
20049 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20050 if (UNTAG_Bool(REGB0)) {
20051 } else {
20052 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20053 if (UNTAG_Bool(REGB1)) {
20054 REGB1 = TAG_Bool(false);
20055 REGB0 = REGB1;
20056 } else {
20057 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20058 REGB0 = REGB1;
20059 }
20060 }
20061 if (UNTAG_Bool(REGB0)) {
20062 /* ./parser//parser_prod.nit:3734 */
20063 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20064 if (UNTAG_Bool(REGB0)) {
20065 } else {
20066 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20067 if (UNTAG_Bool(REGB1)) {
20068 REGB1 = TAG_Bool(false);
20069 REGB0 = REGB1;
20070 } else {
20071 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20072 REGB0 = REGB1;
20073 }
20074 }
20075 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20076 if (UNTAG_Bool(REGB0)) {
20077 /* ./parser//parser_prod.nit:3735 */
20078 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20079 if (UNTAG_Bool(REGB0)) {
20080 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3735);
20081 }
20082 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20083 /* ./parser//parser_prod.nit:3736 */
20084 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20085 if (UNTAG_Bool(REGB0)) {
20086 } else {
20087 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3736);
20088 }
20089 /* ./parser//parser_prod.nit:3737 */
20090 ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = fra.me.REG[2];
20091 } else {
20092 /* ./parser//parser_prod.nit:3739 */
20093 ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = NIT_NULL;
20094 }
20095 /* ./parser//parser_prod.nit:3741 */
20096 goto label1;
20097 }
20098 /* ./parser//parser_prod.nit:3743 */
20099 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]);
20100 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20101 if (UNTAG_Bool(REGB0)) {
20102 } else {
20103 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20104 if (UNTAG_Bool(REGB1)) {
20105 REGB1 = TAG_Bool(false);
20106 REGB0 = REGB1;
20107 } else {
20108 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20109 REGB0 = REGB1;
20110 }
20111 }
20112 if (UNTAG_Bool(REGB0)) {
20113 /* ./parser//parser_prod.nit:3744 */
20114 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20115 if (UNTAG_Bool(REGB0)) {
20116 } else {
20117 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20118 if (UNTAG_Bool(REGB1)) {
20119 REGB1 = TAG_Bool(false);
20120 REGB0 = REGB1;
20121 } else {
20122 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20123 REGB0 = REGB1;
20124 }
20125 }
20126 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20127 if (UNTAG_Bool(REGB0)) {
20128 /* ./parser//parser_prod.nit:3745 */
20129 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20130 if (UNTAG_Bool(REGB0)) {
20131 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3745);
20132 }
20133 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20134 /* ./parser//parser_prod.nit:3746 */
20135 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20136 if (UNTAG_Bool(REGB0)) {
20137 } else {
20138 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3746);
20139 }
20140 /* ./parser//parser_prod.nit:3747 */
20141 ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
20142 } else {
20143 /* ./parser//parser_prod.nit:3749 */
20144 ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = NIT_NULL;
20145 }
20146 /* ./parser//parser_prod.nit:3751 */
20147 goto label1;
20148 }
20149 label1: while(0);
20150 stack_frame_head = fra.me.prev;
20151 return;
20152 }
20153 void parser___parser_prod___AIfExpr___visit_all(val_t p0, val_t p1){
20154 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20155 val_t REGB0;
20156 val_t REGB1;
20157 val_t tmp;
20158 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20159 fra.me.file = LOCATE_parser___parser_prod;
20160 fra.me.line = 3755;
20161 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___visit_all;
20162 fra.me.has_broke = 0;
20163 fra.me.REG_size = 4;
20164 fra.me.REG[0] = NIT_NULL;
20165 fra.me.REG[1] = NIT_NULL;
20166 fra.me.REG[2] = NIT_NULL;
20167 fra.me.REG[3] = NIT_NULL;
20168 fra.me.REG[0] = p0;
20169 fra.me.REG[1] = p1;
20170 /* ./parser//parser_prod.nit:3755 */
20171 fra.me.REG[2] = fra.me.REG[0];
20172 /* ./parser//parser_prod.nit:3757 */
20173 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[2])!=NIT_NULL);
20174 if (UNTAG_Bool(REGB0)) {
20175 } else {
20176 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3757);
20177 }
20178 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[2]);
20179 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20180 /* ./parser//parser_prod.nit:3758 */
20181 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
20182 if (UNTAG_Bool(REGB0)) {
20183 } else {
20184 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3758);
20185 }
20186 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[2]);
20187 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20188 /* ./parser//parser_prod.nit:3759 */
20189 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[2]);
20190 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20191 if (UNTAG_Bool(REGB0)) {
20192 } else {
20193 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20194 if (UNTAG_Bool(REGB1)) {
20195 REGB1 = TAG_Bool(false);
20196 REGB0 = REGB1;
20197 } else {
20198 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20199 REGB0 = REGB1;
20200 }
20201 }
20202 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20203 if (UNTAG_Bool(REGB0)) {
20204 /* ./parser//parser_prod.nit:3760 */
20205 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[2]);
20206 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*/;
20207 if (UNTAG_Bool(REGB0)) {
20208 } else {
20209 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3760);
20210 }
20211 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20212 }
20213 /* ./parser//parser_prod.nit:3762 */
20214 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[2]);
20215 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20216 if (UNTAG_Bool(REGB0)) {
20217 } else {
20218 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20219 if (UNTAG_Bool(REGB1)) {
20220 REGB1 = TAG_Bool(false);
20221 REGB0 = REGB1;
20222 } else {
20223 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20224 REGB0 = REGB1;
20225 }
20226 }
20227 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20228 if (UNTAG_Bool(REGB0)) {
20229 /* ./parser//parser_prod.nit:3763 */
20230 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[2]);
20231 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20232 if (UNTAG_Bool(REGB0)) {
20233 } else {
20234 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3763);
20235 }
20236 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20237 }
20238 stack_frame_head = fra.me.prev;
20239 return;
20240 }
20241 void parser___parser_prod___AIfexprExpr___empty_init(val_t p0, int* init_table){
20242 int itpos123 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfexprExpr].i;
20243 struct {struct stack_frame_t me;} fra;
20244 val_t tmp;
20245 if (init_table[itpos123]) return;
20246 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20247 fra.me.file = LOCATE_parser___parser_prod;
20248 fra.me.line = 3768;
20249 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___empty_init;
20250 fra.me.has_broke = 0;
20251 fra.me.REG_size = 1;
20252 fra.me.REG[0] = NIT_NULL;
20253 fra.me.REG[0] = p0;
20254 stack_frame_head = fra.me.prev;
20255 init_table[itpos123] = 1;
20256 return;
20257 }
20258 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){
20259 int itpos124 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfexprExpr].i;
20260 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
20261 val_t REGB0;
20262 val_t tmp;
20263 if (init_table[itpos124]) return;
20264 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20265 fra.me.file = LOCATE_parser___parser_prod;
20266 fra.me.line = 3770;
20267 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___init_aifexprexpr;
20268 fra.me.has_broke = 0;
20269 fra.me.REG_size = 8;
20270 fra.me.REG[0] = NIT_NULL;
20271 fra.me.REG[1] = NIT_NULL;
20272 fra.me.REG[2] = NIT_NULL;
20273 fra.me.REG[3] = NIT_NULL;
20274 fra.me.REG[4] = NIT_NULL;
20275 fra.me.REG[5] = NIT_NULL;
20276 fra.me.REG[6] = NIT_NULL;
20277 fra.me.REG[7] = NIT_NULL;
20278 fra.me.REG[0] = p0;
20279 fra.me.REG[1] = p1;
20280 fra.me.REG[2] = p2;
20281 fra.me.REG[3] = p3;
20282 fra.me.REG[4] = p4;
20283 fra.me.REG[5] = p5;
20284 fra.me.REG[6] = p6;
20285 /* ./parser//parser_prod.nit:3770 */
20286 fra.me.REG[7] = fra.me.REG[0];
20287 /* ./parser//parser_prod.nit:3779 */
20288 CALL_parser___parser_prod___AIfexprExpr___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
20289 /* ./parser//parser_prod.nit:3780 */
20290 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
20291 if (UNTAG_Bool(REGB0)) {
20292 } else {
20293 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3780);
20294 }
20295 ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[7]) = fra.me.REG[1];
20296 /* ./parser//parser_prod.nit:3781 */
20297 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20298 if (UNTAG_Bool(REGB0)) {
20299 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3781);
20300 }
20301 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
20302 /* ./parser//parser_prod.nit:3782 */
20303 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
20304 if (UNTAG_Bool(REGB0)) {
20305 } else {
20306 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3782);
20307 }
20308 ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[7]) = fra.me.REG[2];
20309 /* ./parser//parser_prod.nit:3783 */
20310 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20311 if (UNTAG_Bool(REGB0)) {
20312 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3783);
20313 }
20314 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
20315 /* ./parser//parser_prod.nit:3784 */
20316 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
20317 if (UNTAG_Bool(REGB0)) {
20318 } else {
20319 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3784);
20320 }
20321 ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[7]) = fra.me.REG[3];
20322 /* ./parser//parser_prod.nit:3785 */
20323 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20324 if (UNTAG_Bool(REGB0)) {
20325 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3785);
20326 }
20327 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
20328 /* ./parser//parser_prod.nit:3786 */
20329 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
20330 if (UNTAG_Bool(REGB0)) {
20331 } else {
20332 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3786);
20333 }
20334 ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[7]) = fra.me.REG[4];
20335 /* ./parser//parser_prod.nit:3787 */
20336 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
20337 if (UNTAG_Bool(REGB0)) {
20338 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3787);
20339 }
20340 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
20341 /* ./parser//parser_prod.nit:3788 */
20342 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
20343 if (UNTAG_Bool(REGB0)) {
20344 } else {
20345 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3788);
20346 }
20347 ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[7]) = fra.me.REG[5];
20348 /* ./parser//parser_prod.nit:3789 */
20349 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
20350 if (UNTAG_Bool(REGB0)) {
20351 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3789);
20352 }
20353 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
20354 /* ./parser//parser_prod.nit:3790 */
20355 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
20356 if (UNTAG_Bool(REGB0)) {
20357 } else {
20358 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3790);
20359 }
20360 ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[7]) = fra.me.REG[6];
20361 /* ./parser//parser_prod.nit:3791 */
20362 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
20363 if (UNTAG_Bool(REGB0)) {
20364 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3791);
20365 }
20366 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
20367 stack_frame_head = fra.me.prev;
20368 init_table[itpos124] = 1;
20369 return;
20370 }
20371 void parser___parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_t p2){
20372 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20373 val_t REGB0;
20374 val_t REGB1;
20375 val_t tmp;
20376 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20377 fra.me.file = LOCATE_parser___parser_prod;
20378 fra.me.line = 3794;
20379 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___replace_child;
20380 fra.me.has_broke = 0;
20381 fra.me.REG_size = 4;
20382 fra.me.REG[0] = NIT_NULL;
20383 fra.me.REG[1] = NIT_NULL;
20384 fra.me.REG[2] = NIT_NULL;
20385 fra.me.REG[3] = NIT_NULL;
20386 fra.me.REG[0] = p0;
20387 fra.me.REG[1] = p1;
20388 fra.me.REG[2] = p2;
20389 /* ./parser//parser_prod.nit:3796 */
20390 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
20391 if (UNTAG_Bool(REGB0)) {
20392 } else {
20393 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3796);
20394 }
20395 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]);
20396 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20397 if (UNTAG_Bool(REGB0)) {
20398 } else {
20399 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20400 REGB0 = REGB1;
20401 }
20402 if (UNTAG_Bool(REGB0)) {
20403 /* ./parser//parser_prod.nit:3797 */
20404 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20405 if (UNTAG_Bool(REGB0)) {
20406 } else {
20407 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20408 if (UNTAG_Bool(REGB1)) {
20409 REGB1 = TAG_Bool(false);
20410 REGB0 = REGB1;
20411 } else {
20412 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20413 REGB0 = REGB1;
20414 }
20415 }
20416 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20417 if (UNTAG_Bool(REGB0)) {
20418 /* ./parser//parser_prod.nit:3798 */
20419 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20420 if (UNTAG_Bool(REGB0)) {
20421 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3798);
20422 }
20423 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20424 /* ./parser//parser_prod.nit:3799 */
20425 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*/;
20426 if (UNTAG_Bool(REGB0)) {
20427 } else {
20428 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3799);
20429 }
20430 /* ./parser//parser_prod.nit:3800 */
20431 ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[2];
20432 } else {
20433 /* ./parser//parser_prod.nit:3802 */
20434 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3802);
20435 }
20436 /* ./parser//parser_prod.nit:3804 */
20437 goto label1;
20438 }
20439 /* ./parser//parser_prod.nit:3806 */
20440 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
20441 if (UNTAG_Bool(REGB0)) {
20442 } else {
20443 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3806);
20444 }
20445 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]);
20446 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20447 if (UNTAG_Bool(REGB0)) {
20448 } else {
20449 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20450 REGB0 = REGB1;
20451 }
20452 if (UNTAG_Bool(REGB0)) {
20453 /* ./parser//parser_prod.nit:3807 */
20454 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20455 if (UNTAG_Bool(REGB0)) {
20456 } else {
20457 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20458 if (UNTAG_Bool(REGB1)) {
20459 REGB1 = TAG_Bool(false);
20460 REGB0 = REGB1;
20461 } else {
20462 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20463 REGB0 = REGB1;
20464 }
20465 }
20466 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20467 if (UNTAG_Bool(REGB0)) {
20468 /* ./parser//parser_prod.nit:3808 */
20469 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20470 if (UNTAG_Bool(REGB0)) {
20471 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3808);
20472 }
20473 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20474 /* ./parser//parser_prod.nit:3809 */
20475 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20476 if (UNTAG_Bool(REGB0)) {
20477 } else {
20478 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3809);
20479 }
20480 /* ./parser//parser_prod.nit:3810 */
20481 ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
20482 } else {
20483 /* ./parser//parser_prod.nit:3812 */
20484 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3812);
20485 }
20486 /* ./parser//parser_prod.nit:3814 */
20487 goto label1;
20488 }
20489 /* ./parser//parser_prod.nit:3816 */
20490 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0])!=NIT_NULL);
20491 if (UNTAG_Bool(REGB0)) {
20492 } else {
20493 nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser___parser_prod, 3816);
20494 }
20495 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]);
20496 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20497 if (UNTAG_Bool(REGB0)) {
20498 } else {
20499 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20500 REGB0 = REGB1;
20501 }
20502 if (UNTAG_Bool(REGB0)) {
20503 /* ./parser//parser_prod.nit:3817 */
20504 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20505 if (UNTAG_Bool(REGB0)) {
20506 } else {
20507 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20508 if (UNTAG_Bool(REGB1)) {
20509 REGB1 = TAG_Bool(false);
20510 REGB0 = REGB1;
20511 } else {
20512 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20513 REGB0 = REGB1;
20514 }
20515 }
20516 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20517 if (UNTAG_Bool(REGB0)) {
20518 /* ./parser//parser_prod.nit:3818 */
20519 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20520 if (UNTAG_Bool(REGB0)) {
20521 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3818);
20522 }
20523 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20524 /* ./parser//parser_prod.nit:3819 */
20525 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*/;
20526 if (UNTAG_Bool(REGB0)) {
20527 } else {
20528 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3819);
20529 }
20530 /* ./parser//parser_prod.nit:3820 */
20531 ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]) = fra.me.REG[2];
20532 } else {
20533 /* ./parser//parser_prod.nit:3822 */
20534 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3822);
20535 }
20536 /* ./parser//parser_prod.nit:3824 */
20537 goto label1;
20538 }
20539 /* ./parser//parser_prod.nit:3826 */
20540 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0])!=NIT_NULL);
20541 if (UNTAG_Bool(REGB0)) {
20542 } else {
20543 nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser___parser_prod, 3826);
20544 }
20545 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]);
20546 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20547 if (UNTAG_Bool(REGB0)) {
20548 } else {
20549 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20550 REGB0 = REGB1;
20551 }
20552 if (UNTAG_Bool(REGB0)) {
20553 /* ./parser//parser_prod.nit:3827 */
20554 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20555 if (UNTAG_Bool(REGB0)) {
20556 } else {
20557 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20558 if (UNTAG_Bool(REGB1)) {
20559 REGB1 = TAG_Bool(false);
20560 REGB0 = REGB1;
20561 } else {
20562 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20563 REGB0 = REGB1;
20564 }
20565 }
20566 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20567 if (UNTAG_Bool(REGB0)) {
20568 /* ./parser//parser_prod.nit:3828 */
20569 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20570 if (UNTAG_Bool(REGB0)) {
20571 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3828);
20572 }
20573 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20574 /* ./parser//parser_prod.nit:3829 */
20575 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20576 if (UNTAG_Bool(REGB0)) {
20577 } else {
20578 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3829);
20579 }
20580 /* ./parser//parser_prod.nit:3830 */
20581 ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]) = fra.me.REG[2];
20582 } else {
20583 /* ./parser//parser_prod.nit:3832 */
20584 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3832);
20585 }
20586 /* ./parser//parser_prod.nit:3834 */
20587 goto label1;
20588 }
20589 /* ./parser//parser_prod.nit:3836 */
20590 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0])!=NIT_NULL);
20591 if (UNTAG_Bool(REGB0)) {
20592 } else {
20593 nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser___parser_prod, 3836);
20594 }
20595 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]);
20596 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20597 if (UNTAG_Bool(REGB0)) {
20598 } else {
20599 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20600 REGB0 = REGB1;
20601 }
20602 if (UNTAG_Bool(REGB0)) {
20603 /* ./parser//parser_prod.nit:3837 */
20604 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20605 if (UNTAG_Bool(REGB0)) {
20606 } else {
20607 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20608 if (UNTAG_Bool(REGB1)) {
20609 REGB1 = TAG_Bool(false);
20610 REGB0 = REGB1;
20611 } else {
20612 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20613 REGB0 = REGB1;
20614 }
20615 }
20616 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20617 if (UNTAG_Bool(REGB0)) {
20618 /* ./parser//parser_prod.nit:3838 */
20619 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20620 if (UNTAG_Bool(REGB0)) {
20621 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3838);
20622 }
20623 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20624 /* ./parser//parser_prod.nit:3839 */
20625 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*/;
20626 if (UNTAG_Bool(REGB0)) {
20627 } else {
20628 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3839);
20629 }
20630 /* ./parser//parser_prod.nit:3840 */
20631 ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]) = fra.me.REG[2];
20632 } else {
20633 /* ./parser//parser_prod.nit:3842 */
20634 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3842);
20635 }
20636 /* ./parser//parser_prod.nit:3844 */
20637 goto label1;
20638 }
20639 /* ./parser//parser_prod.nit:3846 */
20640 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0])!=NIT_NULL);
20641 if (UNTAG_Bool(REGB0)) {
20642 } else {
20643 nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser___parser_prod, 3846);
20644 }
20645 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]);
20646 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20647 if (UNTAG_Bool(REGB0)) {
20648 } else {
20649 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20650 REGB0 = REGB1;
20651 }
20652 if (UNTAG_Bool(REGB0)) {
20653 /* ./parser//parser_prod.nit:3847 */
20654 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20655 if (UNTAG_Bool(REGB0)) {
20656 } else {
20657 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20658 if (UNTAG_Bool(REGB1)) {
20659 REGB1 = TAG_Bool(false);
20660 REGB0 = REGB1;
20661 } else {
20662 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20663 REGB0 = REGB1;
20664 }
20665 }
20666 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20667 if (UNTAG_Bool(REGB0)) {
20668 /* ./parser//parser_prod.nit:3848 */
20669 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20670 if (UNTAG_Bool(REGB0)) {
20671 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3848);
20672 }
20673 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20674 /* ./parser//parser_prod.nit:3849 */
20675 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20676 if (UNTAG_Bool(REGB0)) {
20677 } else {
20678 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3849);
20679 }
20680 /* ./parser//parser_prod.nit:3850 */
20681 ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
20682 } else {
20683 /* ./parser//parser_prod.nit:3852 */
20684 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3852);
20685 }
20686 /* ./parser//parser_prod.nit:3854 */
20687 goto label1;
20688 }
20689 label1: while(0);
20690 stack_frame_head = fra.me.prev;
20691 return;
20692 }
20693 void parser___parser_prod___AIfexprExpr___visit_all(val_t p0, val_t p1){
20694 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
20695 val_t REGB0;
20696 val_t tmp;
20697 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20698 fra.me.file = LOCATE_parser___parser_prod;
20699 fra.me.line = 3858;
20700 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___visit_all;
20701 fra.me.has_broke = 0;
20702 fra.me.REG_size = 3;
20703 fra.me.REG[0] = NIT_NULL;
20704 fra.me.REG[1] = NIT_NULL;
20705 fra.me.REG[2] = NIT_NULL;
20706 fra.me.REG[0] = p0;
20707 fra.me.REG[1] = p1;
20708 /* ./parser//parser_prod.nit:3860 */
20709 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
20710 if (UNTAG_Bool(REGB0)) {
20711 } else {
20712 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3860);
20713 }
20714 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]);
20715 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20716 /* ./parser//parser_prod.nit:3861 */
20717 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
20718 if (UNTAG_Bool(REGB0)) {
20719 } else {
20720 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3861);
20721 }
20722 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]);
20723 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20724 /* ./parser//parser_prod.nit:3862 */
20725 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0])!=NIT_NULL);
20726 if (UNTAG_Bool(REGB0)) {
20727 } else {
20728 nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser___parser_prod, 3862);
20729 }
20730 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]);
20731 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20732 /* ./parser//parser_prod.nit:3863 */
20733 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0])!=NIT_NULL);
20734 if (UNTAG_Bool(REGB0)) {
20735 } else {
20736 nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser___parser_prod, 3863);
20737 }
20738 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]);
20739 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20740 /* ./parser//parser_prod.nit:3864 */
20741 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0])!=NIT_NULL);
20742 if (UNTAG_Bool(REGB0)) {
20743 } else {
20744 nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser___parser_prod, 3864);
20745 }
20746 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]);
20747 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20748 /* ./parser//parser_prod.nit:3865 */
20749 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0])!=NIT_NULL);
20750 if (UNTAG_Bool(REGB0)) {
20751 } else {
20752 nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser___parser_prod, 3865);
20753 }
20754 fra.me.REG[0] = ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]);
20755 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
20756 stack_frame_head = fra.me.prev;
20757 return;
20758 }
20759 void parser___parser_prod___AWhileExpr___empty_init(val_t p0, int* init_table){
20760 int itpos125 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWhileExpr].i;
20761 struct {struct stack_frame_t me;} fra;
20762 val_t tmp;
20763 if (init_table[itpos125]) return;
20764 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20765 fra.me.file = LOCATE_parser___parser_prod;
20766 fra.me.line = 3869;
20767 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___empty_init;
20768 fra.me.has_broke = 0;
20769 fra.me.REG_size = 1;
20770 fra.me.REG[0] = NIT_NULL;
20771 fra.me.REG[0] = p0;
20772 stack_frame_head = fra.me.prev;
20773 init_table[itpos125] = 1;
20774 return;
20775 }
20776 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){
20777 int itpos126 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWhileExpr].i;
20778 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
20779 val_t REGB0;
20780 val_t REGB1;
20781 val_t tmp;
20782 if (init_table[itpos126]) return;
20783 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20784 fra.me.file = LOCATE_parser___parser_prod;
20785 fra.me.line = 3871;
20786 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___init_awhileexpr;
20787 fra.me.has_broke = 0;
20788 fra.me.REG_size = 7;
20789 fra.me.REG[0] = NIT_NULL;
20790 fra.me.REG[1] = NIT_NULL;
20791 fra.me.REG[2] = NIT_NULL;
20792 fra.me.REG[3] = NIT_NULL;
20793 fra.me.REG[4] = NIT_NULL;
20794 fra.me.REG[5] = NIT_NULL;
20795 fra.me.REG[6] = NIT_NULL;
20796 fra.me.REG[0] = p0;
20797 fra.me.REG[1] = p1;
20798 fra.me.REG[2] = p2;
20799 fra.me.REG[3] = p3;
20800 fra.me.REG[4] = p4;
20801 fra.me.REG[5] = p5;
20802 /* ./parser//parser_prod.nit:3871 */
20803 fra.me.REG[6] = fra.me.REG[0];
20804 /* ./parser//parser_prod.nit:3879 */
20805 CALL_parser___parser_prod___AWhileExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
20806 /* ./parser//parser_prod.nit:3880 */
20807 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
20808 if (UNTAG_Bool(REGB0)) {
20809 } else {
20810 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3880);
20811 }
20812 ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[6]) = fra.me.REG[1];
20813 /* ./parser//parser_prod.nit:3881 */
20814 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20815 if (UNTAG_Bool(REGB0)) {
20816 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3881);
20817 }
20818 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
20819 /* ./parser//parser_prod.nit:3882 */
20820 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
20821 if (UNTAG_Bool(REGB0)) {
20822 } else {
20823 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3882);
20824 }
20825 ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[6]) = fra.me.REG[2];
20826 /* ./parser//parser_prod.nit:3883 */
20827 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20828 if (UNTAG_Bool(REGB0)) {
20829 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3883);
20830 }
20831 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
20832 /* ./parser//parser_prod.nit:3884 */
20833 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
20834 if (UNTAG_Bool(REGB0)) {
20835 } else {
20836 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3884);
20837 }
20838 ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[6]) = fra.me.REG[3];
20839 /* ./parser//parser_prod.nit:3885 */
20840 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20841 if (UNTAG_Bool(REGB0)) {
20842 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3885);
20843 }
20844 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
20845 /* ./parser//parser_prod.nit:3886 */
20846 ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[6]) = fra.me.REG[4];
20847 /* ./parser//parser_prod.nit:3887 */
20848 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
20849 if (UNTAG_Bool(REGB0)) {
20850 } else {
20851 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
20852 if (UNTAG_Bool(REGB1)) {
20853 REGB1 = TAG_Bool(false);
20854 REGB0 = REGB1;
20855 } else {
20856 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
20857 REGB0 = REGB1;
20858 }
20859 }
20860 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20861 if (UNTAG_Bool(REGB0)) {
20862 /* ./parser//parser_prod.nit:3888 */
20863 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
20864 if (UNTAG_Bool(REGB0)) {
20865 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3888);
20866 }
20867 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
20868 }
20869 /* ./parser//parser_prod.nit:3890 */
20870 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[6]) = fra.me.REG[5];
20871 /* ./parser//parser_prod.nit:3891 */
20872 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
20873 if (UNTAG_Bool(REGB0)) {
20874 } else {
20875 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
20876 if (UNTAG_Bool(REGB1)) {
20877 REGB1 = TAG_Bool(false);
20878 REGB0 = REGB1;
20879 } else {
20880 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
20881 REGB0 = REGB1;
20882 }
20883 }
20884 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20885 if (UNTAG_Bool(REGB0)) {
20886 /* ./parser//parser_prod.nit:3892 */
20887 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
20888 if (UNTAG_Bool(REGB0)) {
20889 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3892);
20890 }
20891 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
20892 }
20893 stack_frame_head = fra.me.prev;
20894 init_table[itpos126] = 1;
20895 return;
20896 }
20897 void parser___parser_prod___AWhileExpr___replace_child(val_t p0, val_t p1, val_t p2){
20898 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20899 val_t REGB0;
20900 val_t REGB1;
20901 val_t tmp;
20902 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20903 fra.me.file = LOCATE_parser___parser_prod;
20904 fra.me.line = 3896;
20905 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___replace_child;
20906 fra.me.has_broke = 0;
20907 fra.me.REG_size = 4;
20908 fra.me.REG[0] = NIT_NULL;
20909 fra.me.REG[1] = NIT_NULL;
20910 fra.me.REG[2] = NIT_NULL;
20911 fra.me.REG[3] = NIT_NULL;
20912 fra.me.REG[0] = p0;
20913 fra.me.REG[1] = p1;
20914 fra.me.REG[2] = p2;
20915 /* ./parser//parser_prod.nit:3898 */
20916 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0])!=NIT_NULL);
20917 if (UNTAG_Bool(REGB0)) {
20918 } else {
20919 nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser___parser_prod, 3898);
20920 }
20921 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]);
20922 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20923 if (UNTAG_Bool(REGB0)) {
20924 } else {
20925 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20926 REGB0 = REGB1;
20927 }
20928 if (UNTAG_Bool(REGB0)) {
20929 /* ./parser//parser_prod.nit:3899 */
20930 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20931 if (UNTAG_Bool(REGB0)) {
20932 } else {
20933 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20934 if (UNTAG_Bool(REGB1)) {
20935 REGB1 = TAG_Bool(false);
20936 REGB0 = REGB1;
20937 } else {
20938 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20939 REGB0 = REGB1;
20940 }
20941 }
20942 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20943 if (UNTAG_Bool(REGB0)) {
20944 /* ./parser//parser_prod.nit:3900 */
20945 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20946 if (UNTAG_Bool(REGB0)) {
20947 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3900);
20948 }
20949 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20950 /* ./parser//parser_prod.nit:3901 */
20951 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*/;
20952 if (UNTAG_Bool(REGB0)) {
20953 } else {
20954 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3901);
20955 }
20956 /* ./parser//parser_prod.nit:3902 */
20957 ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]) = fra.me.REG[2];
20958 } else {
20959 /* ./parser//parser_prod.nit:3904 */
20960 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3904);
20961 }
20962 /* ./parser//parser_prod.nit:3906 */
20963 goto label1;
20964 }
20965 /* ./parser//parser_prod.nit:3908 */
20966 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
20967 if (UNTAG_Bool(REGB0)) {
20968 } else {
20969 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3908);
20970 }
20971 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]);
20972 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20973 if (UNTAG_Bool(REGB0)) {
20974 } else {
20975 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20976 REGB0 = REGB1;
20977 }
20978 if (UNTAG_Bool(REGB0)) {
20979 /* ./parser//parser_prod.nit:3909 */
20980 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20981 if (UNTAG_Bool(REGB0)) {
20982 } else {
20983 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20984 if (UNTAG_Bool(REGB1)) {
20985 REGB1 = TAG_Bool(false);
20986 REGB0 = REGB1;
20987 } else {
20988 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20989 REGB0 = REGB1;
20990 }
20991 }
20992 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20993 if (UNTAG_Bool(REGB0)) {
20994 /* ./parser//parser_prod.nit:3910 */
20995 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20996 if (UNTAG_Bool(REGB0)) {
20997 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3910);
20998 }
20999 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21000 /* ./parser//parser_prod.nit:3911 */
21001 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21002 if (UNTAG_Bool(REGB0)) {
21003 } else {
21004 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3911);
21005 }
21006 /* ./parser//parser_prod.nit:3912 */
21007 ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21008 } else {
21009 /* ./parser//parser_prod.nit:3914 */
21010 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3914);
21011 }
21012 /* ./parser//parser_prod.nit:3916 */
21013 goto label1;
21014 }
21015 /* ./parser//parser_prod.nit:3918 */
21016 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
21017 if (UNTAG_Bool(REGB0)) {
21018 } else {
21019 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3918);
21020 }
21021 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]);
21022 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21023 if (UNTAG_Bool(REGB0)) {
21024 } else {
21025 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21026 REGB0 = REGB1;
21027 }
21028 if (UNTAG_Bool(REGB0)) {
21029 /* ./parser//parser_prod.nit:3919 */
21030 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21031 if (UNTAG_Bool(REGB0)) {
21032 } else {
21033 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21034 if (UNTAG_Bool(REGB1)) {
21035 REGB1 = TAG_Bool(false);
21036 REGB0 = REGB1;
21037 } else {
21038 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21039 REGB0 = REGB1;
21040 }
21041 }
21042 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21043 if (UNTAG_Bool(REGB0)) {
21044 /* ./parser//parser_prod.nit:3920 */
21045 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21046 if (UNTAG_Bool(REGB0)) {
21047 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3920);
21048 }
21049 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21050 /* ./parser//parser_prod.nit:3921 */
21051 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*/;
21052 if (UNTAG_Bool(REGB0)) {
21053 } else {
21054 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3921);
21055 }
21056 /* ./parser//parser_prod.nit:3922 */
21057 ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
21058 } else {
21059 /* ./parser//parser_prod.nit:3924 */
21060 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3924);
21061 }
21062 /* ./parser//parser_prod.nit:3926 */
21063 goto label1;
21064 }
21065 /* ./parser//parser_prod.nit:3928 */
21066 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]);
21067 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21068 if (UNTAG_Bool(REGB0)) {
21069 } else {
21070 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21071 if (UNTAG_Bool(REGB1)) {
21072 REGB1 = TAG_Bool(false);
21073 REGB0 = REGB1;
21074 } else {
21075 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21076 REGB0 = REGB1;
21077 }
21078 }
21079 if (UNTAG_Bool(REGB0)) {
21080 /* ./parser//parser_prod.nit:3929 */
21081 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21082 if (UNTAG_Bool(REGB0)) {
21083 } else {
21084 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21085 if (UNTAG_Bool(REGB1)) {
21086 REGB1 = TAG_Bool(false);
21087 REGB0 = REGB1;
21088 } else {
21089 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21090 REGB0 = REGB1;
21091 }
21092 }
21093 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21094 if (UNTAG_Bool(REGB0)) {
21095 /* ./parser//parser_prod.nit:3930 */
21096 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21097 if (UNTAG_Bool(REGB0)) {
21098 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3930);
21099 }
21100 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21101 /* ./parser//parser_prod.nit:3931 */
21102 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21103 if (UNTAG_Bool(REGB0)) {
21104 } else {
21105 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3931);
21106 }
21107 /* ./parser//parser_prod.nit:3932 */
21108 ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
21109 } else {
21110 /* ./parser//parser_prod.nit:3934 */
21111 ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = NIT_NULL;
21112 }
21113 /* ./parser//parser_prod.nit:3936 */
21114 goto label1;
21115 }
21116 /* ./parser//parser_prod.nit:3938 */
21117 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
21118 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21119 if (UNTAG_Bool(REGB0)) {
21120 } else {
21121 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21122 if (UNTAG_Bool(REGB1)) {
21123 REGB1 = TAG_Bool(false);
21124 REGB0 = REGB1;
21125 } else {
21126 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21127 REGB0 = REGB1;
21128 }
21129 }
21130 if (UNTAG_Bool(REGB0)) {
21131 /* ./parser//parser_prod.nit:3939 */
21132 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21133 if (UNTAG_Bool(REGB0)) {
21134 } else {
21135 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21136 if (UNTAG_Bool(REGB1)) {
21137 REGB1 = TAG_Bool(false);
21138 REGB0 = REGB1;
21139 } else {
21140 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21141 REGB0 = REGB1;
21142 }
21143 }
21144 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21145 if (UNTAG_Bool(REGB0)) {
21146 /* ./parser//parser_prod.nit:3940 */
21147 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21148 if (UNTAG_Bool(REGB0)) {
21149 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3940);
21150 }
21151 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21152 /* ./parser//parser_prod.nit:3941 */
21153 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*/;
21154 if (UNTAG_Bool(REGB0)) {
21155 } else {
21156 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3941);
21157 }
21158 /* ./parser//parser_prod.nit:3942 */
21159 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
21160 } else {
21161 /* ./parser//parser_prod.nit:3944 */
21162 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
21163 }
21164 /* ./parser//parser_prod.nit:3946 */
21165 goto label1;
21166 }
21167 label1: while(0);
21168 stack_frame_head = fra.me.prev;
21169 return;
21170 }
21171 void parser___parser_prod___AWhileExpr___visit_all(val_t p0, val_t p1){
21172 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21173 val_t REGB0;
21174 val_t REGB1;
21175 val_t tmp;
21176 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21177 fra.me.file = LOCATE_parser___parser_prod;
21178 fra.me.line = 3950;
21179 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___visit_all;
21180 fra.me.has_broke = 0;
21181 fra.me.REG_size = 4;
21182 fra.me.REG[0] = NIT_NULL;
21183 fra.me.REG[1] = NIT_NULL;
21184 fra.me.REG[2] = NIT_NULL;
21185 fra.me.REG[3] = NIT_NULL;
21186 fra.me.REG[0] = p0;
21187 fra.me.REG[1] = p1;
21188 /* ./parser//parser_prod.nit:3950 */
21189 fra.me.REG[2] = fra.me.REG[0];
21190 /* ./parser//parser_prod.nit:3952 */
21191 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[2])!=NIT_NULL);
21192 if (UNTAG_Bool(REGB0)) {
21193 } else {
21194 nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser___parser_prod, 3952);
21195 }
21196 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[2]);
21197 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21198 /* ./parser//parser_prod.nit:3953 */
21199 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
21200 if (UNTAG_Bool(REGB0)) {
21201 } else {
21202 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3953);
21203 }
21204 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[2]);
21205 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21206 /* ./parser//parser_prod.nit:3954 */
21207 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
21208 if (UNTAG_Bool(REGB0)) {
21209 } else {
21210 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3954);
21211 }
21212 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[2]);
21213 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21214 /* ./parser//parser_prod.nit:3955 */
21215 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[2]);
21216 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21217 if (UNTAG_Bool(REGB0)) {
21218 } else {
21219 REGB1 = TAG_Bool(fra.me.REG[3]==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[3])(fra.me.REG[3], NIT_NULL);
21225 REGB0 = REGB1;
21226 }
21227 }
21228 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21229 if (UNTAG_Bool(REGB0)) {
21230 /* ./parser//parser_prod.nit:3956 */
21231 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[2]);
21232 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*/;
21233 if (UNTAG_Bool(REGB0)) {
21234 } else {
21235 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3956);
21236 }
21237 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21238 }
21239 /* ./parser//parser_prod.nit:3958 */
21240 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
21241 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21242 if (UNTAG_Bool(REGB0)) {
21243 } else {
21244 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21245 if (UNTAG_Bool(REGB1)) {
21246 REGB1 = TAG_Bool(false);
21247 REGB0 = REGB1;
21248 } else {
21249 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21250 REGB0 = REGB1;
21251 }
21252 }
21253 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21254 if (UNTAG_Bool(REGB0)) {
21255 /* ./parser//parser_prod.nit:3959 */
21256 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
21257 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*/;
21258 if (UNTAG_Bool(REGB0)) {
21259 } else {
21260 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3959);
21261 }
21262 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21263 }
21264 stack_frame_head = fra.me.prev;
21265 return;
21266 }
21267 void parser___parser_prod___ALoopExpr___empty_init(val_t p0, int* init_table){
21268 int itpos127 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALoopExpr].i;
21269 struct {struct stack_frame_t me;} fra;
21270 val_t tmp;
21271 if (init_table[itpos127]) return;
21272 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21273 fra.me.file = LOCATE_parser___parser_prod;
21274 fra.me.line = 3964;
21275 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___empty_init;
21276 fra.me.has_broke = 0;
21277 fra.me.REG_size = 1;
21278 fra.me.REG[0] = NIT_NULL;
21279 fra.me.REG[0] = p0;
21280 stack_frame_head = fra.me.prev;
21281 init_table[itpos127] = 1;
21282 return;
21283 }
21284 void parser___parser_prod___ALoopExpr___init_aloopexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
21285 int itpos128 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALoopExpr].i;
21286 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
21287 val_t REGB0;
21288 val_t REGB1;
21289 val_t tmp;
21290 if (init_table[itpos128]) return;
21291 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21292 fra.me.file = LOCATE_parser___parser_prod;
21293 fra.me.line = 3966;
21294 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___init_aloopexpr;
21295 fra.me.has_broke = 0;
21296 fra.me.REG_size = 5;
21297 fra.me.REG[0] = NIT_NULL;
21298 fra.me.REG[1] = NIT_NULL;
21299 fra.me.REG[2] = NIT_NULL;
21300 fra.me.REG[3] = NIT_NULL;
21301 fra.me.REG[4] = NIT_NULL;
21302 fra.me.REG[0] = p0;
21303 fra.me.REG[1] = p1;
21304 fra.me.REG[2] = p2;
21305 fra.me.REG[3] = p3;
21306 /* ./parser//parser_prod.nit:3966 */
21307 fra.me.REG[4] = fra.me.REG[0];
21308 /* ./parser//parser_prod.nit:3972 */
21309 CALL_parser___parser_prod___ALoopExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
21310 /* ./parser//parser_prod.nit:3973 */
21311 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21312 if (UNTAG_Bool(REGB0)) {
21313 } else {
21314 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3973);
21315 }
21316 ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[4]) = fra.me.REG[1];
21317 /* ./parser//parser_prod.nit:3974 */
21318 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21319 if (UNTAG_Bool(REGB0)) {
21320 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3974);
21321 }
21322 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
21323 /* ./parser//parser_prod.nit:3975 */
21324 ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[4]) = fra.me.REG[2];
21325 /* ./parser//parser_prod.nit:3976 */
21326 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21327 if (UNTAG_Bool(REGB0)) {
21328 } else {
21329 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21330 if (UNTAG_Bool(REGB1)) {
21331 REGB1 = TAG_Bool(false);
21332 REGB0 = REGB1;
21333 } else {
21334 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21335 REGB0 = REGB1;
21336 }
21337 }
21338 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21339 if (UNTAG_Bool(REGB0)) {
21340 /* ./parser//parser_prod.nit:3977 */
21341 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21342 if (UNTAG_Bool(REGB0)) {
21343 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3977);
21344 }
21345 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
21346 }
21347 /* ./parser//parser_prod.nit:3979 */
21348 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[3];
21349 /* ./parser//parser_prod.nit:3980 */
21350 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21351 if (UNTAG_Bool(REGB0)) {
21352 } else {
21353 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21354 if (UNTAG_Bool(REGB1)) {
21355 REGB1 = TAG_Bool(false);
21356 REGB0 = REGB1;
21357 } else {
21358 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21359 REGB0 = REGB1;
21360 }
21361 }
21362 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21363 if (UNTAG_Bool(REGB0)) {
21364 /* ./parser//parser_prod.nit:3981 */
21365 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21366 if (UNTAG_Bool(REGB0)) {
21367 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3981);
21368 }
21369 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
21370 }
21371 stack_frame_head = fra.me.prev;
21372 init_table[itpos128] = 1;
21373 return;
21374 }
21375 void parser___parser_prod___ALoopExpr___replace_child(val_t p0, val_t p1, val_t p2){
21376 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21377 val_t REGB0;
21378 val_t REGB1;
21379 val_t tmp;
21380 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21381 fra.me.file = LOCATE_parser___parser_prod;
21382 fra.me.line = 3985;
21383 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___replace_child;
21384 fra.me.has_broke = 0;
21385 fra.me.REG_size = 4;
21386 fra.me.REG[0] = NIT_NULL;
21387 fra.me.REG[1] = NIT_NULL;
21388 fra.me.REG[2] = NIT_NULL;
21389 fra.me.REG[3] = NIT_NULL;
21390 fra.me.REG[0] = p0;
21391 fra.me.REG[1] = p1;
21392 fra.me.REG[2] = p2;
21393 /* ./parser//parser_prod.nit:3987 */
21394 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0])!=NIT_NULL);
21395 if (UNTAG_Bool(REGB0)) {
21396 } else {
21397 nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser___parser_prod, 3987);
21398 }
21399 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]);
21400 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21401 if (UNTAG_Bool(REGB0)) {
21402 } else {
21403 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21404 REGB0 = REGB1;
21405 }
21406 if (UNTAG_Bool(REGB0)) {
21407 /* ./parser//parser_prod.nit:3988 */
21408 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21409 if (UNTAG_Bool(REGB0)) {
21410 } else {
21411 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21412 if (UNTAG_Bool(REGB1)) {
21413 REGB1 = TAG_Bool(false);
21414 REGB0 = REGB1;
21415 } else {
21416 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21417 REGB0 = REGB1;
21418 }
21419 }
21420 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21421 if (UNTAG_Bool(REGB0)) {
21422 /* ./parser//parser_prod.nit:3989 */
21423 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21424 if (UNTAG_Bool(REGB0)) {
21425 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3989);
21426 }
21427 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21428 /* ./parser//parser_prod.nit:3990 */
21429 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*/;
21430 if (UNTAG_Bool(REGB0)) {
21431 } else {
21432 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3990);
21433 }
21434 /* ./parser//parser_prod.nit:3991 */
21435 ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]) = fra.me.REG[2];
21436 } else {
21437 /* ./parser//parser_prod.nit:3993 */
21438 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3993);
21439 }
21440 /* ./parser//parser_prod.nit:3995 */
21441 goto label1;
21442 }
21443 /* ./parser//parser_prod.nit:3997 */
21444 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]);
21445 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21446 if (UNTAG_Bool(REGB0)) {
21447 } else {
21448 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21449 if (UNTAG_Bool(REGB1)) {
21450 REGB1 = TAG_Bool(false);
21451 REGB0 = REGB1;
21452 } else {
21453 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21454 REGB0 = REGB1;
21455 }
21456 }
21457 if (UNTAG_Bool(REGB0)) {
21458 /* ./parser//parser_prod.nit:3998 */
21459 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21460 if (UNTAG_Bool(REGB0)) {
21461 } else {
21462 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21463 if (UNTAG_Bool(REGB1)) {
21464 REGB1 = TAG_Bool(false);
21465 REGB0 = REGB1;
21466 } else {
21467 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21468 REGB0 = REGB1;
21469 }
21470 }
21471 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21472 if (UNTAG_Bool(REGB0)) {
21473 /* ./parser//parser_prod.nit:3999 */
21474 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21475 if (UNTAG_Bool(REGB0)) {
21476 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3999);
21477 }
21478 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21479 /* ./parser//parser_prod.nit:4000 */
21480 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21481 if (UNTAG_Bool(REGB0)) {
21482 } else {
21483 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4000);
21484 }
21485 /* ./parser//parser_prod.nit:4001 */
21486 ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
21487 } else {
21488 /* ./parser//parser_prod.nit:4003 */
21489 ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = NIT_NULL;
21490 }
21491 /* ./parser//parser_prod.nit:4005 */
21492 goto label1;
21493 }
21494 /* ./parser//parser_prod.nit:4007 */
21495 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
21496 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21497 if (UNTAG_Bool(REGB0)) {
21498 } else {
21499 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21500 if (UNTAG_Bool(REGB1)) {
21501 REGB1 = TAG_Bool(false);
21502 REGB0 = REGB1;
21503 } else {
21504 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21505 REGB0 = REGB1;
21506 }
21507 }
21508 if (UNTAG_Bool(REGB0)) {
21509 /* ./parser//parser_prod.nit:4008 */
21510 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21511 if (UNTAG_Bool(REGB0)) {
21512 } else {
21513 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21514 if (UNTAG_Bool(REGB1)) {
21515 REGB1 = TAG_Bool(false);
21516 REGB0 = REGB1;
21517 } else {
21518 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21519 REGB0 = REGB1;
21520 }
21521 }
21522 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21523 if (UNTAG_Bool(REGB0)) {
21524 /* ./parser//parser_prod.nit:4009 */
21525 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21526 if (UNTAG_Bool(REGB0)) {
21527 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4009);
21528 }
21529 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21530 /* ./parser//parser_prod.nit:4010 */
21531 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*/;
21532 if (UNTAG_Bool(REGB0)) {
21533 } else {
21534 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4010);
21535 }
21536 /* ./parser//parser_prod.nit:4011 */
21537 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
21538 } else {
21539 /* ./parser//parser_prod.nit:4013 */
21540 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
21541 }
21542 /* ./parser//parser_prod.nit:4015 */
21543 goto label1;
21544 }
21545 label1: while(0);
21546 stack_frame_head = fra.me.prev;
21547 return;
21548 }
21549 void parser___parser_prod___ALoopExpr___visit_all(val_t p0, val_t p1){
21550 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21551 val_t REGB0;
21552 val_t REGB1;
21553 val_t tmp;
21554 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21555 fra.me.file = LOCATE_parser___parser_prod;
21556 fra.me.line = 4019;
21557 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___visit_all;
21558 fra.me.has_broke = 0;
21559 fra.me.REG_size = 4;
21560 fra.me.REG[0] = NIT_NULL;
21561 fra.me.REG[1] = NIT_NULL;
21562 fra.me.REG[2] = NIT_NULL;
21563 fra.me.REG[3] = NIT_NULL;
21564 fra.me.REG[0] = p0;
21565 fra.me.REG[1] = p1;
21566 /* ./parser//parser_prod.nit:4019 */
21567 fra.me.REG[2] = fra.me.REG[0];
21568 /* ./parser//parser_prod.nit:4021 */
21569 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[2])!=NIT_NULL);
21570 if (UNTAG_Bool(REGB0)) {
21571 } else {
21572 nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser___parser_prod, 4021);
21573 }
21574 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[2]);
21575 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21576 /* ./parser//parser_prod.nit:4022 */
21577 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[2]);
21578 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21579 if (UNTAG_Bool(REGB0)) {
21580 } else {
21581 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21582 if (UNTAG_Bool(REGB1)) {
21583 REGB1 = TAG_Bool(false);
21584 REGB0 = REGB1;
21585 } else {
21586 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21587 REGB0 = REGB1;
21588 }
21589 }
21590 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21591 if (UNTAG_Bool(REGB0)) {
21592 /* ./parser//parser_prod.nit:4023 */
21593 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[2]);
21594 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*/;
21595 if (UNTAG_Bool(REGB0)) {
21596 } else {
21597 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4023);
21598 }
21599 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21600 }
21601 /* ./parser//parser_prod.nit:4025 */
21602 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
21603 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21604 if (UNTAG_Bool(REGB0)) {
21605 } else {
21606 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21607 if (UNTAG_Bool(REGB1)) {
21608 REGB1 = TAG_Bool(false);
21609 REGB0 = REGB1;
21610 } else {
21611 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21612 REGB0 = REGB1;
21613 }
21614 }
21615 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21616 if (UNTAG_Bool(REGB0)) {
21617 /* ./parser//parser_prod.nit:4026 */
21618 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
21619 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*/;
21620 if (UNTAG_Bool(REGB0)) {
21621 } else {
21622 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4026);
21623 }
21624 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21625 }
21626 stack_frame_head = fra.me.prev;
21627 return;
21628 }
21629 void parser___parser_prod___AForExpr___empty_init(val_t p0, int* init_table){
21630 int itpos129 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AForExpr].i;
21631 struct {struct stack_frame_t me;} fra;
21632 val_t tmp;
21633 if (init_table[itpos129]) return;
21634 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21635 fra.me.file = LOCATE_parser___parser_prod;
21636 fra.me.line = 4031;
21637 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___empty_init;
21638 fra.me.has_broke = 0;
21639 fra.me.REG_size = 1;
21640 fra.me.REG[0] = NIT_NULL;
21641 fra.me.REG[0] = p0;
21642 stack_frame_head = fra.me.prev;
21643 init_table[itpos129] = 1;
21644 return;
21645 }
21646 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){
21647 int itpos130 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AForExpr].i;
21648 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
21649 val_t REGB0;
21650 val_t REGB1;
21651 val_t tmp;
21652 if (init_table[itpos130]) return;
21653 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21654 fra.me.file = LOCATE_parser___parser_prod;
21655 fra.me.line = 4033;
21656 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___init_aforexpr;
21657 fra.me.has_broke = 0;
21658 fra.me.REG_size = 8;
21659 fra.me.REG[0] = NIT_NULL;
21660 fra.me.REG[1] = NIT_NULL;
21661 fra.me.REG[2] = NIT_NULL;
21662 fra.me.REG[3] = NIT_NULL;
21663 fra.me.REG[4] = NIT_NULL;
21664 fra.me.REG[5] = NIT_NULL;
21665 fra.me.REG[6] = NIT_NULL;
21666 fra.me.REG[7] = NIT_NULL;
21667 fra.me.REG[0] = p0;
21668 fra.me.REG[1] = p1;
21669 fra.me.REG[2] = p2;
21670 fra.me.REG[3] = p3;
21671 fra.me.REG[4] = p4;
21672 fra.me.REG[5] = p5;
21673 fra.me.REG[6] = p6;
21674 /* ./parser//parser_prod.nit:4033 */
21675 fra.me.REG[7] = fra.me.REG[0];
21676 /* ./parser//parser_prod.nit:4042 */
21677 CALL_parser___parser_prod___AForExpr___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
21678 /* ./parser//parser_prod.nit:4043 */
21679 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21680 if (UNTAG_Bool(REGB0)) {
21681 } else {
21682 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4043);
21683 }
21684 ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[7]) = fra.me.REG[1];
21685 /* ./parser//parser_prod.nit:4044 */
21686 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21687 if (UNTAG_Bool(REGB0)) {
21688 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4044);
21689 }
21690 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
21691 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));
21692 /* ./parser//parser_prod.nit:4050 */
21693 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
21694 if (UNTAG_Bool(REGB0)) {
21695 } else {
21696 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4050);
21697 }
21698 ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[7]) = fra.me.REG[3];
21699 /* ./parser//parser_prod.nit:4051 */
21700 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21701 if (UNTAG_Bool(REGB0)) {
21702 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4051);
21703 }
21704 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
21705 /* ./parser//parser_prod.nit:4052 */
21706 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
21707 if (UNTAG_Bool(REGB0)) {
21708 } else {
21709 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4052);
21710 }
21711 ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[7]) = fra.me.REG[4];
21712 /* ./parser//parser_prod.nit:4053 */
21713 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
21714 if (UNTAG_Bool(REGB0)) {
21715 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4053);
21716 }
21717 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
21718 /* ./parser//parser_prod.nit:4054 */
21719 ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[7]) = fra.me.REG[5];
21720 /* ./parser//parser_prod.nit:4055 */
21721 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
21722 if (UNTAG_Bool(REGB0)) {
21723 } else {
21724 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
21725 if (UNTAG_Bool(REGB1)) {
21726 REGB1 = TAG_Bool(false);
21727 REGB0 = REGB1;
21728 } else {
21729 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
21730 REGB0 = REGB1;
21731 }
21732 }
21733 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21734 if (UNTAG_Bool(REGB0)) {
21735 /* ./parser//parser_prod.nit:4056 */
21736 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
21737 if (UNTAG_Bool(REGB0)) {
21738 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4056);
21739 }
21740 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
21741 }
21742 /* ./parser//parser_prod.nit:4058 */
21743 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[7]) = fra.me.REG[6];
21744 /* ./parser//parser_prod.nit:4059 */
21745 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
21746 if (UNTAG_Bool(REGB0)) {
21747 } else {
21748 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
21749 if (UNTAG_Bool(REGB1)) {
21750 REGB1 = TAG_Bool(false);
21751 REGB0 = REGB1;
21752 } else {
21753 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
21754 REGB0 = REGB1;
21755 }
21756 }
21757 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21758 if (UNTAG_Bool(REGB0)) {
21759 /* ./parser//parser_prod.nit:4060 */
21760 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
21761 if (UNTAG_Bool(REGB0)) {
21762 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4060);
21763 }
21764 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
21765 }
21766 stack_frame_head = fra.me.prev;
21767 init_table[itpos130] = 1;
21768 return;
21769 }
21770 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){
21771 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21772 val_t REGB0;
21773 fun_t CREG[1];
21774 val_t tmp;
21775 /* ./parser//parser_prod.nit:4045 */
21776 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21777 fra.me.file = LOCATE_parser___parser_prod;
21778 fra.me.line = 0;
21779 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___init_aforexpr;
21780 fra.me.has_broke = 0;
21781 fra.me.REG_size = 2;
21782 fra.me.REG[0] = NIT_NULL;
21783 fra.me.REG[1] = NIT_NULL;
21784 fra.me.closure_ctx = closctx_param;
21785 fra.me.closure_funs = CREG;
21786 fra.me.REG[0] = p0;
21787 CREG[0] = clos_fun0;
21788 /* ./parser//parser_prod.nit:4046 */
21789 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
21790 if (UNTAG_Bool(REGB0)) {
21791 } else {
21792 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4046);
21793 }
21794 /* ./parser//parser_prod.nit:4047 */
21795 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(closctx->REG[7])!=NIT_NULL);
21796 if (UNTAG_Bool(REGB0)) {
21797 } else {
21798 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4047);
21799 }
21800 fra.me.REG[1] = ATTR_parser___parser_nodes___AForExpr____n_ids(closctx->REG[7]);
21801 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21802 /* ./parser//parser_prod.nit:4048 */
21803 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[7]);
21804 stack_frame_head = fra.me.prev;
21805 return;
21806 }
21807 void parser___parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p2){
21808 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21809 val_t REGB0;
21810 val_t REGB1;
21811 val_t REGB2;
21812 val_t REGB3;
21813 val_t REGB4;
21814 val_t tmp;
21815 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21816 fra.me.file = LOCATE_parser___parser_prod;
21817 fra.me.line = 4064;
21818 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___replace_child;
21819 fra.me.has_broke = 0;
21820 fra.me.REG_size = 4;
21821 fra.me.REG[0] = NIT_NULL;
21822 fra.me.REG[1] = NIT_NULL;
21823 fra.me.REG[2] = NIT_NULL;
21824 fra.me.REG[3] = NIT_NULL;
21825 fra.me.REG[0] = p0;
21826 fra.me.REG[1] = p1;
21827 fra.me.REG[2] = p2;
21828 /* ./parser//parser_prod.nit:4066 */
21829 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0])!=NIT_NULL);
21830 if (UNTAG_Bool(REGB0)) {
21831 } else {
21832 nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser___parser_prod, 4066);
21833 }
21834 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]);
21835 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21836 if (UNTAG_Bool(REGB0)) {
21837 } else {
21838 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21839 REGB0 = REGB1;
21840 }
21841 if (UNTAG_Bool(REGB0)) {
21842 /* ./parser//parser_prod.nit:4067 */
21843 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21844 if (UNTAG_Bool(REGB0)) {
21845 } else {
21846 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21847 if (UNTAG_Bool(REGB1)) {
21848 REGB1 = TAG_Bool(false);
21849 REGB0 = REGB1;
21850 } else {
21851 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21852 REGB0 = REGB1;
21853 }
21854 }
21855 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21856 if (UNTAG_Bool(REGB0)) {
21857 /* ./parser//parser_prod.nit:4068 */
21858 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21859 if (UNTAG_Bool(REGB0)) {
21860 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4068);
21861 }
21862 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21863 /* ./parser//parser_prod.nit:4069 */
21864 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*/;
21865 if (UNTAG_Bool(REGB0)) {
21866 } else {
21867 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4069);
21868 }
21869 /* ./parser//parser_prod.nit:4070 */
21870 ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]) = fra.me.REG[2];
21871 } else {
21872 /* ./parser//parser_prod.nit:4072 */
21873 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4072);
21874 }
21875 /* ./parser//parser_prod.nit:4074 */
21876 goto label1;
21877 }
21878 /* ./parser//parser_prod.nit:4076 */
21879 REGB0 = TAG_Int(0);
21880 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
21881 if (UNTAG_Bool(REGB1)) {
21882 } else {
21883 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4076);
21884 }
21885 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
21886 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
21887 /* ./../lib/standard//kernel.nit:352 */
21888 while(1) {
21889 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
21890 if (UNTAG_Bool(REGB2)) {
21891 } else {
21892 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
21893 }
21894 /* ./../lib/standard//kernel.nit:232 */
21895 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
21896 /* ./../lib/standard//kernel.nit:352 */
21897 if (UNTAG_Bool(REGB2)) {
21898 /* ./parser//parser_prod.nit:4076 */
21899 REGB2 = REGB0;
21900 /* ./parser//parser_prod.nit:4077 */
21901 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
21902 if (UNTAG_Bool(REGB3)) {
21903 } else {
21904 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4077);
21905 }
21906 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
21907 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
21908 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21909 if (UNTAG_Bool(REGB3)) {
21910 } else {
21911 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21912 if (UNTAG_Bool(REGB4)) {
21913 REGB4 = TAG_Bool(false);
21914 REGB3 = REGB4;
21915 } else {
21916 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21917 REGB3 = REGB4;
21918 }
21919 }
21920 if (UNTAG_Bool(REGB3)) {
21921 /* ./parser//parser_prod.nit:4078 */
21922 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21923 if (UNTAG_Bool(REGB3)) {
21924 } else {
21925 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21926 if (UNTAG_Bool(REGB4)) {
21927 REGB4 = TAG_Bool(false);
21928 REGB3 = REGB4;
21929 } else {
21930 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21931 REGB3 = REGB4;
21932 }
21933 }
21934 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
21935 if (UNTAG_Bool(REGB3)) {
21936 /* ./parser//parser_prod.nit:4079 */
21937 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*/;
21938 if (UNTAG_Bool(REGB3)) {
21939 } else {
21940 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4079);
21941 }
21942 /* ./parser//parser_prod.nit:4080 */
21943 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
21944 if (UNTAG_Bool(REGB3)) {
21945 } else {
21946 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4080);
21947 }
21948 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
21949 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
21950 /* ./parser//parser_prod.nit:4081 */
21951 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21952 if (UNTAG_Bool(REGB3)) {
21953 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4081);
21954 }
21955 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21956 } else {
21957 /* ./parser//parser_prod.nit:4083 */
21958 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
21959 if (UNTAG_Bool(REGB3)) {
21960 } else {
21961 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4083);
21962 }
21963 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
21964 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
21965 }
21966 /* ./parser//parser_prod.nit:4085 */
21967 goto label1;
21968 }
21969 /* ./../lib/standard//kernel.nit:354 */
21970 REGB2 = TAG_Int(1);
21971 /* ./../lib/standard//kernel.nit:235 */
21972 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
21973 /* ./../lib/standard//kernel.nit:354 */
21974 REGB0 = REGB2;
21975 } else {
21976 /* ./../lib/standard//kernel.nit:352 */
21977 goto label2;
21978 }
21979 }
21980 label2: while(0);
21981 /* ./parser//parser_prod.nit:4088 */
21982 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21983 if (UNTAG_Bool(REGB0)) {
21984 } else {
21985 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4088);
21986 }
21987 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0]);
21988 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21989 if (UNTAG_Bool(REGB0)) {
21990 } else {
21991 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21992 REGB0 = REGB1;
21993 }
21994 if (UNTAG_Bool(REGB0)) {
21995 /* ./parser//parser_prod.nit:4089 */
21996 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21997 if (UNTAG_Bool(REGB0)) {
21998 } else {
21999 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22000 if (UNTAG_Bool(REGB1)) {
22001 REGB1 = TAG_Bool(false);
22002 REGB0 = REGB1;
22003 } else {
22004 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22005 REGB0 = REGB1;
22006 }
22007 }
22008 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22009 if (UNTAG_Bool(REGB0)) {
22010 /* ./parser//parser_prod.nit:4090 */
22011 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22012 if (UNTAG_Bool(REGB0)) {
22013 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4090);
22014 }
22015 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22016 /* ./parser//parser_prod.nit:4091 */
22017 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22018 if (UNTAG_Bool(REGB0)) {
22019 } else {
22020 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4091);
22021 }
22022 /* ./parser//parser_prod.nit:4092 */
22023 ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22024 } else {
22025 /* ./parser//parser_prod.nit:4094 */
22026 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4094);
22027 }
22028 /* ./parser//parser_prod.nit:4096 */
22029 goto label1;
22030 }
22031 /* ./parser//parser_prod.nit:4098 */
22032 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
22033 if (UNTAG_Bool(REGB0)) {
22034 } else {
22035 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4098);
22036 }
22037 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]);
22038 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22039 if (UNTAG_Bool(REGB0)) {
22040 } else {
22041 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22042 REGB0 = REGB1;
22043 }
22044 if (UNTAG_Bool(REGB0)) {
22045 /* ./parser//parser_prod.nit:4099 */
22046 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22047 if (UNTAG_Bool(REGB0)) {
22048 } else {
22049 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22050 if (UNTAG_Bool(REGB1)) {
22051 REGB1 = TAG_Bool(false);
22052 REGB0 = REGB1;
22053 } else {
22054 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22055 REGB0 = REGB1;
22056 }
22057 }
22058 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22059 if (UNTAG_Bool(REGB0)) {
22060 /* ./parser//parser_prod.nit:4100 */
22061 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22062 if (UNTAG_Bool(REGB0)) {
22063 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4100);
22064 }
22065 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22066 /* ./parser//parser_prod.nit:4101 */
22067 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*/;
22068 if (UNTAG_Bool(REGB0)) {
22069 } else {
22070 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4101);
22071 }
22072 /* ./parser//parser_prod.nit:4102 */
22073 ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
22074 } else {
22075 /* ./parser//parser_prod.nit:4104 */
22076 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4104);
22077 }
22078 /* ./parser//parser_prod.nit:4106 */
22079 goto label1;
22080 }
22081 /* ./parser//parser_prod.nit:4108 */
22082 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]);
22083 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22084 if (UNTAG_Bool(REGB0)) {
22085 } else {
22086 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22087 if (UNTAG_Bool(REGB1)) {
22088 REGB1 = TAG_Bool(false);
22089 REGB0 = REGB1;
22090 } else {
22091 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22092 REGB0 = REGB1;
22093 }
22094 }
22095 if (UNTAG_Bool(REGB0)) {
22096 /* ./parser//parser_prod.nit:4109 */
22097 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22098 if (UNTAG_Bool(REGB0)) {
22099 } else {
22100 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22101 if (UNTAG_Bool(REGB1)) {
22102 REGB1 = TAG_Bool(false);
22103 REGB0 = REGB1;
22104 } else {
22105 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22106 REGB0 = REGB1;
22107 }
22108 }
22109 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22110 if (UNTAG_Bool(REGB0)) {
22111 /* ./parser//parser_prod.nit:4110 */
22112 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22113 if (UNTAG_Bool(REGB0)) {
22114 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4110);
22115 }
22116 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22117 /* ./parser//parser_prod.nit:4111 */
22118 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22119 if (UNTAG_Bool(REGB0)) {
22120 } else {
22121 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4111);
22122 }
22123 /* ./parser//parser_prod.nit:4112 */
22124 ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
22125 } else {
22126 /* ./parser//parser_prod.nit:4114 */
22127 ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]) = NIT_NULL;
22128 }
22129 /* ./parser//parser_prod.nit:4116 */
22130 goto label1;
22131 }
22132 /* ./parser//parser_prod.nit:4118 */
22133 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
22134 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22135 if (UNTAG_Bool(REGB0)) {
22136 } else {
22137 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22138 if (UNTAG_Bool(REGB1)) {
22139 REGB1 = TAG_Bool(false);
22140 REGB0 = REGB1;
22141 } else {
22142 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22143 REGB0 = REGB1;
22144 }
22145 }
22146 if (UNTAG_Bool(REGB0)) {
22147 /* ./parser//parser_prod.nit:4119 */
22148 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22149 if (UNTAG_Bool(REGB0)) {
22150 } else {
22151 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22152 if (UNTAG_Bool(REGB1)) {
22153 REGB1 = TAG_Bool(false);
22154 REGB0 = REGB1;
22155 } else {
22156 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22157 REGB0 = REGB1;
22158 }
22159 }
22160 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22161 if (UNTAG_Bool(REGB0)) {
22162 /* ./parser//parser_prod.nit:4120 */
22163 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22164 if (UNTAG_Bool(REGB0)) {
22165 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4120);
22166 }
22167 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22168 /* ./parser//parser_prod.nit:4121 */
22169 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*/;
22170 if (UNTAG_Bool(REGB0)) {
22171 } else {
22172 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4121);
22173 }
22174 /* ./parser//parser_prod.nit:4122 */
22175 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
22176 } else {
22177 /* ./parser//parser_prod.nit:4124 */
22178 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
22179 }
22180 /* ./parser//parser_prod.nit:4126 */
22181 goto label1;
22182 }
22183 label1: while(0);
22184 stack_frame_head = fra.me.prev;
22185 return;
22186 }
22187 void parser___parser_prod___AForExpr___visit_all(val_t p0, val_t p1){
22188 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22189 val_t REGB0;
22190 val_t REGB1;
22191 val_t tmp;
22192 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22193 fra.me.file = LOCATE_parser___parser_prod;
22194 fra.me.line = 4130;
22195 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___visit_all;
22196 fra.me.has_broke = 0;
22197 fra.me.REG_size = 4;
22198 fra.me.REG[0] = NIT_NULL;
22199 fra.me.REG[1] = NIT_NULL;
22200 fra.me.REG[2] = NIT_NULL;
22201 fra.me.REG[3] = NIT_NULL;
22202 fra.me.REG[0] = p0;
22203 fra.me.REG[1] = p1;
22204 /* ./parser//parser_prod.nit:4130 */
22205 fra.me.REG[2] = fra.me.REG[0];
22206 /* ./parser//parser_prod.nit:4132 */
22207 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[2])!=NIT_NULL);
22208 if (UNTAG_Bool(REGB0)) {
22209 } else {
22210 nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser___parser_prod, 4132);
22211 }
22212 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[2]);
22213 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22214 /* ./parser//parser_prod.nit:4133 */
22215 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[2])!=NIT_NULL);
22216 if (UNTAG_Bool(REGB0)) {
22217 } else {
22218 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4133);
22219 }
22220 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[2]);
22221 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));
22222 /* ./parser//parser_prod.nit:4136 */
22223 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
22224 if (UNTAG_Bool(REGB0)) {
22225 } else {
22226 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4136);
22227 }
22228 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[2]);
22229 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22230 /* ./parser//parser_prod.nit:4137 */
22231 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
22232 if (UNTAG_Bool(REGB0)) {
22233 } else {
22234 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4137);
22235 }
22236 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[2]);
22237 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22238 /* ./parser//parser_prod.nit:4138 */
22239 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[2]);
22240 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22241 if (UNTAG_Bool(REGB0)) {
22242 } else {
22243 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22244 if (UNTAG_Bool(REGB1)) {
22245 REGB1 = TAG_Bool(false);
22246 REGB0 = REGB1;
22247 } else {
22248 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22249 REGB0 = REGB1;
22250 }
22251 }
22252 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22253 if (UNTAG_Bool(REGB0)) {
22254 /* ./parser//parser_prod.nit:4139 */
22255 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[2]);
22256 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*/;
22257 if (UNTAG_Bool(REGB0)) {
22258 } else {
22259 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4139);
22260 }
22261 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22262 }
22263 /* ./parser//parser_prod.nit:4141 */
22264 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
22265 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22266 if (UNTAG_Bool(REGB0)) {
22267 } else {
22268 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22269 if (UNTAG_Bool(REGB1)) {
22270 REGB1 = TAG_Bool(false);
22271 REGB0 = REGB1;
22272 } else {
22273 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22274 REGB0 = REGB1;
22275 }
22276 }
22277 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22278 if (UNTAG_Bool(REGB0)) {
22279 /* ./parser//parser_prod.nit:4142 */
22280 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
22281 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*/;
22282 if (UNTAG_Bool(REGB0)) {
22283 } else {
22284 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4142);
22285 }
22286 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22287 }
22288 stack_frame_head = fra.me.prev;
22289 return;
22290 }
22291 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){
22292 struct {struct stack_frame_t me;} fra;
22293 fun_t CREG[1];
22294 val_t tmp;
22295 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22296 fra.me.file = LOCATE_parser___parser_prod;
22297 fra.me.line = 0;
22298 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___visit_all;
22299 fra.me.has_broke = 0;
22300 fra.me.REG_size = 1;
22301 fra.me.REG[0] = NIT_NULL;
22302 fra.me.closure_ctx = closctx_param;
22303 fra.me.closure_funs = CREG;
22304 fra.me.REG[0] = p0;
22305 CREG[0] = clos_fun0;
22306 /* ./parser//parser_prod.nit:4134 */
22307 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
22308 stack_frame_head = fra.me.prev;
22309 return;
22310 }
22311 void parser___parser_prod___AAssertExpr___empty_init(val_t p0, int* init_table){
22312 int itpos131 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssertExpr].i;
22313 struct {struct stack_frame_t me;} fra;
22314 val_t tmp;
22315 if (init_table[itpos131]) return;
22316 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22317 fra.me.file = LOCATE_parser___parser_prod;
22318 fra.me.line = 4147;
22319 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___empty_init;
22320 fra.me.has_broke = 0;
22321 fra.me.REG_size = 1;
22322 fra.me.REG[0] = NIT_NULL;
22323 fra.me.REG[0] = p0;
22324 stack_frame_head = fra.me.prev;
22325 init_table[itpos131] = 1;
22326 return;
22327 }
22328 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){
22329 int itpos132 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssertExpr].i;
22330 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
22331 val_t REGB0;
22332 val_t REGB1;
22333 val_t tmp;
22334 if (init_table[itpos132]) return;
22335 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22336 fra.me.file = LOCATE_parser___parser_prod;
22337 fra.me.line = 4149;
22338 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___init_aassertexpr;
22339 fra.me.has_broke = 0;
22340 fra.me.REG_size = 6;
22341 fra.me.REG[0] = NIT_NULL;
22342 fra.me.REG[1] = NIT_NULL;
22343 fra.me.REG[2] = NIT_NULL;
22344 fra.me.REG[3] = NIT_NULL;
22345 fra.me.REG[4] = NIT_NULL;
22346 fra.me.REG[5] = NIT_NULL;
22347 fra.me.REG[0] = p0;
22348 fra.me.REG[1] = p1;
22349 fra.me.REG[2] = p2;
22350 fra.me.REG[3] = p3;
22351 fra.me.REG[4] = p4;
22352 /* ./parser//parser_prod.nit:4149 */
22353 fra.me.REG[5] = fra.me.REG[0];
22354 /* ./parser//parser_prod.nit:4156 */
22355 CALL_parser___parser_prod___AAssertExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
22356 /* ./parser//parser_prod.nit:4157 */
22357 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22358 if (UNTAG_Bool(REGB0)) {
22359 } else {
22360 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4157);
22361 }
22362 ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[5]) = fra.me.REG[1];
22363 /* ./parser//parser_prod.nit:4158 */
22364 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22365 if (UNTAG_Bool(REGB0)) {
22366 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4158);
22367 }
22368 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
22369 /* ./parser//parser_prod.nit:4159 */
22370 ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
22371 /* ./parser//parser_prod.nit:4160 */
22372 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22373 if (UNTAG_Bool(REGB0)) {
22374 } else {
22375 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22376 if (UNTAG_Bool(REGB1)) {
22377 REGB1 = TAG_Bool(false);
22378 REGB0 = REGB1;
22379 } else {
22380 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22381 REGB0 = REGB1;
22382 }
22383 }
22384 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22385 if (UNTAG_Bool(REGB0)) {
22386 /* ./parser//parser_prod.nit:4161 */
22387 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22388 if (UNTAG_Bool(REGB0)) {
22389 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4161);
22390 }
22391 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
22392 }
22393 /* ./parser//parser_prod.nit:4163 */
22394 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
22395 if (UNTAG_Bool(REGB0)) {
22396 } else {
22397 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4163);
22398 }
22399 ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[5]) = fra.me.REG[3];
22400 /* ./parser//parser_prod.nit:4164 */
22401 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22402 if (UNTAG_Bool(REGB0)) {
22403 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4164);
22404 }
22405 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
22406 /* ./parser//parser_prod.nit:4165 */
22407 ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[5]) = fra.me.REG[4];
22408 /* ./parser//parser_prod.nit:4166 */
22409 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
22410 if (UNTAG_Bool(REGB0)) {
22411 } else {
22412 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
22413 if (UNTAG_Bool(REGB1)) {
22414 REGB1 = TAG_Bool(false);
22415 REGB0 = REGB1;
22416 } else {
22417 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
22418 REGB0 = REGB1;
22419 }
22420 }
22421 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22422 if (UNTAG_Bool(REGB0)) {
22423 /* ./parser//parser_prod.nit:4167 */
22424 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
22425 if (UNTAG_Bool(REGB0)) {
22426 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4167);
22427 }
22428 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
22429 }
22430 stack_frame_head = fra.me.prev;
22431 init_table[itpos132] = 1;
22432 return;
22433 }
22434 void parser___parser_prod___AAssertExpr___replace_child(val_t p0, val_t p1, val_t p2){
22435 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22436 val_t REGB0;
22437 val_t REGB1;
22438 val_t tmp;
22439 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22440 fra.me.file = LOCATE_parser___parser_prod;
22441 fra.me.line = 4171;
22442 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___replace_child;
22443 fra.me.has_broke = 0;
22444 fra.me.REG_size = 4;
22445 fra.me.REG[0] = NIT_NULL;
22446 fra.me.REG[1] = NIT_NULL;
22447 fra.me.REG[2] = NIT_NULL;
22448 fra.me.REG[3] = NIT_NULL;
22449 fra.me.REG[0] = p0;
22450 fra.me.REG[1] = p1;
22451 fra.me.REG[2] = p2;
22452 /* ./parser//parser_prod.nit:4173 */
22453 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0])!=NIT_NULL);
22454 if (UNTAG_Bool(REGB0)) {
22455 } else {
22456 nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser___parser_prod, 4173);
22457 }
22458 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]);
22459 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22460 if (UNTAG_Bool(REGB0)) {
22461 } else {
22462 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22463 REGB0 = REGB1;
22464 }
22465 if (UNTAG_Bool(REGB0)) {
22466 /* ./parser//parser_prod.nit:4174 */
22467 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22468 if (UNTAG_Bool(REGB0)) {
22469 } else {
22470 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22471 if (UNTAG_Bool(REGB1)) {
22472 REGB1 = TAG_Bool(false);
22473 REGB0 = REGB1;
22474 } else {
22475 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22476 REGB0 = REGB1;
22477 }
22478 }
22479 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22480 if (UNTAG_Bool(REGB0)) {
22481 /* ./parser//parser_prod.nit:4175 */
22482 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22483 if (UNTAG_Bool(REGB0)) {
22484 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4175);
22485 }
22486 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22487 /* ./parser//parser_prod.nit:4176 */
22488 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*/;
22489 if (UNTAG_Bool(REGB0)) {
22490 } else {
22491 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4176);
22492 }
22493 /* ./parser//parser_prod.nit:4177 */
22494 ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]) = fra.me.REG[2];
22495 } else {
22496 /* ./parser//parser_prod.nit:4179 */
22497 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4179);
22498 }
22499 /* ./parser//parser_prod.nit:4181 */
22500 goto label1;
22501 }
22502 /* ./parser//parser_prod.nit:4183 */
22503 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]);
22504 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22505 if (UNTAG_Bool(REGB0)) {
22506 } else {
22507 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22508 if (UNTAG_Bool(REGB1)) {
22509 REGB1 = TAG_Bool(false);
22510 REGB0 = REGB1;
22511 } else {
22512 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22513 REGB0 = REGB1;
22514 }
22515 }
22516 if (UNTAG_Bool(REGB0)) {
22517 /* ./parser//parser_prod.nit:4184 */
22518 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22519 if (UNTAG_Bool(REGB0)) {
22520 } else {
22521 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22522 if (UNTAG_Bool(REGB1)) {
22523 REGB1 = TAG_Bool(false);
22524 REGB0 = REGB1;
22525 } else {
22526 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22527 REGB0 = REGB1;
22528 }
22529 }
22530 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22531 if (UNTAG_Bool(REGB0)) {
22532 /* ./parser//parser_prod.nit:4185 */
22533 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22534 if (UNTAG_Bool(REGB0)) {
22535 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4185);
22536 }
22537 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22538 /* ./parser//parser_prod.nit:4186 */
22539 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*/;
22540 if (UNTAG_Bool(REGB0)) {
22541 } else {
22542 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4186);
22543 }
22544 /* ./parser//parser_prod.nit:4187 */
22545 ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
22546 } else {
22547 /* ./parser//parser_prod.nit:4189 */
22548 ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = NIT_NULL;
22549 }
22550 /* ./parser//parser_prod.nit:4191 */
22551 goto label1;
22552 }
22553 /* ./parser//parser_prod.nit:4193 */
22554 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22555 if (UNTAG_Bool(REGB0)) {
22556 } else {
22557 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4193);
22558 }
22559 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]);
22560 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22561 if (UNTAG_Bool(REGB0)) {
22562 } else {
22563 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22564 REGB0 = REGB1;
22565 }
22566 if (UNTAG_Bool(REGB0)) {
22567 /* ./parser//parser_prod.nit:4194 */
22568 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22569 if (UNTAG_Bool(REGB0)) {
22570 } else {
22571 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22572 if (UNTAG_Bool(REGB1)) {
22573 REGB1 = TAG_Bool(false);
22574 REGB0 = REGB1;
22575 } else {
22576 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22577 REGB0 = REGB1;
22578 }
22579 }
22580 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22581 if (UNTAG_Bool(REGB0)) {
22582 /* ./parser//parser_prod.nit:4195 */
22583 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22584 if (UNTAG_Bool(REGB0)) {
22585 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4195);
22586 }
22587 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22588 /* ./parser//parser_prod.nit:4196 */
22589 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22590 if (UNTAG_Bool(REGB0)) {
22591 } else {
22592 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4196);
22593 }
22594 /* ./parser//parser_prod.nit:4197 */
22595 ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22596 } else {
22597 /* ./parser//parser_prod.nit:4199 */
22598 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4199);
22599 }
22600 /* ./parser//parser_prod.nit:4201 */
22601 goto label1;
22602 }
22603 /* ./parser//parser_prod.nit:4203 */
22604 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]);
22605 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22606 if (UNTAG_Bool(REGB0)) {
22607 } else {
22608 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22609 if (UNTAG_Bool(REGB1)) {
22610 REGB1 = TAG_Bool(false);
22611 REGB0 = REGB1;
22612 } else {
22613 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22614 REGB0 = REGB1;
22615 }
22616 }
22617 if (UNTAG_Bool(REGB0)) {
22618 /* ./parser//parser_prod.nit:4204 */
22619 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22620 if (UNTAG_Bool(REGB0)) {
22621 } else {
22622 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22623 if (UNTAG_Bool(REGB1)) {
22624 REGB1 = TAG_Bool(false);
22625 REGB0 = REGB1;
22626 } else {
22627 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22628 REGB0 = REGB1;
22629 }
22630 }
22631 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22632 if (UNTAG_Bool(REGB0)) {
22633 /* ./parser//parser_prod.nit:4205 */
22634 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22635 if (UNTAG_Bool(REGB0)) {
22636 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4205);
22637 }
22638 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22639 /* ./parser//parser_prod.nit:4206 */
22640 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22641 if (UNTAG_Bool(REGB0)) {
22642 } else {
22643 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4206);
22644 }
22645 /* ./parser//parser_prod.nit:4207 */
22646 ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
22647 } else {
22648 /* ./parser//parser_prod.nit:4209 */
22649 ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = NIT_NULL;
22650 }
22651 /* ./parser//parser_prod.nit:4211 */
22652 goto label1;
22653 }
22654 label1: while(0);
22655 stack_frame_head = fra.me.prev;
22656 return;
22657 }
22658 void parser___parser_prod___AAssertExpr___visit_all(val_t p0, val_t p1){
22659 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22660 val_t REGB0;
22661 val_t REGB1;
22662 val_t tmp;
22663 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22664 fra.me.file = LOCATE_parser___parser_prod;
22665 fra.me.line = 4215;
22666 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___visit_all;
22667 fra.me.has_broke = 0;
22668 fra.me.REG_size = 4;
22669 fra.me.REG[0] = NIT_NULL;
22670 fra.me.REG[1] = NIT_NULL;
22671 fra.me.REG[2] = NIT_NULL;
22672 fra.me.REG[3] = NIT_NULL;
22673 fra.me.REG[0] = p0;
22674 fra.me.REG[1] = p1;
22675 /* ./parser//parser_prod.nit:4215 */
22676 fra.me.REG[2] = fra.me.REG[0];
22677 /* ./parser//parser_prod.nit:4217 */
22678 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[2])!=NIT_NULL);
22679 if (UNTAG_Bool(REGB0)) {
22680 } else {
22681 nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser___parser_prod, 4217);
22682 }
22683 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[2]);
22684 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22685 /* ./parser//parser_prod.nit:4218 */
22686 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[2]);
22687 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22688 if (UNTAG_Bool(REGB0)) {
22689 } else {
22690 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22691 if (UNTAG_Bool(REGB1)) {
22692 REGB1 = TAG_Bool(false);
22693 REGB0 = REGB1;
22694 } else {
22695 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22696 REGB0 = REGB1;
22697 }
22698 }
22699 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22700 if (UNTAG_Bool(REGB0)) {
22701 /* ./parser//parser_prod.nit:4219 */
22702 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[2]);
22703 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*/;
22704 if (UNTAG_Bool(REGB0)) {
22705 } else {
22706 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4219);
22707 }
22708 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22709 }
22710 /* ./parser//parser_prod.nit:4221 */
22711 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
22712 if (UNTAG_Bool(REGB0)) {
22713 } else {
22714 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4221);
22715 }
22716 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[2]);
22717 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22718 /* ./parser//parser_prod.nit:4222 */
22719 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[2]);
22720 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22721 if (UNTAG_Bool(REGB0)) {
22722 } else {
22723 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22724 if (UNTAG_Bool(REGB1)) {
22725 REGB1 = TAG_Bool(false);
22726 REGB0 = REGB1;
22727 } else {
22728 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22729 REGB0 = REGB1;
22730 }
22731 }
22732 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22733 if (UNTAG_Bool(REGB0)) {
22734 /* ./parser//parser_prod.nit:4223 */
22735 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[2]);
22736 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22737 if (UNTAG_Bool(REGB0)) {
22738 } else {
22739 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4223);
22740 }
22741 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22742 }
22743 stack_frame_head = fra.me.prev;
22744 return;
22745 }
22746 void parser___parser_prod___AOnceExpr___empty_init(val_t p0, int* init_table){
22747 int itpos133 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOnceExpr].i;
22748 struct {struct stack_frame_t me;} fra;
22749 val_t tmp;
22750 if (init_table[itpos133]) return;
22751 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22752 fra.me.file = LOCATE_parser___parser_prod;
22753 fra.me.line = 4228;
22754 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___empty_init;
22755 fra.me.has_broke = 0;
22756 fra.me.REG_size = 1;
22757 fra.me.REG[0] = NIT_NULL;
22758 fra.me.REG[0] = p0;
22759 stack_frame_head = fra.me.prev;
22760 init_table[itpos133] = 1;
22761 return;
22762 }
22763 void parser___parser_prod___AOnceExpr___init_aonceexpr(val_t p0, val_t p1, val_t p2, int* init_table){
22764 int itpos134 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOnceExpr].i;
22765 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22766 val_t REGB0;
22767 val_t tmp;
22768 if (init_table[itpos134]) return;
22769 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22770 fra.me.file = LOCATE_parser___parser_prod;
22771 fra.me.line = 4230;
22772 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___init_aonceexpr;
22773 fra.me.has_broke = 0;
22774 fra.me.REG_size = 4;
22775 fra.me.REG[0] = NIT_NULL;
22776 fra.me.REG[1] = NIT_NULL;
22777 fra.me.REG[2] = NIT_NULL;
22778 fra.me.REG[3] = NIT_NULL;
22779 fra.me.REG[0] = p0;
22780 fra.me.REG[1] = p1;
22781 fra.me.REG[2] = p2;
22782 /* ./parser//parser_prod.nit:4230 */
22783 fra.me.REG[3] = fra.me.REG[0];
22784 /* ./parser//parser_prod.nit:4235 */
22785 CALL_parser___parser_prod___AOnceExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
22786 /* ./parser//parser_prod.nit:4236 */
22787 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22788 if (UNTAG_Bool(REGB0)) {
22789 } else {
22790 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4236);
22791 }
22792 ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[3]) = fra.me.REG[1];
22793 /* ./parser//parser_prod.nit:4237 */
22794 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22795 if (UNTAG_Bool(REGB0)) {
22796 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4237);
22797 }
22798 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22799 /* ./parser//parser_prod.nit:4238 */
22800 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
22801 if (UNTAG_Bool(REGB0)) {
22802 } else {
22803 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4238);
22804 }
22805 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
22806 /* ./parser//parser_prod.nit:4239 */
22807 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22808 if (UNTAG_Bool(REGB0)) {
22809 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4239);
22810 }
22811 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
22812 stack_frame_head = fra.me.prev;
22813 init_table[itpos134] = 1;
22814 return;
22815 }
22816 void parser___parser_prod___AOnceExpr___replace_child(val_t p0, val_t p1, val_t p2){
22817 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22818 val_t REGB0;
22819 val_t REGB1;
22820 val_t tmp;
22821 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22822 fra.me.file = LOCATE_parser___parser_prod;
22823 fra.me.line = 4242;
22824 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___replace_child;
22825 fra.me.has_broke = 0;
22826 fra.me.REG_size = 4;
22827 fra.me.REG[0] = NIT_NULL;
22828 fra.me.REG[1] = NIT_NULL;
22829 fra.me.REG[2] = NIT_NULL;
22830 fra.me.REG[3] = NIT_NULL;
22831 fra.me.REG[0] = p0;
22832 fra.me.REG[1] = p1;
22833 fra.me.REG[2] = p2;
22834 /* ./parser//parser_prod.nit:4244 */
22835 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
22836 if (UNTAG_Bool(REGB0)) {
22837 } else {
22838 nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser___parser_prod, 4244);
22839 }
22840 fra.me.REG[3] = ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]);
22841 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22842 if (UNTAG_Bool(REGB0)) {
22843 } else {
22844 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22845 REGB0 = REGB1;
22846 }
22847 if (UNTAG_Bool(REGB0)) {
22848 /* ./parser//parser_prod.nit:4245 */
22849 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22850 if (UNTAG_Bool(REGB0)) {
22851 } else {
22852 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22853 if (UNTAG_Bool(REGB1)) {
22854 REGB1 = TAG_Bool(false);
22855 REGB0 = REGB1;
22856 } else {
22857 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22858 REGB0 = REGB1;
22859 }
22860 }
22861 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22862 if (UNTAG_Bool(REGB0)) {
22863 /* ./parser//parser_prod.nit:4246 */
22864 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22865 if (UNTAG_Bool(REGB0)) {
22866 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4246);
22867 }
22868 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22869 /* ./parser//parser_prod.nit:4247 */
22870 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*/;
22871 if (UNTAG_Bool(REGB0)) {
22872 } else {
22873 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4247);
22874 }
22875 /* ./parser//parser_prod.nit:4248 */
22876 ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]) = fra.me.REG[2];
22877 } else {
22878 /* ./parser//parser_prod.nit:4250 */
22879 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4250);
22880 }
22881 /* ./parser//parser_prod.nit:4252 */
22882 goto label1;
22883 }
22884 /* ./parser//parser_prod.nit:4254 */
22885 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22886 if (UNTAG_Bool(REGB0)) {
22887 } else {
22888 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4254);
22889 }
22890 fra.me.REG[3] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
22891 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22892 if (UNTAG_Bool(REGB0)) {
22893 } else {
22894 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22895 REGB0 = REGB1;
22896 }
22897 if (UNTAG_Bool(REGB0)) {
22898 /* ./parser//parser_prod.nit:4255 */
22899 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22900 if (UNTAG_Bool(REGB0)) {
22901 } else {
22902 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22903 if (UNTAG_Bool(REGB1)) {
22904 REGB1 = TAG_Bool(false);
22905 REGB0 = REGB1;
22906 } else {
22907 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22908 REGB0 = REGB1;
22909 }
22910 }
22911 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22912 if (UNTAG_Bool(REGB0)) {
22913 /* ./parser//parser_prod.nit:4256 */
22914 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22915 if (UNTAG_Bool(REGB0)) {
22916 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4256);
22917 }
22918 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22919 /* ./parser//parser_prod.nit:4257 */
22920 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22921 if (UNTAG_Bool(REGB0)) {
22922 } else {
22923 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4257);
22924 }
22925 /* ./parser//parser_prod.nit:4258 */
22926 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22927 } else {
22928 /* ./parser//parser_prod.nit:4260 */
22929 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4260);
22930 }
22931 /* ./parser//parser_prod.nit:4262 */
22932 goto label1;
22933 }
22934 label1: while(0);
22935 stack_frame_head = fra.me.prev;
22936 return;
22937 }
22938 void parser___parser_prod___AOnceExpr___visit_all(val_t p0, val_t p1){
22939 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22940 val_t REGB0;
22941 val_t tmp;
22942 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22943 fra.me.file = LOCATE_parser___parser_prod;
22944 fra.me.line = 4266;
22945 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___visit_all;
22946 fra.me.has_broke = 0;
22947 fra.me.REG_size = 3;
22948 fra.me.REG[0] = NIT_NULL;
22949 fra.me.REG[1] = NIT_NULL;
22950 fra.me.REG[2] = NIT_NULL;
22951 fra.me.REG[0] = p0;
22952 fra.me.REG[1] = p1;
22953 /* ./parser//parser_prod.nit:4268 */
22954 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
22955 if (UNTAG_Bool(REGB0)) {
22956 } else {
22957 nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser___parser_prod, 4268);
22958 }
22959 fra.me.REG[2] = ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]);
22960 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22961 /* ./parser//parser_prod.nit:4269 */
22962 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22963 if (UNTAG_Bool(REGB0)) {
22964 } else {
22965 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4269);
22966 }
22967 fra.me.REG[0] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
22968 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22969 stack_frame_head = fra.me.prev;
22970 return;
22971 }
22972 void parser___parser_prod___ASendExpr___empty_init(val_t p0, int* init_table){
22973 int itpos135 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASendExpr].i;
22974 struct {struct stack_frame_t me;} fra;
22975 val_t tmp;
22976 if (init_table[itpos135]) return;
22977 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22978 fra.me.file = LOCATE_parser___parser_prod;
22979 fra.me.line = 4273;
22980 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___empty_init;
22981 fra.me.has_broke = 0;
22982 fra.me.REG_size = 1;
22983 fra.me.REG[0] = NIT_NULL;
22984 fra.me.REG[0] = p0;
22985 stack_frame_head = fra.me.prev;
22986 init_table[itpos135] = 1;
22987 return;
22988 }
22989 void parser___parser_prod___ASendExpr___init_asendexpr(val_t p0, val_t p1, int* init_table){
22990 int itpos136 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASendExpr].i;
22991 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22992 val_t REGB0;
22993 val_t tmp;
22994 if (init_table[itpos136]) return;
22995 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22996 fra.me.file = LOCATE_parser___parser_prod;
22997 fra.me.line = 4275;
22998 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___init_asendexpr;
22999 fra.me.has_broke = 0;
23000 fra.me.REG_size = 3;
23001 fra.me.REG[0] = NIT_NULL;
23002 fra.me.REG[1] = NIT_NULL;
23003 fra.me.REG[2] = NIT_NULL;
23004 fra.me.REG[0] = p0;
23005 fra.me.REG[1] = p1;
23006 /* ./parser//parser_prod.nit:4275 */
23007 fra.me.REG[2] = fra.me.REG[0];
23008 /* ./parser//parser_prod.nit:4279 */
23009 CALL_parser___parser_prod___ASendExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
23010 /* ./parser//parser_prod.nit:4280 */
23011 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23012 if (UNTAG_Bool(REGB0)) {
23013 } else {
23014 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4280);
23015 }
23016 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[2]) = fra.me.REG[1];
23017 /* ./parser//parser_prod.nit:4281 */
23018 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23019 if (UNTAG_Bool(REGB0)) {
23020 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4281);
23021 }
23022 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23023 stack_frame_head = fra.me.prev;
23024 init_table[itpos136] = 1;
23025 return;
23026 }
23027 void parser___parser_prod___ASendExpr___replace_child(val_t p0, val_t p1, val_t p2){
23028 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23029 val_t REGB0;
23030 val_t REGB1;
23031 val_t tmp;
23032 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23033 fra.me.file = LOCATE_parser___parser_prod;
23034 fra.me.line = 4284;
23035 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___replace_child;
23036 fra.me.has_broke = 0;
23037 fra.me.REG_size = 4;
23038 fra.me.REG[0] = NIT_NULL;
23039 fra.me.REG[1] = NIT_NULL;
23040 fra.me.REG[2] = NIT_NULL;
23041 fra.me.REG[3] = NIT_NULL;
23042 fra.me.REG[0] = p0;
23043 fra.me.REG[1] = p1;
23044 fra.me.REG[2] = p2;
23045 /* ./parser//parser_prod.nit:4286 */
23046 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23047 if (UNTAG_Bool(REGB0)) {
23048 } else {
23049 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4286);
23050 }
23051 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23052 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23053 if (UNTAG_Bool(REGB0)) {
23054 } else {
23055 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23056 REGB0 = REGB1;
23057 }
23058 if (UNTAG_Bool(REGB0)) {
23059 /* ./parser//parser_prod.nit:4287 */
23060 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23061 if (UNTAG_Bool(REGB0)) {
23062 } else {
23063 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23064 if (UNTAG_Bool(REGB1)) {
23065 REGB1 = TAG_Bool(false);
23066 REGB0 = REGB1;
23067 } else {
23068 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23069 REGB0 = REGB1;
23070 }
23071 }
23072 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23073 if (UNTAG_Bool(REGB0)) {
23074 /* ./parser//parser_prod.nit:4288 */
23075 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23076 if (UNTAG_Bool(REGB0)) {
23077 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4288);
23078 }
23079 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23080 /* ./parser//parser_prod.nit:4289 */
23081 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23082 if (UNTAG_Bool(REGB0)) {
23083 } else {
23084 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4289);
23085 }
23086 /* ./parser//parser_prod.nit:4290 */
23087 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23088 } else {
23089 /* ./parser//parser_prod.nit:4292 */
23090 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4292);
23091 }
23092 /* ./parser//parser_prod.nit:4294 */
23093 goto label1;
23094 }
23095 label1: while(0);
23096 stack_frame_head = fra.me.prev;
23097 return;
23098 }
23099 void parser___parser_prod___ASendExpr___visit_all(val_t p0, val_t p1){
23100 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
23101 val_t REGB0;
23102 val_t tmp;
23103 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23104 fra.me.file = LOCATE_parser___parser_prod;
23105 fra.me.line = 4298;
23106 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___visit_all;
23107 fra.me.has_broke = 0;
23108 fra.me.REG_size = 2;
23109 fra.me.REG[0] = NIT_NULL;
23110 fra.me.REG[1] = NIT_NULL;
23111 fra.me.REG[0] = p0;
23112 fra.me.REG[1] = p1;
23113 /* ./parser//parser_prod.nit:4300 */
23114 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23115 if (UNTAG_Bool(REGB0)) {
23116 } else {
23117 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4300);
23118 }
23119 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23120 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23121 stack_frame_head = fra.me.prev;
23122 return;
23123 }
23124 void parser___parser_prod___ABinopExpr___empty_init(val_t p0, int* init_table){
23125 int itpos137 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABinopExpr].i;
23126 struct {struct stack_frame_t me;} fra;
23127 val_t tmp;
23128 if (init_table[itpos137]) return;
23129 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23130 fra.me.file = LOCATE_parser___parser_prod;
23131 fra.me.line = 4304;
23132 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___empty_init;
23133 fra.me.has_broke = 0;
23134 fra.me.REG_size = 1;
23135 fra.me.REG[0] = NIT_NULL;
23136 fra.me.REG[0] = p0;
23137 stack_frame_head = fra.me.prev;
23138 init_table[itpos137] = 1;
23139 return;
23140 }
23141 void parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23142 int itpos138 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABinopExpr].i;
23143 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23144 val_t REGB0;
23145 val_t tmp;
23146 if (init_table[itpos138]) return;
23147 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23148 fra.me.file = LOCATE_parser___parser_prod;
23149 fra.me.line = 4306;
23150 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___init_abinopexpr;
23151 fra.me.has_broke = 0;
23152 fra.me.REG_size = 4;
23153 fra.me.REG[0] = NIT_NULL;
23154 fra.me.REG[1] = NIT_NULL;
23155 fra.me.REG[2] = NIT_NULL;
23156 fra.me.REG[3] = NIT_NULL;
23157 fra.me.REG[0] = p0;
23158 fra.me.REG[1] = p1;
23159 fra.me.REG[2] = p2;
23160 /* ./parser//parser_prod.nit:4306 */
23161 fra.me.REG[3] = fra.me.REG[0];
23162 /* ./parser//parser_prod.nit:4311 */
23163 CALL_parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
23164 /* ./parser//parser_prod.nit:4312 */
23165 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23166 if (UNTAG_Bool(REGB0)) {
23167 } else {
23168 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4312);
23169 }
23170 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
23171 /* ./parser//parser_prod.nit:4313 */
23172 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23173 if (UNTAG_Bool(REGB0)) {
23174 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4313);
23175 }
23176 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23177 /* ./parser//parser_prod.nit:4314 */
23178 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23179 if (UNTAG_Bool(REGB0)) {
23180 } else {
23181 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4314);
23182 }
23183 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
23184 /* ./parser//parser_prod.nit:4315 */
23185 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23186 if (UNTAG_Bool(REGB0)) {
23187 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4315);
23188 }
23189 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
23190 stack_frame_head = fra.me.prev;
23191 init_table[itpos138] = 1;
23192 return;
23193 }
23194 void parser___parser_prod___ABinopExpr___replace_child(val_t p0, val_t p1, val_t p2){
23195 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23196 val_t REGB0;
23197 val_t REGB1;
23198 val_t tmp;
23199 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23200 fra.me.file = LOCATE_parser___parser_prod;
23201 fra.me.line = 4318;
23202 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___replace_child;
23203 fra.me.has_broke = 0;
23204 fra.me.REG_size = 4;
23205 fra.me.REG[0] = NIT_NULL;
23206 fra.me.REG[1] = NIT_NULL;
23207 fra.me.REG[2] = NIT_NULL;
23208 fra.me.REG[3] = NIT_NULL;
23209 fra.me.REG[0] = p0;
23210 fra.me.REG[1] = p1;
23211 fra.me.REG[2] = p2;
23212 /* ./parser//parser_prod.nit:4320 */
23213 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23214 if (UNTAG_Bool(REGB0)) {
23215 } else {
23216 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4320);
23217 }
23218 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23219 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23220 if (UNTAG_Bool(REGB0)) {
23221 } else {
23222 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23223 REGB0 = REGB1;
23224 }
23225 if (UNTAG_Bool(REGB0)) {
23226 /* ./parser//parser_prod.nit:4321 */
23227 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23228 if (UNTAG_Bool(REGB0)) {
23229 } else {
23230 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23231 if (UNTAG_Bool(REGB1)) {
23232 REGB1 = TAG_Bool(false);
23233 REGB0 = REGB1;
23234 } else {
23235 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23236 REGB0 = REGB1;
23237 }
23238 }
23239 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23240 if (UNTAG_Bool(REGB0)) {
23241 /* ./parser//parser_prod.nit:4322 */
23242 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23243 if (UNTAG_Bool(REGB0)) {
23244 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4322);
23245 }
23246 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23247 /* ./parser//parser_prod.nit:4323 */
23248 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23249 if (UNTAG_Bool(REGB0)) {
23250 } else {
23251 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4323);
23252 }
23253 /* ./parser//parser_prod.nit:4324 */
23254 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23255 } else {
23256 /* ./parser//parser_prod.nit:4326 */
23257 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4326);
23258 }
23259 /* ./parser//parser_prod.nit:4328 */
23260 goto label1;
23261 }
23262 /* ./parser//parser_prod.nit:4330 */
23263 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23264 if (UNTAG_Bool(REGB0)) {
23265 } else {
23266 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4330);
23267 }
23268 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23269 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23270 if (UNTAG_Bool(REGB0)) {
23271 } else {
23272 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23273 REGB0 = REGB1;
23274 }
23275 if (UNTAG_Bool(REGB0)) {
23276 /* ./parser//parser_prod.nit:4331 */
23277 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23278 if (UNTAG_Bool(REGB0)) {
23279 } else {
23280 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23281 if (UNTAG_Bool(REGB1)) {
23282 REGB1 = TAG_Bool(false);
23283 REGB0 = REGB1;
23284 } else {
23285 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23286 REGB0 = REGB1;
23287 }
23288 }
23289 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23290 if (UNTAG_Bool(REGB0)) {
23291 /* ./parser//parser_prod.nit:4332 */
23292 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23293 if (UNTAG_Bool(REGB0)) {
23294 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4332);
23295 }
23296 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23297 /* ./parser//parser_prod.nit:4333 */
23298 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23299 if (UNTAG_Bool(REGB0)) {
23300 } else {
23301 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4333);
23302 }
23303 /* ./parser//parser_prod.nit:4334 */
23304 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23305 } else {
23306 /* ./parser//parser_prod.nit:4336 */
23307 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4336);
23308 }
23309 /* ./parser//parser_prod.nit:4338 */
23310 goto label1;
23311 }
23312 label1: while(0);
23313 stack_frame_head = fra.me.prev;
23314 return;
23315 }
23316 void parser___parser_prod___ABinopExpr___visit_all(val_t p0, val_t p1){
23317 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23318 val_t REGB0;
23319 val_t tmp;
23320 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23321 fra.me.file = LOCATE_parser___parser_prod;
23322 fra.me.line = 4342;
23323 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___visit_all;
23324 fra.me.has_broke = 0;
23325 fra.me.REG_size = 3;
23326 fra.me.REG[0] = NIT_NULL;
23327 fra.me.REG[1] = NIT_NULL;
23328 fra.me.REG[2] = NIT_NULL;
23329 fra.me.REG[0] = p0;
23330 fra.me.REG[1] = p1;
23331 /* ./parser//parser_prod.nit:4344 */
23332 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23333 if (UNTAG_Bool(REGB0)) {
23334 } else {
23335 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4344);
23336 }
23337 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23338 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23339 /* ./parser//parser_prod.nit:4345 */
23340 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23341 if (UNTAG_Bool(REGB0)) {
23342 } else {
23343 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4345);
23344 }
23345 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23346 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23347 stack_frame_head = fra.me.prev;
23348 return;
23349 }
23350 void parser___parser_prod___AOrExpr___empty_init(val_t p0, int* init_table){
23351 int itpos139 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrExpr].i;
23352 struct {struct stack_frame_t me;} fra;
23353 val_t tmp;
23354 if (init_table[itpos139]) return;
23355 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23356 fra.me.file = LOCATE_parser___parser_prod;
23357 fra.me.line = 4349;
23358 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___empty_init;
23359 fra.me.has_broke = 0;
23360 fra.me.REG_size = 1;
23361 fra.me.REG[0] = NIT_NULL;
23362 fra.me.REG[0] = p0;
23363 stack_frame_head = fra.me.prev;
23364 init_table[itpos139] = 1;
23365 return;
23366 }
23367 void parser___parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23368 int itpos140 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrExpr].i;
23369 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23370 val_t REGB0;
23371 val_t tmp;
23372 if (init_table[itpos140]) return;
23373 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23374 fra.me.file = LOCATE_parser___parser_prod;
23375 fra.me.line = 4351;
23376 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___init_aorexpr;
23377 fra.me.has_broke = 0;
23378 fra.me.REG_size = 4;
23379 fra.me.REG[0] = NIT_NULL;
23380 fra.me.REG[1] = NIT_NULL;
23381 fra.me.REG[2] = NIT_NULL;
23382 fra.me.REG[3] = NIT_NULL;
23383 fra.me.REG[0] = p0;
23384 fra.me.REG[1] = p1;
23385 fra.me.REG[2] = p2;
23386 /* ./parser//parser_prod.nit:4351 */
23387 fra.me.REG[3] = fra.me.REG[0];
23388 /* ./parser//parser_prod.nit:4356 */
23389 CALL_parser___parser_prod___AOrExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
23390 /* ./parser//parser_prod.nit:4357 */
23391 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23392 if (UNTAG_Bool(REGB0)) {
23393 } else {
23394 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4357);
23395 }
23396 ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
23397 /* ./parser//parser_prod.nit:4358 */
23398 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23399 if (UNTAG_Bool(REGB0)) {
23400 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4358);
23401 }
23402 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23403 /* ./parser//parser_prod.nit:4359 */
23404 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23405 if (UNTAG_Bool(REGB0)) {
23406 } else {
23407 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4359);
23408 }
23409 ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
23410 /* ./parser//parser_prod.nit:4360 */
23411 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23412 if (UNTAG_Bool(REGB0)) {
23413 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4360);
23414 }
23415 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
23416 stack_frame_head = fra.me.prev;
23417 init_table[itpos140] = 1;
23418 return;
23419 }
23420 void parser___parser_prod___AOrExpr___replace_child(val_t p0, val_t p1, val_t p2){
23421 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23422 val_t REGB0;
23423 val_t REGB1;
23424 val_t tmp;
23425 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23426 fra.me.file = LOCATE_parser___parser_prod;
23427 fra.me.line = 4363;
23428 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___replace_child;
23429 fra.me.has_broke = 0;
23430 fra.me.REG_size = 4;
23431 fra.me.REG[0] = NIT_NULL;
23432 fra.me.REG[1] = NIT_NULL;
23433 fra.me.REG[2] = NIT_NULL;
23434 fra.me.REG[3] = NIT_NULL;
23435 fra.me.REG[0] = p0;
23436 fra.me.REG[1] = p1;
23437 fra.me.REG[2] = p2;
23438 /* ./parser//parser_prod.nit:4365 */
23439 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23440 if (UNTAG_Bool(REGB0)) {
23441 } else {
23442 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4365);
23443 }
23444 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]);
23445 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23446 if (UNTAG_Bool(REGB0)) {
23447 } else {
23448 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23449 REGB0 = REGB1;
23450 }
23451 if (UNTAG_Bool(REGB0)) {
23452 /* ./parser//parser_prod.nit:4366 */
23453 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23454 if (UNTAG_Bool(REGB0)) {
23455 } else {
23456 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23457 if (UNTAG_Bool(REGB1)) {
23458 REGB1 = TAG_Bool(false);
23459 REGB0 = REGB1;
23460 } else {
23461 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23462 REGB0 = REGB1;
23463 }
23464 }
23465 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23466 if (UNTAG_Bool(REGB0)) {
23467 /* ./parser//parser_prod.nit:4367 */
23468 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23469 if (UNTAG_Bool(REGB0)) {
23470 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4367);
23471 }
23472 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23473 /* ./parser//parser_prod.nit:4368 */
23474 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23475 if (UNTAG_Bool(REGB0)) {
23476 } else {
23477 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4368);
23478 }
23479 /* ./parser//parser_prod.nit:4369 */
23480 ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23481 } else {
23482 /* ./parser//parser_prod.nit:4371 */
23483 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4371);
23484 }
23485 /* ./parser//parser_prod.nit:4373 */
23486 goto label1;
23487 }
23488 /* ./parser//parser_prod.nit:4375 */
23489 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23490 if (UNTAG_Bool(REGB0)) {
23491 } else {
23492 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4375);
23493 }
23494 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]);
23495 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23496 if (UNTAG_Bool(REGB0)) {
23497 } else {
23498 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23499 REGB0 = REGB1;
23500 }
23501 if (UNTAG_Bool(REGB0)) {
23502 /* ./parser//parser_prod.nit:4376 */
23503 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23504 if (UNTAG_Bool(REGB0)) {
23505 } else {
23506 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23507 if (UNTAG_Bool(REGB1)) {
23508 REGB1 = TAG_Bool(false);
23509 REGB0 = REGB1;
23510 } else {
23511 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23512 REGB0 = REGB1;
23513 }
23514 }
23515 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23516 if (UNTAG_Bool(REGB0)) {
23517 /* ./parser//parser_prod.nit:4377 */
23518 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23519 if (UNTAG_Bool(REGB0)) {
23520 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4377);
23521 }
23522 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23523 /* ./parser//parser_prod.nit:4378 */
23524 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23525 if (UNTAG_Bool(REGB0)) {
23526 } else {
23527 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4378);
23528 }
23529 /* ./parser//parser_prod.nit:4379 */
23530 ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23531 } else {
23532 /* ./parser//parser_prod.nit:4381 */
23533 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4381);
23534 }
23535 /* ./parser//parser_prod.nit:4383 */
23536 goto label1;
23537 }
23538 label1: while(0);
23539 stack_frame_head = fra.me.prev;
23540 return;
23541 }
23542 void parser___parser_prod___AOrExpr___visit_all(val_t p0, val_t p1){
23543 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23544 val_t REGB0;
23545 val_t tmp;
23546 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23547 fra.me.file = LOCATE_parser___parser_prod;
23548 fra.me.line = 4387;
23549 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___visit_all;
23550 fra.me.has_broke = 0;
23551 fra.me.REG_size = 3;
23552 fra.me.REG[0] = NIT_NULL;
23553 fra.me.REG[1] = NIT_NULL;
23554 fra.me.REG[2] = NIT_NULL;
23555 fra.me.REG[0] = p0;
23556 fra.me.REG[1] = p1;
23557 /* ./parser//parser_prod.nit:4389 */
23558 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23559 if (UNTAG_Bool(REGB0)) {
23560 } else {
23561 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4389);
23562 }
23563 fra.me.REG[2] = ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]);
23564 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23565 /* ./parser//parser_prod.nit:4390 */
23566 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23567 if (UNTAG_Bool(REGB0)) {
23568 } else {
23569 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4390);
23570 }
23571 fra.me.REG[0] = ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]);
23572 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23573 stack_frame_head = fra.me.prev;
23574 return;
23575 }
23576 void parser___parser_prod___AAndExpr___empty_init(val_t p0, int* init_table){
23577 int itpos141 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAndExpr].i;
23578 struct {struct stack_frame_t me;} fra;
23579 val_t tmp;
23580 if (init_table[itpos141]) return;
23581 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23582 fra.me.file = LOCATE_parser___parser_prod;
23583 fra.me.line = 4394;
23584 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___empty_init;
23585 fra.me.has_broke = 0;
23586 fra.me.REG_size = 1;
23587 fra.me.REG[0] = NIT_NULL;
23588 fra.me.REG[0] = p0;
23589 stack_frame_head = fra.me.prev;
23590 init_table[itpos141] = 1;
23591 return;
23592 }
23593 void parser___parser_prod___AAndExpr___init_aandexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23594 int itpos142 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAndExpr].i;
23595 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23596 val_t REGB0;
23597 val_t tmp;
23598 if (init_table[itpos142]) return;
23599 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23600 fra.me.file = LOCATE_parser___parser_prod;
23601 fra.me.line = 4396;
23602 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___init_aandexpr;
23603 fra.me.has_broke = 0;
23604 fra.me.REG_size = 4;
23605 fra.me.REG[0] = NIT_NULL;
23606 fra.me.REG[1] = NIT_NULL;
23607 fra.me.REG[2] = NIT_NULL;
23608 fra.me.REG[3] = NIT_NULL;
23609 fra.me.REG[0] = p0;
23610 fra.me.REG[1] = p1;
23611 fra.me.REG[2] = p2;
23612 /* ./parser//parser_prod.nit:4396 */
23613 fra.me.REG[3] = fra.me.REG[0];
23614 /* ./parser//parser_prod.nit:4401 */
23615 CALL_parser___parser_prod___AAndExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
23616 /* ./parser//parser_prod.nit:4402 */
23617 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23618 if (UNTAG_Bool(REGB0)) {
23619 } else {
23620 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4402);
23621 }
23622 ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
23623 /* ./parser//parser_prod.nit:4403 */
23624 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23625 if (UNTAG_Bool(REGB0)) {
23626 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4403);
23627 }
23628 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23629 /* ./parser//parser_prod.nit:4404 */
23630 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23631 if (UNTAG_Bool(REGB0)) {
23632 } else {
23633 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4404);
23634 }
23635 ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
23636 /* ./parser//parser_prod.nit:4405 */
23637 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23638 if (UNTAG_Bool(REGB0)) {
23639 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4405);
23640 }
23641 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
23642 stack_frame_head = fra.me.prev;
23643 init_table[itpos142] = 1;
23644 return;
23645 }
23646 void parser___parser_prod___AAndExpr___replace_child(val_t p0, val_t p1, val_t p2){
23647 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23648 val_t REGB0;
23649 val_t REGB1;
23650 val_t tmp;
23651 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23652 fra.me.file = LOCATE_parser___parser_prod;
23653 fra.me.line = 4408;
23654 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___replace_child;
23655 fra.me.has_broke = 0;
23656 fra.me.REG_size = 4;
23657 fra.me.REG[0] = NIT_NULL;
23658 fra.me.REG[1] = NIT_NULL;
23659 fra.me.REG[2] = NIT_NULL;
23660 fra.me.REG[3] = NIT_NULL;
23661 fra.me.REG[0] = p0;
23662 fra.me.REG[1] = p1;
23663 fra.me.REG[2] = p2;
23664 /* ./parser//parser_prod.nit:4410 */
23665 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23666 if (UNTAG_Bool(REGB0)) {
23667 } else {
23668 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4410);
23669 }
23670 fra.me.REG[3] = ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]);
23671 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23672 if (UNTAG_Bool(REGB0)) {
23673 } else {
23674 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23675 REGB0 = REGB1;
23676 }
23677 if (UNTAG_Bool(REGB0)) {
23678 /* ./parser//parser_prod.nit:4411 */
23679 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23680 if (UNTAG_Bool(REGB0)) {
23681 } else {
23682 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23683 if (UNTAG_Bool(REGB1)) {
23684 REGB1 = TAG_Bool(false);
23685 REGB0 = REGB1;
23686 } else {
23687 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23688 REGB0 = REGB1;
23689 }
23690 }
23691 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23692 if (UNTAG_Bool(REGB0)) {
23693 /* ./parser//parser_prod.nit:4412 */
23694 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23695 if (UNTAG_Bool(REGB0)) {
23696 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4412);
23697 }
23698 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23699 /* ./parser//parser_prod.nit:4413 */
23700 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23701 if (UNTAG_Bool(REGB0)) {
23702 } else {
23703 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4413);
23704 }
23705 /* ./parser//parser_prod.nit:4414 */
23706 ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23707 } else {
23708 /* ./parser//parser_prod.nit:4416 */
23709 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4416);
23710 }
23711 /* ./parser//parser_prod.nit:4418 */
23712 goto label1;
23713 }
23714 /* ./parser//parser_prod.nit:4420 */
23715 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23716 if (UNTAG_Bool(REGB0)) {
23717 } else {
23718 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4420);
23719 }
23720 fra.me.REG[3] = ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]);
23721 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23722 if (UNTAG_Bool(REGB0)) {
23723 } else {
23724 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23725 REGB0 = REGB1;
23726 }
23727 if (UNTAG_Bool(REGB0)) {
23728 /* ./parser//parser_prod.nit:4421 */
23729 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23730 if (UNTAG_Bool(REGB0)) {
23731 } else {
23732 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23733 if (UNTAG_Bool(REGB1)) {
23734 REGB1 = TAG_Bool(false);
23735 REGB0 = REGB1;
23736 } else {
23737 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23738 REGB0 = REGB1;
23739 }
23740 }
23741 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23742 if (UNTAG_Bool(REGB0)) {
23743 /* ./parser//parser_prod.nit:4422 */
23744 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23745 if (UNTAG_Bool(REGB0)) {
23746 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4422);
23747 }
23748 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23749 /* ./parser//parser_prod.nit:4423 */
23750 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23751 if (UNTAG_Bool(REGB0)) {
23752 } else {
23753 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4423);
23754 }
23755 /* ./parser//parser_prod.nit:4424 */
23756 ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23757 } else {
23758 /* ./parser//parser_prod.nit:4426 */
23759 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4426);
23760 }
23761 /* ./parser//parser_prod.nit:4428 */
23762 goto label1;
23763 }
23764 label1: while(0);
23765 stack_frame_head = fra.me.prev;
23766 return;
23767 }
23768 void parser___parser_prod___AAndExpr___visit_all(val_t p0, val_t p1){
23769 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23770 val_t REGB0;
23771 val_t tmp;
23772 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23773 fra.me.file = LOCATE_parser___parser_prod;
23774 fra.me.line = 4432;
23775 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___visit_all;
23776 fra.me.has_broke = 0;
23777 fra.me.REG_size = 3;
23778 fra.me.REG[0] = NIT_NULL;
23779 fra.me.REG[1] = NIT_NULL;
23780 fra.me.REG[2] = NIT_NULL;
23781 fra.me.REG[0] = p0;
23782 fra.me.REG[1] = p1;
23783 /* ./parser//parser_prod.nit:4434 */
23784 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23785 if (UNTAG_Bool(REGB0)) {
23786 } else {
23787 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4434);
23788 }
23789 fra.me.REG[2] = ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]);
23790 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23791 /* ./parser//parser_prod.nit:4435 */
23792 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23793 if (UNTAG_Bool(REGB0)) {
23794 } else {
23795 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4435);
23796 }
23797 fra.me.REG[0] = ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]);
23798 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23799 stack_frame_head = fra.me.prev;
23800 return;
23801 }
23802 void parser___parser_prod___AOrElseExpr___empty_init(val_t p0, int* init_table){
23803 int itpos143 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrElseExpr].i;
23804 struct {struct stack_frame_t me;} fra;
23805 val_t tmp;
23806 if (init_table[itpos143]) return;
23807 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23808 fra.me.file = LOCATE_parser___parser_prod;
23809 fra.me.line = 4439;
23810 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___empty_init;
23811 fra.me.has_broke = 0;
23812 fra.me.REG_size = 1;
23813 fra.me.REG[0] = NIT_NULL;
23814 fra.me.REG[0] = p0;
23815 stack_frame_head = fra.me.prev;
23816 init_table[itpos143] = 1;
23817 return;
23818 }
23819 void parser___parser_prod___AOrElseExpr___init_aorelseexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23820 int itpos144 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrElseExpr].i;
23821 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23822 val_t REGB0;
23823 val_t tmp;
23824 if (init_table[itpos144]) return;
23825 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23826 fra.me.file = LOCATE_parser___parser_prod;
23827 fra.me.line = 4441;
23828 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___init_aorelseexpr;
23829 fra.me.has_broke = 0;
23830 fra.me.REG_size = 4;
23831 fra.me.REG[0] = NIT_NULL;
23832 fra.me.REG[1] = NIT_NULL;
23833 fra.me.REG[2] = NIT_NULL;
23834 fra.me.REG[3] = NIT_NULL;
23835 fra.me.REG[0] = p0;
23836 fra.me.REG[1] = p1;
23837 fra.me.REG[2] = p2;
23838 /* ./parser//parser_prod.nit:4441 */
23839 fra.me.REG[3] = fra.me.REG[0];
23840 /* ./parser//parser_prod.nit:4446 */
23841 CALL_parser___parser_prod___AOrElseExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
23842 /* ./parser//parser_prod.nit:4447 */
23843 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23844 if (UNTAG_Bool(REGB0)) {
23845 } else {
23846 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4447);
23847 }
23848 ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
23849 /* ./parser//parser_prod.nit:4448 */
23850 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23851 if (UNTAG_Bool(REGB0)) {
23852 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4448);
23853 }
23854 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23855 /* ./parser//parser_prod.nit:4449 */
23856 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23857 if (UNTAG_Bool(REGB0)) {
23858 } else {
23859 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4449);
23860 }
23861 ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
23862 /* ./parser//parser_prod.nit:4450 */
23863 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23864 if (UNTAG_Bool(REGB0)) {
23865 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4450);
23866 }
23867 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
23868 stack_frame_head = fra.me.prev;
23869 init_table[itpos144] = 1;
23870 return;
23871 }
23872 void parser___parser_prod___AOrElseExpr___replace_child(val_t p0, val_t p1, val_t p2){
23873 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23874 val_t REGB0;
23875 val_t REGB1;
23876 val_t tmp;
23877 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23878 fra.me.file = LOCATE_parser___parser_prod;
23879 fra.me.line = 4453;
23880 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___replace_child;
23881 fra.me.has_broke = 0;
23882 fra.me.REG_size = 4;
23883 fra.me.REG[0] = NIT_NULL;
23884 fra.me.REG[1] = NIT_NULL;
23885 fra.me.REG[2] = NIT_NULL;
23886 fra.me.REG[3] = NIT_NULL;
23887 fra.me.REG[0] = p0;
23888 fra.me.REG[1] = p1;
23889 fra.me.REG[2] = p2;
23890 /* ./parser//parser_prod.nit:4455 */
23891 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23892 if (UNTAG_Bool(REGB0)) {
23893 } else {
23894 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4455);
23895 }
23896 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]);
23897 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23898 if (UNTAG_Bool(REGB0)) {
23899 } else {
23900 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23901 REGB0 = REGB1;
23902 }
23903 if (UNTAG_Bool(REGB0)) {
23904 /* ./parser//parser_prod.nit:4456 */
23905 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23906 if (UNTAG_Bool(REGB0)) {
23907 } else {
23908 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23909 if (UNTAG_Bool(REGB1)) {
23910 REGB1 = TAG_Bool(false);
23911 REGB0 = REGB1;
23912 } else {
23913 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23914 REGB0 = REGB1;
23915 }
23916 }
23917 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23918 if (UNTAG_Bool(REGB0)) {
23919 /* ./parser//parser_prod.nit:4457 */
23920 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23921 if (UNTAG_Bool(REGB0)) {
23922 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4457);
23923 }
23924 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23925 /* ./parser//parser_prod.nit:4458 */
23926 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23927 if (UNTAG_Bool(REGB0)) {
23928 } else {
23929 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4458);
23930 }
23931 /* ./parser//parser_prod.nit:4459 */
23932 ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23933 } else {
23934 /* ./parser//parser_prod.nit:4461 */
23935 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4461);
23936 }
23937 /* ./parser//parser_prod.nit:4463 */
23938 goto label1;
23939 }
23940 /* ./parser//parser_prod.nit:4465 */
23941 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23942 if (UNTAG_Bool(REGB0)) {
23943 } else {
23944 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4465);
23945 }
23946 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]);
23947 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23948 if (UNTAG_Bool(REGB0)) {
23949 } else {
23950 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23951 REGB0 = REGB1;
23952 }
23953 if (UNTAG_Bool(REGB0)) {
23954 /* ./parser//parser_prod.nit:4466 */
23955 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23956 if (UNTAG_Bool(REGB0)) {
23957 } else {
23958 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23959 if (UNTAG_Bool(REGB1)) {
23960 REGB1 = TAG_Bool(false);
23961 REGB0 = REGB1;
23962 } else {
23963 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23964 REGB0 = REGB1;
23965 }
23966 }
23967 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23968 if (UNTAG_Bool(REGB0)) {
23969 /* ./parser//parser_prod.nit:4467 */
23970 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23971 if (UNTAG_Bool(REGB0)) {
23972 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4467);
23973 }
23974 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23975 /* ./parser//parser_prod.nit:4468 */
23976 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23977 if (UNTAG_Bool(REGB0)) {
23978 } else {
23979 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4468);
23980 }
23981 /* ./parser//parser_prod.nit:4469 */
23982 ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23983 } else {
23984 /* ./parser//parser_prod.nit:4471 */
23985 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4471);
23986 }
23987 /* ./parser//parser_prod.nit:4473 */
23988 goto label1;
23989 }
23990 label1: while(0);
23991 stack_frame_head = fra.me.prev;
23992 return;
23993 }
23994 void parser___parser_prod___AOrElseExpr___visit_all(val_t p0, val_t p1){
23995 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23996 val_t REGB0;
23997 val_t tmp;
23998 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23999 fra.me.file = LOCATE_parser___parser_prod;
24000 fra.me.line = 4477;
24001 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___visit_all;
24002 fra.me.has_broke = 0;
24003 fra.me.REG_size = 3;
24004 fra.me.REG[0] = NIT_NULL;
24005 fra.me.REG[1] = NIT_NULL;
24006 fra.me.REG[2] = NIT_NULL;
24007 fra.me.REG[0] = p0;
24008 fra.me.REG[1] = p1;
24009 /* ./parser//parser_prod.nit:4479 */
24010 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24011 if (UNTAG_Bool(REGB0)) {
24012 } else {
24013 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4479);
24014 }
24015 fra.me.REG[2] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]);
24016 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24017 /* ./parser//parser_prod.nit:4480 */
24018 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24019 if (UNTAG_Bool(REGB0)) {
24020 } else {
24021 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4480);
24022 }
24023 fra.me.REG[0] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]);
24024 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24025 stack_frame_head = fra.me.prev;
24026 return;
24027 }
24028 void parser___parser_prod___ANotExpr___empty_init(val_t p0, int* init_table){
24029 int itpos145 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANotExpr].i;
24030 struct {struct stack_frame_t me;} fra;
24031 val_t tmp;
24032 if (init_table[itpos145]) return;
24033 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24034 fra.me.file = LOCATE_parser___parser_prod;
24035 fra.me.line = 4484;
24036 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___empty_init;
24037 fra.me.has_broke = 0;
24038 fra.me.REG_size = 1;
24039 fra.me.REG[0] = NIT_NULL;
24040 fra.me.REG[0] = p0;
24041 stack_frame_head = fra.me.prev;
24042 init_table[itpos145] = 1;
24043 return;
24044 }
24045 void parser___parser_prod___ANotExpr___init_anotexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24046 int itpos146 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANotExpr].i;
24047 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24048 val_t REGB0;
24049 val_t tmp;
24050 if (init_table[itpos146]) return;
24051 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24052 fra.me.file = LOCATE_parser___parser_prod;
24053 fra.me.line = 4486;
24054 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___init_anotexpr;
24055 fra.me.has_broke = 0;
24056 fra.me.REG_size = 4;
24057 fra.me.REG[0] = NIT_NULL;
24058 fra.me.REG[1] = NIT_NULL;
24059 fra.me.REG[2] = NIT_NULL;
24060 fra.me.REG[3] = NIT_NULL;
24061 fra.me.REG[0] = p0;
24062 fra.me.REG[1] = p1;
24063 fra.me.REG[2] = p2;
24064 /* ./parser//parser_prod.nit:4486 */
24065 fra.me.REG[3] = fra.me.REG[0];
24066 /* ./parser//parser_prod.nit:4491 */
24067 CALL_parser___parser_prod___ANotExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
24068 /* ./parser//parser_prod.nit:4492 */
24069 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24070 if (UNTAG_Bool(REGB0)) {
24071 } else {
24072 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4492);
24073 }
24074 ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[3]) = fra.me.REG[1];
24075 /* ./parser//parser_prod.nit:4493 */
24076 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24077 if (UNTAG_Bool(REGB0)) {
24078 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4493);
24079 }
24080 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24081 /* ./parser//parser_prod.nit:4494 */
24082 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24083 if (UNTAG_Bool(REGB0)) {
24084 } else {
24085 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4494);
24086 }
24087 ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
24088 /* ./parser//parser_prod.nit:4495 */
24089 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24090 if (UNTAG_Bool(REGB0)) {
24091 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4495);
24092 }
24093 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
24094 stack_frame_head = fra.me.prev;
24095 init_table[itpos146] = 1;
24096 return;
24097 }
24098 void parser___parser_prod___ANotExpr___replace_child(val_t p0, val_t p1, val_t p2){
24099 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24100 val_t REGB0;
24101 val_t REGB1;
24102 val_t tmp;
24103 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24104 fra.me.file = LOCATE_parser___parser_prod;
24105 fra.me.line = 4498;
24106 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___replace_child;
24107 fra.me.has_broke = 0;
24108 fra.me.REG_size = 4;
24109 fra.me.REG[0] = NIT_NULL;
24110 fra.me.REG[1] = NIT_NULL;
24111 fra.me.REG[2] = NIT_NULL;
24112 fra.me.REG[3] = NIT_NULL;
24113 fra.me.REG[0] = p0;
24114 fra.me.REG[1] = p1;
24115 fra.me.REG[2] = p2;
24116 /* ./parser//parser_prod.nit:4500 */
24117 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
24118 if (UNTAG_Bool(REGB0)) {
24119 } else {
24120 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 4500);
24121 }
24122 fra.me.REG[3] = ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]);
24123 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24124 if (UNTAG_Bool(REGB0)) {
24125 } else {
24126 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24127 REGB0 = REGB1;
24128 }
24129 if (UNTAG_Bool(REGB0)) {
24130 /* ./parser//parser_prod.nit:4501 */
24131 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24132 if (UNTAG_Bool(REGB0)) {
24133 } else {
24134 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24135 if (UNTAG_Bool(REGB1)) {
24136 REGB1 = TAG_Bool(false);
24137 REGB0 = REGB1;
24138 } else {
24139 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24140 REGB0 = REGB1;
24141 }
24142 }
24143 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24144 if (UNTAG_Bool(REGB0)) {
24145 /* ./parser//parser_prod.nit:4502 */
24146 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24147 if (UNTAG_Bool(REGB0)) {
24148 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4502);
24149 }
24150 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24151 /* ./parser//parser_prod.nit:4503 */
24152 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*/;
24153 if (UNTAG_Bool(REGB0)) {
24154 } else {
24155 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4503);
24156 }
24157 /* ./parser//parser_prod.nit:4504 */
24158 ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
24159 } else {
24160 /* ./parser//parser_prod.nit:4506 */
24161 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4506);
24162 }
24163 /* ./parser//parser_prod.nit:4508 */
24164 goto label1;
24165 }
24166 /* ./parser//parser_prod.nit:4510 */
24167 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24168 if (UNTAG_Bool(REGB0)) {
24169 } else {
24170 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4510);
24171 }
24172 fra.me.REG[3] = ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]);
24173 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24174 if (UNTAG_Bool(REGB0)) {
24175 } else {
24176 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24177 REGB0 = REGB1;
24178 }
24179 if (UNTAG_Bool(REGB0)) {
24180 /* ./parser//parser_prod.nit:4511 */
24181 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24182 if (UNTAG_Bool(REGB0)) {
24183 } else {
24184 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24185 if (UNTAG_Bool(REGB1)) {
24186 REGB1 = TAG_Bool(false);
24187 REGB0 = REGB1;
24188 } else {
24189 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24190 REGB0 = REGB1;
24191 }
24192 }
24193 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24194 if (UNTAG_Bool(REGB0)) {
24195 /* ./parser//parser_prod.nit:4512 */
24196 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24197 if (UNTAG_Bool(REGB0)) {
24198 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4512);
24199 }
24200 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24201 /* ./parser//parser_prod.nit:4513 */
24202 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24203 if (UNTAG_Bool(REGB0)) {
24204 } else {
24205 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4513);
24206 }
24207 /* ./parser//parser_prod.nit:4514 */
24208 ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24209 } else {
24210 /* ./parser//parser_prod.nit:4516 */
24211 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4516);
24212 }
24213 /* ./parser//parser_prod.nit:4518 */
24214 goto label1;
24215 }
24216 label1: while(0);
24217 stack_frame_head = fra.me.prev;
24218 return;
24219 }
24220 void parser___parser_prod___ANotExpr___visit_all(val_t p0, val_t p1){
24221 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24222 val_t REGB0;
24223 val_t tmp;
24224 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24225 fra.me.file = LOCATE_parser___parser_prod;
24226 fra.me.line = 4522;
24227 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___visit_all;
24228 fra.me.has_broke = 0;
24229 fra.me.REG_size = 3;
24230 fra.me.REG[0] = NIT_NULL;
24231 fra.me.REG[1] = NIT_NULL;
24232 fra.me.REG[2] = NIT_NULL;
24233 fra.me.REG[0] = p0;
24234 fra.me.REG[1] = p1;
24235 /* ./parser//parser_prod.nit:4524 */
24236 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
24237 if (UNTAG_Bool(REGB0)) {
24238 } else {
24239 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 4524);
24240 }
24241 fra.me.REG[2] = ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]);
24242 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24243 /* ./parser//parser_prod.nit:4525 */
24244 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24245 if (UNTAG_Bool(REGB0)) {
24246 } else {
24247 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4525);
24248 }
24249 fra.me.REG[0] = ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]);
24250 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24251 stack_frame_head = fra.me.prev;
24252 return;
24253 }
24254 void parser___parser_prod___AEqExpr___empty_init(val_t p0, int* init_table){
24255 int itpos147 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqExpr].i;
24256 struct {struct stack_frame_t me;} fra;
24257 val_t tmp;
24258 if (init_table[itpos147]) return;
24259 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24260 fra.me.file = LOCATE_parser___parser_prod;
24261 fra.me.line = 4529;
24262 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___empty_init;
24263 fra.me.has_broke = 0;
24264 fra.me.REG_size = 1;
24265 fra.me.REG[0] = NIT_NULL;
24266 fra.me.REG[0] = p0;
24267 stack_frame_head = fra.me.prev;
24268 init_table[itpos147] = 1;
24269 return;
24270 }
24271 void parser___parser_prod___AEqExpr___init_aeqexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24272 int itpos148 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqExpr].i;
24273 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24274 val_t REGB0;
24275 val_t tmp;
24276 if (init_table[itpos148]) return;
24277 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24278 fra.me.file = LOCATE_parser___parser_prod;
24279 fra.me.line = 4531;
24280 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___init_aeqexpr;
24281 fra.me.has_broke = 0;
24282 fra.me.REG_size = 4;
24283 fra.me.REG[0] = NIT_NULL;
24284 fra.me.REG[1] = NIT_NULL;
24285 fra.me.REG[2] = NIT_NULL;
24286 fra.me.REG[3] = NIT_NULL;
24287 fra.me.REG[0] = p0;
24288 fra.me.REG[1] = p1;
24289 fra.me.REG[2] = p2;
24290 /* ./parser//parser_prod.nit:4531 */
24291 fra.me.REG[3] = fra.me.REG[0];
24292 /* ./parser//parser_prod.nit:4536 */
24293 CALL_parser___parser_prod___AEqExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
24294 /* ./parser//parser_prod.nit:4537 */
24295 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24296 if (UNTAG_Bool(REGB0)) {
24297 } else {
24298 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4537);
24299 }
24300 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
24301 /* ./parser//parser_prod.nit:4538 */
24302 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24303 if (UNTAG_Bool(REGB0)) {
24304 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4538);
24305 }
24306 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24307 /* ./parser//parser_prod.nit:4539 */
24308 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24309 if (UNTAG_Bool(REGB0)) {
24310 } else {
24311 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4539);
24312 }
24313 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
24314 /* ./parser//parser_prod.nit:4540 */
24315 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24316 if (UNTAG_Bool(REGB0)) {
24317 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4540);
24318 }
24319 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
24320 stack_frame_head = fra.me.prev;
24321 init_table[itpos148] = 1;
24322 return;
24323 }
24324 void parser___parser_prod___AEqExpr___replace_child(val_t p0, val_t p1, val_t p2){
24325 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24326 val_t REGB0;
24327 val_t REGB1;
24328 val_t tmp;
24329 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24330 fra.me.file = LOCATE_parser___parser_prod;
24331 fra.me.line = 4543;
24332 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___replace_child;
24333 fra.me.has_broke = 0;
24334 fra.me.REG_size = 4;
24335 fra.me.REG[0] = NIT_NULL;
24336 fra.me.REG[1] = NIT_NULL;
24337 fra.me.REG[2] = NIT_NULL;
24338 fra.me.REG[3] = NIT_NULL;
24339 fra.me.REG[0] = p0;
24340 fra.me.REG[1] = p1;
24341 fra.me.REG[2] = p2;
24342 /* ./parser//parser_prod.nit:4545 */
24343 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24344 if (UNTAG_Bool(REGB0)) {
24345 } else {
24346 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4545);
24347 }
24348 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24349 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24350 if (UNTAG_Bool(REGB0)) {
24351 } else {
24352 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24353 REGB0 = REGB1;
24354 }
24355 if (UNTAG_Bool(REGB0)) {
24356 /* ./parser//parser_prod.nit:4546 */
24357 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24358 if (UNTAG_Bool(REGB0)) {
24359 } else {
24360 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24361 if (UNTAG_Bool(REGB1)) {
24362 REGB1 = TAG_Bool(false);
24363 REGB0 = REGB1;
24364 } else {
24365 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24366 REGB0 = REGB1;
24367 }
24368 }
24369 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24370 if (UNTAG_Bool(REGB0)) {
24371 /* ./parser//parser_prod.nit:4547 */
24372 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24373 if (UNTAG_Bool(REGB0)) {
24374 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4547);
24375 }
24376 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24377 /* ./parser//parser_prod.nit:4548 */
24378 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24379 if (UNTAG_Bool(REGB0)) {
24380 } else {
24381 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4548);
24382 }
24383 /* ./parser//parser_prod.nit:4549 */
24384 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24385 } else {
24386 /* ./parser//parser_prod.nit:4551 */
24387 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4551);
24388 }
24389 /* ./parser//parser_prod.nit:4553 */
24390 goto label1;
24391 }
24392 /* ./parser//parser_prod.nit:4555 */
24393 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24394 if (UNTAG_Bool(REGB0)) {
24395 } else {
24396 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4555);
24397 }
24398 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24399 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24400 if (UNTAG_Bool(REGB0)) {
24401 } else {
24402 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24403 REGB0 = REGB1;
24404 }
24405 if (UNTAG_Bool(REGB0)) {
24406 /* ./parser//parser_prod.nit:4556 */
24407 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24408 if (UNTAG_Bool(REGB0)) {
24409 } else {
24410 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24411 if (UNTAG_Bool(REGB1)) {
24412 REGB1 = TAG_Bool(false);
24413 REGB0 = REGB1;
24414 } else {
24415 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24416 REGB0 = REGB1;
24417 }
24418 }
24419 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24420 if (UNTAG_Bool(REGB0)) {
24421 /* ./parser//parser_prod.nit:4557 */
24422 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24423 if (UNTAG_Bool(REGB0)) {
24424 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4557);
24425 }
24426 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24427 /* ./parser//parser_prod.nit:4558 */
24428 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24429 if (UNTAG_Bool(REGB0)) {
24430 } else {
24431 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4558);
24432 }
24433 /* ./parser//parser_prod.nit:4559 */
24434 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24435 } else {
24436 /* ./parser//parser_prod.nit:4561 */
24437 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4561);
24438 }
24439 /* ./parser//parser_prod.nit:4563 */
24440 goto label1;
24441 }
24442 label1: while(0);
24443 stack_frame_head = fra.me.prev;
24444 return;
24445 }
24446 void parser___parser_prod___AEqExpr___visit_all(val_t p0, val_t p1){
24447 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24448 val_t REGB0;
24449 val_t tmp;
24450 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24451 fra.me.file = LOCATE_parser___parser_prod;
24452 fra.me.line = 4567;
24453 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___visit_all;
24454 fra.me.has_broke = 0;
24455 fra.me.REG_size = 3;
24456 fra.me.REG[0] = NIT_NULL;
24457 fra.me.REG[1] = NIT_NULL;
24458 fra.me.REG[2] = NIT_NULL;
24459 fra.me.REG[0] = p0;
24460 fra.me.REG[1] = p1;
24461 /* ./parser//parser_prod.nit:4569 */
24462 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24463 if (UNTAG_Bool(REGB0)) {
24464 } else {
24465 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4569);
24466 }
24467 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24468 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24469 /* ./parser//parser_prod.nit:4570 */
24470 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24471 if (UNTAG_Bool(REGB0)) {
24472 } else {
24473 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4570);
24474 }
24475 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24476 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24477 stack_frame_head = fra.me.prev;
24478 return;
24479 }
24480 void parser___parser_prod___AEeExpr___empty_init(val_t p0, int* init_table){
24481 int itpos149 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEeExpr].i;
24482 struct {struct stack_frame_t me;} fra;
24483 val_t tmp;
24484 if (init_table[itpos149]) return;
24485 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24486 fra.me.file = LOCATE_parser___parser_prod;
24487 fra.me.line = 4574;
24488 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___empty_init;
24489 fra.me.has_broke = 0;
24490 fra.me.REG_size = 1;
24491 fra.me.REG[0] = NIT_NULL;
24492 fra.me.REG[0] = p0;
24493 stack_frame_head = fra.me.prev;
24494 init_table[itpos149] = 1;
24495 return;
24496 }
24497 void parser___parser_prod___AEeExpr___init_aeeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24498 int itpos150 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEeExpr].i;
24499 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24500 val_t REGB0;
24501 val_t tmp;
24502 if (init_table[itpos150]) return;
24503 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24504 fra.me.file = LOCATE_parser___parser_prod;
24505 fra.me.line = 4576;
24506 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___init_aeeexpr;
24507 fra.me.has_broke = 0;
24508 fra.me.REG_size = 4;
24509 fra.me.REG[0] = NIT_NULL;
24510 fra.me.REG[1] = NIT_NULL;
24511 fra.me.REG[2] = NIT_NULL;
24512 fra.me.REG[3] = NIT_NULL;
24513 fra.me.REG[0] = p0;
24514 fra.me.REG[1] = p1;
24515 fra.me.REG[2] = p2;
24516 /* ./parser//parser_prod.nit:4576 */
24517 fra.me.REG[3] = fra.me.REG[0];
24518 /* ./parser//parser_prod.nit:4581 */
24519 CALL_parser___parser_prod___AEeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
24520 /* ./parser//parser_prod.nit:4582 */
24521 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24522 if (UNTAG_Bool(REGB0)) {
24523 } else {
24524 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4582);
24525 }
24526 ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
24527 /* ./parser//parser_prod.nit:4583 */
24528 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24529 if (UNTAG_Bool(REGB0)) {
24530 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4583);
24531 }
24532 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24533 /* ./parser//parser_prod.nit:4584 */
24534 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24535 if (UNTAG_Bool(REGB0)) {
24536 } else {
24537 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4584);
24538 }
24539 ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
24540 /* ./parser//parser_prod.nit:4585 */
24541 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24542 if (UNTAG_Bool(REGB0)) {
24543 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4585);
24544 }
24545 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
24546 stack_frame_head = fra.me.prev;
24547 init_table[itpos150] = 1;
24548 return;
24549 }
24550 void parser___parser_prod___AEeExpr___replace_child(val_t p0, val_t p1, val_t p2){
24551 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24552 val_t REGB0;
24553 val_t REGB1;
24554 val_t tmp;
24555 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24556 fra.me.file = LOCATE_parser___parser_prod;
24557 fra.me.line = 4588;
24558 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___replace_child;
24559 fra.me.has_broke = 0;
24560 fra.me.REG_size = 4;
24561 fra.me.REG[0] = NIT_NULL;
24562 fra.me.REG[1] = NIT_NULL;
24563 fra.me.REG[2] = NIT_NULL;
24564 fra.me.REG[3] = NIT_NULL;
24565 fra.me.REG[0] = p0;
24566 fra.me.REG[1] = p1;
24567 fra.me.REG[2] = p2;
24568 /* ./parser//parser_prod.nit:4590 */
24569 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24570 if (UNTAG_Bool(REGB0)) {
24571 } else {
24572 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4590);
24573 }
24574 fra.me.REG[3] = ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]);
24575 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24576 if (UNTAG_Bool(REGB0)) {
24577 } else {
24578 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24579 REGB0 = REGB1;
24580 }
24581 if (UNTAG_Bool(REGB0)) {
24582 /* ./parser//parser_prod.nit:4591 */
24583 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24584 if (UNTAG_Bool(REGB0)) {
24585 } else {
24586 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24587 if (UNTAG_Bool(REGB1)) {
24588 REGB1 = TAG_Bool(false);
24589 REGB0 = REGB1;
24590 } else {
24591 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24592 REGB0 = REGB1;
24593 }
24594 }
24595 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24596 if (UNTAG_Bool(REGB0)) {
24597 /* ./parser//parser_prod.nit:4592 */
24598 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24599 if (UNTAG_Bool(REGB0)) {
24600 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4592);
24601 }
24602 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24603 /* ./parser//parser_prod.nit:4593 */
24604 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24605 if (UNTAG_Bool(REGB0)) {
24606 } else {
24607 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4593);
24608 }
24609 /* ./parser//parser_prod.nit:4594 */
24610 ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24611 } else {
24612 /* ./parser//parser_prod.nit:4596 */
24613 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4596);
24614 }
24615 /* ./parser//parser_prod.nit:4598 */
24616 goto label1;
24617 }
24618 /* ./parser//parser_prod.nit:4600 */
24619 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24620 if (UNTAG_Bool(REGB0)) {
24621 } else {
24622 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4600);
24623 }
24624 fra.me.REG[3] = ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]);
24625 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24626 if (UNTAG_Bool(REGB0)) {
24627 } else {
24628 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24629 REGB0 = REGB1;
24630 }
24631 if (UNTAG_Bool(REGB0)) {
24632 /* ./parser//parser_prod.nit:4601 */
24633 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24634 if (UNTAG_Bool(REGB0)) {
24635 } else {
24636 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24637 if (UNTAG_Bool(REGB1)) {
24638 REGB1 = TAG_Bool(false);
24639 REGB0 = REGB1;
24640 } else {
24641 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24642 REGB0 = REGB1;
24643 }
24644 }
24645 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24646 if (UNTAG_Bool(REGB0)) {
24647 /* ./parser//parser_prod.nit:4602 */
24648 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24649 if (UNTAG_Bool(REGB0)) {
24650 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4602);
24651 }
24652 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24653 /* ./parser//parser_prod.nit:4603 */
24654 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24655 if (UNTAG_Bool(REGB0)) {
24656 } else {
24657 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4603);
24658 }
24659 /* ./parser//parser_prod.nit:4604 */
24660 ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24661 } else {
24662 /* ./parser//parser_prod.nit:4606 */
24663 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4606);
24664 }
24665 /* ./parser//parser_prod.nit:4608 */
24666 goto label1;
24667 }
24668 label1: while(0);
24669 stack_frame_head = fra.me.prev;
24670 return;
24671 }
24672 void parser___parser_prod___AEeExpr___visit_all(val_t p0, val_t p1){
24673 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24674 val_t REGB0;
24675 val_t tmp;
24676 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24677 fra.me.file = LOCATE_parser___parser_prod;
24678 fra.me.line = 4612;
24679 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___visit_all;
24680 fra.me.has_broke = 0;
24681 fra.me.REG_size = 3;
24682 fra.me.REG[0] = NIT_NULL;
24683 fra.me.REG[1] = NIT_NULL;
24684 fra.me.REG[2] = NIT_NULL;
24685 fra.me.REG[0] = p0;
24686 fra.me.REG[1] = p1;
24687 /* ./parser//parser_prod.nit:4614 */
24688 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24689 if (UNTAG_Bool(REGB0)) {
24690 } else {
24691 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4614);
24692 }
24693 fra.me.REG[2] = ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]);
24694 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24695 /* ./parser//parser_prod.nit:4615 */
24696 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24697 if (UNTAG_Bool(REGB0)) {
24698 } else {
24699 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4615);
24700 }
24701 fra.me.REG[0] = ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]);
24702 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24703 stack_frame_head = fra.me.prev;
24704 return;
24705 }
24706 void parser___parser_prod___ANeExpr___empty_init(val_t p0, int* init_table){
24707 int itpos151 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeExpr].i;
24708 struct {struct stack_frame_t me;} fra;
24709 val_t tmp;
24710 if (init_table[itpos151]) return;
24711 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24712 fra.me.file = LOCATE_parser___parser_prod;
24713 fra.me.line = 4619;
24714 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___empty_init;
24715 fra.me.has_broke = 0;
24716 fra.me.REG_size = 1;
24717 fra.me.REG[0] = NIT_NULL;
24718 fra.me.REG[0] = p0;
24719 stack_frame_head = fra.me.prev;
24720 init_table[itpos151] = 1;
24721 return;
24722 }
24723 void parser___parser_prod___ANeExpr___init_aneexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24724 int itpos152 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeExpr].i;
24725 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24726 val_t REGB0;
24727 val_t tmp;
24728 if (init_table[itpos152]) return;
24729 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24730 fra.me.file = LOCATE_parser___parser_prod;
24731 fra.me.line = 4621;
24732 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___init_aneexpr;
24733 fra.me.has_broke = 0;
24734 fra.me.REG_size = 4;
24735 fra.me.REG[0] = NIT_NULL;
24736 fra.me.REG[1] = NIT_NULL;
24737 fra.me.REG[2] = NIT_NULL;
24738 fra.me.REG[3] = NIT_NULL;
24739 fra.me.REG[0] = p0;
24740 fra.me.REG[1] = p1;
24741 fra.me.REG[2] = p2;
24742 /* ./parser//parser_prod.nit:4621 */
24743 fra.me.REG[3] = fra.me.REG[0];
24744 /* ./parser//parser_prod.nit:4626 */
24745 CALL_parser___parser_prod___ANeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
24746 /* ./parser//parser_prod.nit:4627 */
24747 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24748 if (UNTAG_Bool(REGB0)) {
24749 } else {
24750 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4627);
24751 }
24752 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
24753 /* ./parser//parser_prod.nit:4628 */
24754 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24755 if (UNTAG_Bool(REGB0)) {
24756 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4628);
24757 }
24758 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24759 /* ./parser//parser_prod.nit:4629 */
24760 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24761 if (UNTAG_Bool(REGB0)) {
24762 } else {
24763 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4629);
24764 }
24765 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
24766 /* ./parser//parser_prod.nit:4630 */
24767 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24768 if (UNTAG_Bool(REGB0)) {
24769 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4630);
24770 }
24771 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
24772 stack_frame_head = fra.me.prev;
24773 init_table[itpos152] = 1;
24774 return;
24775 }
24776 void parser___parser_prod___ANeExpr___replace_child(val_t p0, val_t p1, val_t p2){
24777 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24778 val_t REGB0;
24779 val_t REGB1;
24780 val_t tmp;
24781 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24782 fra.me.file = LOCATE_parser___parser_prod;
24783 fra.me.line = 4633;
24784 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___replace_child;
24785 fra.me.has_broke = 0;
24786 fra.me.REG_size = 4;
24787 fra.me.REG[0] = NIT_NULL;
24788 fra.me.REG[1] = NIT_NULL;
24789 fra.me.REG[2] = NIT_NULL;
24790 fra.me.REG[3] = NIT_NULL;
24791 fra.me.REG[0] = p0;
24792 fra.me.REG[1] = p1;
24793 fra.me.REG[2] = p2;
24794 /* ./parser//parser_prod.nit:4635 */
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, 4635);
24799 }
24800 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24801 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24802 if (UNTAG_Bool(REGB0)) {
24803 } else {
24804 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24805 REGB0 = REGB1;
24806 }
24807 if (UNTAG_Bool(REGB0)) {
24808 /* ./parser//parser_prod.nit:4636 */
24809 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24810 if (UNTAG_Bool(REGB0)) {
24811 } else {
24812 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24813 if (UNTAG_Bool(REGB1)) {
24814 REGB1 = TAG_Bool(false);
24815 REGB0 = REGB1;
24816 } else {
24817 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24818 REGB0 = REGB1;
24819 }
24820 }
24821 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24822 if (UNTAG_Bool(REGB0)) {
24823 /* ./parser//parser_prod.nit:4637 */
24824 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24825 if (UNTAG_Bool(REGB0)) {
24826 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4637);
24827 }
24828 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24829 /* ./parser//parser_prod.nit:4638 */
24830 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24831 if (UNTAG_Bool(REGB0)) {
24832 } else {
24833 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4638);
24834 }
24835 /* ./parser//parser_prod.nit:4639 */
24836 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24837 } else {
24838 /* ./parser//parser_prod.nit:4641 */
24839 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4641);
24840 }
24841 /* ./parser//parser_prod.nit:4643 */
24842 goto label1;
24843 }
24844 /* ./parser//parser_prod.nit:4645 */
24845 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24846 if (UNTAG_Bool(REGB0)) {
24847 } else {
24848 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4645);
24849 }
24850 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24851 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24852 if (UNTAG_Bool(REGB0)) {
24853 } else {
24854 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24855 REGB0 = REGB1;
24856 }
24857 if (UNTAG_Bool(REGB0)) {
24858 /* ./parser//parser_prod.nit:4646 */
24859 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24860 if (UNTAG_Bool(REGB0)) {
24861 } else {
24862 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24863 if (UNTAG_Bool(REGB1)) {
24864 REGB1 = TAG_Bool(false);
24865 REGB0 = REGB1;
24866 } else {
24867 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24868 REGB0 = REGB1;
24869 }
24870 }
24871 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24872 if (UNTAG_Bool(REGB0)) {
24873 /* ./parser//parser_prod.nit:4647 */
24874 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24875 if (UNTAG_Bool(REGB0)) {
24876 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4647);
24877 }
24878 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24879 /* ./parser//parser_prod.nit:4648 */
24880 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24881 if (UNTAG_Bool(REGB0)) {
24882 } else {
24883 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4648);
24884 }
24885 /* ./parser//parser_prod.nit:4649 */
24886 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24887 } else {
24888 /* ./parser//parser_prod.nit:4651 */
24889 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4651);
24890 }
24891 /* ./parser//parser_prod.nit:4653 */
24892 goto label1;
24893 }
24894 label1: while(0);
24895 stack_frame_head = fra.me.prev;
24896 return;
24897 }
24898 void parser___parser_prod___ANeExpr___visit_all(val_t p0, val_t p1){
24899 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24900 val_t REGB0;
24901 val_t tmp;
24902 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24903 fra.me.file = LOCATE_parser___parser_prod;
24904 fra.me.line = 4657;
24905 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___visit_all;
24906 fra.me.has_broke = 0;
24907 fra.me.REG_size = 3;
24908 fra.me.REG[0] = NIT_NULL;
24909 fra.me.REG[1] = NIT_NULL;
24910 fra.me.REG[2] = NIT_NULL;
24911 fra.me.REG[0] = p0;
24912 fra.me.REG[1] = p1;
24913 /* ./parser//parser_prod.nit:4659 */
24914 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24915 if (UNTAG_Bool(REGB0)) {
24916 } else {
24917 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4659);
24918 }
24919 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24920 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24921 /* ./parser//parser_prod.nit:4660 */
24922 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24923 if (UNTAG_Bool(REGB0)) {
24924 } else {
24925 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4660);
24926 }
24927 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24928 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24929 stack_frame_head = fra.me.prev;
24930 return;
24931 }
24932 void parser___parser_prod___ALtExpr___empty_init(val_t p0, int* init_table){
24933 int itpos153 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtExpr].i;
24934 struct {struct stack_frame_t me;} fra;
24935 val_t tmp;
24936 if (init_table[itpos153]) return;
24937 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24938 fra.me.file = LOCATE_parser___parser_prod;
24939 fra.me.line = 4664;
24940 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___empty_init;
24941 fra.me.has_broke = 0;
24942 fra.me.REG_size = 1;
24943 fra.me.REG[0] = NIT_NULL;
24944 fra.me.REG[0] = p0;
24945 stack_frame_head = fra.me.prev;
24946 init_table[itpos153] = 1;
24947 return;
24948 }
24949 void parser___parser_prod___ALtExpr___init_altexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24950 int itpos154 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtExpr].i;
24951 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24952 val_t REGB0;
24953 val_t tmp;
24954 if (init_table[itpos154]) return;
24955 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24956 fra.me.file = LOCATE_parser___parser_prod;
24957 fra.me.line = 4666;
24958 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___init_altexpr;
24959 fra.me.has_broke = 0;
24960 fra.me.REG_size = 4;
24961 fra.me.REG[0] = NIT_NULL;
24962 fra.me.REG[1] = NIT_NULL;
24963 fra.me.REG[2] = NIT_NULL;
24964 fra.me.REG[3] = NIT_NULL;
24965 fra.me.REG[0] = p0;
24966 fra.me.REG[1] = p1;
24967 fra.me.REG[2] = p2;
24968 /* ./parser//parser_prod.nit:4666 */
24969 fra.me.REG[3] = fra.me.REG[0];
24970 /* ./parser//parser_prod.nit:4671 */
24971 CALL_parser___parser_prod___ALtExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
24972 /* ./parser//parser_prod.nit:4672 */
24973 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24974 if (UNTAG_Bool(REGB0)) {
24975 } else {
24976 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4672);
24977 }
24978 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
24979 /* ./parser//parser_prod.nit:4673 */
24980 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24981 if (UNTAG_Bool(REGB0)) {
24982 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4673);
24983 }
24984 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24985 /* ./parser//parser_prod.nit:4674 */
24986 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24987 if (UNTAG_Bool(REGB0)) {
24988 } else {
24989 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4674);
24990 }
24991 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
24992 /* ./parser//parser_prod.nit:4675 */
24993 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24994 if (UNTAG_Bool(REGB0)) {
24995 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4675);
24996 }
24997 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
24998 stack_frame_head = fra.me.prev;
24999 init_table[itpos154] = 1;
25000 return;
25001 }
25002 void parser___parser_prod___ALtExpr___replace_child(val_t p0, val_t p1, val_t p2){
25003 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25004 val_t REGB0;
25005 val_t REGB1;
25006 val_t tmp;
25007 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25008 fra.me.file = LOCATE_parser___parser_prod;
25009 fra.me.line = 4678;
25010 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___replace_child;
25011 fra.me.has_broke = 0;
25012 fra.me.REG_size = 4;
25013 fra.me.REG[0] = NIT_NULL;
25014 fra.me.REG[1] = NIT_NULL;
25015 fra.me.REG[2] = NIT_NULL;
25016 fra.me.REG[3] = NIT_NULL;
25017 fra.me.REG[0] = p0;
25018 fra.me.REG[1] = p1;
25019 fra.me.REG[2] = p2;
25020 /* ./parser//parser_prod.nit:4680 */
25021 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25022 if (UNTAG_Bool(REGB0)) {
25023 } else {
25024 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4680);
25025 }
25026 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25027 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25028 if (UNTAG_Bool(REGB0)) {
25029 } else {
25030 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25031 REGB0 = REGB1;
25032 }
25033 if (UNTAG_Bool(REGB0)) {
25034 /* ./parser//parser_prod.nit:4681 */
25035 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25036 if (UNTAG_Bool(REGB0)) {
25037 } else {
25038 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25039 if (UNTAG_Bool(REGB1)) {
25040 REGB1 = TAG_Bool(false);
25041 REGB0 = REGB1;
25042 } else {
25043 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25044 REGB0 = REGB1;
25045 }
25046 }
25047 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25048 if (UNTAG_Bool(REGB0)) {
25049 /* ./parser//parser_prod.nit:4682 */
25050 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25051 if (UNTAG_Bool(REGB0)) {
25052 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4682);
25053 }
25054 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25055 /* ./parser//parser_prod.nit:4683 */
25056 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25057 if (UNTAG_Bool(REGB0)) {
25058 } else {
25059 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4683);
25060 }
25061 /* ./parser//parser_prod.nit:4684 */
25062 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25063 } else {
25064 /* ./parser//parser_prod.nit:4686 */
25065 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4686);
25066 }
25067 /* ./parser//parser_prod.nit:4688 */
25068 goto label1;
25069 }
25070 /* ./parser//parser_prod.nit:4690 */
25071 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25072 if (UNTAG_Bool(REGB0)) {
25073 } else {
25074 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4690);
25075 }
25076 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25077 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25078 if (UNTAG_Bool(REGB0)) {
25079 } else {
25080 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25081 REGB0 = REGB1;
25082 }
25083 if (UNTAG_Bool(REGB0)) {
25084 /* ./parser//parser_prod.nit:4691 */
25085 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25086 if (UNTAG_Bool(REGB0)) {
25087 } else {
25088 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25089 if (UNTAG_Bool(REGB1)) {
25090 REGB1 = TAG_Bool(false);
25091 REGB0 = REGB1;
25092 } else {
25093 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25094 REGB0 = REGB1;
25095 }
25096 }
25097 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25098 if (UNTAG_Bool(REGB0)) {
25099 /* ./parser//parser_prod.nit:4692 */
25100 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25101 if (UNTAG_Bool(REGB0)) {
25102 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4692);
25103 }
25104 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25105 /* ./parser//parser_prod.nit:4693 */
25106 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25107 if (UNTAG_Bool(REGB0)) {
25108 } else {
25109 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4693);
25110 }
25111 /* ./parser//parser_prod.nit:4694 */
25112 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25113 } else {
25114 /* ./parser//parser_prod.nit:4696 */
25115 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4696);
25116 }
25117 /* ./parser//parser_prod.nit:4698 */
25118 goto label1;
25119 }
25120 label1: while(0);
25121 stack_frame_head = fra.me.prev;
25122 return;
25123 }
25124 void parser___parser_prod___ALtExpr___visit_all(val_t p0, val_t p1){
25125 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25126 val_t REGB0;
25127 val_t tmp;
25128 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25129 fra.me.file = LOCATE_parser___parser_prod;
25130 fra.me.line = 4702;
25131 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___visit_all;
25132 fra.me.has_broke = 0;
25133 fra.me.REG_size = 3;
25134 fra.me.REG[0] = NIT_NULL;
25135 fra.me.REG[1] = NIT_NULL;
25136 fra.me.REG[2] = NIT_NULL;
25137 fra.me.REG[0] = p0;
25138 fra.me.REG[1] = p1;
25139 /* ./parser//parser_prod.nit:4704 */
25140 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25141 if (UNTAG_Bool(REGB0)) {
25142 } else {
25143 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4704);
25144 }
25145 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25146 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25147 /* ./parser//parser_prod.nit:4705 */
25148 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25149 if (UNTAG_Bool(REGB0)) {
25150 } else {
25151 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4705);
25152 }
25153 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25154 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25155 stack_frame_head = fra.me.prev;
25156 return;
25157 }
25158 void parser___parser_prod___ALeExpr___empty_init(val_t p0, int* init_table){
25159 int itpos155 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeExpr].i;
25160 struct {struct stack_frame_t me;} fra;
25161 val_t tmp;
25162 if (init_table[itpos155]) return;
25163 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25164 fra.me.file = LOCATE_parser___parser_prod;
25165 fra.me.line = 4709;
25166 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___empty_init;
25167 fra.me.has_broke = 0;
25168 fra.me.REG_size = 1;
25169 fra.me.REG[0] = NIT_NULL;
25170 fra.me.REG[0] = p0;
25171 stack_frame_head = fra.me.prev;
25172 init_table[itpos155] = 1;
25173 return;
25174 }
25175 void parser___parser_prod___ALeExpr___init_aleexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25176 int itpos156 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeExpr].i;
25177 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25178 val_t REGB0;
25179 val_t tmp;
25180 if (init_table[itpos156]) return;
25181 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25182 fra.me.file = LOCATE_parser___parser_prod;
25183 fra.me.line = 4711;
25184 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___init_aleexpr;
25185 fra.me.has_broke = 0;
25186 fra.me.REG_size = 4;
25187 fra.me.REG[0] = NIT_NULL;
25188 fra.me.REG[1] = NIT_NULL;
25189 fra.me.REG[2] = NIT_NULL;
25190 fra.me.REG[3] = NIT_NULL;
25191 fra.me.REG[0] = p0;
25192 fra.me.REG[1] = p1;
25193 fra.me.REG[2] = p2;
25194 /* ./parser//parser_prod.nit:4711 */
25195 fra.me.REG[3] = fra.me.REG[0];
25196 /* ./parser//parser_prod.nit:4716 */
25197 CALL_parser___parser_prod___ALeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25198 /* ./parser//parser_prod.nit:4717 */
25199 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25200 if (UNTAG_Bool(REGB0)) {
25201 } else {
25202 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4717);
25203 }
25204 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25205 /* ./parser//parser_prod.nit:4718 */
25206 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25207 if (UNTAG_Bool(REGB0)) {
25208 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4718);
25209 }
25210 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25211 /* ./parser//parser_prod.nit:4719 */
25212 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25213 if (UNTAG_Bool(REGB0)) {
25214 } else {
25215 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4719);
25216 }
25217 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25218 /* ./parser//parser_prod.nit:4720 */
25219 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25220 if (UNTAG_Bool(REGB0)) {
25221 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4720);
25222 }
25223 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25224 stack_frame_head = fra.me.prev;
25225 init_table[itpos156] = 1;
25226 return;
25227 }
25228 void parser___parser_prod___ALeExpr___replace_child(val_t p0, val_t p1, val_t p2){
25229 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25230 val_t REGB0;
25231 val_t REGB1;
25232 val_t tmp;
25233 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25234 fra.me.file = LOCATE_parser___parser_prod;
25235 fra.me.line = 4723;
25236 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___replace_child;
25237 fra.me.has_broke = 0;
25238 fra.me.REG_size = 4;
25239 fra.me.REG[0] = NIT_NULL;
25240 fra.me.REG[1] = NIT_NULL;
25241 fra.me.REG[2] = NIT_NULL;
25242 fra.me.REG[3] = NIT_NULL;
25243 fra.me.REG[0] = p0;
25244 fra.me.REG[1] = p1;
25245 fra.me.REG[2] = p2;
25246 /* ./parser//parser_prod.nit:4725 */
25247 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25248 if (UNTAG_Bool(REGB0)) {
25249 } else {
25250 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4725);
25251 }
25252 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25253 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25254 if (UNTAG_Bool(REGB0)) {
25255 } else {
25256 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25257 REGB0 = REGB1;
25258 }
25259 if (UNTAG_Bool(REGB0)) {
25260 /* ./parser//parser_prod.nit:4726 */
25261 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25262 if (UNTAG_Bool(REGB0)) {
25263 } else {
25264 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25265 if (UNTAG_Bool(REGB1)) {
25266 REGB1 = TAG_Bool(false);
25267 REGB0 = REGB1;
25268 } else {
25269 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25270 REGB0 = REGB1;
25271 }
25272 }
25273 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25274 if (UNTAG_Bool(REGB0)) {
25275 /* ./parser//parser_prod.nit:4727 */
25276 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25277 if (UNTAG_Bool(REGB0)) {
25278 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4727);
25279 }
25280 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25281 /* ./parser//parser_prod.nit:4728 */
25282 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25283 if (UNTAG_Bool(REGB0)) {
25284 } else {
25285 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4728);
25286 }
25287 /* ./parser//parser_prod.nit:4729 */
25288 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25289 } else {
25290 /* ./parser//parser_prod.nit:4731 */
25291 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4731);
25292 }
25293 /* ./parser//parser_prod.nit:4733 */
25294 goto label1;
25295 }
25296 /* ./parser//parser_prod.nit:4735 */
25297 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25298 if (UNTAG_Bool(REGB0)) {
25299 } else {
25300 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4735);
25301 }
25302 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25303 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25304 if (UNTAG_Bool(REGB0)) {
25305 } else {
25306 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25307 REGB0 = REGB1;
25308 }
25309 if (UNTAG_Bool(REGB0)) {
25310 /* ./parser//parser_prod.nit:4736 */
25311 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25312 if (UNTAG_Bool(REGB0)) {
25313 } else {
25314 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25315 if (UNTAG_Bool(REGB1)) {
25316 REGB1 = TAG_Bool(false);
25317 REGB0 = REGB1;
25318 } else {
25319 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25320 REGB0 = REGB1;
25321 }
25322 }
25323 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25324 if (UNTAG_Bool(REGB0)) {
25325 /* ./parser//parser_prod.nit:4737 */
25326 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25327 if (UNTAG_Bool(REGB0)) {
25328 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4737);
25329 }
25330 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25331 /* ./parser//parser_prod.nit:4738 */
25332 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25333 if (UNTAG_Bool(REGB0)) {
25334 } else {
25335 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4738);
25336 }
25337 /* ./parser//parser_prod.nit:4739 */
25338 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25339 } else {
25340 /* ./parser//parser_prod.nit:4741 */
25341 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4741);
25342 }
25343 /* ./parser//parser_prod.nit:4743 */
25344 goto label1;
25345 }
25346 label1: while(0);
25347 stack_frame_head = fra.me.prev;
25348 return;
25349 }
25350 void parser___parser_prod___ALeExpr___visit_all(val_t p0, val_t p1){
25351 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25352 val_t REGB0;
25353 val_t tmp;
25354 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25355 fra.me.file = LOCATE_parser___parser_prod;
25356 fra.me.line = 4747;
25357 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___visit_all;
25358 fra.me.has_broke = 0;
25359 fra.me.REG_size = 3;
25360 fra.me.REG[0] = NIT_NULL;
25361 fra.me.REG[1] = NIT_NULL;
25362 fra.me.REG[2] = NIT_NULL;
25363 fra.me.REG[0] = p0;
25364 fra.me.REG[1] = p1;
25365 /* ./parser//parser_prod.nit:4749 */
25366 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25367 if (UNTAG_Bool(REGB0)) {
25368 } else {
25369 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4749);
25370 }
25371 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25372 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25373 /* ./parser//parser_prod.nit:4750 */
25374 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25375 if (UNTAG_Bool(REGB0)) {
25376 } else {
25377 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4750);
25378 }
25379 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25380 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25381 stack_frame_head = fra.me.prev;
25382 return;
25383 }
25384 void parser___parser_prod___ALlExpr___empty_init(val_t p0, int* init_table){
25385 int itpos157 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlExpr].i;
25386 struct {struct stack_frame_t me;} fra;
25387 val_t tmp;
25388 if (init_table[itpos157]) return;
25389 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25390 fra.me.file = LOCATE_parser___parser_prod;
25391 fra.me.line = 4754;
25392 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___empty_init;
25393 fra.me.has_broke = 0;
25394 fra.me.REG_size = 1;
25395 fra.me.REG[0] = NIT_NULL;
25396 fra.me.REG[0] = p0;
25397 stack_frame_head = fra.me.prev;
25398 init_table[itpos157] = 1;
25399 return;
25400 }
25401 void parser___parser_prod___ALlExpr___init_allexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25402 int itpos158 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlExpr].i;
25403 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25404 val_t REGB0;
25405 val_t tmp;
25406 if (init_table[itpos158]) return;
25407 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25408 fra.me.file = LOCATE_parser___parser_prod;
25409 fra.me.line = 4756;
25410 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___init_allexpr;
25411 fra.me.has_broke = 0;
25412 fra.me.REG_size = 4;
25413 fra.me.REG[0] = NIT_NULL;
25414 fra.me.REG[1] = NIT_NULL;
25415 fra.me.REG[2] = NIT_NULL;
25416 fra.me.REG[3] = NIT_NULL;
25417 fra.me.REG[0] = p0;
25418 fra.me.REG[1] = p1;
25419 fra.me.REG[2] = p2;
25420 /* ./parser//parser_prod.nit:4756 */
25421 fra.me.REG[3] = fra.me.REG[0];
25422 /* ./parser//parser_prod.nit:4761 */
25423 CALL_parser___parser_prod___ALlExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25424 /* ./parser//parser_prod.nit:4762 */
25425 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25426 if (UNTAG_Bool(REGB0)) {
25427 } else {
25428 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4762);
25429 }
25430 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25431 /* ./parser//parser_prod.nit:4763 */
25432 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25433 if (UNTAG_Bool(REGB0)) {
25434 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4763);
25435 }
25436 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25437 /* ./parser//parser_prod.nit:4764 */
25438 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25439 if (UNTAG_Bool(REGB0)) {
25440 } else {
25441 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4764);
25442 }
25443 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25444 /* ./parser//parser_prod.nit:4765 */
25445 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25446 if (UNTAG_Bool(REGB0)) {
25447 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4765);
25448 }
25449 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25450 stack_frame_head = fra.me.prev;
25451 init_table[itpos158] = 1;
25452 return;
25453 }
25454 void parser___parser_prod___ALlExpr___replace_child(val_t p0, val_t p1, val_t p2){
25455 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25456 val_t REGB0;
25457 val_t REGB1;
25458 val_t tmp;
25459 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25460 fra.me.file = LOCATE_parser___parser_prod;
25461 fra.me.line = 4768;
25462 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___replace_child;
25463 fra.me.has_broke = 0;
25464 fra.me.REG_size = 4;
25465 fra.me.REG[0] = NIT_NULL;
25466 fra.me.REG[1] = NIT_NULL;
25467 fra.me.REG[2] = NIT_NULL;
25468 fra.me.REG[3] = NIT_NULL;
25469 fra.me.REG[0] = p0;
25470 fra.me.REG[1] = p1;
25471 fra.me.REG[2] = p2;
25472 /* ./parser//parser_prod.nit:4770 */
25473 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25474 if (UNTAG_Bool(REGB0)) {
25475 } else {
25476 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4770);
25477 }
25478 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25479 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25480 if (UNTAG_Bool(REGB0)) {
25481 } else {
25482 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25483 REGB0 = REGB1;
25484 }
25485 if (UNTAG_Bool(REGB0)) {
25486 /* ./parser//parser_prod.nit:4771 */
25487 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25488 if (UNTAG_Bool(REGB0)) {
25489 } else {
25490 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25491 if (UNTAG_Bool(REGB1)) {
25492 REGB1 = TAG_Bool(false);
25493 REGB0 = REGB1;
25494 } else {
25495 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25496 REGB0 = REGB1;
25497 }
25498 }
25499 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25500 if (UNTAG_Bool(REGB0)) {
25501 /* ./parser//parser_prod.nit:4772 */
25502 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25503 if (UNTAG_Bool(REGB0)) {
25504 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4772);
25505 }
25506 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25507 /* ./parser//parser_prod.nit:4773 */
25508 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25509 if (UNTAG_Bool(REGB0)) {
25510 } else {
25511 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4773);
25512 }
25513 /* ./parser//parser_prod.nit:4774 */
25514 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25515 } else {
25516 /* ./parser//parser_prod.nit:4776 */
25517 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4776);
25518 }
25519 /* ./parser//parser_prod.nit:4778 */
25520 goto label1;
25521 }
25522 /* ./parser//parser_prod.nit:4780 */
25523 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25524 if (UNTAG_Bool(REGB0)) {
25525 } else {
25526 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4780);
25527 }
25528 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25529 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25530 if (UNTAG_Bool(REGB0)) {
25531 } else {
25532 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25533 REGB0 = REGB1;
25534 }
25535 if (UNTAG_Bool(REGB0)) {
25536 /* ./parser//parser_prod.nit:4781 */
25537 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25538 if (UNTAG_Bool(REGB0)) {
25539 } else {
25540 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25541 if (UNTAG_Bool(REGB1)) {
25542 REGB1 = TAG_Bool(false);
25543 REGB0 = REGB1;
25544 } else {
25545 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25546 REGB0 = REGB1;
25547 }
25548 }
25549 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25550 if (UNTAG_Bool(REGB0)) {
25551 /* ./parser//parser_prod.nit:4782 */
25552 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25553 if (UNTAG_Bool(REGB0)) {
25554 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4782);
25555 }
25556 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25557 /* ./parser//parser_prod.nit:4783 */
25558 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25559 if (UNTAG_Bool(REGB0)) {
25560 } else {
25561 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4783);
25562 }
25563 /* ./parser//parser_prod.nit:4784 */
25564 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25565 } else {
25566 /* ./parser//parser_prod.nit:4786 */
25567 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4786);
25568 }
25569 /* ./parser//parser_prod.nit:4788 */
25570 goto label1;
25571 }
25572 label1: while(0);
25573 stack_frame_head = fra.me.prev;
25574 return;
25575 }
25576 void parser___parser_prod___ALlExpr___visit_all(val_t p0, val_t p1){
25577 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25578 val_t REGB0;
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 = 4792;
25583 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___visit_all;
25584 fra.me.has_broke = 0;
25585 fra.me.REG_size = 3;
25586 fra.me.REG[0] = NIT_NULL;
25587 fra.me.REG[1] = NIT_NULL;
25588 fra.me.REG[2] = NIT_NULL;
25589 fra.me.REG[0] = p0;
25590 fra.me.REG[1] = p1;
25591 /* ./parser//parser_prod.nit:4794 */
25592 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25593 if (UNTAG_Bool(REGB0)) {
25594 } else {
25595 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4794);
25596 }
25597 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25598 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25599 /* ./parser//parser_prod.nit:4795 */
25600 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25601 if (UNTAG_Bool(REGB0)) {
25602 } else {
25603 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4795);
25604 }
25605 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25606 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25607 stack_frame_head = fra.me.prev;
25608 return;
25609 }
25610 void parser___parser_prod___AGtExpr___empty_init(val_t p0, int* init_table){
25611 int itpos159 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtExpr].i;
25612 struct {struct stack_frame_t me;} fra;
25613 val_t tmp;
25614 if (init_table[itpos159]) return;
25615 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25616 fra.me.file = LOCATE_parser___parser_prod;
25617 fra.me.line = 4799;
25618 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___empty_init;
25619 fra.me.has_broke = 0;
25620 fra.me.REG_size = 1;
25621 fra.me.REG[0] = NIT_NULL;
25622 fra.me.REG[0] = p0;
25623 stack_frame_head = fra.me.prev;
25624 init_table[itpos159] = 1;
25625 return;
25626 }
25627 void parser___parser_prod___AGtExpr___init_agtexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25628 int itpos160 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtExpr].i;
25629 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25630 val_t REGB0;
25631 val_t tmp;
25632 if (init_table[itpos160]) return;
25633 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25634 fra.me.file = LOCATE_parser___parser_prod;
25635 fra.me.line = 4801;
25636 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___init_agtexpr;
25637 fra.me.has_broke = 0;
25638 fra.me.REG_size = 4;
25639 fra.me.REG[0] = NIT_NULL;
25640 fra.me.REG[1] = NIT_NULL;
25641 fra.me.REG[2] = NIT_NULL;
25642 fra.me.REG[3] = NIT_NULL;
25643 fra.me.REG[0] = p0;
25644 fra.me.REG[1] = p1;
25645 fra.me.REG[2] = p2;
25646 /* ./parser//parser_prod.nit:4801 */
25647 fra.me.REG[3] = fra.me.REG[0];
25648 /* ./parser//parser_prod.nit:4806 */
25649 CALL_parser___parser_prod___AGtExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25650 /* ./parser//parser_prod.nit:4807 */
25651 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25652 if (UNTAG_Bool(REGB0)) {
25653 } else {
25654 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4807);
25655 }
25656 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25657 /* ./parser//parser_prod.nit:4808 */
25658 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25659 if (UNTAG_Bool(REGB0)) {
25660 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4808);
25661 }
25662 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25663 /* ./parser//parser_prod.nit:4809 */
25664 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25665 if (UNTAG_Bool(REGB0)) {
25666 } else {
25667 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4809);
25668 }
25669 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25670 /* ./parser//parser_prod.nit:4810 */
25671 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25672 if (UNTAG_Bool(REGB0)) {
25673 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4810);
25674 }
25675 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25676 stack_frame_head = fra.me.prev;
25677 init_table[itpos160] = 1;
25678 return;
25679 }
25680 void parser___parser_prod___AGtExpr___replace_child(val_t p0, val_t p1, val_t p2){
25681 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25682 val_t REGB0;
25683 val_t REGB1;
25684 val_t tmp;
25685 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25686 fra.me.file = LOCATE_parser___parser_prod;
25687 fra.me.line = 4813;
25688 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___replace_child;
25689 fra.me.has_broke = 0;
25690 fra.me.REG_size = 4;
25691 fra.me.REG[0] = NIT_NULL;
25692 fra.me.REG[1] = NIT_NULL;
25693 fra.me.REG[2] = NIT_NULL;
25694 fra.me.REG[3] = NIT_NULL;
25695 fra.me.REG[0] = p0;
25696 fra.me.REG[1] = p1;
25697 fra.me.REG[2] = p2;
25698 /* ./parser//parser_prod.nit:4815 */
25699 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25700 if (UNTAG_Bool(REGB0)) {
25701 } else {
25702 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4815);
25703 }
25704 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25705 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25706 if (UNTAG_Bool(REGB0)) {
25707 } else {
25708 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25709 REGB0 = REGB1;
25710 }
25711 if (UNTAG_Bool(REGB0)) {
25712 /* ./parser//parser_prod.nit:4816 */
25713 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25714 if (UNTAG_Bool(REGB0)) {
25715 } else {
25716 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25717 if (UNTAG_Bool(REGB1)) {
25718 REGB1 = TAG_Bool(false);
25719 REGB0 = REGB1;
25720 } else {
25721 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25722 REGB0 = REGB1;
25723 }
25724 }
25725 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25726 if (UNTAG_Bool(REGB0)) {
25727 /* ./parser//parser_prod.nit:4817 */
25728 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25729 if (UNTAG_Bool(REGB0)) {
25730 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4817);
25731 }
25732 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25733 /* ./parser//parser_prod.nit:4818 */
25734 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25735 if (UNTAG_Bool(REGB0)) {
25736 } else {
25737 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4818);
25738 }
25739 /* ./parser//parser_prod.nit:4819 */
25740 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25741 } else {
25742 /* ./parser//parser_prod.nit:4821 */
25743 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4821);
25744 }
25745 /* ./parser//parser_prod.nit:4823 */
25746 goto label1;
25747 }
25748 /* ./parser//parser_prod.nit:4825 */
25749 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25750 if (UNTAG_Bool(REGB0)) {
25751 } else {
25752 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4825);
25753 }
25754 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25755 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25756 if (UNTAG_Bool(REGB0)) {
25757 } else {
25758 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25759 REGB0 = REGB1;
25760 }
25761 if (UNTAG_Bool(REGB0)) {
25762 /* ./parser//parser_prod.nit:4826 */
25763 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25764 if (UNTAG_Bool(REGB0)) {
25765 } else {
25766 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25767 if (UNTAG_Bool(REGB1)) {
25768 REGB1 = TAG_Bool(false);
25769 REGB0 = REGB1;
25770 } else {
25771 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25772 REGB0 = REGB1;
25773 }
25774 }
25775 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25776 if (UNTAG_Bool(REGB0)) {
25777 /* ./parser//parser_prod.nit:4827 */
25778 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25779 if (UNTAG_Bool(REGB0)) {
25780 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4827);
25781 }
25782 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25783 /* ./parser//parser_prod.nit:4828 */
25784 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25785 if (UNTAG_Bool(REGB0)) {
25786 } else {
25787 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4828);
25788 }
25789 /* ./parser//parser_prod.nit:4829 */
25790 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25791 } else {
25792 /* ./parser//parser_prod.nit:4831 */
25793 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4831);
25794 }
25795 /* ./parser//parser_prod.nit:4833 */
25796 goto label1;
25797 }
25798 label1: while(0);
25799 stack_frame_head = fra.me.prev;
25800 return;
25801 }
25802 void parser___parser_prod___AGtExpr___visit_all(val_t p0, val_t p1){
25803 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25804 val_t REGB0;
25805 val_t tmp;
25806 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25807 fra.me.file = LOCATE_parser___parser_prod;
25808 fra.me.line = 4837;
25809 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___visit_all;
25810 fra.me.has_broke = 0;
25811 fra.me.REG_size = 3;
25812 fra.me.REG[0] = NIT_NULL;
25813 fra.me.REG[1] = NIT_NULL;
25814 fra.me.REG[2] = NIT_NULL;
25815 fra.me.REG[0] = p0;
25816 fra.me.REG[1] = p1;
25817 /* ./parser//parser_prod.nit:4839 */
25818 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25819 if (UNTAG_Bool(REGB0)) {
25820 } else {
25821 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4839);
25822 }
25823 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25824 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25825 /* ./parser//parser_prod.nit:4840 */
25826 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25827 if (UNTAG_Bool(REGB0)) {
25828 } else {
25829 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4840);
25830 }
25831 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25832 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25833 stack_frame_head = fra.me.prev;
25834 return;
25835 }
25836 void parser___parser_prod___AGeExpr___empty_init(val_t p0, int* init_table){
25837 int itpos161 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeExpr].i;
25838 struct {struct stack_frame_t me;} fra;
25839 val_t tmp;
25840 if (init_table[itpos161]) return;
25841 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25842 fra.me.file = LOCATE_parser___parser_prod;
25843 fra.me.line = 4844;
25844 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___empty_init;
25845 fra.me.has_broke = 0;
25846 fra.me.REG_size = 1;
25847 fra.me.REG[0] = NIT_NULL;
25848 fra.me.REG[0] = p0;
25849 stack_frame_head = fra.me.prev;
25850 init_table[itpos161] = 1;
25851 return;
25852 }
25853 void parser___parser_prod___AGeExpr___init_ageexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25854 int itpos162 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeExpr].i;
25855 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25856 val_t REGB0;
25857 val_t tmp;
25858 if (init_table[itpos162]) return;
25859 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25860 fra.me.file = LOCATE_parser___parser_prod;
25861 fra.me.line = 4846;
25862 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___init_ageexpr;
25863 fra.me.has_broke = 0;
25864 fra.me.REG_size = 4;
25865 fra.me.REG[0] = NIT_NULL;
25866 fra.me.REG[1] = NIT_NULL;
25867 fra.me.REG[2] = NIT_NULL;
25868 fra.me.REG[3] = NIT_NULL;
25869 fra.me.REG[0] = p0;
25870 fra.me.REG[1] = p1;
25871 fra.me.REG[2] = p2;
25872 /* ./parser//parser_prod.nit:4846 */
25873 fra.me.REG[3] = fra.me.REG[0];
25874 /* ./parser//parser_prod.nit:4851 */
25875 CALL_parser___parser_prod___AGeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25876 /* ./parser//parser_prod.nit:4852 */
25877 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25878 if (UNTAG_Bool(REGB0)) {
25879 } else {
25880 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4852);
25881 }
25882 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25883 /* ./parser//parser_prod.nit:4853 */
25884 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25885 if (UNTAG_Bool(REGB0)) {
25886 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4853);
25887 }
25888 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25889 /* ./parser//parser_prod.nit:4854 */
25890 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25891 if (UNTAG_Bool(REGB0)) {
25892 } else {
25893 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4854);
25894 }
25895 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25896 /* ./parser//parser_prod.nit:4855 */
25897 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25898 if (UNTAG_Bool(REGB0)) {
25899 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4855);
25900 }
25901 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25902 stack_frame_head = fra.me.prev;
25903 init_table[itpos162] = 1;
25904 return;
25905 }
25906 void parser___parser_prod___AGeExpr___replace_child(val_t p0, val_t p1, val_t p2){
25907 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25908 val_t REGB0;
25909 val_t REGB1;
25910 val_t tmp;
25911 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25912 fra.me.file = LOCATE_parser___parser_prod;
25913 fra.me.line = 4858;
25914 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___replace_child;
25915 fra.me.has_broke = 0;
25916 fra.me.REG_size = 4;
25917 fra.me.REG[0] = NIT_NULL;
25918 fra.me.REG[1] = NIT_NULL;
25919 fra.me.REG[2] = NIT_NULL;
25920 fra.me.REG[3] = NIT_NULL;
25921 fra.me.REG[0] = p0;
25922 fra.me.REG[1] = p1;
25923 fra.me.REG[2] = p2;
25924 /* ./parser//parser_prod.nit:4860 */
25925 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25926 if (UNTAG_Bool(REGB0)) {
25927 } else {
25928 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4860);
25929 }
25930 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25931 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25932 if (UNTAG_Bool(REGB0)) {
25933 } else {
25934 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25935 REGB0 = REGB1;
25936 }
25937 if (UNTAG_Bool(REGB0)) {
25938 /* ./parser//parser_prod.nit:4861 */
25939 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25940 if (UNTAG_Bool(REGB0)) {
25941 } else {
25942 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25943 if (UNTAG_Bool(REGB1)) {
25944 REGB1 = TAG_Bool(false);
25945 REGB0 = REGB1;
25946 } else {
25947 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25948 REGB0 = REGB1;
25949 }
25950 }
25951 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25952 if (UNTAG_Bool(REGB0)) {
25953 /* ./parser//parser_prod.nit:4862 */
25954 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25955 if (UNTAG_Bool(REGB0)) {
25956 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4862);
25957 }
25958 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25959 /* ./parser//parser_prod.nit:4863 */
25960 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25961 if (UNTAG_Bool(REGB0)) {
25962 } else {
25963 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4863);
25964 }
25965 /* ./parser//parser_prod.nit:4864 */
25966 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25967 } else {
25968 /* ./parser//parser_prod.nit:4866 */
25969 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4866);
25970 }
25971 /* ./parser//parser_prod.nit:4868 */
25972 goto label1;
25973 }
25974 /* ./parser//parser_prod.nit:4870 */
25975 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25976 if (UNTAG_Bool(REGB0)) {
25977 } else {
25978 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4870);
25979 }
25980 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25981 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25982 if (UNTAG_Bool(REGB0)) {
25983 } else {
25984 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25985 REGB0 = REGB1;
25986 }
25987 if (UNTAG_Bool(REGB0)) {
25988 /* ./parser//parser_prod.nit:4871 */
25989 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25990 if (UNTAG_Bool(REGB0)) {
25991 } else {
25992 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25993 if (UNTAG_Bool(REGB1)) {
25994 REGB1 = TAG_Bool(false);
25995 REGB0 = REGB1;
25996 } else {
25997 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25998 REGB0 = REGB1;
25999 }
26000 }
26001 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26002 if (UNTAG_Bool(REGB0)) {
26003 /* ./parser//parser_prod.nit:4872 */
26004 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26005 if (UNTAG_Bool(REGB0)) {
26006 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4872);
26007 }
26008 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26009 /* ./parser//parser_prod.nit:4873 */
26010 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26011 if (UNTAG_Bool(REGB0)) {
26012 } else {
26013 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4873);
26014 }
26015 /* ./parser//parser_prod.nit:4874 */
26016 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26017 } else {
26018 /* ./parser//parser_prod.nit:4876 */
26019 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4876);
26020 }
26021 /* ./parser//parser_prod.nit:4878 */
26022 goto label1;
26023 }
26024 label1: while(0);
26025 stack_frame_head = fra.me.prev;
26026 return;
26027 }
26028 void parser___parser_prod___AGeExpr___visit_all(val_t p0, val_t p1){
26029 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26030 val_t REGB0;
26031 val_t tmp;
26032 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26033 fra.me.file = LOCATE_parser___parser_prod;
26034 fra.me.line = 4882;
26035 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___visit_all;
26036 fra.me.has_broke = 0;
26037 fra.me.REG_size = 3;
26038 fra.me.REG[0] = NIT_NULL;
26039 fra.me.REG[1] = NIT_NULL;
26040 fra.me.REG[2] = NIT_NULL;
26041 fra.me.REG[0] = p0;
26042 fra.me.REG[1] = p1;
26043 /* ./parser//parser_prod.nit:4884 */
26044 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26045 if (UNTAG_Bool(REGB0)) {
26046 } else {
26047 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4884);
26048 }
26049 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26050 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26051 /* ./parser//parser_prod.nit:4885 */
26052 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26053 if (UNTAG_Bool(REGB0)) {
26054 } else {
26055 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4885);
26056 }
26057 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26058 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26059 stack_frame_head = fra.me.prev;
26060 return;
26061 }
26062 void parser___parser_prod___AGgExpr___empty_init(val_t p0, int* init_table){
26063 int itpos163 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgExpr].i;
26064 struct {struct stack_frame_t me;} fra;
26065 val_t tmp;
26066 if (init_table[itpos163]) return;
26067 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26068 fra.me.file = LOCATE_parser___parser_prod;
26069 fra.me.line = 4889;
26070 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___empty_init;
26071 fra.me.has_broke = 0;
26072 fra.me.REG_size = 1;
26073 fra.me.REG[0] = NIT_NULL;
26074 fra.me.REG[0] = p0;
26075 stack_frame_head = fra.me.prev;
26076 init_table[itpos163] = 1;
26077 return;
26078 }
26079 void parser___parser_prod___AGgExpr___init_aggexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26080 int itpos164 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgExpr].i;
26081 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26082 val_t REGB0;
26083 val_t tmp;
26084 if (init_table[itpos164]) return;
26085 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26086 fra.me.file = LOCATE_parser___parser_prod;
26087 fra.me.line = 4891;
26088 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___init_aggexpr;
26089 fra.me.has_broke = 0;
26090 fra.me.REG_size = 4;
26091 fra.me.REG[0] = NIT_NULL;
26092 fra.me.REG[1] = NIT_NULL;
26093 fra.me.REG[2] = NIT_NULL;
26094 fra.me.REG[3] = NIT_NULL;
26095 fra.me.REG[0] = p0;
26096 fra.me.REG[1] = p1;
26097 fra.me.REG[2] = p2;
26098 /* ./parser//parser_prod.nit:4891 */
26099 fra.me.REG[3] = fra.me.REG[0];
26100 /* ./parser//parser_prod.nit:4896 */
26101 CALL_parser___parser_prod___AGgExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26102 /* ./parser//parser_prod.nit:4897 */
26103 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26104 if (UNTAG_Bool(REGB0)) {
26105 } else {
26106 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4897);
26107 }
26108 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26109 /* ./parser//parser_prod.nit:4898 */
26110 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26111 if (UNTAG_Bool(REGB0)) {
26112 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4898);
26113 }
26114 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26115 /* ./parser//parser_prod.nit:4899 */
26116 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26117 if (UNTAG_Bool(REGB0)) {
26118 } else {
26119 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4899);
26120 }
26121 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26122 /* ./parser//parser_prod.nit:4900 */
26123 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26124 if (UNTAG_Bool(REGB0)) {
26125 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4900);
26126 }
26127 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26128 stack_frame_head = fra.me.prev;
26129 init_table[itpos164] = 1;
26130 return;
26131 }
26132 void parser___parser_prod___AGgExpr___replace_child(val_t p0, val_t p1, val_t p2){
26133 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26134 val_t REGB0;
26135 val_t REGB1;
26136 val_t tmp;
26137 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26138 fra.me.file = LOCATE_parser___parser_prod;
26139 fra.me.line = 4903;
26140 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___replace_child;
26141 fra.me.has_broke = 0;
26142 fra.me.REG_size = 4;
26143 fra.me.REG[0] = NIT_NULL;
26144 fra.me.REG[1] = NIT_NULL;
26145 fra.me.REG[2] = NIT_NULL;
26146 fra.me.REG[3] = NIT_NULL;
26147 fra.me.REG[0] = p0;
26148 fra.me.REG[1] = p1;
26149 fra.me.REG[2] = p2;
26150 /* ./parser//parser_prod.nit:4905 */
26151 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26152 if (UNTAG_Bool(REGB0)) {
26153 } else {
26154 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4905);
26155 }
26156 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26157 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26158 if (UNTAG_Bool(REGB0)) {
26159 } else {
26160 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26161 REGB0 = REGB1;
26162 }
26163 if (UNTAG_Bool(REGB0)) {
26164 /* ./parser//parser_prod.nit:4906 */
26165 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26166 if (UNTAG_Bool(REGB0)) {
26167 } else {
26168 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26169 if (UNTAG_Bool(REGB1)) {
26170 REGB1 = TAG_Bool(false);
26171 REGB0 = REGB1;
26172 } else {
26173 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26174 REGB0 = REGB1;
26175 }
26176 }
26177 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26178 if (UNTAG_Bool(REGB0)) {
26179 /* ./parser//parser_prod.nit:4907 */
26180 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26181 if (UNTAG_Bool(REGB0)) {
26182 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4907);
26183 }
26184 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26185 /* ./parser//parser_prod.nit:4908 */
26186 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26187 if (UNTAG_Bool(REGB0)) {
26188 } else {
26189 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4908);
26190 }
26191 /* ./parser//parser_prod.nit:4909 */
26192 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26193 } else {
26194 /* ./parser//parser_prod.nit:4911 */
26195 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4911);
26196 }
26197 /* ./parser//parser_prod.nit:4913 */
26198 goto label1;
26199 }
26200 /* ./parser//parser_prod.nit:4915 */
26201 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26202 if (UNTAG_Bool(REGB0)) {
26203 } else {
26204 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4915);
26205 }
26206 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26207 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26208 if (UNTAG_Bool(REGB0)) {
26209 } else {
26210 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26211 REGB0 = REGB1;
26212 }
26213 if (UNTAG_Bool(REGB0)) {
26214 /* ./parser//parser_prod.nit:4916 */
26215 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26216 if (UNTAG_Bool(REGB0)) {
26217 } else {
26218 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26219 if (UNTAG_Bool(REGB1)) {
26220 REGB1 = TAG_Bool(false);
26221 REGB0 = REGB1;
26222 } else {
26223 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26224 REGB0 = REGB1;
26225 }
26226 }
26227 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26228 if (UNTAG_Bool(REGB0)) {
26229 /* ./parser//parser_prod.nit:4917 */
26230 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26231 if (UNTAG_Bool(REGB0)) {
26232 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4917);
26233 }
26234 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26235 /* ./parser//parser_prod.nit:4918 */
26236 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26237 if (UNTAG_Bool(REGB0)) {
26238 } else {
26239 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4918);
26240 }
26241 /* ./parser//parser_prod.nit:4919 */
26242 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26243 } else {
26244 /* ./parser//parser_prod.nit:4921 */
26245 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4921);
26246 }
26247 /* ./parser//parser_prod.nit:4923 */
26248 goto label1;
26249 }
26250 label1: while(0);
26251 stack_frame_head = fra.me.prev;
26252 return;
26253 }
26254 void parser___parser_prod___AGgExpr___visit_all(val_t p0, val_t p1){
26255 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26256 val_t REGB0;
26257 val_t tmp;
26258 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26259 fra.me.file = LOCATE_parser___parser_prod;
26260 fra.me.line = 4927;
26261 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___visit_all;
26262 fra.me.has_broke = 0;
26263 fra.me.REG_size = 3;
26264 fra.me.REG[0] = NIT_NULL;
26265 fra.me.REG[1] = NIT_NULL;
26266 fra.me.REG[2] = NIT_NULL;
26267 fra.me.REG[0] = p0;
26268 fra.me.REG[1] = p1;
26269 /* ./parser//parser_prod.nit:4929 */
26270 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26271 if (UNTAG_Bool(REGB0)) {
26272 } else {
26273 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4929);
26274 }
26275 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26276 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26277 /* ./parser//parser_prod.nit:4930 */
26278 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26279 if (UNTAG_Bool(REGB0)) {
26280 } else {
26281 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4930);
26282 }
26283 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26284 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26285 stack_frame_head = fra.me.prev;
26286 return;
26287 }
26288 void parser___parser_prod___AIsaExpr___empty_init(val_t p0, int* init_table){
26289 int itpos165 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIsaExpr].i;
26290 struct {struct stack_frame_t me;} fra;
26291 val_t tmp;
26292 if (init_table[itpos165]) return;
26293 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26294 fra.me.file = LOCATE_parser___parser_prod;
26295 fra.me.line = 4934;
26296 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___empty_init;
26297 fra.me.has_broke = 0;
26298 fra.me.REG_size = 1;
26299 fra.me.REG[0] = NIT_NULL;
26300 fra.me.REG[0] = p0;
26301 stack_frame_head = fra.me.prev;
26302 init_table[itpos165] = 1;
26303 return;
26304 }
26305 void parser___parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26306 int itpos166 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIsaExpr].i;
26307 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26308 val_t REGB0;
26309 val_t tmp;
26310 if (init_table[itpos166]) return;
26311 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26312 fra.me.file = LOCATE_parser___parser_prod;
26313 fra.me.line = 4936;
26314 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___init_aisaexpr;
26315 fra.me.has_broke = 0;
26316 fra.me.REG_size = 4;
26317 fra.me.REG[0] = NIT_NULL;
26318 fra.me.REG[1] = NIT_NULL;
26319 fra.me.REG[2] = NIT_NULL;
26320 fra.me.REG[3] = NIT_NULL;
26321 fra.me.REG[0] = p0;
26322 fra.me.REG[1] = p1;
26323 fra.me.REG[2] = p2;
26324 /* ./parser//parser_prod.nit:4936 */
26325 fra.me.REG[3] = fra.me.REG[0];
26326 /* ./parser//parser_prod.nit:4941 */
26327 CALL_parser___parser_prod___AIsaExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26328 /* ./parser//parser_prod.nit:4942 */
26329 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26330 if (UNTAG_Bool(REGB0)) {
26331 } else {
26332 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4942);
26333 }
26334 ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26335 /* ./parser//parser_prod.nit:4943 */
26336 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26337 if (UNTAG_Bool(REGB0)) {
26338 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4943);
26339 }
26340 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26341 /* ./parser//parser_prod.nit:4944 */
26342 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26343 if (UNTAG_Bool(REGB0)) {
26344 } else {
26345 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4944);
26346 }
26347 ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[3]) = fra.me.REG[2];
26348 /* ./parser//parser_prod.nit:4945 */
26349 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26350 if (UNTAG_Bool(REGB0)) {
26351 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4945);
26352 }
26353 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26354 stack_frame_head = fra.me.prev;
26355 init_table[itpos166] = 1;
26356 return;
26357 }
26358 void parser___parser_prod___AIsaExpr___replace_child(val_t p0, val_t p1, val_t p2){
26359 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26360 val_t REGB0;
26361 val_t REGB1;
26362 val_t tmp;
26363 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26364 fra.me.file = LOCATE_parser___parser_prod;
26365 fra.me.line = 4948;
26366 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___replace_child;
26367 fra.me.has_broke = 0;
26368 fra.me.REG_size = 4;
26369 fra.me.REG[0] = NIT_NULL;
26370 fra.me.REG[1] = NIT_NULL;
26371 fra.me.REG[2] = NIT_NULL;
26372 fra.me.REG[3] = NIT_NULL;
26373 fra.me.REG[0] = p0;
26374 fra.me.REG[1] = p1;
26375 fra.me.REG[2] = p2;
26376 /* ./parser//parser_prod.nit:4950 */
26377 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26378 if (UNTAG_Bool(REGB0)) {
26379 } else {
26380 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4950);
26381 }
26382 fra.me.REG[3] = ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]);
26383 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26384 if (UNTAG_Bool(REGB0)) {
26385 } else {
26386 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26387 REGB0 = REGB1;
26388 }
26389 if (UNTAG_Bool(REGB0)) {
26390 /* ./parser//parser_prod.nit:4951 */
26391 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26392 if (UNTAG_Bool(REGB0)) {
26393 } else {
26394 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26395 if (UNTAG_Bool(REGB1)) {
26396 REGB1 = TAG_Bool(false);
26397 REGB0 = REGB1;
26398 } else {
26399 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26400 REGB0 = REGB1;
26401 }
26402 }
26403 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26404 if (UNTAG_Bool(REGB0)) {
26405 /* ./parser//parser_prod.nit:4952 */
26406 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26407 if (UNTAG_Bool(REGB0)) {
26408 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4952);
26409 }
26410 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26411 /* ./parser//parser_prod.nit:4953 */
26412 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26413 if (UNTAG_Bool(REGB0)) {
26414 } else {
26415 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4953);
26416 }
26417 /* ./parser//parser_prod.nit:4954 */
26418 ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26419 } else {
26420 /* ./parser//parser_prod.nit:4956 */
26421 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4956);
26422 }
26423 /* ./parser//parser_prod.nit:4958 */
26424 goto label1;
26425 }
26426 /* ./parser//parser_prod.nit:4960 */
26427 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0])!=NIT_NULL);
26428 if (UNTAG_Bool(REGB0)) {
26429 } else {
26430 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 4960);
26431 }
26432 fra.me.REG[3] = ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]);
26433 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26434 if (UNTAG_Bool(REGB0)) {
26435 } else {
26436 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26437 REGB0 = REGB1;
26438 }
26439 if (UNTAG_Bool(REGB0)) {
26440 /* ./parser//parser_prod.nit:4961 */
26441 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26442 if (UNTAG_Bool(REGB0)) {
26443 } else {
26444 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26445 if (UNTAG_Bool(REGB1)) {
26446 REGB1 = TAG_Bool(false);
26447 REGB0 = REGB1;
26448 } else {
26449 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26450 REGB0 = REGB1;
26451 }
26452 }
26453 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26454 if (UNTAG_Bool(REGB0)) {
26455 /* ./parser//parser_prod.nit:4962 */
26456 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26457 if (UNTAG_Bool(REGB0)) {
26458 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4962);
26459 }
26460 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26461 /* ./parser//parser_prod.nit:4963 */
26462 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*/;
26463 if (UNTAG_Bool(REGB0)) {
26464 } else {
26465 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4963);
26466 }
26467 /* ./parser//parser_prod.nit:4964 */
26468 ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
26469 } else {
26470 /* ./parser//parser_prod.nit:4966 */
26471 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4966);
26472 }
26473 /* ./parser//parser_prod.nit:4968 */
26474 goto label1;
26475 }
26476 label1: while(0);
26477 stack_frame_head = fra.me.prev;
26478 return;
26479 }
26480 void parser___parser_prod___AIsaExpr___visit_all(val_t p0, val_t p1){
26481 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26482 val_t REGB0;
26483 val_t tmp;
26484 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26485 fra.me.file = LOCATE_parser___parser_prod;
26486 fra.me.line = 4972;
26487 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___visit_all;
26488 fra.me.has_broke = 0;
26489 fra.me.REG_size = 3;
26490 fra.me.REG[0] = NIT_NULL;
26491 fra.me.REG[1] = NIT_NULL;
26492 fra.me.REG[2] = NIT_NULL;
26493 fra.me.REG[0] = p0;
26494 fra.me.REG[1] = p1;
26495 /* ./parser//parser_prod.nit:4974 */
26496 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26497 if (UNTAG_Bool(REGB0)) {
26498 } else {
26499 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4974);
26500 }
26501 fra.me.REG[2] = ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]);
26502 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26503 /* ./parser//parser_prod.nit:4975 */
26504 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0])!=NIT_NULL);
26505 if (UNTAG_Bool(REGB0)) {
26506 } else {
26507 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 4975);
26508 }
26509 fra.me.REG[0] = ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]);
26510 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26511 stack_frame_head = fra.me.prev;
26512 return;
26513 }
26514 void parser___parser_prod___APlusExpr___empty_init(val_t p0, int* init_table){
26515 int itpos167 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusExpr].i;
26516 struct {struct stack_frame_t me;} fra;
26517 val_t tmp;
26518 if (init_table[itpos167]) return;
26519 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26520 fra.me.file = LOCATE_parser___parser_prod;
26521 fra.me.line = 4979;
26522 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___empty_init;
26523 fra.me.has_broke = 0;
26524 fra.me.REG_size = 1;
26525 fra.me.REG[0] = NIT_NULL;
26526 fra.me.REG[0] = p0;
26527 stack_frame_head = fra.me.prev;
26528 init_table[itpos167] = 1;
26529 return;
26530 }
26531 void parser___parser_prod___APlusExpr___init_aplusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26532 int itpos168 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusExpr].i;
26533 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26534 val_t REGB0;
26535 val_t tmp;
26536 if (init_table[itpos168]) return;
26537 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26538 fra.me.file = LOCATE_parser___parser_prod;
26539 fra.me.line = 4981;
26540 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___init_aplusexpr;
26541 fra.me.has_broke = 0;
26542 fra.me.REG_size = 4;
26543 fra.me.REG[0] = NIT_NULL;
26544 fra.me.REG[1] = NIT_NULL;
26545 fra.me.REG[2] = NIT_NULL;
26546 fra.me.REG[3] = NIT_NULL;
26547 fra.me.REG[0] = p0;
26548 fra.me.REG[1] = p1;
26549 fra.me.REG[2] = p2;
26550 /* ./parser//parser_prod.nit:4981 */
26551 fra.me.REG[3] = fra.me.REG[0];
26552 /* ./parser//parser_prod.nit:4986 */
26553 CALL_parser___parser_prod___APlusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26554 /* ./parser//parser_prod.nit:4987 */
26555 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26556 if (UNTAG_Bool(REGB0)) {
26557 } else {
26558 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4987);
26559 }
26560 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26561 /* ./parser//parser_prod.nit:4988 */
26562 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26563 if (UNTAG_Bool(REGB0)) {
26564 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4988);
26565 }
26566 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26567 /* ./parser//parser_prod.nit:4989 */
26568 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26569 if (UNTAG_Bool(REGB0)) {
26570 } else {
26571 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4989);
26572 }
26573 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26574 /* ./parser//parser_prod.nit:4990 */
26575 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26576 if (UNTAG_Bool(REGB0)) {
26577 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4990);
26578 }
26579 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26580 stack_frame_head = fra.me.prev;
26581 init_table[itpos168] = 1;
26582 return;
26583 }
26584 void parser___parser_prod___APlusExpr___replace_child(val_t p0, val_t p1, val_t p2){
26585 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26586 val_t REGB0;
26587 val_t REGB1;
26588 val_t tmp;
26589 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26590 fra.me.file = LOCATE_parser___parser_prod;
26591 fra.me.line = 4993;
26592 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___replace_child;
26593 fra.me.has_broke = 0;
26594 fra.me.REG_size = 4;
26595 fra.me.REG[0] = NIT_NULL;
26596 fra.me.REG[1] = NIT_NULL;
26597 fra.me.REG[2] = NIT_NULL;
26598 fra.me.REG[3] = NIT_NULL;
26599 fra.me.REG[0] = p0;
26600 fra.me.REG[1] = p1;
26601 fra.me.REG[2] = p2;
26602 /* ./parser//parser_prod.nit:4995 */
26603 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26604 if (UNTAG_Bool(REGB0)) {
26605 } else {
26606 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4995);
26607 }
26608 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26609 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26610 if (UNTAG_Bool(REGB0)) {
26611 } else {
26612 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26613 REGB0 = REGB1;
26614 }
26615 if (UNTAG_Bool(REGB0)) {
26616 /* ./parser//parser_prod.nit:4996 */
26617 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26618 if (UNTAG_Bool(REGB0)) {
26619 } else {
26620 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26621 if (UNTAG_Bool(REGB1)) {
26622 REGB1 = TAG_Bool(false);
26623 REGB0 = REGB1;
26624 } else {
26625 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26626 REGB0 = REGB1;
26627 }
26628 }
26629 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26630 if (UNTAG_Bool(REGB0)) {
26631 /* ./parser//parser_prod.nit:4997 */
26632 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26633 if (UNTAG_Bool(REGB0)) {
26634 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4997);
26635 }
26636 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26637 /* ./parser//parser_prod.nit:4998 */
26638 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26639 if (UNTAG_Bool(REGB0)) {
26640 } else {
26641 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4998);
26642 }
26643 /* ./parser//parser_prod.nit:4999 */
26644 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26645 } else {
26646 /* ./parser//parser_prod.nit:5001 */
26647 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5001);
26648 }
26649 /* ./parser//parser_prod.nit:5003 */
26650 goto label1;
26651 }
26652 /* ./parser//parser_prod.nit:5005 */
26653 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26654 if (UNTAG_Bool(REGB0)) {
26655 } else {
26656 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5005);
26657 }
26658 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26659 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26660 if (UNTAG_Bool(REGB0)) {
26661 } else {
26662 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26663 REGB0 = REGB1;
26664 }
26665 if (UNTAG_Bool(REGB0)) {
26666 /* ./parser//parser_prod.nit:5006 */
26667 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26668 if (UNTAG_Bool(REGB0)) {
26669 } else {
26670 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26671 if (UNTAG_Bool(REGB1)) {
26672 REGB1 = TAG_Bool(false);
26673 REGB0 = REGB1;
26674 } else {
26675 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26676 REGB0 = REGB1;
26677 }
26678 }
26679 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26680 if (UNTAG_Bool(REGB0)) {
26681 /* ./parser//parser_prod.nit:5007 */
26682 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26683 if (UNTAG_Bool(REGB0)) {
26684 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5007);
26685 }
26686 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26687 /* ./parser//parser_prod.nit:5008 */
26688 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26689 if (UNTAG_Bool(REGB0)) {
26690 } else {
26691 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5008);
26692 }
26693 /* ./parser//parser_prod.nit:5009 */
26694 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26695 } else {
26696 /* ./parser//parser_prod.nit:5011 */
26697 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5011);
26698 }
26699 /* ./parser//parser_prod.nit:5013 */
26700 goto label1;
26701 }
26702 label1: while(0);
26703 stack_frame_head = fra.me.prev;
26704 return;
26705 }
26706 void parser___parser_prod___APlusExpr___visit_all(val_t p0, val_t p1){
26707 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26708 val_t REGB0;
26709 val_t tmp;
26710 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26711 fra.me.file = LOCATE_parser___parser_prod;
26712 fra.me.line = 5017;
26713 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___visit_all;
26714 fra.me.has_broke = 0;
26715 fra.me.REG_size = 3;
26716 fra.me.REG[0] = NIT_NULL;
26717 fra.me.REG[1] = NIT_NULL;
26718 fra.me.REG[2] = NIT_NULL;
26719 fra.me.REG[0] = p0;
26720 fra.me.REG[1] = p1;
26721 /* ./parser//parser_prod.nit:5019 */
26722 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26723 if (UNTAG_Bool(REGB0)) {
26724 } else {
26725 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5019);
26726 }
26727 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26728 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26729 /* ./parser//parser_prod.nit:5020 */
26730 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26731 if (UNTAG_Bool(REGB0)) {
26732 } else {
26733 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5020);
26734 }
26735 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26736 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26737 stack_frame_head = fra.me.prev;
26738 return;
26739 }
26740 void parser___parser_prod___AMinusExpr___empty_init(val_t p0, int* init_table){
26741 int itpos169 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusExpr].i;
26742 struct {struct stack_frame_t me;} fra;
26743 val_t tmp;
26744 if (init_table[itpos169]) return;
26745 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26746 fra.me.file = LOCATE_parser___parser_prod;
26747 fra.me.line = 5024;
26748 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___empty_init;
26749 fra.me.has_broke = 0;
26750 fra.me.REG_size = 1;
26751 fra.me.REG[0] = NIT_NULL;
26752 fra.me.REG[0] = p0;
26753 stack_frame_head = fra.me.prev;
26754 init_table[itpos169] = 1;
26755 return;
26756 }
26757 void parser___parser_prod___AMinusExpr___init_aminusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26758 int itpos170 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusExpr].i;
26759 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26760 val_t REGB0;
26761 val_t tmp;
26762 if (init_table[itpos170]) return;
26763 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26764 fra.me.file = LOCATE_parser___parser_prod;
26765 fra.me.line = 5026;
26766 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___init_aminusexpr;
26767 fra.me.has_broke = 0;
26768 fra.me.REG_size = 4;
26769 fra.me.REG[0] = NIT_NULL;
26770 fra.me.REG[1] = NIT_NULL;
26771 fra.me.REG[2] = NIT_NULL;
26772 fra.me.REG[3] = NIT_NULL;
26773 fra.me.REG[0] = p0;
26774 fra.me.REG[1] = p1;
26775 fra.me.REG[2] = p2;
26776 /* ./parser//parser_prod.nit:5026 */
26777 fra.me.REG[3] = fra.me.REG[0];
26778 /* ./parser//parser_prod.nit:5031 */
26779 CALL_parser___parser_prod___AMinusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26780 /* ./parser//parser_prod.nit:5032 */
26781 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26782 if (UNTAG_Bool(REGB0)) {
26783 } else {
26784 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5032);
26785 }
26786 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26787 /* ./parser//parser_prod.nit:5033 */
26788 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26789 if (UNTAG_Bool(REGB0)) {
26790 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5033);
26791 }
26792 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26793 /* ./parser//parser_prod.nit:5034 */
26794 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26795 if (UNTAG_Bool(REGB0)) {
26796 } else {
26797 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5034);
26798 }
26799 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26800 /* ./parser//parser_prod.nit:5035 */
26801 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26802 if (UNTAG_Bool(REGB0)) {
26803 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5035);
26804 }
26805 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26806 stack_frame_head = fra.me.prev;
26807 init_table[itpos170] = 1;
26808 return;
26809 }
26810 void parser___parser_prod___AMinusExpr___replace_child(val_t p0, val_t p1, val_t p2){
26811 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26812 val_t REGB0;
26813 val_t REGB1;
26814 val_t tmp;
26815 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26816 fra.me.file = LOCATE_parser___parser_prod;
26817 fra.me.line = 5038;
26818 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___replace_child;
26819 fra.me.has_broke = 0;
26820 fra.me.REG_size = 4;
26821 fra.me.REG[0] = NIT_NULL;
26822 fra.me.REG[1] = NIT_NULL;
26823 fra.me.REG[2] = NIT_NULL;
26824 fra.me.REG[3] = NIT_NULL;
26825 fra.me.REG[0] = p0;
26826 fra.me.REG[1] = p1;
26827 fra.me.REG[2] = p2;
26828 /* ./parser//parser_prod.nit:5040 */
26829 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26830 if (UNTAG_Bool(REGB0)) {
26831 } else {
26832 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5040);
26833 }
26834 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26835 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26836 if (UNTAG_Bool(REGB0)) {
26837 } else {
26838 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26839 REGB0 = REGB1;
26840 }
26841 if (UNTAG_Bool(REGB0)) {
26842 /* ./parser//parser_prod.nit:5041 */
26843 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26844 if (UNTAG_Bool(REGB0)) {
26845 } else {
26846 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26847 if (UNTAG_Bool(REGB1)) {
26848 REGB1 = TAG_Bool(false);
26849 REGB0 = REGB1;
26850 } else {
26851 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26852 REGB0 = REGB1;
26853 }
26854 }
26855 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26856 if (UNTAG_Bool(REGB0)) {
26857 /* ./parser//parser_prod.nit:5042 */
26858 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26859 if (UNTAG_Bool(REGB0)) {
26860 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5042);
26861 }
26862 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26863 /* ./parser//parser_prod.nit:5043 */
26864 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26865 if (UNTAG_Bool(REGB0)) {
26866 } else {
26867 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5043);
26868 }
26869 /* ./parser//parser_prod.nit:5044 */
26870 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26871 } else {
26872 /* ./parser//parser_prod.nit:5046 */
26873 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5046);
26874 }
26875 /* ./parser//parser_prod.nit:5048 */
26876 goto label1;
26877 }
26878 /* ./parser//parser_prod.nit:5050 */
26879 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26880 if (UNTAG_Bool(REGB0)) {
26881 } else {
26882 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5050);
26883 }
26884 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26885 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26886 if (UNTAG_Bool(REGB0)) {
26887 } else {
26888 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26889 REGB0 = REGB1;
26890 }
26891 if (UNTAG_Bool(REGB0)) {
26892 /* ./parser//parser_prod.nit:5051 */
26893 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26894 if (UNTAG_Bool(REGB0)) {
26895 } else {
26896 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26897 if (UNTAG_Bool(REGB1)) {
26898 REGB1 = TAG_Bool(false);
26899 REGB0 = REGB1;
26900 } else {
26901 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26902 REGB0 = REGB1;
26903 }
26904 }
26905 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26906 if (UNTAG_Bool(REGB0)) {
26907 /* ./parser//parser_prod.nit:5052 */
26908 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26909 if (UNTAG_Bool(REGB0)) {
26910 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5052);
26911 }
26912 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26913 /* ./parser//parser_prod.nit:5053 */
26914 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26915 if (UNTAG_Bool(REGB0)) {
26916 } else {
26917 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5053);
26918 }
26919 /* ./parser//parser_prod.nit:5054 */
26920 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26921 } else {
26922 /* ./parser//parser_prod.nit:5056 */
26923 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5056);
26924 }
26925 /* ./parser//parser_prod.nit:5058 */
26926 goto label1;
26927 }
26928 label1: while(0);
26929 stack_frame_head = fra.me.prev;
26930 return;
26931 }
26932 void parser___parser_prod___AMinusExpr___visit_all(val_t p0, val_t p1){
26933 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26934 val_t REGB0;
26935 val_t tmp;
26936 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26937 fra.me.file = LOCATE_parser___parser_prod;
26938 fra.me.line = 5062;
26939 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___visit_all;
26940 fra.me.has_broke = 0;
26941 fra.me.REG_size = 3;
26942 fra.me.REG[0] = NIT_NULL;
26943 fra.me.REG[1] = NIT_NULL;
26944 fra.me.REG[2] = NIT_NULL;
26945 fra.me.REG[0] = p0;
26946 fra.me.REG[1] = p1;
26947 /* ./parser//parser_prod.nit:5064 */
26948 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26949 if (UNTAG_Bool(REGB0)) {
26950 } else {
26951 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5064);
26952 }
26953 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26954 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26955 /* ./parser//parser_prod.nit:5065 */
26956 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26957 if (UNTAG_Bool(REGB0)) {
26958 } else {
26959 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5065);
26960 }
26961 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26962 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26963 stack_frame_head = fra.me.prev;
26964 return;
26965 }
26966 void parser___parser_prod___AStarshipExpr___empty_init(val_t p0, int* init_table){
26967 int itpos171 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipExpr].i;
26968 struct {struct stack_frame_t me;} fra;
26969 val_t tmp;
26970 if (init_table[itpos171]) return;
26971 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26972 fra.me.file = LOCATE_parser___parser_prod;
26973 fra.me.line = 5069;
26974 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___empty_init;
26975 fra.me.has_broke = 0;
26976 fra.me.REG_size = 1;
26977 fra.me.REG[0] = NIT_NULL;
26978 fra.me.REG[0] = p0;
26979 stack_frame_head = fra.me.prev;
26980 init_table[itpos171] = 1;
26981 return;
26982 }
26983 void parser___parser_prod___AStarshipExpr___init_astarshipexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26984 int itpos172 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipExpr].i;
26985 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26986 val_t REGB0;
26987 val_t tmp;
26988 if (init_table[itpos172]) return;
26989 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26990 fra.me.file = LOCATE_parser___parser_prod;
26991 fra.me.line = 5071;
26992 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___init_astarshipexpr;
26993 fra.me.has_broke = 0;
26994 fra.me.REG_size = 4;
26995 fra.me.REG[0] = NIT_NULL;
26996 fra.me.REG[1] = NIT_NULL;
26997 fra.me.REG[2] = NIT_NULL;
26998 fra.me.REG[3] = NIT_NULL;
26999 fra.me.REG[0] = p0;
27000 fra.me.REG[1] = p1;
27001 fra.me.REG[2] = p2;
27002 /* ./parser//parser_prod.nit:5071 */
27003 fra.me.REG[3] = fra.me.REG[0];
27004 /* ./parser//parser_prod.nit:5076 */
27005 CALL_parser___parser_prod___AStarshipExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27006 /* ./parser//parser_prod.nit:5077 */
27007 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27008 if (UNTAG_Bool(REGB0)) {
27009 } else {
27010 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5077);
27011 }
27012 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27013 /* ./parser//parser_prod.nit:5078 */
27014 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27015 if (UNTAG_Bool(REGB0)) {
27016 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5078);
27017 }
27018 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27019 /* ./parser//parser_prod.nit:5079 */
27020 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27021 if (UNTAG_Bool(REGB0)) {
27022 } else {
27023 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5079);
27024 }
27025 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
27026 /* ./parser//parser_prod.nit:5080 */
27027 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27028 if (UNTAG_Bool(REGB0)) {
27029 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5080);
27030 }
27031 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27032 stack_frame_head = fra.me.prev;
27033 init_table[itpos172] = 1;
27034 return;
27035 }
27036 void parser___parser_prod___AStarshipExpr___replace_child(val_t p0, val_t p1, val_t p2){
27037 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27038 val_t REGB0;
27039 val_t REGB1;
27040 val_t tmp;
27041 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27042 fra.me.file = LOCATE_parser___parser_prod;
27043 fra.me.line = 5083;
27044 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___replace_child;
27045 fra.me.has_broke = 0;
27046 fra.me.REG_size = 4;
27047 fra.me.REG[0] = NIT_NULL;
27048 fra.me.REG[1] = NIT_NULL;
27049 fra.me.REG[2] = NIT_NULL;
27050 fra.me.REG[3] = NIT_NULL;
27051 fra.me.REG[0] = p0;
27052 fra.me.REG[1] = p1;
27053 fra.me.REG[2] = p2;
27054 /* ./parser//parser_prod.nit:5085 */
27055 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27056 if (UNTAG_Bool(REGB0)) {
27057 } else {
27058 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5085);
27059 }
27060 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27061 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27062 if (UNTAG_Bool(REGB0)) {
27063 } else {
27064 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27065 REGB0 = REGB1;
27066 }
27067 if (UNTAG_Bool(REGB0)) {
27068 /* ./parser//parser_prod.nit:5086 */
27069 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27070 if (UNTAG_Bool(REGB0)) {
27071 } else {
27072 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27073 if (UNTAG_Bool(REGB1)) {
27074 REGB1 = TAG_Bool(false);
27075 REGB0 = REGB1;
27076 } else {
27077 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27078 REGB0 = REGB1;
27079 }
27080 }
27081 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27082 if (UNTAG_Bool(REGB0)) {
27083 /* ./parser//parser_prod.nit:5087 */
27084 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27085 if (UNTAG_Bool(REGB0)) {
27086 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5087);
27087 }
27088 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27089 /* ./parser//parser_prod.nit:5088 */
27090 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27091 if (UNTAG_Bool(REGB0)) {
27092 } else {
27093 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5088);
27094 }
27095 /* ./parser//parser_prod.nit:5089 */
27096 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27097 } else {
27098 /* ./parser//parser_prod.nit:5091 */
27099 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5091);
27100 }
27101 /* ./parser//parser_prod.nit:5093 */
27102 goto label1;
27103 }
27104 /* ./parser//parser_prod.nit:5095 */
27105 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27106 if (UNTAG_Bool(REGB0)) {
27107 } else {
27108 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5095);
27109 }
27110 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27111 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27112 if (UNTAG_Bool(REGB0)) {
27113 } else {
27114 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27115 REGB0 = REGB1;
27116 }
27117 if (UNTAG_Bool(REGB0)) {
27118 /* ./parser//parser_prod.nit:5096 */
27119 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27120 if (UNTAG_Bool(REGB0)) {
27121 } else {
27122 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27123 if (UNTAG_Bool(REGB1)) {
27124 REGB1 = TAG_Bool(false);
27125 REGB0 = REGB1;
27126 } else {
27127 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27128 REGB0 = REGB1;
27129 }
27130 }
27131 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27132 if (UNTAG_Bool(REGB0)) {
27133 /* ./parser//parser_prod.nit:5097 */
27134 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27135 if (UNTAG_Bool(REGB0)) {
27136 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5097);
27137 }
27138 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27139 /* ./parser//parser_prod.nit:5098 */
27140 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27141 if (UNTAG_Bool(REGB0)) {
27142 } else {
27143 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5098);
27144 }
27145 /* ./parser//parser_prod.nit:5099 */
27146 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
27147 } else {
27148 /* ./parser//parser_prod.nit:5101 */
27149 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5101);
27150 }
27151 /* ./parser//parser_prod.nit:5103 */
27152 goto label1;
27153 }
27154 label1: while(0);
27155 stack_frame_head = fra.me.prev;
27156 return;
27157 }
27158 void parser___parser_prod___AStarshipExpr___visit_all(val_t p0, val_t p1){
27159 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27160 val_t REGB0;
27161 val_t tmp;
27162 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27163 fra.me.file = LOCATE_parser___parser_prod;
27164 fra.me.line = 5107;
27165 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___visit_all;
27166 fra.me.has_broke = 0;
27167 fra.me.REG_size = 3;
27168 fra.me.REG[0] = NIT_NULL;
27169 fra.me.REG[1] = NIT_NULL;
27170 fra.me.REG[2] = NIT_NULL;
27171 fra.me.REG[0] = p0;
27172 fra.me.REG[1] = p1;
27173 /* ./parser//parser_prod.nit:5109 */
27174 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27175 if (UNTAG_Bool(REGB0)) {
27176 } else {
27177 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5109);
27178 }
27179 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27180 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27181 /* ./parser//parser_prod.nit:5110 */
27182 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27183 if (UNTAG_Bool(REGB0)) {
27184 } else {
27185 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5110);
27186 }
27187 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27188 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27189 stack_frame_head = fra.me.prev;
27190 return;
27191 }
27192 void parser___parser_prod___AStarExpr___empty_init(val_t p0, int* init_table){
27193 int itpos173 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarExpr].i;
27194 struct {struct stack_frame_t me;} fra;
27195 val_t tmp;
27196 if (init_table[itpos173]) return;
27197 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27198 fra.me.file = LOCATE_parser___parser_prod;
27199 fra.me.line = 5114;
27200 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___empty_init;
27201 fra.me.has_broke = 0;
27202 fra.me.REG_size = 1;
27203 fra.me.REG[0] = NIT_NULL;
27204 fra.me.REG[0] = p0;
27205 stack_frame_head = fra.me.prev;
27206 init_table[itpos173] = 1;
27207 return;
27208 }
27209 void parser___parser_prod___AStarExpr___init_astarexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27210 int itpos174 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarExpr].i;
27211 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27212 val_t REGB0;
27213 val_t tmp;
27214 if (init_table[itpos174]) return;
27215 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27216 fra.me.file = LOCATE_parser___parser_prod;
27217 fra.me.line = 5116;
27218 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___init_astarexpr;
27219 fra.me.has_broke = 0;
27220 fra.me.REG_size = 4;
27221 fra.me.REG[0] = NIT_NULL;
27222 fra.me.REG[1] = NIT_NULL;
27223 fra.me.REG[2] = NIT_NULL;
27224 fra.me.REG[3] = NIT_NULL;
27225 fra.me.REG[0] = p0;
27226 fra.me.REG[1] = p1;
27227 fra.me.REG[2] = p2;
27228 /* ./parser//parser_prod.nit:5116 */
27229 fra.me.REG[3] = fra.me.REG[0];
27230 /* ./parser//parser_prod.nit:5121 */
27231 CALL_parser___parser_prod___AStarExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27232 /* ./parser//parser_prod.nit:5122 */
27233 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27234 if (UNTAG_Bool(REGB0)) {
27235 } else {
27236 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5122);
27237 }
27238 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27239 /* ./parser//parser_prod.nit:5123 */
27240 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27241 if (UNTAG_Bool(REGB0)) {
27242 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5123);
27243 }
27244 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27245 /* ./parser//parser_prod.nit:5124 */
27246 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27247 if (UNTAG_Bool(REGB0)) {
27248 } else {
27249 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5124);
27250 }
27251 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
27252 /* ./parser//parser_prod.nit:5125 */
27253 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27254 if (UNTAG_Bool(REGB0)) {
27255 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5125);
27256 }
27257 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27258 stack_frame_head = fra.me.prev;
27259 init_table[itpos174] = 1;
27260 return;
27261 }
27262 void parser___parser_prod___AStarExpr___replace_child(val_t p0, val_t p1, val_t p2){
27263 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27264 val_t REGB0;
27265 val_t REGB1;
27266 val_t tmp;
27267 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27268 fra.me.file = LOCATE_parser___parser_prod;
27269 fra.me.line = 5128;
27270 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___replace_child;
27271 fra.me.has_broke = 0;
27272 fra.me.REG_size = 4;
27273 fra.me.REG[0] = NIT_NULL;
27274 fra.me.REG[1] = NIT_NULL;
27275 fra.me.REG[2] = NIT_NULL;
27276 fra.me.REG[3] = NIT_NULL;
27277 fra.me.REG[0] = p0;
27278 fra.me.REG[1] = p1;
27279 fra.me.REG[2] = p2;
27280 /* ./parser//parser_prod.nit:5130 */
27281 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27282 if (UNTAG_Bool(REGB0)) {
27283 } else {
27284 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5130);
27285 }
27286 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27287 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27288 if (UNTAG_Bool(REGB0)) {
27289 } else {
27290 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27291 REGB0 = REGB1;
27292 }
27293 if (UNTAG_Bool(REGB0)) {
27294 /* ./parser//parser_prod.nit:5131 */
27295 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27296 if (UNTAG_Bool(REGB0)) {
27297 } else {
27298 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27299 if (UNTAG_Bool(REGB1)) {
27300 REGB1 = TAG_Bool(false);
27301 REGB0 = REGB1;
27302 } else {
27303 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27304 REGB0 = REGB1;
27305 }
27306 }
27307 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27308 if (UNTAG_Bool(REGB0)) {
27309 /* ./parser//parser_prod.nit:5132 */
27310 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27311 if (UNTAG_Bool(REGB0)) {
27312 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5132);
27313 }
27314 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27315 /* ./parser//parser_prod.nit:5133 */
27316 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27317 if (UNTAG_Bool(REGB0)) {
27318 } else {
27319 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5133);
27320 }
27321 /* ./parser//parser_prod.nit:5134 */
27322 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27323 } else {
27324 /* ./parser//parser_prod.nit:5136 */
27325 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5136);
27326 }
27327 /* ./parser//parser_prod.nit:5138 */
27328 goto label1;
27329 }
27330 /* ./parser//parser_prod.nit:5140 */
27331 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27332 if (UNTAG_Bool(REGB0)) {
27333 } else {
27334 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5140);
27335 }
27336 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27337 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27338 if (UNTAG_Bool(REGB0)) {
27339 } else {
27340 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27341 REGB0 = REGB1;
27342 }
27343 if (UNTAG_Bool(REGB0)) {
27344 /* ./parser//parser_prod.nit:5141 */
27345 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27346 if (UNTAG_Bool(REGB0)) {
27347 } else {
27348 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27349 if (UNTAG_Bool(REGB1)) {
27350 REGB1 = TAG_Bool(false);
27351 REGB0 = REGB1;
27352 } else {
27353 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27354 REGB0 = REGB1;
27355 }
27356 }
27357 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27358 if (UNTAG_Bool(REGB0)) {
27359 /* ./parser//parser_prod.nit:5142 */
27360 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27361 if (UNTAG_Bool(REGB0)) {
27362 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5142);
27363 }
27364 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27365 /* ./parser//parser_prod.nit:5143 */
27366 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27367 if (UNTAG_Bool(REGB0)) {
27368 } else {
27369 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5143);
27370 }
27371 /* ./parser//parser_prod.nit:5144 */
27372 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
27373 } else {
27374 /* ./parser//parser_prod.nit:5146 */
27375 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5146);
27376 }
27377 /* ./parser//parser_prod.nit:5148 */
27378 goto label1;
27379 }
27380 label1: while(0);
27381 stack_frame_head = fra.me.prev;
27382 return;
27383 }
27384 void parser___parser_prod___AStarExpr___visit_all(val_t p0, val_t p1){
27385 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27386 val_t REGB0;
27387 val_t tmp;
27388 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27389 fra.me.file = LOCATE_parser___parser_prod;
27390 fra.me.line = 5152;
27391 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___visit_all;
27392 fra.me.has_broke = 0;
27393 fra.me.REG_size = 3;
27394 fra.me.REG[0] = NIT_NULL;
27395 fra.me.REG[1] = NIT_NULL;
27396 fra.me.REG[2] = NIT_NULL;
27397 fra.me.REG[0] = p0;
27398 fra.me.REG[1] = p1;
27399 /* ./parser//parser_prod.nit:5154 */
27400 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27401 if (UNTAG_Bool(REGB0)) {
27402 } else {
27403 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5154);
27404 }
27405 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27406 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27407 /* ./parser//parser_prod.nit:5155 */
27408 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27409 if (UNTAG_Bool(REGB0)) {
27410 } else {
27411 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5155);
27412 }
27413 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27414 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27415 stack_frame_head = fra.me.prev;
27416 return;
27417 }
27418 void parser___parser_prod___ASlashExpr___empty_init(val_t p0, int* init_table){
27419 int itpos175 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashExpr].i;
27420 struct {struct stack_frame_t me;} fra;
27421 val_t tmp;
27422 if (init_table[itpos175]) return;
27423 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27424 fra.me.file = LOCATE_parser___parser_prod;
27425 fra.me.line = 5159;
27426 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___empty_init;
27427 fra.me.has_broke = 0;
27428 fra.me.REG_size = 1;
27429 fra.me.REG[0] = NIT_NULL;
27430 fra.me.REG[0] = p0;
27431 stack_frame_head = fra.me.prev;
27432 init_table[itpos175] = 1;
27433 return;
27434 }
27435 void parser___parser_prod___ASlashExpr___init_aslashexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27436 int itpos176 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashExpr].i;
27437 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27438 val_t REGB0;
27439 val_t tmp;
27440 if (init_table[itpos176]) return;
27441 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27442 fra.me.file = LOCATE_parser___parser_prod;
27443 fra.me.line = 5161;
27444 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___init_aslashexpr;
27445 fra.me.has_broke = 0;
27446 fra.me.REG_size = 4;
27447 fra.me.REG[0] = NIT_NULL;
27448 fra.me.REG[1] = NIT_NULL;
27449 fra.me.REG[2] = NIT_NULL;
27450 fra.me.REG[3] = NIT_NULL;
27451 fra.me.REG[0] = p0;
27452 fra.me.REG[1] = p1;
27453 fra.me.REG[2] = p2;
27454 /* ./parser//parser_prod.nit:5161 */
27455 fra.me.REG[3] = fra.me.REG[0];
27456 /* ./parser//parser_prod.nit:5166 */
27457 CALL_parser___parser_prod___ASlashExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27458 /* ./parser//parser_prod.nit:5167 */
27459 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27460 if (UNTAG_Bool(REGB0)) {
27461 } else {
27462 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5167);
27463 }
27464 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27465 /* ./parser//parser_prod.nit:5168 */
27466 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27467 if (UNTAG_Bool(REGB0)) {
27468 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5168);
27469 }
27470 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27471 /* ./parser//parser_prod.nit:5169 */
27472 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27473 if (UNTAG_Bool(REGB0)) {
27474 } else {
27475 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5169);
27476 }
27477 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
27478 /* ./parser//parser_prod.nit:5170 */
27479 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27480 if (UNTAG_Bool(REGB0)) {
27481 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5170);
27482 }
27483 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27484 stack_frame_head = fra.me.prev;
27485 init_table[itpos176] = 1;
27486 return;
27487 }
27488 void parser___parser_prod___ASlashExpr___replace_child(val_t p0, val_t p1, val_t p2){
27489 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27490 val_t REGB0;
27491 val_t REGB1;
27492 val_t tmp;
27493 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27494 fra.me.file = LOCATE_parser___parser_prod;
27495 fra.me.line = 5173;
27496 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___replace_child;
27497 fra.me.has_broke = 0;
27498 fra.me.REG_size = 4;
27499 fra.me.REG[0] = NIT_NULL;
27500 fra.me.REG[1] = NIT_NULL;
27501 fra.me.REG[2] = NIT_NULL;
27502 fra.me.REG[3] = NIT_NULL;
27503 fra.me.REG[0] = p0;
27504 fra.me.REG[1] = p1;
27505 fra.me.REG[2] = p2;
27506 /* ./parser//parser_prod.nit:5175 */
27507 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27508 if (UNTAG_Bool(REGB0)) {
27509 } else {
27510 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5175);
27511 }
27512 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27513 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27514 if (UNTAG_Bool(REGB0)) {
27515 } else {
27516 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27517 REGB0 = REGB1;
27518 }
27519 if (UNTAG_Bool(REGB0)) {
27520 /* ./parser//parser_prod.nit:5176 */
27521 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27522 if (UNTAG_Bool(REGB0)) {
27523 } else {
27524 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27525 if (UNTAG_Bool(REGB1)) {
27526 REGB1 = TAG_Bool(false);
27527 REGB0 = REGB1;
27528 } else {
27529 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27530 REGB0 = REGB1;
27531 }
27532 }
27533 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27534 if (UNTAG_Bool(REGB0)) {
27535 /* ./parser//parser_prod.nit:5177 */
27536 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27537 if (UNTAG_Bool(REGB0)) {
27538 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5177);
27539 }
27540 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27541 /* ./parser//parser_prod.nit:5178 */
27542 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27543 if (UNTAG_Bool(REGB0)) {
27544 } else {
27545 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5178);
27546 }
27547 /* ./parser//parser_prod.nit:5179 */
27548 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27549 } else {
27550 /* ./parser//parser_prod.nit:5181 */
27551 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5181);
27552 }
27553 /* ./parser//parser_prod.nit:5183 */
27554 goto label1;
27555 }
27556 /* ./parser//parser_prod.nit:5185 */
27557 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27558 if (UNTAG_Bool(REGB0)) {
27559 } else {
27560 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5185);
27561 }
27562 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27563 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27564 if (UNTAG_Bool(REGB0)) {
27565 } else {
27566 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27567 REGB0 = REGB1;
27568 }
27569 if (UNTAG_Bool(REGB0)) {
27570 /* ./parser//parser_prod.nit:5186 */
27571 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27572 if (UNTAG_Bool(REGB0)) {
27573 } else {
27574 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27575 if (UNTAG_Bool(REGB1)) {
27576 REGB1 = TAG_Bool(false);
27577 REGB0 = REGB1;
27578 } else {
27579 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27580 REGB0 = REGB1;
27581 }
27582 }
27583 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27584 if (UNTAG_Bool(REGB0)) {
27585 /* ./parser//parser_prod.nit:5187 */
27586 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27587 if (UNTAG_Bool(REGB0)) {
27588 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5187);
27589 }
27590 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27591 /* ./parser//parser_prod.nit:5188 */
27592 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27593 if (UNTAG_Bool(REGB0)) {
27594 } else {
27595 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5188);
27596 }
27597 /* ./parser//parser_prod.nit:5189 */
27598 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
27599 } else {
27600 /* ./parser//parser_prod.nit:5191 */
27601 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5191);
27602 }
27603 /* ./parser//parser_prod.nit:5193 */
27604 goto label1;
27605 }
27606 label1: while(0);
27607 stack_frame_head = fra.me.prev;
27608 return;
27609 }
27610 void parser___parser_prod___ASlashExpr___visit_all(val_t p0, val_t p1){
27611 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27612 val_t REGB0;
27613 val_t tmp;
27614 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27615 fra.me.file = LOCATE_parser___parser_prod;
27616 fra.me.line = 5197;
27617 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___visit_all;
27618 fra.me.has_broke = 0;
27619 fra.me.REG_size = 3;
27620 fra.me.REG[0] = NIT_NULL;
27621 fra.me.REG[1] = NIT_NULL;
27622 fra.me.REG[2] = NIT_NULL;
27623 fra.me.REG[0] = p0;
27624 fra.me.REG[1] = p1;
27625 /* ./parser//parser_prod.nit:5199 */
27626 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27627 if (UNTAG_Bool(REGB0)) {
27628 } else {
27629 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5199);
27630 }
27631 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27632 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27633 /* ./parser//parser_prod.nit:5200 */
27634 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27635 if (UNTAG_Bool(REGB0)) {
27636 } else {
27637 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5200);
27638 }
27639 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27640 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27641 stack_frame_head = fra.me.prev;
27642 return;
27643 }
27644 void parser___parser_prod___APercentExpr___empty_init(val_t p0, int* init_table){
27645 int itpos177 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentExpr].i;
27646 struct {struct stack_frame_t me;} fra;
27647 val_t tmp;
27648 if (init_table[itpos177]) return;
27649 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27650 fra.me.file = LOCATE_parser___parser_prod;
27651 fra.me.line = 5204;
27652 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___empty_init;
27653 fra.me.has_broke = 0;
27654 fra.me.REG_size = 1;
27655 fra.me.REG[0] = NIT_NULL;
27656 fra.me.REG[0] = p0;
27657 stack_frame_head = fra.me.prev;
27658 init_table[itpos177] = 1;
27659 return;
27660 }
27661 void parser___parser_prod___APercentExpr___init_apercentexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27662 int itpos178 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentExpr].i;
27663 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27664 val_t REGB0;
27665 val_t tmp;
27666 if (init_table[itpos178]) return;
27667 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27668 fra.me.file = LOCATE_parser___parser_prod;
27669 fra.me.line = 5206;
27670 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___init_apercentexpr;
27671 fra.me.has_broke = 0;
27672 fra.me.REG_size = 4;
27673 fra.me.REG[0] = NIT_NULL;
27674 fra.me.REG[1] = NIT_NULL;
27675 fra.me.REG[2] = NIT_NULL;
27676 fra.me.REG[3] = NIT_NULL;
27677 fra.me.REG[0] = p0;
27678 fra.me.REG[1] = p1;
27679 fra.me.REG[2] = p2;
27680 /* ./parser//parser_prod.nit:5206 */
27681 fra.me.REG[3] = fra.me.REG[0];
27682 /* ./parser//parser_prod.nit:5211 */
27683 CALL_parser___parser_prod___APercentExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27684 /* ./parser//parser_prod.nit:5212 */
27685 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27686 if (UNTAG_Bool(REGB0)) {
27687 } else {
27688 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5212);
27689 }
27690 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27691 /* ./parser//parser_prod.nit:5213 */
27692 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27693 if (UNTAG_Bool(REGB0)) {
27694 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5213);
27695 }
27696 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27697 /* ./parser//parser_prod.nit:5214 */
27698 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27699 if (UNTAG_Bool(REGB0)) {
27700 } else {
27701 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5214);
27702 }
27703 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
27704 /* ./parser//parser_prod.nit:5215 */
27705 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27706 if (UNTAG_Bool(REGB0)) {
27707 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5215);
27708 }
27709 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27710 stack_frame_head = fra.me.prev;
27711 init_table[itpos178] = 1;
27712 return;
27713 }
27714 void parser___parser_prod___APercentExpr___replace_child(val_t p0, val_t p1, val_t p2){
27715 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27716 val_t REGB0;
27717 val_t REGB1;
27718 val_t tmp;
27719 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27720 fra.me.file = LOCATE_parser___parser_prod;
27721 fra.me.line = 5218;
27722 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___replace_child;
27723 fra.me.has_broke = 0;
27724 fra.me.REG_size = 4;
27725 fra.me.REG[0] = NIT_NULL;
27726 fra.me.REG[1] = NIT_NULL;
27727 fra.me.REG[2] = NIT_NULL;
27728 fra.me.REG[3] = NIT_NULL;
27729 fra.me.REG[0] = p0;
27730 fra.me.REG[1] = p1;
27731 fra.me.REG[2] = p2;
27732 /* ./parser//parser_prod.nit:5220 */
27733 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27734 if (UNTAG_Bool(REGB0)) {
27735 } else {
27736 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5220);
27737 }
27738 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27739 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27740 if (UNTAG_Bool(REGB0)) {
27741 } else {
27742 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27743 REGB0 = REGB1;
27744 }
27745 if (UNTAG_Bool(REGB0)) {
27746 /* ./parser//parser_prod.nit:5221 */
27747 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27748 if (UNTAG_Bool(REGB0)) {
27749 } else {
27750 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27751 if (UNTAG_Bool(REGB1)) {
27752 REGB1 = TAG_Bool(false);
27753 REGB0 = REGB1;
27754 } else {
27755 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27756 REGB0 = REGB1;
27757 }
27758 }
27759 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27760 if (UNTAG_Bool(REGB0)) {
27761 /* ./parser//parser_prod.nit:5222 */
27762 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27763 if (UNTAG_Bool(REGB0)) {
27764 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5222);
27765 }
27766 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27767 /* ./parser//parser_prod.nit:5223 */
27768 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27769 if (UNTAG_Bool(REGB0)) {
27770 } else {
27771 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5223);
27772 }
27773 /* ./parser//parser_prod.nit:5224 */
27774 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27775 } else {
27776 /* ./parser//parser_prod.nit:5226 */
27777 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5226);
27778 }
27779 /* ./parser//parser_prod.nit:5228 */
27780 goto label1;
27781 }
27782 /* ./parser//parser_prod.nit:5230 */
27783 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27784 if (UNTAG_Bool(REGB0)) {
27785 } else {
27786 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5230);
27787 }
27788 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27789 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27790 if (UNTAG_Bool(REGB0)) {
27791 } else {
27792 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27793 REGB0 = REGB1;
27794 }
27795 if (UNTAG_Bool(REGB0)) {
27796 /* ./parser//parser_prod.nit:5231 */
27797 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27798 if (UNTAG_Bool(REGB0)) {
27799 } else {
27800 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27801 if (UNTAG_Bool(REGB1)) {
27802 REGB1 = TAG_Bool(false);
27803 REGB0 = REGB1;
27804 } else {
27805 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27806 REGB0 = REGB1;
27807 }
27808 }
27809 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27810 if (UNTAG_Bool(REGB0)) {
27811 /* ./parser//parser_prod.nit:5232 */
27812 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27813 if (UNTAG_Bool(REGB0)) {
27814 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5232);
27815 }
27816 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27817 /* ./parser//parser_prod.nit:5233 */
27818 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27819 if (UNTAG_Bool(REGB0)) {
27820 } else {
27821 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5233);
27822 }
27823 /* ./parser//parser_prod.nit:5234 */
27824 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
27825 } else {
27826 /* ./parser//parser_prod.nit:5236 */
27827 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5236);
27828 }
27829 /* ./parser//parser_prod.nit:5238 */
27830 goto label1;
27831 }
27832 label1: while(0);
27833 stack_frame_head = fra.me.prev;
27834 return;
27835 }
27836 void parser___parser_prod___APercentExpr___visit_all(val_t p0, val_t p1){
27837 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27838 val_t REGB0;
27839 val_t tmp;
27840 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27841 fra.me.file = LOCATE_parser___parser_prod;
27842 fra.me.line = 5242;
27843 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___visit_all;
27844 fra.me.has_broke = 0;
27845 fra.me.REG_size = 3;
27846 fra.me.REG[0] = NIT_NULL;
27847 fra.me.REG[1] = NIT_NULL;
27848 fra.me.REG[2] = NIT_NULL;
27849 fra.me.REG[0] = p0;
27850 fra.me.REG[1] = p1;
27851 /* ./parser//parser_prod.nit:5244 */
27852 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27853 if (UNTAG_Bool(REGB0)) {
27854 } else {
27855 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5244);
27856 }
27857 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27858 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27859 /* ./parser//parser_prod.nit:5245 */
27860 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27861 if (UNTAG_Bool(REGB0)) {
27862 } else {
27863 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5245);
27864 }
27865 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27866 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27867 stack_frame_head = fra.me.prev;
27868 return;
27869 }
27870 void parser___parser_prod___AUminusExpr___empty_init(val_t p0, int* init_table){
27871 int itpos179 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AUminusExpr].i;
27872 struct {struct stack_frame_t me;} fra;
27873 val_t tmp;
27874 if (init_table[itpos179]) return;
27875 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27876 fra.me.file = LOCATE_parser___parser_prod;
27877 fra.me.line = 5249;
27878 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___empty_init;
27879 fra.me.has_broke = 0;
27880 fra.me.REG_size = 1;
27881 fra.me.REG[0] = NIT_NULL;
27882 fra.me.REG[0] = p0;
27883 stack_frame_head = fra.me.prev;
27884 init_table[itpos179] = 1;
27885 return;
27886 }
27887 void parser___parser_prod___AUminusExpr___init_auminusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27888 int itpos180 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AUminusExpr].i;
27889 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27890 val_t REGB0;
27891 val_t tmp;
27892 if (init_table[itpos180]) return;
27893 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27894 fra.me.file = LOCATE_parser___parser_prod;
27895 fra.me.line = 5251;
27896 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___init_auminusexpr;
27897 fra.me.has_broke = 0;
27898 fra.me.REG_size = 4;
27899 fra.me.REG[0] = NIT_NULL;
27900 fra.me.REG[1] = NIT_NULL;
27901 fra.me.REG[2] = NIT_NULL;
27902 fra.me.REG[3] = NIT_NULL;
27903 fra.me.REG[0] = p0;
27904 fra.me.REG[1] = p1;
27905 fra.me.REG[2] = p2;
27906 /* ./parser//parser_prod.nit:5251 */
27907 fra.me.REG[3] = fra.me.REG[0];
27908 /* ./parser//parser_prod.nit:5256 */
27909 CALL_parser___parser_prod___AUminusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27910 /* ./parser//parser_prod.nit:5257 */
27911 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27912 if (UNTAG_Bool(REGB0)) {
27913 } else {
27914 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5257);
27915 }
27916 ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[3]) = fra.me.REG[1];
27917 /* ./parser//parser_prod.nit:5258 */
27918 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27919 if (UNTAG_Bool(REGB0)) {
27920 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5258);
27921 }
27922 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27923 /* ./parser//parser_prod.nit:5259 */
27924 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27925 if (UNTAG_Bool(REGB0)) {
27926 } else {
27927 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5259);
27928 }
27929 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
27930 /* ./parser//parser_prod.nit:5260 */
27931 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27932 if (UNTAG_Bool(REGB0)) {
27933 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5260);
27934 }
27935 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27936 stack_frame_head = fra.me.prev;
27937 init_table[itpos180] = 1;
27938 return;
27939 }
27940 void parser___parser_prod___AUminusExpr___replace_child(val_t p0, val_t p1, val_t p2){
27941 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27942 val_t REGB0;
27943 val_t REGB1;
27944 val_t tmp;
27945 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27946 fra.me.file = LOCATE_parser___parser_prod;
27947 fra.me.line = 5263;
27948 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___replace_child;
27949 fra.me.has_broke = 0;
27950 fra.me.REG_size = 4;
27951 fra.me.REG[0] = NIT_NULL;
27952 fra.me.REG[1] = NIT_NULL;
27953 fra.me.REG[2] = NIT_NULL;
27954 fra.me.REG[3] = NIT_NULL;
27955 fra.me.REG[0] = p0;
27956 fra.me.REG[1] = p1;
27957 fra.me.REG[2] = p2;
27958 /* ./parser//parser_prod.nit:5265 */
27959 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0])!=NIT_NULL);
27960 if (UNTAG_Bool(REGB0)) {
27961 } else {
27962 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 5265);
27963 }
27964 fra.me.REG[3] = ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]);
27965 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27966 if (UNTAG_Bool(REGB0)) {
27967 } else {
27968 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27969 REGB0 = REGB1;
27970 }
27971 if (UNTAG_Bool(REGB0)) {
27972 /* ./parser//parser_prod.nit:5266 */
27973 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27974 if (UNTAG_Bool(REGB0)) {
27975 } else {
27976 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27977 if (UNTAG_Bool(REGB1)) {
27978 REGB1 = TAG_Bool(false);
27979 REGB0 = REGB1;
27980 } else {
27981 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27982 REGB0 = REGB1;
27983 }
27984 }
27985 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27986 if (UNTAG_Bool(REGB0)) {
27987 /* ./parser//parser_prod.nit:5267 */
27988 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27989 if (UNTAG_Bool(REGB0)) {
27990 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5267);
27991 }
27992 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27993 /* ./parser//parser_prod.nit:5268 */
27994 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*/;
27995 if (UNTAG_Bool(REGB0)) {
27996 } else {
27997 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5268);
27998 }
27999 /* ./parser//parser_prod.nit:5269 */
28000 ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]) = fra.me.REG[2];
28001 } else {
28002 /* ./parser//parser_prod.nit:5271 */
28003 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5271);
28004 }
28005 /* ./parser//parser_prod.nit:5273 */
28006 goto label1;
28007 }
28008 /* ./parser//parser_prod.nit:5275 */
28009 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28010 if (UNTAG_Bool(REGB0)) {
28011 } else {
28012 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5275);
28013 }
28014 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28015 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28016 if (UNTAG_Bool(REGB0)) {
28017 } else {
28018 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28019 REGB0 = REGB1;
28020 }
28021 if (UNTAG_Bool(REGB0)) {
28022 /* ./parser//parser_prod.nit:5276 */
28023 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28024 if (UNTAG_Bool(REGB0)) {
28025 } else {
28026 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28027 if (UNTAG_Bool(REGB1)) {
28028 REGB1 = TAG_Bool(false);
28029 REGB0 = REGB1;
28030 } else {
28031 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28032 REGB0 = REGB1;
28033 }
28034 }
28035 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28036 if (UNTAG_Bool(REGB0)) {
28037 /* ./parser//parser_prod.nit:5277 */
28038 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28039 if (UNTAG_Bool(REGB0)) {
28040 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5277);
28041 }
28042 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28043 /* ./parser//parser_prod.nit:5278 */
28044 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28045 if (UNTAG_Bool(REGB0)) {
28046 } else {
28047 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5278);
28048 }
28049 /* ./parser//parser_prod.nit:5279 */
28050 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28051 } else {
28052 /* ./parser//parser_prod.nit:5281 */
28053 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5281);
28054 }
28055 /* ./parser//parser_prod.nit:5283 */
28056 goto label1;
28057 }
28058 label1: while(0);
28059 stack_frame_head = fra.me.prev;
28060 return;
28061 }
28062 void parser___parser_prod___AUminusExpr___visit_all(val_t p0, val_t p1){
28063 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28064 val_t REGB0;
28065 val_t tmp;
28066 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28067 fra.me.file = LOCATE_parser___parser_prod;
28068 fra.me.line = 5287;
28069 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___visit_all;
28070 fra.me.has_broke = 0;
28071 fra.me.REG_size = 3;
28072 fra.me.REG[0] = NIT_NULL;
28073 fra.me.REG[1] = NIT_NULL;
28074 fra.me.REG[2] = NIT_NULL;
28075 fra.me.REG[0] = p0;
28076 fra.me.REG[1] = p1;
28077 /* ./parser//parser_prod.nit:5289 */
28078 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0])!=NIT_NULL);
28079 if (UNTAG_Bool(REGB0)) {
28080 } else {
28081 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 5289);
28082 }
28083 fra.me.REG[2] = ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]);
28084 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28085 /* ./parser//parser_prod.nit:5290 */
28086 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28087 if (UNTAG_Bool(REGB0)) {
28088 } else {
28089 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5290);
28090 }
28091 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28092 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28093 stack_frame_head = fra.me.prev;
28094 return;
28095 }
28096 void parser___parser_prod___ANewExpr___empty_init(val_t p0, int* init_table){
28097 int itpos181 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANewExpr].i;
28098 struct {struct stack_frame_t me;} fra;
28099 val_t tmp;
28100 if (init_table[itpos181]) return;
28101 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28102 fra.me.file = LOCATE_parser___parser_prod;
28103 fra.me.line = 5294;
28104 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___empty_init;
28105 fra.me.has_broke = 0;
28106 fra.me.REG_size = 1;
28107 fra.me.REG[0] = NIT_NULL;
28108 fra.me.REG[0] = p0;
28109 stack_frame_head = fra.me.prev;
28110 init_table[itpos181] = 1;
28111 return;
28112 }
28113 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){
28114 int itpos182 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANewExpr].i;
28115 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
28116 val_t REGB0;
28117 val_t REGB1;
28118 val_t tmp;
28119 if (init_table[itpos182]) return;
28120 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28121 fra.me.file = LOCATE_parser___parser_prod;
28122 fra.me.line = 5296;
28123 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___init_anewexpr;
28124 fra.me.has_broke = 0;
28125 fra.me.REG_size = 6;
28126 fra.me.REG[0] = NIT_NULL;
28127 fra.me.REG[1] = NIT_NULL;
28128 fra.me.REG[2] = NIT_NULL;
28129 fra.me.REG[3] = NIT_NULL;
28130 fra.me.REG[4] = NIT_NULL;
28131 fra.me.REG[5] = NIT_NULL;
28132 fra.me.REG[0] = p0;
28133 fra.me.REG[1] = p1;
28134 fra.me.REG[2] = p2;
28135 fra.me.REG[3] = p3;
28136 fra.me.REG[4] = p4;
28137 /* ./parser//parser_prod.nit:5296 */
28138 fra.me.REG[5] = fra.me.REG[0];
28139 /* ./parser//parser_prod.nit:5303 */
28140 CALL_parser___parser_prod___ANewExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
28141 /* ./parser//parser_prod.nit:5304 */
28142 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28143 if (UNTAG_Bool(REGB0)) {
28144 } else {
28145 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5304);
28146 }
28147 ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[5]) = fra.me.REG[1];
28148 /* ./parser//parser_prod.nit:5305 */
28149 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28150 if (UNTAG_Bool(REGB0)) {
28151 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5305);
28152 }
28153 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
28154 /* ./parser//parser_prod.nit:5306 */
28155 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28156 if (UNTAG_Bool(REGB0)) {
28157 } else {
28158 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5306);
28159 }
28160 ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[5]) = fra.me.REG[2];
28161 /* ./parser//parser_prod.nit:5307 */
28162 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28163 if (UNTAG_Bool(REGB0)) {
28164 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5307);
28165 }
28166 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
28167 /* ./parser//parser_prod.nit:5308 */
28168 ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[5]) = fra.me.REG[3];
28169 /* ./parser//parser_prod.nit:5309 */
28170 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28171 if (UNTAG_Bool(REGB0)) {
28172 } else {
28173 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28174 if (UNTAG_Bool(REGB1)) {
28175 REGB1 = TAG_Bool(false);
28176 REGB0 = REGB1;
28177 } else {
28178 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
28179 REGB0 = REGB1;
28180 }
28181 }
28182 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28183 if (UNTAG_Bool(REGB0)) {
28184 /* ./parser//parser_prod.nit:5310 */
28185 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28186 if (UNTAG_Bool(REGB0)) {
28187 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5310);
28188 }
28189 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
28190 }
28191 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));
28192 stack_frame_head = fra.me.prev;
28193 init_table[itpos182] = 1;
28194 return;
28195 }
28196 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){
28197 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28198 val_t REGB0;
28199 fun_t CREG[1];
28200 val_t tmp;
28201 /* ./parser//parser_prod.nit:5312 */
28202 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28203 fra.me.file = LOCATE_parser___parser_prod;
28204 fra.me.line = 0;
28205 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___init_anewexpr;
28206 fra.me.has_broke = 0;
28207 fra.me.REG_size = 2;
28208 fra.me.REG[0] = NIT_NULL;
28209 fra.me.REG[1] = NIT_NULL;
28210 fra.me.closure_ctx = closctx_param;
28211 fra.me.closure_funs = CREG;
28212 fra.me.REG[0] = p0;
28213 CREG[0] = clos_fun0;
28214 /* ./parser//parser_prod.nit:5313 */
28215 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28216 if (UNTAG_Bool(REGB0)) {
28217 } else {
28218 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5313);
28219 }
28220 /* ./parser//parser_prod.nit:5314 */
28221 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(closctx->REG[5])!=NIT_NULL);
28222 if (UNTAG_Bool(REGB0)) {
28223 } else {
28224 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5314);
28225 }
28226 fra.me.REG[1] = ATTR_parser___parser_nodes___ANewExpr____n_args(closctx->REG[5]);
28227 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28228 /* ./parser//parser_prod.nit:5315 */
28229 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
28230 stack_frame_head = fra.me.prev;
28231 return;
28232 }
28233 void parser___parser_prod___ANewExpr___replace_child(val_t p0, val_t p1, val_t p2){
28234 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28235 val_t REGB0;
28236 val_t REGB1;
28237 val_t REGB2;
28238 val_t REGB3;
28239 val_t REGB4;
28240 val_t tmp;
28241 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28242 fra.me.file = LOCATE_parser___parser_prod;
28243 fra.me.line = 5319;
28244 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___replace_child;
28245 fra.me.has_broke = 0;
28246 fra.me.REG_size = 4;
28247 fra.me.REG[0] = NIT_NULL;
28248 fra.me.REG[1] = NIT_NULL;
28249 fra.me.REG[2] = NIT_NULL;
28250 fra.me.REG[3] = NIT_NULL;
28251 fra.me.REG[0] = p0;
28252 fra.me.REG[1] = p1;
28253 fra.me.REG[2] = p2;
28254 /* ./parser//parser_prod.nit:5321 */
28255 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0])!=NIT_NULL);
28256 if (UNTAG_Bool(REGB0)) {
28257 } else {
28258 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 5321);
28259 }
28260 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]);
28261 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28262 if (UNTAG_Bool(REGB0)) {
28263 } else {
28264 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28265 REGB0 = REGB1;
28266 }
28267 if (UNTAG_Bool(REGB0)) {
28268 /* ./parser//parser_prod.nit:5322 */
28269 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28270 if (UNTAG_Bool(REGB0)) {
28271 } else {
28272 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28273 if (UNTAG_Bool(REGB1)) {
28274 REGB1 = TAG_Bool(false);
28275 REGB0 = REGB1;
28276 } else {
28277 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28278 REGB0 = REGB1;
28279 }
28280 }
28281 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28282 if (UNTAG_Bool(REGB0)) {
28283 /* ./parser//parser_prod.nit:5323 */
28284 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28285 if (UNTAG_Bool(REGB0)) {
28286 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5323);
28287 }
28288 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28289 /* ./parser//parser_prod.nit:5324 */
28290 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*/;
28291 if (UNTAG_Bool(REGB0)) {
28292 } else {
28293 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5324);
28294 }
28295 /* ./parser//parser_prod.nit:5325 */
28296 ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]) = fra.me.REG[2];
28297 } else {
28298 /* ./parser//parser_prod.nit:5327 */
28299 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5327);
28300 }
28301 /* ./parser//parser_prod.nit:5329 */
28302 goto label1;
28303 }
28304 /* ./parser//parser_prod.nit:5331 */
28305 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0])!=NIT_NULL);
28306 if (UNTAG_Bool(REGB0)) {
28307 } else {
28308 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5331);
28309 }
28310 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0]);
28311 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28312 if (UNTAG_Bool(REGB0)) {
28313 } else {
28314 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28315 REGB0 = REGB1;
28316 }
28317 if (UNTAG_Bool(REGB0)) {
28318 /* ./parser//parser_prod.nit:5332 */
28319 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28320 if (UNTAG_Bool(REGB0)) {
28321 } else {
28322 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28323 if (UNTAG_Bool(REGB1)) {
28324 REGB1 = TAG_Bool(false);
28325 REGB0 = REGB1;
28326 } else {
28327 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28328 REGB0 = REGB1;
28329 }
28330 }
28331 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28332 if (UNTAG_Bool(REGB0)) {
28333 /* ./parser//parser_prod.nit:5333 */
28334 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28335 if (UNTAG_Bool(REGB0)) {
28336 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5333);
28337 }
28338 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28339 /* ./parser//parser_prod.nit:5334 */
28340 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*/;
28341 if (UNTAG_Bool(REGB0)) {
28342 } else {
28343 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5334);
28344 }
28345 /* ./parser//parser_prod.nit:5335 */
28346 ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
28347 } else {
28348 /* ./parser//parser_prod.nit:5337 */
28349 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5337);
28350 }
28351 /* ./parser//parser_prod.nit:5339 */
28352 goto label1;
28353 }
28354 /* ./parser//parser_prod.nit:5341 */
28355 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]);
28356 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
28357 if (UNTAG_Bool(REGB0)) {
28358 } else {
28359 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28360 if (UNTAG_Bool(REGB1)) {
28361 REGB1 = TAG_Bool(false);
28362 REGB0 = REGB1;
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 }
28368 if (UNTAG_Bool(REGB0)) {
28369 /* ./parser//parser_prod.nit:5342 */
28370 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28371 if (UNTAG_Bool(REGB0)) {
28372 } else {
28373 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28374 if (UNTAG_Bool(REGB1)) {
28375 REGB1 = TAG_Bool(false);
28376 REGB0 = REGB1;
28377 } else {
28378 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28379 REGB0 = REGB1;
28380 }
28381 }
28382 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28383 if (UNTAG_Bool(REGB0)) {
28384 /* ./parser//parser_prod.nit:5343 */
28385 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28386 if (UNTAG_Bool(REGB0)) {
28387 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5343);
28388 }
28389 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28390 /* ./parser//parser_prod.nit:5344 */
28391 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*/;
28392 if (UNTAG_Bool(REGB0)) {
28393 } else {
28394 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5344);
28395 }
28396 /* ./parser//parser_prod.nit:5345 */
28397 ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
28398 } else {
28399 /* ./parser//parser_prod.nit:5347 */
28400 ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = NIT_NULL;
28401 }
28402 /* ./parser//parser_prod.nit:5349 */
28403 goto label1;
28404 }
28405 /* ./parser//parser_prod.nit:5351 */
28406 REGB0 = TAG_Int(0);
28407 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28408 if (UNTAG_Bool(REGB1)) {
28409 } else {
28410 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5351);
28411 }
28412 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
28413 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
28414 /* ./../lib/standard//kernel.nit:352 */
28415 while(1) {
28416 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
28417 if (UNTAG_Bool(REGB2)) {
28418 } else {
28419 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
28420 }
28421 /* ./../lib/standard//kernel.nit:232 */
28422 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
28423 /* ./../lib/standard//kernel.nit:352 */
28424 if (UNTAG_Bool(REGB2)) {
28425 /* ./parser//parser_prod.nit:5351 */
28426 REGB2 = REGB0;
28427 /* ./parser//parser_prod.nit:5352 */
28428 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28429 if (UNTAG_Bool(REGB3)) {
28430 } else {
28431 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5352);
28432 }
28433 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
28434 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
28435 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
28436 if (UNTAG_Bool(REGB3)) {
28437 } else {
28438 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28439 if (UNTAG_Bool(REGB4)) {
28440 REGB4 = TAG_Bool(false);
28441 REGB3 = REGB4;
28442 } else {
28443 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28444 REGB3 = REGB4;
28445 }
28446 }
28447 if (UNTAG_Bool(REGB3)) {
28448 /* ./parser//parser_prod.nit:5353 */
28449 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28450 if (UNTAG_Bool(REGB3)) {
28451 } else {
28452 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28453 if (UNTAG_Bool(REGB4)) {
28454 REGB4 = TAG_Bool(false);
28455 REGB3 = REGB4;
28456 } else {
28457 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28458 REGB3 = REGB4;
28459 }
28460 }
28461 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
28462 if (UNTAG_Bool(REGB3)) {
28463 /* ./parser//parser_prod.nit:5354 */
28464 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*/;
28465 if (UNTAG_Bool(REGB3)) {
28466 } else {
28467 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5354);
28468 }
28469 /* ./parser//parser_prod.nit:5355 */
28470 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28471 if (UNTAG_Bool(REGB3)) {
28472 } else {
28473 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5355);
28474 }
28475 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
28476 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
28477 /* ./parser//parser_prod.nit:5356 */
28478 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28479 if (UNTAG_Bool(REGB3)) {
28480 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5356);
28481 }
28482 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28483 } else {
28484 /* ./parser//parser_prod.nit:5358 */
28485 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28486 if (UNTAG_Bool(REGB3)) {
28487 } else {
28488 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5358);
28489 }
28490 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
28491 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
28492 }
28493 /* ./parser//parser_prod.nit:5360 */
28494 goto label1;
28495 }
28496 /* ./../lib/standard//kernel.nit:354 */
28497 REGB2 = TAG_Int(1);
28498 /* ./../lib/standard//kernel.nit:235 */
28499 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
28500 /* ./../lib/standard//kernel.nit:354 */
28501 REGB0 = REGB2;
28502 } else {
28503 /* ./../lib/standard//kernel.nit:352 */
28504 goto label2;
28505 }
28506 }
28507 label2: while(0);
28508 label1: while(0);
28509 stack_frame_head = fra.me.prev;
28510 return;
28511 }
28512 void parser___parser_prod___ANewExpr___visit_all(val_t p0, val_t p1){
28513 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28514 val_t REGB0;
28515 val_t REGB1;
28516 val_t tmp;
28517 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28518 fra.me.file = LOCATE_parser___parser_prod;
28519 fra.me.line = 5365;
28520 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___visit_all;
28521 fra.me.has_broke = 0;
28522 fra.me.REG_size = 4;
28523 fra.me.REG[0] = NIT_NULL;
28524 fra.me.REG[1] = NIT_NULL;
28525 fra.me.REG[2] = NIT_NULL;
28526 fra.me.REG[3] = NIT_NULL;
28527 fra.me.REG[0] = p0;
28528 fra.me.REG[1] = p1;
28529 /* ./parser//parser_prod.nit:5365 */
28530 fra.me.REG[2] = fra.me.REG[0];
28531 /* ./parser//parser_prod.nit:5367 */
28532 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[2])!=NIT_NULL);
28533 if (UNTAG_Bool(REGB0)) {
28534 } else {
28535 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 5367);
28536 }
28537 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[2]);
28538 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28539 /* ./parser//parser_prod.nit:5368 */
28540 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[2])!=NIT_NULL);
28541 if (UNTAG_Bool(REGB0)) {
28542 } else {
28543 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5368);
28544 }
28545 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[2]);
28546 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28547 /* ./parser//parser_prod.nit:5369 */
28548 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[2]);
28549 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28550 if (UNTAG_Bool(REGB0)) {
28551 } else {
28552 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28553 if (UNTAG_Bool(REGB1)) {
28554 REGB1 = TAG_Bool(false);
28555 REGB0 = REGB1;
28556 } else {
28557 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
28558 REGB0 = REGB1;
28559 }
28560 }
28561 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28562 if (UNTAG_Bool(REGB0)) {
28563 /* ./parser//parser_prod.nit:5370 */
28564 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[2]);
28565 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*/;
28566 if (UNTAG_Bool(REGB0)) {
28567 } else {
28568 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5370);
28569 }
28570 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28571 }
28572 /* ./parser//parser_prod.nit:5372 */
28573 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[2])!=NIT_NULL);
28574 if (UNTAG_Bool(REGB0)) {
28575 } else {
28576 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5372);
28577 }
28578 fra.me.REG[2] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[2]);
28579 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));
28580 stack_frame_head = fra.me.prev;
28581 return;
28582 }
28583 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){
28584 struct {struct stack_frame_t me;} fra;
28585 fun_t CREG[1];
28586 val_t tmp;
28587 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28588 fra.me.file = LOCATE_parser___parser_prod;
28589 fra.me.line = 0;
28590 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___visit_all;
28591 fra.me.has_broke = 0;
28592 fra.me.REG_size = 1;
28593 fra.me.REG[0] = NIT_NULL;
28594 fra.me.closure_ctx = closctx_param;
28595 fra.me.closure_funs = CREG;
28596 fra.me.REG[0] = p0;
28597 CREG[0] = clos_fun0;
28598 /* ./parser//parser_prod.nit:5373 */
28599 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
28600 stack_frame_head = fra.me.prev;
28601 return;
28602 }
28603 void parser___parser_prod___AAttrExpr___empty_init(val_t p0, int* init_table){
28604 int itpos183 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrExpr].i;
28605 struct {struct stack_frame_t me;} fra;
28606 val_t tmp;
28607 if (init_table[itpos183]) return;
28608 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28609 fra.me.file = LOCATE_parser___parser_prod;
28610 fra.me.line = 5378;
28611 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___empty_init;
28612 fra.me.has_broke = 0;
28613 fra.me.REG_size = 1;
28614 fra.me.REG[0] = NIT_NULL;
28615 fra.me.REG[0] = p0;
28616 stack_frame_head = fra.me.prev;
28617 init_table[itpos183] = 1;
28618 return;
28619 }
28620 void parser___parser_prod___AAttrExpr___init_aattrexpr(val_t p0, val_t p1, val_t p2, int* init_table){
28621 int itpos184 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrExpr].i;
28622 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28623 val_t REGB0;
28624 val_t tmp;
28625 if (init_table[itpos184]) return;
28626 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28627 fra.me.file = LOCATE_parser___parser_prod;
28628 fra.me.line = 5380;
28629 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___init_aattrexpr;
28630 fra.me.has_broke = 0;
28631 fra.me.REG_size = 4;
28632 fra.me.REG[0] = NIT_NULL;
28633 fra.me.REG[1] = NIT_NULL;
28634 fra.me.REG[2] = NIT_NULL;
28635 fra.me.REG[3] = NIT_NULL;
28636 fra.me.REG[0] = p0;
28637 fra.me.REG[1] = p1;
28638 fra.me.REG[2] = p2;
28639 /* ./parser//parser_prod.nit:5380 */
28640 fra.me.REG[3] = fra.me.REG[0];
28641 /* ./parser//parser_prod.nit:5385 */
28642 CALL_parser___parser_prod___AAttrExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
28643 /* ./parser//parser_prod.nit:5386 */
28644 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28645 if (UNTAG_Bool(REGB0)) {
28646 } else {
28647 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5386);
28648 }
28649 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
28650 /* ./parser//parser_prod.nit:5387 */
28651 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28652 if (UNTAG_Bool(REGB0)) {
28653 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5387);
28654 }
28655 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28656 /* ./parser//parser_prod.nit:5388 */
28657 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28658 if (UNTAG_Bool(REGB0)) {
28659 } else {
28660 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5388);
28661 }
28662 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[3]) = fra.me.REG[2];
28663 /* ./parser//parser_prod.nit:5389 */
28664 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28665 if (UNTAG_Bool(REGB0)) {
28666 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5389);
28667 }
28668 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
28669 stack_frame_head = fra.me.prev;
28670 init_table[itpos184] = 1;
28671 return;
28672 }
28673 void parser___parser_prod___AAttrExpr___replace_child(val_t p0, val_t p1, val_t p2){
28674 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28675 val_t REGB0;
28676 val_t REGB1;
28677 val_t tmp;
28678 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28679 fra.me.file = LOCATE_parser___parser_prod;
28680 fra.me.line = 5392;
28681 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___replace_child;
28682 fra.me.has_broke = 0;
28683 fra.me.REG_size = 4;
28684 fra.me.REG[0] = NIT_NULL;
28685 fra.me.REG[1] = NIT_NULL;
28686 fra.me.REG[2] = NIT_NULL;
28687 fra.me.REG[3] = NIT_NULL;
28688 fra.me.REG[0] = p0;
28689 fra.me.REG[1] = p1;
28690 fra.me.REG[2] = p2;
28691 /* ./parser//parser_prod.nit:5394 */
28692 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28693 if (UNTAG_Bool(REGB0)) {
28694 } else {
28695 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5394);
28696 }
28697 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
28698 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28699 if (UNTAG_Bool(REGB0)) {
28700 } else {
28701 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28702 REGB0 = REGB1;
28703 }
28704 if (UNTAG_Bool(REGB0)) {
28705 /* ./parser//parser_prod.nit:5395 */
28706 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28707 if (UNTAG_Bool(REGB0)) {
28708 } else {
28709 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28710 if (UNTAG_Bool(REGB1)) {
28711 REGB1 = TAG_Bool(false);
28712 REGB0 = REGB1;
28713 } else {
28714 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28715 REGB0 = REGB1;
28716 }
28717 }
28718 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28719 if (UNTAG_Bool(REGB0)) {
28720 /* ./parser//parser_prod.nit:5396 */
28721 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28722 if (UNTAG_Bool(REGB0)) {
28723 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5396);
28724 }
28725 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28726 /* ./parser//parser_prod.nit:5397 */
28727 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28728 if (UNTAG_Bool(REGB0)) {
28729 } else {
28730 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5397);
28731 }
28732 /* ./parser//parser_prod.nit:5398 */
28733 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28734 } else {
28735 /* ./parser//parser_prod.nit:5400 */
28736 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5400);
28737 }
28738 /* ./parser//parser_prod.nit:5402 */
28739 goto label1;
28740 }
28741 /* ./parser//parser_prod.nit:5404 */
28742 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
28743 if (UNTAG_Bool(REGB0)) {
28744 } else {
28745 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5404);
28746 }
28747 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
28748 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28749 if (UNTAG_Bool(REGB0)) {
28750 } else {
28751 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28752 REGB0 = REGB1;
28753 }
28754 if (UNTAG_Bool(REGB0)) {
28755 /* ./parser//parser_prod.nit:5405 */
28756 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28757 if (UNTAG_Bool(REGB0)) {
28758 } else {
28759 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28760 if (UNTAG_Bool(REGB1)) {
28761 REGB1 = TAG_Bool(false);
28762 REGB0 = REGB1;
28763 } else {
28764 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28765 REGB0 = REGB1;
28766 }
28767 }
28768 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28769 if (UNTAG_Bool(REGB0)) {
28770 /* ./parser//parser_prod.nit:5406 */
28771 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28772 if (UNTAG_Bool(REGB0)) {
28773 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5406);
28774 }
28775 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28776 /* ./parser//parser_prod.nit:5407 */
28777 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*/;
28778 if (UNTAG_Bool(REGB0)) {
28779 } else {
28780 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5407);
28781 }
28782 /* ./parser//parser_prod.nit:5408 */
28783 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
28784 } else {
28785 /* ./parser//parser_prod.nit:5410 */
28786 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5410);
28787 }
28788 /* ./parser//parser_prod.nit:5412 */
28789 goto label1;
28790 }
28791 label1: while(0);
28792 stack_frame_head = fra.me.prev;
28793 return;
28794 }
28795 void parser___parser_prod___AAttrExpr___visit_all(val_t p0, val_t p1){
28796 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28797 val_t REGB0;
28798 val_t tmp;
28799 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28800 fra.me.file = LOCATE_parser___parser_prod;
28801 fra.me.line = 5416;
28802 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___visit_all;
28803 fra.me.has_broke = 0;
28804 fra.me.REG_size = 3;
28805 fra.me.REG[0] = NIT_NULL;
28806 fra.me.REG[1] = NIT_NULL;
28807 fra.me.REG[2] = NIT_NULL;
28808 fra.me.REG[0] = p0;
28809 fra.me.REG[1] = p1;
28810 /* ./parser//parser_prod.nit:5418 */
28811 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28812 if (UNTAG_Bool(REGB0)) {
28813 } else {
28814 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5418);
28815 }
28816 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
28817 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28818 /* ./parser//parser_prod.nit:5419 */
28819 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
28820 if (UNTAG_Bool(REGB0)) {
28821 } else {
28822 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5419);
28823 }
28824 fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
28825 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28826 stack_frame_head = fra.me.prev;
28827 return;
28828 }
28829 void parser___parser_prod___AAttrAssignExpr___empty_init(val_t p0, int* init_table){
28830 int itpos185 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrAssignExpr].i;
28831 struct {struct stack_frame_t me;} fra;
28832 val_t tmp;
28833 if (init_table[itpos185]) return;
28834 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28835 fra.me.file = LOCATE_parser___parser_prod;
28836 fra.me.line = 5423;
28837 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___empty_init;
28838 fra.me.has_broke = 0;
28839 fra.me.REG_size = 1;
28840 fra.me.REG[0] = NIT_NULL;
28841 fra.me.REG[0] = p0;
28842 stack_frame_head = fra.me.prev;
28843 init_table[itpos185] = 1;
28844 return;
28845 }
28846 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){
28847 int itpos186 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrAssignExpr].i;
28848 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
28849 val_t REGB0;
28850 val_t tmp;
28851 if (init_table[itpos186]) return;
28852 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28853 fra.me.file = LOCATE_parser___parser_prod;
28854 fra.me.line = 5425;
28855 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr;
28856 fra.me.has_broke = 0;
28857 fra.me.REG_size = 6;
28858 fra.me.REG[0] = NIT_NULL;
28859 fra.me.REG[1] = NIT_NULL;
28860 fra.me.REG[2] = NIT_NULL;
28861 fra.me.REG[3] = NIT_NULL;
28862 fra.me.REG[4] = NIT_NULL;
28863 fra.me.REG[5] = NIT_NULL;
28864 fra.me.REG[0] = p0;
28865 fra.me.REG[1] = p1;
28866 fra.me.REG[2] = p2;
28867 fra.me.REG[3] = p3;
28868 fra.me.REG[4] = p4;
28869 /* ./parser//parser_prod.nit:5425 */
28870 fra.me.REG[5] = fra.me.REG[0];
28871 /* ./parser//parser_prod.nit:5432 */
28872 CALL_parser___parser_prod___AAttrAssignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
28873 /* ./parser//parser_prod.nit:5433 */
28874 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28875 if (UNTAG_Bool(REGB0)) {
28876 } else {
28877 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5433);
28878 }
28879 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
28880 /* ./parser//parser_prod.nit:5434 */
28881 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28882 if (UNTAG_Bool(REGB0)) {
28883 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5434);
28884 }
28885 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
28886 /* ./parser//parser_prod.nit:5435 */
28887 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28888 if (UNTAG_Bool(REGB0)) {
28889 } else {
28890 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5435);
28891 }
28892 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
28893 /* ./parser//parser_prod.nit:5436 */
28894 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28895 if (UNTAG_Bool(REGB0)) {
28896 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5436);
28897 }
28898 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
28899 /* ./parser//parser_prod.nit:5437 */
28900 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
28901 if (UNTAG_Bool(REGB0)) {
28902 } else {
28903 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5437);
28904 }
28905 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[5]) = fra.me.REG[3];
28906 /* ./parser//parser_prod.nit:5438 */
28907 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28908 if (UNTAG_Bool(REGB0)) {
28909 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5438);
28910 }
28911 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
28912 /* ./parser//parser_prod.nit:5439 */
28913 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
28914 if (UNTAG_Bool(REGB0)) {
28915 } else {
28916 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5439);
28917 }
28918 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
28919 /* ./parser//parser_prod.nit:5440 */
28920 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
28921 if (UNTAG_Bool(REGB0)) {
28922 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5440);
28923 }
28924 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
28925 stack_frame_head = fra.me.prev;
28926 init_table[itpos186] = 1;
28927 return;
28928 }
28929 void parser___parser_prod___AAttrAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
28930 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28931 val_t REGB0;
28932 val_t REGB1;
28933 val_t tmp;
28934 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28935 fra.me.file = LOCATE_parser___parser_prod;
28936 fra.me.line = 5443;
28937 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___replace_child;
28938 fra.me.has_broke = 0;
28939 fra.me.REG_size = 4;
28940 fra.me.REG[0] = NIT_NULL;
28941 fra.me.REG[1] = NIT_NULL;
28942 fra.me.REG[2] = NIT_NULL;
28943 fra.me.REG[3] = NIT_NULL;
28944 fra.me.REG[0] = p0;
28945 fra.me.REG[1] = p1;
28946 fra.me.REG[2] = p2;
28947 /* ./parser//parser_prod.nit:5445 */
28948 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28949 if (UNTAG_Bool(REGB0)) {
28950 } else {
28951 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5445);
28952 }
28953 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
28954 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28955 if (UNTAG_Bool(REGB0)) {
28956 } else {
28957 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28958 REGB0 = REGB1;
28959 }
28960 if (UNTAG_Bool(REGB0)) {
28961 /* ./parser//parser_prod.nit:5446 */
28962 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28963 if (UNTAG_Bool(REGB0)) {
28964 } else {
28965 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28966 if (UNTAG_Bool(REGB1)) {
28967 REGB1 = TAG_Bool(false);
28968 REGB0 = REGB1;
28969 } else {
28970 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28971 REGB0 = REGB1;
28972 }
28973 }
28974 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28975 if (UNTAG_Bool(REGB0)) {
28976 /* ./parser//parser_prod.nit:5447 */
28977 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28978 if (UNTAG_Bool(REGB0)) {
28979 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5447);
28980 }
28981 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28982 /* ./parser//parser_prod.nit:5448 */
28983 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28984 if (UNTAG_Bool(REGB0)) {
28985 } else {
28986 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5448);
28987 }
28988 /* ./parser//parser_prod.nit:5449 */
28989 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28990 } else {
28991 /* ./parser//parser_prod.nit:5451 */
28992 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5451);
28993 }
28994 /* ./parser//parser_prod.nit:5453 */
28995 goto label1;
28996 }
28997 /* ./parser//parser_prod.nit:5455 */
28998 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
28999 if (UNTAG_Bool(REGB0)) {
29000 } else {
29001 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5455);
29002 }
29003 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
29004 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29005 if (UNTAG_Bool(REGB0)) {
29006 } else {
29007 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29008 REGB0 = REGB1;
29009 }
29010 if (UNTAG_Bool(REGB0)) {
29011 /* ./parser//parser_prod.nit:5456 */
29012 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29013 if (UNTAG_Bool(REGB0)) {
29014 } else {
29015 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29016 if (UNTAG_Bool(REGB1)) {
29017 REGB1 = TAG_Bool(false);
29018 REGB0 = REGB1;
29019 } else {
29020 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29021 REGB0 = REGB1;
29022 }
29023 }
29024 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29025 if (UNTAG_Bool(REGB0)) {
29026 /* ./parser//parser_prod.nit:5457 */
29027 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29028 if (UNTAG_Bool(REGB0)) {
29029 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5457);
29030 }
29031 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29032 /* ./parser//parser_prod.nit:5458 */
29033 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*/;
29034 if (UNTAG_Bool(REGB0)) {
29035 } else {
29036 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5458);
29037 }
29038 /* ./parser//parser_prod.nit:5459 */
29039 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
29040 } else {
29041 /* ./parser//parser_prod.nit:5461 */
29042 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5461);
29043 }
29044 /* ./parser//parser_prod.nit:5463 */
29045 goto label1;
29046 }
29047 /* ./parser//parser_prod.nit:5465 */
29048 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
29049 if (UNTAG_Bool(REGB0)) {
29050 } else {
29051 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5465);
29052 }
29053 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
29054 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29055 if (UNTAG_Bool(REGB0)) {
29056 } else {
29057 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29058 REGB0 = REGB1;
29059 }
29060 if (UNTAG_Bool(REGB0)) {
29061 /* ./parser//parser_prod.nit:5466 */
29062 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29063 if (UNTAG_Bool(REGB0)) {
29064 } else {
29065 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29066 if (UNTAG_Bool(REGB1)) {
29067 REGB1 = TAG_Bool(false);
29068 REGB0 = REGB1;
29069 } else {
29070 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29071 REGB0 = REGB1;
29072 }
29073 }
29074 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29075 if (UNTAG_Bool(REGB0)) {
29076 /* ./parser//parser_prod.nit:5467 */
29077 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29078 if (UNTAG_Bool(REGB0)) {
29079 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5467);
29080 }
29081 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29082 /* ./parser//parser_prod.nit:5468 */
29083 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*/;
29084 if (UNTAG_Bool(REGB0)) {
29085 } else {
29086 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5468);
29087 }
29088 /* ./parser//parser_prod.nit:5469 */
29089 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
29090 } else {
29091 /* ./parser//parser_prod.nit:5471 */
29092 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5471);
29093 }
29094 /* ./parser//parser_prod.nit:5473 */
29095 goto label1;
29096 }
29097 /* ./parser//parser_prod.nit:5475 */
29098 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
29099 if (UNTAG_Bool(REGB0)) {
29100 } else {
29101 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5475);
29102 }
29103 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(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:5476 */
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:5477 */
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, 5477);
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:5478 */
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, 5478);
29137 }
29138 /* ./parser//parser_prod.nit:5479 */
29139 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
29140 } else {
29141 /* ./parser//parser_prod.nit:5481 */
29142 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5481);
29143 }
29144 /* ./parser//parser_prod.nit:5483 */
29145 goto label1;
29146 }
29147 label1: while(0);
29148 stack_frame_head = fra.me.prev;
29149 return;
29150 }
29151 void parser___parser_prod___AAttrAssignExpr___visit_all(val_t p0, val_t p1){
29152 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
29153 val_t REGB0;
29154 val_t tmp;
29155 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29156 fra.me.file = LOCATE_parser___parser_prod;
29157 fra.me.line = 5487;
29158 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___visit_all;
29159 fra.me.has_broke = 0;
29160 fra.me.REG_size = 3;
29161 fra.me.REG[0] = NIT_NULL;
29162 fra.me.REG[1] = NIT_NULL;
29163 fra.me.REG[2] = NIT_NULL;
29164 fra.me.REG[0] = p0;
29165 fra.me.REG[1] = p1;
29166 /* ./parser//parser_prod.nit:5489 */
29167 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29168 if (UNTAG_Bool(REGB0)) {
29169 } else {
29170 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5489);
29171 }
29172 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
29173 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29174 /* ./parser//parser_prod.nit:5490 */
29175 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29176 if (UNTAG_Bool(REGB0)) {
29177 } else {
29178 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5490);
29179 }
29180 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
29181 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29182 /* ./parser//parser_prod.nit:5491 */
29183 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
29184 if (UNTAG_Bool(REGB0)) {
29185 } else {
29186 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5491);
29187 }
29188 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
29189 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29190 /* ./parser//parser_prod.nit:5492 */
29191 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
29192 if (UNTAG_Bool(REGB0)) {
29193 } else {
29194 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5492);
29195 }
29196 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
29197 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29198 stack_frame_head = fra.me.prev;
29199 return;
29200 }
29201 void parser___parser_prod___AAttrReassignExpr___empty_init(val_t p0, int* init_table){
29202 int itpos187 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrReassignExpr].i;
29203 struct {struct stack_frame_t me;} fra;
29204 val_t tmp;
29205 if (init_table[itpos187]) return;
29206 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29207 fra.me.file = LOCATE_parser___parser_prod;
29208 fra.me.line = 5496;
29209 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___empty_init;
29210 fra.me.has_broke = 0;
29211 fra.me.REG_size = 1;
29212 fra.me.REG[0] = NIT_NULL;
29213 fra.me.REG[0] = p0;
29214 stack_frame_head = fra.me.prev;
29215 init_table[itpos187] = 1;
29216 return;
29217 }
29218 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){
29219 int itpos188 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrReassignExpr].i;
29220 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
29221 val_t REGB0;
29222 val_t tmp;
29223 if (init_table[itpos188]) return;
29224 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29225 fra.me.file = LOCATE_parser___parser_prod;
29226 fra.me.line = 5498;
29227 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr;
29228 fra.me.has_broke = 0;
29229 fra.me.REG_size = 6;
29230 fra.me.REG[0] = NIT_NULL;
29231 fra.me.REG[1] = NIT_NULL;
29232 fra.me.REG[2] = NIT_NULL;
29233 fra.me.REG[3] = NIT_NULL;
29234 fra.me.REG[4] = NIT_NULL;
29235 fra.me.REG[5] = NIT_NULL;
29236 fra.me.REG[0] = p0;
29237 fra.me.REG[1] = p1;
29238 fra.me.REG[2] = p2;
29239 fra.me.REG[3] = p3;
29240 fra.me.REG[4] = p4;
29241 /* ./parser//parser_prod.nit:5498 */
29242 fra.me.REG[5] = fra.me.REG[0];
29243 /* ./parser//parser_prod.nit:5505 */
29244 CALL_parser___parser_prod___AAttrReassignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
29245 /* ./parser//parser_prod.nit:5506 */
29246 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
29247 if (UNTAG_Bool(REGB0)) {
29248 } else {
29249 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5506);
29250 }
29251 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
29252 /* ./parser//parser_prod.nit:5507 */
29253 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29254 if (UNTAG_Bool(REGB0)) {
29255 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5507);
29256 }
29257 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
29258 /* ./parser//parser_prod.nit:5508 */
29259 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29260 if (UNTAG_Bool(REGB0)) {
29261 } else {
29262 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5508);
29263 }
29264 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
29265 /* ./parser//parser_prod.nit:5509 */
29266 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29267 if (UNTAG_Bool(REGB0)) {
29268 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5509);
29269 }
29270 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
29271 /* ./parser//parser_prod.nit:5510 */
29272 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
29273 if (UNTAG_Bool(REGB0)) {
29274 } else {
29275 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5510);
29276 }
29277 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[5]) = fra.me.REG[3];
29278 /* ./parser//parser_prod.nit:5511 */
29279 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29280 if (UNTAG_Bool(REGB0)) {
29281 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5511);
29282 }
29283 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
29284 /* ./parser//parser_prod.nit:5512 */
29285 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
29286 if (UNTAG_Bool(REGB0)) {
29287 } else {
29288 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5512);
29289 }
29290 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
29291 /* ./parser//parser_prod.nit:5513 */
29292 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
29293 if (UNTAG_Bool(REGB0)) {
29294 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5513);
29295 }
29296 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
29297 stack_frame_head = fra.me.prev;
29298 init_table[itpos188] = 1;
29299 return;
29300 }
29301 void parser___parser_prod___AAttrReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
29302 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29303 val_t REGB0;
29304 val_t REGB1;
29305 val_t tmp;
29306 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29307 fra.me.file = LOCATE_parser___parser_prod;
29308 fra.me.line = 5516;
29309 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___replace_child;
29310 fra.me.has_broke = 0;
29311 fra.me.REG_size = 4;
29312 fra.me.REG[0] = NIT_NULL;
29313 fra.me.REG[1] = NIT_NULL;
29314 fra.me.REG[2] = NIT_NULL;
29315 fra.me.REG[3] = NIT_NULL;
29316 fra.me.REG[0] = p0;
29317 fra.me.REG[1] = p1;
29318 fra.me.REG[2] = p2;
29319 /* ./parser//parser_prod.nit:5518 */
29320 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29321 if (UNTAG_Bool(REGB0)) {
29322 } else {
29323 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5518);
29324 }
29325 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
29326 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29327 if (UNTAG_Bool(REGB0)) {
29328 } else {
29329 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29330 REGB0 = REGB1;
29331 }
29332 if (UNTAG_Bool(REGB0)) {
29333 /* ./parser//parser_prod.nit:5519 */
29334 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29335 if (UNTAG_Bool(REGB0)) {
29336 } else {
29337 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29338 if (UNTAG_Bool(REGB1)) {
29339 REGB1 = TAG_Bool(false);
29340 REGB0 = REGB1;
29341 } else {
29342 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29343 REGB0 = REGB1;
29344 }
29345 }
29346 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29347 if (UNTAG_Bool(REGB0)) {
29348 /* ./parser//parser_prod.nit:5520 */
29349 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29350 if (UNTAG_Bool(REGB0)) {
29351 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5520);
29352 }
29353 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29354 /* ./parser//parser_prod.nit:5521 */
29355 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29356 if (UNTAG_Bool(REGB0)) {
29357 } else {
29358 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5521);
29359 }
29360 /* ./parser//parser_prod.nit:5522 */
29361 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
29362 } else {
29363 /* ./parser//parser_prod.nit:5524 */
29364 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5524);
29365 }
29366 /* ./parser//parser_prod.nit:5526 */
29367 goto label1;
29368 }
29369 /* ./parser//parser_prod.nit:5528 */
29370 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29371 if (UNTAG_Bool(REGB0)) {
29372 } else {
29373 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5528);
29374 }
29375 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
29376 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29377 if (UNTAG_Bool(REGB0)) {
29378 } else {
29379 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29380 REGB0 = REGB1;
29381 }
29382 if (UNTAG_Bool(REGB0)) {
29383 /* ./parser//parser_prod.nit:5529 */
29384 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29385 if (UNTAG_Bool(REGB0)) {
29386 } else {
29387 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29388 if (UNTAG_Bool(REGB1)) {
29389 REGB1 = TAG_Bool(false);
29390 REGB0 = REGB1;
29391 } else {
29392 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29393 REGB0 = REGB1;
29394 }
29395 }
29396 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29397 if (UNTAG_Bool(REGB0)) {
29398 /* ./parser//parser_prod.nit:5530 */
29399 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29400 if (UNTAG_Bool(REGB0)) {
29401 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5530);
29402 }
29403 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29404 /* ./parser//parser_prod.nit:5531 */
29405 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*/;
29406 if (UNTAG_Bool(REGB0)) {
29407 } else {
29408 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5531);
29409 }
29410 /* ./parser//parser_prod.nit:5532 */
29411 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
29412 } else {
29413 /* ./parser//parser_prod.nit:5534 */
29414 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5534);
29415 }
29416 /* ./parser//parser_prod.nit:5536 */
29417 goto label1;
29418 }
29419 /* ./parser//parser_prod.nit:5538 */
29420 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
29421 if (UNTAG_Bool(REGB0)) {
29422 } else {
29423 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5538);
29424 }
29425 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
29426 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29427 if (UNTAG_Bool(REGB0)) {
29428 } else {
29429 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29430 REGB0 = REGB1;
29431 }
29432 if (UNTAG_Bool(REGB0)) {
29433 /* ./parser//parser_prod.nit:5539 */
29434 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29435 if (UNTAG_Bool(REGB0)) {
29436 } else {
29437 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29438 if (UNTAG_Bool(REGB1)) {
29439 REGB1 = TAG_Bool(false);
29440 REGB0 = REGB1;
29441 } else {
29442 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29443 REGB0 = REGB1;
29444 }
29445 }
29446 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29447 if (UNTAG_Bool(REGB0)) {
29448 /* ./parser//parser_prod.nit:5540 */
29449 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29450 if (UNTAG_Bool(REGB0)) {
29451 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5540);
29452 }
29453 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29454 /* ./parser//parser_prod.nit:5541 */
29455 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*/;
29456 if (UNTAG_Bool(REGB0)) {
29457 } else {
29458 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5541);
29459 }
29460 /* ./parser//parser_prod.nit:5542 */
29461 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
29462 } else {
29463 /* ./parser//parser_prod.nit:5544 */
29464 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5544);
29465 }
29466 /* ./parser//parser_prod.nit:5546 */
29467 goto label1;
29468 }
29469 /* ./parser//parser_prod.nit:5548 */
29470 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
29471 if (UNTAG_Bool(REGB0)) {
29472 } else {
29473 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5548);
29474 }
29475 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
29476 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29477 if (UNTAG_Bool(REGB0)) {
29478 } else {
29479 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29480 REGB0 = REGB1;
29481 }
29482 if (UNTAG_Bool(REGB0)) {
29483 /* ./parser//parser_prod.nit:5549 */
29484 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29485 if (UNTAG_Bool(REGB0)) {
29486 } else {
29487 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29488 if (UNTAG_Bool(REGB1)) {
29489 REGB1 = TAG_Bool(false);
29490 REGB0 = REGB1;
29491 } else {
29492 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29493 REGB0 = REGB1;
29494 }
29495 }
29496 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29497 if (UNTAG_Bool(REGB0)) {
29498 /* ./parser//parser_prod.nit:5550 */
29499 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29500 if (UNTAG_Bool(REGB0)) {
29501 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5550);
29502 }
29503 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29504 /* ./parser//parser_prod.nit:5551 */
29505 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29506 if (UNTAG_Bool(REGB0)) {
29507 } else {
29508 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5551);
29509 }
29510 /* ./parser//parser_prod.nit:5552 */
29511 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
29512 } else {
29513 /* ./parser//parser_prod.nit:5554 */
29514 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5554);
29515 }
29516 /* ./parser//parser_prod.nit:5556 */
29517 goto label1;
29518 }
29519 label1: while(0);
29520 stack_frame_head = fra.me.prev;
29521 return;
29522 }
29523 void parser___parser_prod___AAttrReassignExpr___visit_all(val_t p0, val_t p1){
29524 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
29525 val_t REGB0;
29526 val_t tmp;
29527 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29528 fra.me.file = LOCATE_parser___parser_prod;
29529 fra.me.line = 5560;
29530 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___visit_all;
29531 fra.me.has_broke = 0;
29532 fra.me.REG_size = 3;
29533 fra.me.REG[0] = NIT_NULL;
29534 fra.me.REG[1] = NIT_NULL;
29535 fra.me.REG[2] = NIT_NULL;
29536 fra.me.REG[0] = p0;
29537 fra.me.REG[1] = p1;
29538 /* ./parser//parser_prod.nit:5562 */
29539 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29540 if (UNTAG_Bool(REGB0)) {
29541 } else {
29542 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5562);
29543 }
29544 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
29545 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29546 /* ./parser//parser_prod.nit:5563 */
29547 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29548 if (UNTAG_Bool(REGB0)) {
29549 } else {
29550 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5563);
29551 }
29552 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
29553 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29554 /* ./parser//parser_prod.nit:5564 */
29555 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
29556 if (UNTAG_Bool(REGB0)) {
29557 } else {
29558 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5564);
29559 }
29560 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
29561 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29562 /* ./parser//parser_prod.nit:5565 */
29563 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
29564 if (UNTAG_Bool(REGB0)) {
29565 } else {
29566 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5565);
29567 }
29568 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
29569 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29570 stack_frame_head = fra.me.prev;
29571 return;
29572 }
29573 void parser___parser_prod___ACallExpr___empty_init(val_t p0, int* init_table){
29574 int itpos189 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallExpr].i;
29575 struct {struct stack_frame_t me;} fra;
29576 val_t tmp;
29577 if (init_table[itpos189]) return;
29578 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29579 fra.me.file = LOCATE_parser___parser_prod;
29580 fra.me.line = 5569;
29581 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___empty_init;
29582 fra.me.has_broke = 0;
29583 fra.me.REG_size = 1;
29584 fra.me.REG[0] = NIT_NULL;
29585 fra.me.REG[0] = p0;
29586 stack_frame_head = fra.me.prev;
29587 init_table[itpos189] = 1;
29588 return;
29589 }
29590 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){
29591 int itpos190 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallExpr].i;
29592 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
29593 val_t REGB0;
29594 val_t tmp;
29595 if (init_table[itpos190]) return;
29596 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29597 fra.me.file = LOCATE_parser___parser_prod;
29598 fra.me.line = 5571;
29599 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___init_acallexpr;
29600 fra.me.has_broke = 0;
29601 fra.me.REG_size = 6;
29602 fra.me.REG[0] = NIT_NULL;
29603 fra.me.REG[1] = NIT_NULL;
29604 fra.me.REG[2] = NIT_NULL;
29605 fra.me.REG[3] = NIT_NULL;
29606 fra.me.REG[4] = NIT_NULL;
29607 fra.me.REG[5] = NIT_NULL;
29608 fra.me.REG[0] = p0;
29609 fra.me.REG[1] = p1;
29610 fra.me.REG[2] = p2;
29611 fra.me.REG[3] = p3;
29612 fra.me.REG[4] = p4;
29613 /* ./parser//parser_prod.nit:5571 */
29614 fra.me.REG[5] = fra.me.REG[0];
29615 /* ./parser//parser_prod.nit:5578 */
29616 CALL_parser___parser_prod___ACallExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
29617 /* ./parser//parser_prod.nit:5579 */
29618 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
29619 if (UNTAG_Bool(REGB0)) {
29620 } else {
29621 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5579);
29622 }
29623 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
29624 /* ./parser//parser_prod.nit:5580 */
29625 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29626 if (UNTAG_Bool(REGB0)) {
29627 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5580);
29628 }
29629 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
29630 /* ./parser//parser_prod.nit:5581 */
29631 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29632 if (UNTAG_Bool(REGB0)) {
29633 } else {
29634 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5581);
29635 }
29636 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
29637 /* ./parser//parser_prod.nit:5582 */
29638 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29639 if (UNTAG_Bool(REGB0)) {
29640 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5582);
29641 }
29642 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
29643 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));
29644 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));
29645 stack_frame_head = fra.me.prev;
29646 init_table[itpos190] = 1;
29647 return;
29648 }
29649 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){
29650 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29651 val_t REGB0;
29652 fun_t CREG[1];
29653 val_t tmp;
29654 /* ./parser//parser_prod.nit:5583 */
29655 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29656 fra.me.file = LOCATE_parser___parser_prod;
29657 fra.me.line = 0;
29658 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___init_acallexpr;
29659 fra.me.has_broke = 0;
29660 fra.me.REG_size = 2;
29661 fra.me.REG[0] = NIT_NULL;
29662 fra.me.REG[1] = NIT_NULL;
29663 fra.me.closure_ctx = closctx_param;
29664 fra.me.closure_funs = CREG;
29665 fra.me.REG[0] = p0;
29666 CREG[0] = clos_fun0;
29667 /* ./parser//parser_prod.nit:5584 */
29668 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29669 if (UNTAG_Bool(REGB0)) {
29670 } else {
29671 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5584);
29672 }
29673 /* ./parser//parser_prod.nit:5585 */
29674 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[5])!=NIT_NULL);
29675 if (UNTAG_Bool(REGB0)) {
29676 } else {
29677 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5585);
29678 }
29679 fra.me.REG[1] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[5]);
29680 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29681 /* ./parser//parser_prod.nit:5586 */
29682 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
29683 stack_frame_head = fra.me.prev;
29684 return;
29685 }
29686 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){
29687 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29688 val_t REGB0;
29689 fun_t CREG[1];
29690 val_t tmp;
29691 /* ./parser//parser_prod.nit:5588 */
29692 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29693 fra.me.file = LOCATE_parser___parser_prod;
29694 fra.me.line = 0;
29695 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___init_acallexpr;
29696 fra.me.has_broke = 0;
29697 fra.me.REG_size = 2;
29698 fra.me.REG[0] = NIT_NULL;
29699 fra.me.REG[1] = NIT_NULL;
29700 fra.me.closure_ctx = closctx_param;
29701 fra.me.closure_funs = CREG;
29702 fra.me.REG[0] = p0;
29703 CREG[0] = clos_fun0;
29704 /* ./parser//parser_prod.nit:5589 */
29705 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
29706 if (UNTAG_Bool(REGB0)) {
29707 } else {
29708 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5589);
29709 }
29710 /* ./parser//parser_prod.nit:5590 */
29711 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[5])!=NIT_NULL);
29712 if (UNTAG_Bool(REGB0)) {
29713 } else {
29714 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5590);
29715 }
29716 fra.me.REG[1] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[5]);
29717 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29718 /* ./parser//parser_prod.nit:5591 */
29719 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
29720 stack_frame_head = fra.me.prev;
29721 return;
29722 }
29723 void parser___parser_prod___ACallExpr___replace_child(val_t p0, val_t p1, val_t p2){
29724 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29725 val_t REGB0;
29726 val_t REGB1;
29727 val_t REGB2;
29728 val_t REGB3;
29729 val_t REGB4;
29730 val_t tmp;
29731 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29732 fra.me.file = LOCATE_parser___parser_prod;
29733 fra.me.line = 5595;
29734 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___replace_child;
29735 fra.me.has_broke = 0;
29736 fra.me.REG_size = 4;
29737 fra.me.REG[0] = NIT_NULL;
29738 fra.me.REG[1] = NIT_NULL;
29739 fra.me.REG[2] = NIT_NULL;
29740 fra.me.REG[3] = NIT_NULL;
29741 fra.me.REG[0] = p0;
29742 fra.me.REG[1] = p1;
29743 fra.me.REG[2] = p2;
29744 /* ./parser//parser_prod.nit:5597 */
29745 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29746 if (UNTAG_Bool(REGB0)) {
29747 } else {
29748 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5597);
29749 }
29750 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29751 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29752 if (UNTAG_Bool(REGB0)) {
29753 } else {
29754 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29755 REGB0 = REGB1;
29756 }
29757 if (UNTAG_Bool(REGB0)) {
29758 /* ./parser//parser_prod.nit:5598 */
29759 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29760 if (UNTAG_Bool(REGB0)) {
29761 } else {
29762 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29763 if (UNTAG_Bool(REGB1)) {
29764 REGB1 = TAG_Bool(false);
29765 REGB0 = REGB1;
29766 } else {
29767 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29768 REGB0 = REGB1;
29769 }
29770 }
29771 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29772 if (UNTAG_Bool(REGB0)) {
29773 /* ./parser//parser_prod.nit:5599 */
29774 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29775 if (UNTAG_Bool(REGB0)) {
29776 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5599);
29777 }
29778 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29779 /* ./parser//parser_prod.nit:5600 */
29780 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29781 if (UNTAG_Bool(REGB0)) {
29782 } else {
29783 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5600);
29784 }
29785 /* ./parser//parser_prod.nit:5601 */
29786 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
29787 } else {
29788 /* ./parser//parser_prod.nit:5603 */
29789 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5603);
29790 }
29791 /* ./parser//parser_prod.nit:5605 */
29792 goto label1;
29793 }
29794 /* ./parser//parser_prod.nit:5607 */
29795 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29796 if (UNTAG_Bool(REGB0)) {
29797 } else {
29798 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5607);
29799 }
29800 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
29801 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29802 if (UNTAG_Bool(REGB0)) {
29803 } else {
29804 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29805 REGB0 = REGB1;
29806 }
29807 if (UNTAG_Bool(REGB0)) {
29808 /* ./parser//parser_prod.nit:5608 */
29809 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29810 if (UNTAG_Bool(REGB0)) {
29811 } else {
29812 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29813 if (UNTAG_Bool(REGB1)) {
29814 REGB1 = TAG_Bool(false);
29815 REGB0 = REGB1;
29816 } else {
29817 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29818 REGB0 = REGB1;
29819 }
29820 }
29821 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29822 if (UNTAG_Bool(REGB0)) {
29823 /* ./parser//parser_prod.nit:5609 */
29824 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29825 if (UNTAG_Bool(REGB0)) {
29826 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5609);
29827 }
29828 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29829 /* ./parser//parser_prod.nit:5610 */
29830 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*/;
29831 if (UNTAG_Bool(REGB0)) {
29832 } else {
29833 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5610);
29834 }
29835 /* ./parser//parser_prod.nit:5611 */
29836 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
29837 } else {
29838 /* ./parser//parser_prod.nit:5613 */
29839 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5613);
29840 }
29841 /* ./parser//parser_prod.nit:5615 */
29842 goto label1;
29843 }
29844 /* ./parser//parser_prod.nit:5617 */
29845 REGB0 = TAG_Int(0);
29846 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29847 if (UNTAG_Bool(REGB1)) {
29848 } else {
29849 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5617);
29850 }
29851 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29852 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
29853 /* ./../lib/standard//kernel.nit:352 */
29854 while(1) {
29855 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
29856 if (UNTAG_Bool(REGB2)) {
29857 } else {
29858 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
29859 }
29860 /* ./../lib/standard//kernel.nit:232 */
29861 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
29862 /* ./../lib/standard//kernel.nit:352 */
29863 if (UNTAG_Bool(REGB2)) {
29864 /* ./parser//parser_prod.nit:5617 */
29865 REGB2 = REGB0;
29866 /* ./parser//parser_prod.nit:5618 */
29867 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29868 if (UNTAG_Bool(REGB3)) {
29869 } else {
29870 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5618);
29871 }
29872 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29873 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
29874 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
29875 if (UNTAG_Bool(REGB3)) {
29876 } else {
29877 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29878 if (UNTAG_Bool(REGB4)) {
29879 REGB4 = TAG_Bool(false);
29880 REGB3 = REGB4;
29881 } else {
29882 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29883 REGB3 = REGB4;
29884 }
29885 }
29886 if (UNTAG_Bool(REGB3)) {
29887 /* ./parser//parser_prod.nit:5619 */
29888 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29889 if (UNTAG_Bool(REGB3)) {
29890 } else {
29891 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29892 if (UNTAG_Bool(REGB4)) {
29893 REGB4 = TAG_Bool(false);
29894 REGB3 = REGB4;
29895 } else {
29896 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29897 REGB3 = REGB4;
29898 }
29899 }
29900 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
29901 if (UNTAG_Bool(REGB3)) {
29902 /* ./parser//parser_prod.nit:5620 */
29903 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*/;
29904 if (UNTAG_Bool(REGB3)) {
29905 } else {
29906 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5620);
29907 }
29908 /* ./parser//parser_prod.nit:5621 */
29909 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29910 if (UNTAG_Bool(REGB3)) {
29911 } else {
29912 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5621);
29913 }
29914 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29915 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
29916 /* ./parser//parser_prod.nit:5622 */
29917 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29918 if (UNTAG_Bool(REGB3)) {
29919 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5622);
29920 }
29921 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29922 } else {
29923 /* ./parser//parser_prod.nit:5624 */
29924 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29925 if (UNTAG_Bool(REGB3)) {
29926 } else {
29927 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5624);
29928 }
29929 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29930 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
29931 }
29932 /* ./parser//parser_prod.nit:5626 */
29933 goto label1;
29934 }
29935 /* ./../lib/standard//kernel.nit:354 */
29936 REGB2 = TAG_Int(1);
29937 /* ./../lib/standard//kernel.nit:235 */
29938 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
29939 /* ./../lib/standard//kernel.nit:354 */
29940 REGB0 = REGB2;
29941 } else {
29942 /* ./../lib/standard//kernel.nit:352 */
29943 goto label2;
29944 }
29945 }
29946 label2: while(0);
29947 /* ./parser//parser_prod.nit:5629 */
29948 REGB0 = TAG_Int(0);
29949 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
29950 if (UNTAG_Bool(REGB1)) {
29951 } else {
29952 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5629);
29953 }
29954 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
29955 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
29956 /* ./../lib/standard//kernel.nit:352 */
29957 while(1) {
29958 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
29959 if (UNTAG_Bool(REGB2)) {
29960 } else {
29961 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
29962 }
29963 /* ./../lib/standard//kernel.nit:232 */
29964 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
29965 /* ./../lib/standard//kernel.nit:352 */
29966 if (UNTAG_Bool(REGB2)) {
29967 /* ./parser//parser_prod.nit:5629 */
29968 REGB2 = REGB0;
29969 /* ./parser//parser_prod.nit:5630 */
29970 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
29971 if (UNTAG_Bool(REGB3)) {
29972 } else {
29973 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5630);
29974 }
29975 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
29976 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
29977 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
29978 if (UNTAG_Bool(REGB3)) {
29979 } else {
29980 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29981 if (UNTAG_Bool(REGB4)) {
29982 REGB4 = TAG_Bool(false);
29983 REGB3 = REGB4;
29984 } else {
29985 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29986 REGB3 = REGB4;
29987 }
29988 }
29989 if (UNTAG_Bool(REGB3)) {
29990 /* ./parser//parser_prod.nit:5631 */
29991 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29992 if (UNTAG_Bool(REGB3)) {
29993 } else {
29994 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29995 if (UNTAG_Bool(REGB4)) {
29996 REGB4 = TAG_Bool(false);
29997 REGB3 = REGB4;
29998 } else {
29999 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30000 REGB3 = REGB4;
30001 }
30002 }
30003 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
30004 if (UNTAG_Bool(REGB3)) {
30005 /* ./parser//parser_prod.nit:5632 */
30006 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*/;
30007 if (UNTAG_Bool(REGB3)) {
30008 } else {
30009 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5632);
30010 }
30011 /* ./parser//parser_prod.nit:5633 */
30012 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30013 if (UNTAG_Bool(REGB3)) {
30014 } else {
30015 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5633);
30016 }
30017 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30018 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
30019 /* ./parser//parser_prod.nit:5634 */
30020 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30021 if (UNTAG_Bool(REGB3)) {
30022 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5634);
30023 }
30024 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30025 } else {
30026 /* ./parser//parser_prod.nit:5636 */
30027 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30028 if (UNTAG_Bool(REGB3)) {
30029 } else {
30030 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5636);
30031 }
30032 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30033 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
30034 }
30035 /* ./parser//parser_prod.nit:5638 */
30036 goto label1;
30037 }
30038 /* ./../lib/standard//kernel.nit:354 */
30039 REGB2 = TAG_Int(1);
30040 /* ./../lib/standard//kernel.nit:235 */
30041 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
30042 /* ./../lib/standard//kernel.nit:354 */
30043 REGB0 = REGB2;
30044 } else {
30045 /* ./../lib/standard//kernel.nit:352 */
30046 goto label3;
30047 }
30048 }
30049 label3: while(0);
30050 label1: while(0);
30051 stack_frame_head = fra.me.prev;
30052 return;
30053 }
30054 void parser___parser_prod___ACallExpr___visit_all(val_t p0, val_t p1){
30055 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
30056 val_t REGB0;
30057 val_t tmp;
30058 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30059 fra.me.file = LOCATE_parser___parser_prod;
30060 fra.me.line = 5643;
30061 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___visit_all;
30062 fra.me.has_broke = 0;
30063 fra.me.REG_size = 3;
30064 fra.me.REG[0] = NIT_NULL;
30065 fra.me.REG[1] = NIT_NULL;
30066 fra.me.REG[2] = NIT_NULL;
30067 fra.me.REG[0] = p0;
30068 fra.me.REG[1] = p1;
30069 /* ./parser//parser_prod.nit:5645 */
30070 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30071 if (UNTAG_Bool(REGB0)) {
30072 } else {
30073 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5645);
30074 }
30075 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30076 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30077 /* ./parser//parser_prod.nit:5646 */
30078 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
30079 if (UNTAG_Bool(REGB0)) {
30080 } else {
30081 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5646);
30082 }
30083 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
30084 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30085 /* ./parser//parser_prod.nit:5647 */
30086 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30087 if (UNTAG_Bool(REGB0)) {
30088 } else {
30089 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5647);
30090 }
30091 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30092 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));
30093 /* ./parser//parser_prod.nit:5650 */
30094 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30095 if (UNTAG_Bool(REGB0)) {
30096 } else {
30097 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5650);
30098 }
30099 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30100 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));
30101 stack_frame_head = fra.me.prev;
30102 return;
30103 }
30104 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){
30105 struct {struct stack_frame_t me;} fra;
30106 fun_t CREG[1];
30107 val_t tmp;
30108 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30109 fra.me.file = LOCATE_parser___parser_prod;
30110 fra.me.line = 0;
30111 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___visit_all;
30112 fra.me.has_broke = 0;
30113 fra.me.REG_size = 1;
30114 fra.me.REG[0] = NIT_NULL;
30115 fra.me.closure_ctx = closctx_param;
30116 fra.me.closure_funs = CREG;
30117 fra.me.REG[0] = p0;
30118 CREG[0] = clos_fun0;
30119 /* ./parser//parser_prod.nit:5648 */
30120 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
30121 stack_frame_head = fra.me.prev;
30122 return;
30123 }
30124 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){
30125 struct {struct stack_frame_t me;} fra;
30126 fun_t CREG[1];
30127 val_t tmp;
30128 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30129 fra.me.file = LOCATE_parser___parser_prod;
30130 fra.me.line = 0;
30131 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___visit_all;
30132 fra.me.has_broke = 0;
30133 fra.me.REG_size = 1;
30134 fra.me.REG[0] = NIT_NULL;
30135 fra.me.closure_ctx = closctx_param;
30136 fra.me.closure_funs = CREG;
30137 fra.me.REG[0] = p0;
30138 CREG[0] = clos_fun0;
30139 /* ./parser//parser_prod.nit:5651 */
30140 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
30141 stack_frame_head = fra.me.prev;
30142 return;
30143 }
30144 void parser___parser_prod___ACallAssignExpr___empty_init(val_t p0, int* init_table){
30145 int itpos191 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallAssignExpr].i;
30146 struct {struct stack_frame_t me;} fra;
30147 val_t tmp;
30148 if (init_table[itpos191]) return;
30149 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30150 fra.me.file = LOCATE_parser___parser_prod;
30151 fra.me.line = 5656;
30152 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___empty_init;
30153 fra.me.has_broke = 0;
30154 fra.me.REG_size = 1;
30155 fra.me.REG[0] = NIT_NULL;
30156 fra.me.REG[0] = p0;
30157 stack_frame_head = fra.me.prev;
30158 init_table[itpos191] = 1;
30159 return;
30160 }
30161 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){
30162 int itpos192 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallAssignExpr].i;
30163 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
30164 val_t REGB0;
30165 val_t tmp;
30166 if (init_table[itpos192]) return;
30167 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30168 fra.me.file = LOCATE_parser___parser_prod;
30169 fra.me.line = 5658;
30170 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___init_acallassignexpr;
30171 fra.me.has_broke = 0;
30172 fra.me.REG_size = 7;
30173 fra.me.REG[0] = NIT_NULL;
30174 fra.me.REG[1] = NIT_NULL;
30175 fra.me.REG[2] = NIT_NULL;
30176 fra.me.REG[3] = NIT_NULL;
30177 fra.me.REG[4] = NIT_NULL;
30178 fra.me.REG[5] = NIT_NULL;
30179 fra.me.REG[6] = NIT_NULL;
30180 fra.me.REG[0] = p0;
30181 fra.me.REG[1] = p1;
30182 fra.me.REG[2] = p2;
30183 fra.me.REG[3] = p3;
30184 fra.me.REG[4] = p4;
30185 fra.me.REG[5] = p5;
30186 /* ./parser//parser_prod.nit:5658 */
30187 fra.me.REG[6] = fra.me.REG[0];
30188 /* ./parser//parser_prod.nit:5666 */
30189 CALL_parser___parser_prod___ACallAssignExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
30190 /* ./parser//parser_prod.nit:5667 */
30191 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
30192 if (UNTAG_Bool(REGB0)) {
30193 } else {
30194 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5667);
30195 }
30196 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[6]) = fra.me.REG[1];
30197 /* ./parser//parser_prod.nit:5668 */
30198 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30199 if (UNTAG_Bool(REGB0)) {
30200 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5668);
30201 }
30202 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
30203 /* ./parser//parser_prod.nit:5669 */
30204 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
30205 if (UNTAG_Bool(REGB0)) {
30206 } else {
30207 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5669);
30208 }
30209 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[6]) = fra.me.REG[2];
30210 /* ./parser//parser_prod.nit:5670 */
30211 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30212 if (UNTAG_Bool(REGB0)) {
30213 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5670);
30214 }
30215 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
30216 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));
30217 /* ./parser//parser_prod.nit:5676 */
30218 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
30219 if (UNTAG_Bool(REGB0)) {
30220 } else {
30221 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5676);
30222 }
30223 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[6]) = fra.me.REG[4];
30224 /* ./parser//parser_prod.nit:5677 */
30225 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
30226 if (UNTAG_Bool(REGB0)) {
30227 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5677);
30228 }
30229 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
30230 /* ./parser//parser_prod.nit:5678 */
30231 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
30232 if (UNTAG_Bool(REGB0)) {
30233 } else {
30234 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5678);
30235 }
30236 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[6]) = fra.me.REG[5];
30237 /* ./parser//parser_prod.nit:5679 */
30238 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
30239 if (UNTAG_Bool(REGB0)) {
30240 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5679);
30241 }
30242 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
30243 stack_frame_head = fra.me.prev;
30244 init_table[itpos192] = 1;
30245 return;
30246 }
30247 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){
30248 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30249 val_t REGB0;
30250 fun_t CREG[1];
30251 val_t tmp;
30252 /* ./parser//parser_prod.nit:5671 */
30253 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30254 fra.me.file = LOCATE_parser___parser_prod;
30255 fra.me.line = 0;
30256 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___init_acallassignexpr;
30257 fra.me.has_broke = 0;
30258 fra.me.REG_size = 2;
30259 fra.me.REG[0] = NIT_NULL;
30260 fra.me.REG[1] = NIT_NULL;
30261 fra.me.closure_ctx = closctx_param;
30262 fra.me.closure_funs = CREG;
30263 fra.me.REG[0] = p0;
30264 CREG[0] = clos_fun0;
30265 /* ./parser//parser_prod.nit:5672 */
30266 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30267 if (UNTAG_Bool(REGB0)) {
30268 } else {
30269 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5672);
30270 }
30271 /* ./parser//parser_prod.nit:5673 */
30272 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[6])!=NIT_NULL);
30273 if (UNTAG_Bool(REGB0)) {
30274 } else {
30275 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5673);
30276 }
30277 fra.me.REG[1] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[6]);
30278 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30279 /* ./parser//parser_prod.nit:5674 */
30280 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[6]);
30281 stack_frame_head = fra.me.prev;
30282 return;
30283 }
30284 void parser___parser_prod___ACallAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
30285 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30286 val_t REGB0;
30287 val_t REGB1;
30288 val_t REGB2;
30289 val_t REGB3;
30290 val_t REGB4;
30291 val_t tmp;
30292 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30293 fra.me.file = LOCATE_parser___parser_prod;
30294 fra.me.line = 5682;
30295 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___replace_child;
30296 fra.me.has_broke = 0;
30297 fra.me.REG_size = 4;
30298 fra.me.REG[0] = NIT_NULL;
30299 fra.me.REG[1] = NIT_NULL;
30300 fra.me.REG[2] = NIT_NULL;
30301 fra.me.REG[3] = NIT_NULL;
30302 fra.me.REG[0] = p0;
30303 fra.me.REG[1] = p1;
30304 fra.me.REG[2] = p2;
30305 /* ./parser//parser_prod.nit:5684 */
30306 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30307 if (UNTAG_Bool(REGB0)) {
30308 } else {
30309 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5684);
30310 }
30311 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30312 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30313 if (UNTAG_Bool(REGB0)) {
30314 } else {
30315 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30316 REGB0 = REGB1;
30317 }
30318 if (UNTAG_Bool(REGB0)) {
30319 /* ./parser//parser_prod.nit:5685 */
30320 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30321 if (UNTAG_Bool(REGB0)) {
30322 } else {
30323 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30324 if (UNTAG_Bool(REGB1)) {
30325 REGB1 = TAG_Bool(false);
30326 REGB0 = REGB1;
30327 } else {
30328 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30329 REGB0 = REGB1;
30330 }
30331 }
30332 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30333 if (UNTAG_Bool(REGB0)) {
30334 /* ./parser//parser_prod.nit:5686 */
30335 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30336 if (UNTAG_Bool(REGB0)) {
30337 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5686);
30338 }
30339 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30340 /* ./parser//parser_prod.nit:5687 */
30341 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30342 if (UNTAG_Bool(REGB0)) {
30343 } else {
30344 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5687);
30345 }
30346 /* ./parser//parser_prod.nit:5688 */
30347 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
30348 } else {
30349 /* ./parser//parser_prod.nit:5690 */
30350 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5690);
30351 }
30352 /* ./parser//parser_prod.nit:5692 */
30353 goto label1;
30354 }
30355 /* ./parser//parser_prod.nit:5694 */
30356 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
30357 if (UNTAG_Bool(REGB0)) {
30358 } else {
30359 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5694);
30360 }
30361 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
30362 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30363 if (UNTAG_Bool(REGB0)) {
30364 } else {
30365 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30366 REGB0 = REGB1;
30367 }
30368 if (UNTAG_Bool(REGB0)) {
30369 /* ./parser//parser_prod.nit:5695 */
30370 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30371 if (UNTAG_Bool(REGB0)) {
30372 } else {
30373 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30374 if (UNTAG_Bool(REGB1)) {
30375 REGB1 = TAG_Bool(false);
30376 REGB0 = REGB1;
30377 } else {
30378 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30379 REGB0 = REGB1;
30380 }
30381 }
30382 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30383 if (UNTAG_Bool(REGB0)) {
30384 /* ./parser//parser_prod.nit:5696 */
30385 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30386 if (UNTAG_Bool(REGB0)) {
30387 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5696);
30388 }
30389 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30390 /* ./parser//parser_prod.nit:5697 */
30391 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*/;
30392 if (UNTAG_Bool(REGB0)) {
30393 } else {
30394 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5697);
30395 }
30396 /* ./parser//parser_prod.nit:5698 */
30397 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
30398 } else {
30399 /* ./parser//parser_prod.nit:5700 */
30400 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5700);
30401 }
30402 /* ./parser//parser_prod.nit:5702 */
30403 goto label1;
30404 }
30405 /* ./parser//parser_prod.nit:5704 */
30406 REGB0 = TAG_Int(0);
30407 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30408 if (UNTAG_Bool(REGB1)) {
30409 } else {
30410 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5704);
30411 }
30412 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30413 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
30414 /* ./../lib/standard//kernel.nit:352 */
30415 while(1) {
30416 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
30417 if (UNTAG_Bool(REGB2)) {
30418 } else {
30419 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
30420 }
30421 /* ./../lib/standard//kernel.nit:232 */
30422 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
30423 /* ./../lib/standard//kernel.nit:352 */
30424 if (UNTAG_Bool(REGB2)) {
30425 /* ./parser//parser_prod.nit:5704 */
30426 REGB2 = REGB0;
30427 /* ./parser//parser_prod.nit:5705 */
30428 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30429 if (UNTAG_Bool(REGB3)) {
30430 } else {
30431 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5705);
30432 }
30433 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30434 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
30435 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
30436 if (UNTAG_Bool(REGB3)) {
30437 } else {
30438 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30439 if (UNTAG_Bool(REGB4)) {
30440 REGB4 = TAG_Bool(false);
30441 REGB3 = REGB4;
30442 } else {
30443 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30444 REGB3 = REGB4;
30445 }
30446 }
30447 if (UNTAG_Bool(REGB3)) {
30448 /* ./parser//parser_prod.nit:5706 */
30449 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30450 if (UNTAG_Bool(REGB3)) {
30451 } else {
30452 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30453 if (UNTAG_Bool(REGB4)) {
30454 REGB4 = TAG_Bool(false);
30455 REGB3 = REGB4;
30456 } else {
30457 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30458 REGB3 = REGB4;
30459 }
30460 }
30461 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
30462 if (UNTAG_Bool(REGB3)) {
30463 /* ./parser//parser_prod.nit:5707 */
30464 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*/;
30465 if (UNTAG_Bool(REGB3)) {
30466 } else {
30467 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5707);
30468 }
30469 /* ./parser//parser_prod.nit:5708 */
30470 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30471 if (UNTAG_Bool(REGB3)) {
30472 } else {
30473 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5708);
30474 }
30475 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30476 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
30477 /* ./parser//parser_prod.nit:5709 */
30478 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30479 if (UNTAG_Bool(REGB3)) {
30480 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5709);
30481 }
30482 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30483 } else {
30484 /* ./parser//parser_prod.nit:5711 */
30485 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30486 if (UNTAG_Bool(REGB3)) {
30487 } else {
30488 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5711);
30489 }
30490 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30491 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
30492 }
30493 /* ./parser//parser_prod.nit:5713 */
30494 goto label1;
30495 }
30496 /* ./../lib/standard//kernel.nit:354 */
30497 REGB2 = TAG_Int(1);
30498 /* ./../lib/standard//kernel.nit:235 */
30499 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
30500 /* ./../lib/standard//kernel.nit:354 */
30501 REGB0 = REGB2;
30502 } else {
30503 /* ./../lib/standard//kernel.nit:352 */
30504 goto label2;
30505 }
30506 }
30507 label2: while(0);
30508 /* ./parser//parser_prod.nit:5716 */
30509 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
30510 if (UNTAG_Bool(REGB0)) {
30511 } else {
30512 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5716);
30513 }
30514 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
30515 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30516 if (UNTAG_Bool(REGB0)) {
30517 } else {
30518 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30519 REGB0 = REGB1;
30520 }
30521 if (UNTAG_Bool(REGB0)) {
30522 /* ./parser//parser_prod.nit:5717 */
30523 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30524 if (UNTAG_Bool(REGB0)) {
30525 } else {
30526 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30527 if (UNTAG_Bool(REGB1)) {
30528 REGB1 = TAG_Bool(false);
30529 REGB0 = REGB1;
30530 } else {
30531 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30532 REGB0 = REGB1;
30533 }
30534 }
30535 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30536 if (UNTAG_Bool(REGB0)) {
30537 /* ./parser//parser_prod.nit:5718 */
30538 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30539 if (UNTAG_Bool(REGB0)) {
30540 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5718);
30541 }
30542 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30543 /* ./parser//parser_prod.nit:5719 */
30544 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*/;
30545 if (UNTAG_Bool(REGB0)) {
30546 } else {
30547 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5719);
30548 }
30549 /* ./parser//parser_prod.nit:5720 */
30550 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
30551 } else {
30552 /* ./parser//parser_prod.nit:5722 */
30553 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5722);
30554 }
30555 /* ./parser//parser_prod.nit:5724 */
30556 goto label1;
30557 }
30558 /* ./parser//parser_prod.nit:5726 */
30559 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
30560 if (UNTAG_Bool(REGB0)) {
30561 } else {
30562 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5726);
30563 }
30564 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
30565 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30566 if (UNTAG_Bool(REGB0)) {
30567 } else {
30568 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30569 REGB0 = REGB1;
30570 }
30571 if (UNTAG_Bool(REGB0)) {
30572 /* ./parser//parser_prod.nit:5727 */
30573 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30574 if (UNTAG_Bool(REGB0)) {
30575 } else {
30576 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30577 if (UNTAG_Bool(REGB1)) {
30578 REGB1 = TAG_Bool(false);
30579 REGB0 = REGB1;
30580 } else {
30581 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30582 REGB0 = REGB1;
30583 }
30584 }
30585 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30586 if (UNTAG_Bool(REGB0)) {
30587 /* ./parser//parser_prod.nit:5728 */
30588 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30589 if (UNTAG_Bool(REGB0)) {
30590 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5728);
30591 }
30592 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30593 /* ./parser//parser_prod.nit:5729 */
30594 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30595 if (UNTAG_Bool(REGB0)) {
30596 } else {
30597 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5729);
30598 }
30599 /* ./parser//parser_prod.nit:5730 */
30600 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
30601 } else {
30602 /* ./parser//parser_prod.nit:5732 */
30603 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5732);
30604 }
30605 /* ./parser//parser_prod.nit:5734 */
30606 goto label1;
30607 }
30608 label1: while(0);
30609 stack_frame_head = fra.me.prev;
30610 return;
30611 }
30612 void parser___parser_prod___ACallAssignExpr___visit_all(val_t p0, val_t p1){
30613 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
30614 val_t REGB0;
30615 val_t tmp;
30616 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30617 fra.me.file = LOCATE_parser___parser_prod;
30618 fra.me.line = 5738;
30619 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___visit_all;
30620 fra.me.has_broke = 0;
30621 fra.me.REG_size = 3;
30622 fra.me.REG[0] = NIT_NULL;
30623 fra.me.REG[1] = NIT_NULL;
30624 fra.me.REG[2] = NIT_NULL;
30625 fra.me.REG[0] = p0;
30626 fra.me.REG[1] = p1;
30627 /* ./parser//parser_prod.nit:5740 */
30628 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30629 if (UNTAG_Bool(REGB0)) {
30630 } else {
30631 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5740);
30632 }
30633 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30634 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30635 /* ./parser//parser_prod.nit:5741 */
30636 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
30637 if (UNTAG_Bool(REGB0)) {
30638 } else {
30639 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5741);
30640 }
30641 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
30642 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30643 /* ./parser//parser_prod.nit:5742 */
30644 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30645 if (UNTAG_Bool(REGB0)) {
30646 } else {
30647 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5742);
30648 }
30649 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30650 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));
30651 /* ./parser//parser_prod.nit:5745 */
30652 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
30653 if (UNTAG_Bool(REGB0)) {
30654 } else {
30655 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5745);
30656 }
30657 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
30658 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30659 /* ./parser//parser_prod.nit:5746 */
30660 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
30661 if (UNTAG_Bool(REGB0)) {
30662 } else {
30663 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5746);
30664 }
30665 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
30666 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30667 stack_frame_head = fra.me.prev;
30668 return;
30669 }
30670 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){
30671 struct {struct stack_frame_t me;} fra;
30672 fun_t CREG[1];
30673 val_t tmp;
30674 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30675 fra.me.file = LOCATE_parser___parser_prod;
30676 fra.me.line = 0;
30677 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___visit_all;
30678 fra.me.has_broke = 0;
30679 fra.me.REG_size = 1;
30680 fra.me.REG[0] = NIT_NULL;
30681 fra.me.closure_ctx = closctx_param;
30682 fra.me.closure_funs = CREG;
30683 fra.me.REG[0] = p0;
30684 CREG[0] = clos_fun0;
30685 /* ./parser//parser_prod.nit:5743 */
30686 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
30687 stack_frame_head = fra.me.prev;
30688 return;
30689 }
30690 void parser___parser_prod___ACallReassignExpr___empty_init(val_t p0, int* init_table){
30691 int itpos193 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallReassignExpr].i;
30692 struct {struct stack_frame_t me;} fra;
30693 val_t tmp;
30694 if (init_table[itpos193]) return;
30695 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30696 fra.me.file = LOCATE_parser___parser_prod;
30697 fra.me.line = 5750;
30698 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___empty_init;
30699 fra.me.has_broke = 0;
30700 fra.me.REG_size = 1;
30701 fra.me.REG[0] = NIT_NULL;
30702 fra.me.REG[0] = p0;
30703 stack_frame_head = fra.me.prev;
30704 init_table[itpos193] = 1;
30705 return;
30706 }
30707 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){
30708 int itpos194 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallReassignExpr].i;
30709 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
30710 val_t REGB0;
30711 val_t tmp;
30712 if (init_table[itpos194]) return;
30713 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30714 fra.me.file = LOCATE_parser___parser_prod;
30715 fra.me.line = 5752;
30716 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr;
30717 fra.me.has_broke = 0;
30718 fra.me.REG_size = 7;
30719 fra.me.REG[0] = NIT_NULL;
30720 fra.me.REG[1] = NIT_NULL;
30721 fra.me.REG[2] = NIT_NULL;
30722 fra.me.REG[3] = NIT_NULL;
30723 fra.me.REG[4] = NIT_NULL;
30724 fra.me.REG[5] = NIT_NULL;
30725 fra.me.REG[6] = NIT_NULL;
30726 fra.me.REG[0] = p0;
30727 fra.me.REG[1] = p1;
30728 fra.me.REG[2] = p2;
30729 fra.me.REG[3] = p3;
30730 fra.me.REG[4] = p4;
30731 fra.me.REG[5] = p5;
30732 /* ./parser//parser_prod.nit:5752 */
30733 fra.me.REG[6] = fra.me.REG[0];
30734 /* ./parser//parser_prod.nit:5760 */
30735 CALL_parser___parser_prod___ACallReassignExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
30736 /* ./parser//parser_prod.nit:5761 */
30737 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
30738 if (UNTAG_Bool(REGB0)) {
30739 } else {
30740 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5761);
30741 }
30742 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[6]) = fra.me.REG[1];
30743 /* ./parser//parser_prod.nit:5762 */
30744 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30745 if (UNTAG_Bool(REGB0)) {
30746 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5762);
30747 }
30748 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
30749 /* ./parser//parser_prod.nit:5763 */
30750 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
30751 if (UNTAG_Bool(REGB0)) {
30752 } else {
30753 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5763);
30754 }
30755 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[6]) = fra.me.REG[2];
30756 /* ./parser//parser_prod.nit:5764 */
30757 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30758 if (UNTAG_Bool(REGB0)) {
30759 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5764);
30760 }
30761 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
30762 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));
30763 /* ./parser//parser_prod.nit:5770 */
30764 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
30765 if (UNTAG_Bool(REGB0)) {
30766 } else {
30767 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5770);
30768 }
30769 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[6]) = fra.me.REG[4];
30770 /* ./parser//parser_prod.nit:5771 */
30771 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
30772 if (UNTAG_Bool(REGB0)) {
30773 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5771);
30774 }
30775 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
30776 /* ./parser//parser_prod.nit:5772 */
30777 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
30778 if (UNTAG_Bool(REGB0)) {
30779 } else {
30780 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5772);
30781 }
30782 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[6]) = fra.me.REG[5];
30783 /* ./parser//parser_prod.nit:5773 */
30784 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
30785 if (UNTAG_Bool(REGB0)) {
30786 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5773);
30787 }
30788 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
30789 stack_frame_head = fra.me.prev;
30790 init_table[itpos194] = 1;
30791 return;
30792 }
30793 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){
30794 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30795 val_t REGB0;
30796 fun_t CREG[1];
30797 val_t tmp;
30798 /* ./parser//parser_prod.nit:5765 */
30799 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30800 fra.me.file = LOCATE_parser___parser_prod;
30801 fra.me.line = 0;
30802 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr;
30803 fra.me.has_broke = 0;
30804 fra.me.REG_size = 2;
30805 fra.me.REG[0] = NIT_NULL;
30806 fra.me.REG[1] = NIT_NULL;
30807 fra.me.closure_ctx = closctx_param;
30808 fra.me.closure_funs = CREG;
30809 fra.me.REG[0] = p0;
30810 CREG[0] = clos_fun0;
30811 /* ./parser//parser_prod.nit:5766 */
30812 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30813 if (UNTAG_Bool(REGB0)) {
30814 } else {
30815 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5766);
30816 }
30817 /* ./parser//parser_prod.nit:5767 */
30818 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[6])!=NIT_NULL);
30819 if (UNTAG_Bool(REGB0)) {
30820 } else {
30821 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5767);
30822 }
30823 fra.me.REG[1] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[6]);
30824 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30825 /* ./parser//parser_prod.nit:5768 */
30826 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[6]);
30827 stack_frame_head = fra.me.prev;
30828 return;
30829 }
30830 void parser___parser_prod___ACallReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
30831 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30832 val_t REGB0;
30833 val_t REGB1;
30834 val_t REGB2;
30835 val_t REGB3;
30836 val_t REGB4;
30837 val_t tmp;
30838 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30839 fra.me.file = LOCATE_parser___parser_prod;
30840 fra.me.line = 5776;
30841 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___replace_child;
30842 fra.me.has_broke = 0;
30843 fra.me.REG_size = 4;
30844 fra.me.REG[0] = NIT_NULL;
30845 fra.me.REG[1] = NIT_NULL;
30846 fra.me.REG[2] = NIT_NULL;
30847 fra.me.REG[3] = NIT_NULL;
30848 fra.me.REG[0] = p0;
30849 fra.me.REG[1] = p1;
30850 fra.me.REG[2] = p2;
30851 /* ./parser//parser_prod.nit:5778 */
30852 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30853 if (UNTAG_Bool(REGB0)) {
30854 } else {
30855 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5778);
30856 }
30857 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30858 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30859 if (UNTAG_Bool(REGB0)) {
30860 } else {
30861 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30862 REGB0 = REGB1;
30863 }
30864 if (UNTAG_Bool(REGB0)) {
30865 /* ./parser//parser_prod.nit:5779 */
30866 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30867 if (UNTAG_Bool(REGB0)) {
30868 } else {
30869 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30870 if (UNTAG_Bool(REGB1)) {
30871 REGB1 = TAG_Bool(false);
30872 REGB0 = REGB1;
30873 } else {
30874 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30875 REGB0 = REGB1;
30876 }
30877 }
30878 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30879 if (UNTAG_Bool(REGB0)) {
30880 /* ./parser//parser_prod.nit:5780 */
30881 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30882 if (UNTAG_Bool(REGB0)) {
30883 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5780);
30884 }
30885 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30886 /* ./parser//parser_prod.nit:5781 */
30887 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30888 if (UNTAG_Bool(REGB0)) {
30889 } else {
30890 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5781);
30891 }
30892 /* ./parser//parser_prod.nit:5782 */
30893 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
30894 } else {
30895 /* ./parser//parser_prod.nit:5784 */
30896 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5784);
30897 }
30898 /* ./parser//parser_prod.nit:5786 */
30899 goto label1;
30900 }
30901 /* ./parser//parser_prod.nit:5788 */
30902 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
30903 if (UNTAG_Bool(REGB0)) {
30904 } else {
30905 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5788);
30906 }
30907 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
30908 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30909 if (UNTAG_Bool(REGB0)) {
30910 } else {
30911 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30912 REGB0 = REGB1;
30913 }
30914 if (UNTAG_Bool(REGB0)) {
30915 /* ./parser//parser_prod.nit:5789 */
30916 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30917 if (UNTAG_Bool(REGB0)) {
30918 } else {
30919 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30920 if (UNTAG_Bool(REGB1)) {
30921 REGB1 = TAG_Bool(false);
30922 REGB0 = REGB1;
30923 } else {
30924 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30925 REGB0 = REGB1;
30926 }
30927 }
30928 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30929 if (UNTAG_Bool(REGB0)) {
30930 /* ./parser//parser_prod.nit:5790 */
30931 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30932 if (UNTAG_Bool(REGB0)) {
30933 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5790);
30934 }
30935 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30936 /* ./parser//parser_prod.nit:5791 */
30937 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*/;
30938 if (UNTAG_Bool(REGB0)) {
30939 } else {
30940 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5791);
30941 }
30942 /* ./parser//parser_prod.nit:5792 */
30943 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
30944 } else {
30945 /* ./parser//parser_prod.nit:5794 */
30946 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5794);
30947 }
30948 /* ./parser//parser_prod.nit:5796 */
30949 goto label1;
30950 }
30951 /* ./parser//parser_prod.nit:5798 */
30952 REGB0 = TAG_Int(0);
30953 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30954 if (UNTAG_Bool(REGB1)) {
30955 } else {
30956 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5798);
30957 }
30958 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30959 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
30960 /* ./../lib/standard//kernel.nit:352 */
30961 while(1) {
30962 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
30963 if (UNTAG_Bool(REGB2)) {
30964 } else {
30965 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
30966 }
30967 /* ./../lib/standard//kernel.nit:232 */
30968 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
30969 /* ./../lib/standard//kernel.nit:352 */
30970 if (UNTAG_Bool(REGB2)) {
30971 /* ./parser//parser_prod.nit:5798 */
30972 REGB2 = REGB0;
30973 /* ./parser//parser_prod.nit:5799 */
30974 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30975 if (UNTAG_Bool(REGB3)) {
30976 } else {
30977 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5799);
30978 }
30979 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30980 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
30981 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
30982 if (UNTAG_Bool(REGB3)) {
30983 } else {
30984 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30985 if (UNTAG_Bool(REGB4)) {
30986 REGB4 = TAG_Bool(false);
30987 REGB3 = REGB4;
30988 } else {
30989 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30990 REGB3 = REGB4;
30991 }
30992 }
30993 if (UNTAG_Bool(REGB3)) {
30994 /* ./parser//parser_prod.nit:5800 */
30995 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30996 if (UNTAG_Bool(REGB3)) {
30997 } else {
30998 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30999 if (UNTAG_Bool(REGB4)) {
31000 REGB4 = TAG_Bool(false);
31001 REGB3 = REGB4;
31002 } else {
31003 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31004 REGB3 = REGB4;
31005 }
31006 }
31007 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
31008 if (UNTAG_Bool(REGB3)) {
31009 /* ./parser//parser_prod.nit:5801 */
31010 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*/;
31011 if (UNTAG_Bool(REGB3)) {
31012 } else {
31013 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5801);
31014 }
31015 /* ./parser//parser_prod.nit:5802 */
31016 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31017 if (UNTAG_Bool(REGB3)) {
31018 } else {
31019 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5802);
31020 }
31021 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
31022 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
31023 /* ./parser//parser_prod.nit:5803 */
31024 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31025 if (UNTAG_Bool(REGB3)) {
31026 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5803);
31027 }
31028 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31029 } else {
31030 /* ./parser//parser_prod.nit:5805 */
31031 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31032 if (UNTAG_Bool(REGB3)) {
31033 } else {
31034 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5805);
31035 }
31036 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
31037 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
31038 }
31039 /* ./parser//parser_prod.nit:5807 */
31040 goto label1;
31041 }
31042 /* ./../lib/standard//kernel.nit:354 */
31043 REGB2 = TAG_Int(1);
31044 /* ./../lib/standard//kernel.nit:235 */
31045 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
31046 /* ./../lib/standard//kernel.nit:354 */
31047 REGB0 = REGB2;
31048 } else {
31049 /* ./../lib/standard//kernel.nit:352 */
31050 goto label2;
31051 }
31052 }
31053 label2: while(0);
31054 /* ./parser//parser_prod.nit:5810 */
31055 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
31056 if (UNTAG_Bool(REGB0)) {
31057 } else {
31058 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5810);
31059 }
31060 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
31061 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31062 if (UNTAG_Bool(REGB0)) {
31063 } else {
31064 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31065 REGB0 = REGB1;
31066 }
31067 if (UNTAG_Bool(REGB0)) {
31068 /* ./parser//parser_prod.nit:5811 */
31069 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31070 if (UNTAG_Bool(REGB0)) {
31071 } else {
31072 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31073 if (UNTAG_Bool(REGB1)) {
31074 REGB1 = TAG_Bool(false);
31075 REGB0 = REGB1;
31076 } else {
31077 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31078 REGB0 = REGB1;
31079 }
31080 }
31081 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31082 if (UNTAG_Bool(REGB0)) {
31083 /* ./parser//parser_prod.nit:5812 */
31084 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31085 if (UNTAG_Bool(REGB0)) {
31086 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5812);
31087 }
31088 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31089 /* ./parser//parser_prod.nit:5813 */
31090 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*/;
31091 if (UNTAG_Bool(REGB0)) {
31092 } else {
31093 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5813);
31094 }
31095 /* ./parser//parser_prod.nit:5814 */
31096 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
31097 } else {
31098 /* ./parser//parser_prod.nit:5816 */
31099 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5816);
31100 }
31101 /* ./parser//parser_prod.nit:5818 */
31102 goto label1;
31103 }
31104 /* ./parser//parser_prod.nit:5820 */
31105 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31106 if (UNTAG_Bool(REGB0)) {
31107 } else {
31108 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5820);
31109 }
31110 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
31111 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31112 if (UNTAG_Bool(REGB0)) {
31113 } else {
31114 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31115 REGB0 = REGB1;
31116 }
31117 if (UNTAG_Bool(REGB0)) {
31118 /* ./parser//parser_prod.nit:5821 */
31119 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31120 if (UNTAG_Bool(REGB0)) {
31121 } else {
31122 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31123 if (UNTAG_Bool(REGB1)) {
31124 REGB1 = TAG_Bool(false);
31125 REGB0 = REGB1;
31126 } else {
31127 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31128 REGB0 = REGB1;
31129 }
31130 }
31131 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31132 if (UNTAG_Bool(REGB0)) {
31133 /* ./parser//parser_prod.nit:5822 */
31134 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31135 if (UNTAG_Bool(REGB0)) {
31136 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5822);
31137 }
31138 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31139 /* ./parser//parser_prod.nit:5823 */
31140 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31141 if (UNTAG_Bool(REGB0)) {
31142 } else {
31143 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5823);
31144 }
31145 /* ./parser//parser_prod.nit:5824 */
31146 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
31147 } else {
31148 /* ./parser//parser_prod.nit:5826 */
31149 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5826);
31150 }
31151 /* ./parser//parser_prod.nit:5828 */
31152 goto label1;
31153 }
31154 label1: while(0);
31155 stack_frame_head = fra.me.prev;
31156 return;
31157 }
31158 void parser___parser_prod___ACallReassignExpr___visit_all(val_t p0, val_t p1){
31159 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
31160 val_t REGB0;
31161 val_t tmp;
31162 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31163 fra.me.file = LOCATE_parser___parser_prod;
31164 fra.me.line = 5832;
31165 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___visit_all;
31166 fra.me.has_broke = 0;
31167 fra.me.REG_size = 3;
31168 fra.me.REG[0] = NIT_NULL;
31169 fra.me.REG[1] = NIT_NULL;
31170 fra.me.REG[2] = NIT_NULL;
31171 fra.me.REG[0] = p0;
31172 fra.me.REG[1] = p1;
31173 /* ./parser//parser_prod.nit:5834 */
31174 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31175 if (UNTAG_Bool(REGB0)) {
31176 } else {
31177 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5834);
31178 }
31179 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31180 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31181 /* ./parser//parser_prod.nit:5835 */
31182 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
31183 if (UNTAG_Bool(REGB0)) {
31184 } else {
31185 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5835);
31186 }
31187 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
31188 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31189 /* ./parser//parser_prod.nit:5836 */
31190 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31191 if (UNTAG_Bool(REGB0)) {
31192 } else {
31193 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5836);
31194 }
31195 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
31196 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));
31197 /* ./parser//parser_prod.nit:5839 */
31198 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
31199 if (UNTAG_Bool(REGB0)) {
31200 } else {
31201 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5839);
31202 }
31203 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
31204 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31205 /* ./parser//parser_prod.nit:5840 */
31206 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31207 if (UNTAG_Bool(REGB0)) {
31208 } else {
31209 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5840);
31210 }
31211 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
31212 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31213 stack_frame_head = fra.me.prev;
31214 return;
31215 }
31216 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){
31217 struct {struct stack_frame_t me;} fra;
31218 fun_t CREG[1];
31219 val_t tmp;
31220 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31221 fra.me.file = LOCATE_parser___parser_prod;
31222 fra.me.line = 0;
31223 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___visit_all;
31224 fra.me.has_broke = 0;
31225 fra.me.REG_size = 1;
31226 fra.me.REG[0] = NIT_NULL;
31227 fra.me.closure_ctx = closctx_param;
31228 fra.me.closure_funs = CREG;
31229 fra.me.REG[0] = p0;
31230 CREG[0] = clos_fun0;
31231 /* ./parser//parser_prod.nit:5837 */
31232 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
31233 stack_frame_head = fra.me.prev;
31234 return;
31235 }
31236 void parser___parser_prod___ASuperExpr___empty_init(val_t p0, int* init_table){
31237 int itpos195 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExpr].i;
31238 struct {struct stack_frame_t me;} fra;
31239 val_t tmp;
31240 if (init_table[itpos195]) return;
31241 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31242 fra.me.file = LOCATE_parser___parser_prod;
31243 fra.me.line = 5844;
31244 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___empty_init;
31245 fra.me.has_broke = 0;
31246 fra.me.REG_size = 1;
31247 fra.me.REG[0] = NIT_NULL;
31248 fra.me.REG[0] = p0;
31249 stack_frame_head = fra.me.prev;
31250 init_table[itpos195] = 1;
31251 return;
31252 }
31253 void parser___parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
31254 int itpos196 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExpr].i;
31255 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
31256 val_t REGB0;
31257 val_t REGB1;
31258 val_t tmp;
31259 if (init_table[itpos196]) return;
31260 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31261 fra.me.file = LOCATE_parser___parser_prod;
31262 fra.me.line = 5846;
31263 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___init_asuperexpr;
31264 fra.me.has_broke = 0;
31265 fra.me.REG_size = 5;
31266 fra.me.REG[0] = NIT_NULL;
31267 fra.me.REG[1] = NIT_NULL;
31268 fra.me.REG[2] = NIT_NULL;
31269 fra.me.REG[3] = NIT_NULL;
31270 fra.me.REG[4] = NIT_NULL;
31271 fra.me.REG[0] = p0;
31272 fra.me.REG[1] = p1;
31273 fra.me.REG[2] = p2;
31274 fra.me.REG[3] = p3;
31275 /* ./parser//parser_prod.nit:5846 */
31276 fra.me.REG[4] = fra.me.REG[0];
31277 /* ./parser//parser_prod.nit:5852 */
31278 CALL_parser___parser_prod___ASuperExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
31279 /* ./parser//parser_prod.nit:5853 */
31280 ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[4]) = fra.me.REG[1];
31281 /* ./parser//parser_prod.nit:5854 */
31282 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31283 if (UNTAG_Bool(REGB0)) {
31284 } else {
31285 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31286 if (UNTAG_Bool(REGB1)) {
31287 REGB1 = TAG_Bool(false);
31288 REGB0 = REGB1;
31289 } else {
31290 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
31291 REGB0 = REGB1;
31292 }
31293 }
31294 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31295 if (UNTAG_Bool(REGB0)) {
31296 /* ./parser//parser_prod.nit:5855 */
31297 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31298 if (UNTAG_Bool(REGB0)) {
31299 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5855);
31300 }
31301 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
31302 }
31303 /* ./parser//parser_prod.nit:5857 */
31304 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
31305 if (UNTAG_Bool(REGB0)) {
31306 } else {
31307 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5857);
31308 }
31309 ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[4]) = fra.me.REG[2];
31310 /* ./parser//parser_prod.nit:5858 */
31311 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31312 if (UNTAG_Bool(REGB0)) {
31313 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5858);
31314 }
31315 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
31316 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));
31317 stack_frame_head = fra.me.prev;
31318 init_table[itpos196] = 1;
31319 return;
31320 }
31321 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){
31322 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31323 val_t REGB0;
31324 fun_t CREG[1];
31325 val_t tmp;
31326 /* ./parser//parser_prod.nit:5859 */
31327 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31328 fra.me.file = LOCATE_parser___parser_prod;
31329 fra.me.line = 0;
31330 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___init_asuperexpr;
31331 fra.me.has_broke = 0;
31332 fra.me.REG_size = 2;
31333 fra.me.REG[0] = NIT_NULL;
31334 fra.me.REG[1] = NIT_NULL;
31335 fra.me.closure_ctx = closctx_param;
31336 fra.me.closure_funs = CREG;
31337 fra.me.REG[0] = p0;
31338 CREG[0] = clos_fun0;
31339 /* ./parser//parser_prod.nit:5860 */
31340 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31341 if (UNTAG_Bool(REGB0)) {
31342 } else {
31343 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5860);
31344 }
31345 /* ./parser//parser_prod.nit:5861 */
31346 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(closctx->REG[4])!=NIT_NULL);
31347 if (UNTAG_Bool(REGB0)) {
31348 } else {
31349 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5861);
31350 }
31351 fra.me.REG[1] = ATTR_parser___parser_nodes___ASuperExpr____n_args(closctx->REG[4]);
31352 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31353 /* ./parser//parser_prod.nit:5862 */
31354 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
31355 stack_frame_head = fra.me.prev;
31356 return;
31357 }
31358 void parser___parser_prod___ASuperExpr___replace_child(val_t p0, val_t p1, val_t p2){
31359 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31360 val_t REGB0;
31361 val_t REGB1;
31362 val_t REGB2;
31363 val_t REGB3;
31364 val_t REGB4;
31365 val_t tmp;
31366 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31367 fra.me.file = LOCATE_parser___parser_prod;
31368 fra.me.line = 5866;
31369 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___replace_child;
31370 fra.me.has_broke = 0;
31371 fra.me.REG_size = 4;
31372 fra.me.REG[0] = NIT_NULL;
31373 fra.me.REG[1] = NIT_NULL;
31374 fra.me.REG[2] = NIT_NULL;
31375 fra.me.REG[3] = NIT_NULL;
31376 fra.me.REG[0] = p0;
31377 fra.me.REG[1] = p1;
31378 fra.me.REG[2] = p2;
31379 /* ./parser//parser_prod.nit:5868 */
31380 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]);
31381 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
31382 if (UNTAG_Bool(REGB0)) {
31383 } else {
31384 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31385 if (UNTAG_Bool(REGB1)) {
31386 REGB1 = TAG_Bool(false);
31387 REGB0 = REGB1;
31388 } else {
31389 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31390 REGB0 = REGB1;
31391 }
31392 }
31393 if (UNTAG_Bool(REGB0)) {
31394 /* ./parser//parser_prod.nit:5869 */
31395 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31396 if (UNTAG_Bool(REGB0)) {
31397 } else {
31398 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31399 if (UNTAG_Bool(REGB1)) {
31400 REGB1 = TAG_Bool(false);
31401 REGB0 = REGB1;
31402 } else {
31403 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31404 REGB0 = REGB1;
31405 }
31406 }
31407 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31408 if (UNTAG_Bool(REGB0)) {
31409 /* ./parser//parser_prod.nit:5870 */
31410 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31411 if (UNTAG_Bool(REGB0)) {
31412 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5870);
31413 }
31414 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31415 /* ./parser//parser_prod.nit:5871 */
31416 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*/;
31417 if (UNTAG_Bool(REGB0)) {
31418 } else {
31419 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5871);
31420 }
31421 /* ./parser//parser_prod.nit:5872 */
31422 ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = fra.me.REG[2];
31423 } else {
31424 /* ./parser//parser_prod.nit:5874 */
31425 ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = NIT_NULL;
31426 }
31427 /* ./parser//parser_prod.nit:5876 */
31428 goto label1;
31429 }
31430 /* ./parser//parser_prod.nit:5878 */
31431 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
31432 if (UNTAG_Bool(REGB0)) {
31433 } else {
31434 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 5878);
31435 }
31436 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]);
31437 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31438 if (UNTAG_Bool(REGB0)) {
31439 } else {
31440 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31441 REGB0 = REGB1;
31442 }
31443 if (UNTAG_Bool(REGB0)) {
31444 /* ./parser//parser_prod.nit:5879 */
31445 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31446 if (UNTAG_Bool(REGB0)) {
31447 } else {
31448 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31449 if (UNTAG_Bool(REGB1)) {
31450 REGB1 = TAG_Bool(false);
31451 REGB0 = REGB1;
31452 } else {
31453 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31454 REGB0 = REGB1;
31455 }
31456 }
31457 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31458 if (UNTAG_Bool(REGB0)) {
31459 /* ./parser//parser_prod.nit:5880 */
31460 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31461 if (UNTAG_Bool(REGB0)) {
31462 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5880);
31463 }
31464 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31465 /* ./parser//parser_prod.nit:5881 */
31466 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*/;
31467 if (UNTAG_Bool(REGB0)) {
31468 } else {
31469 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5881);
31470 }
31471 /* ./parser//parser_prod.nit:5882 */
31472 ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
31473 } else {
31474 /* ./parser//parser_prod.nit:5884 */
31475 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5884);
31476 }
31477 /* ./parser//parser_prod.nit:5886 */
31478 goto label1;
31479 }
31480 /* ./parser//parser_prod.nit:5888 */
31481 REGB0 = TAG_Int(0);
31482 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31483 if (UNTAG_Bool(REGB1)) {
31484 } else {
31485 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5888);
31486 }
31487 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
31488 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
31489 /* ./../lib/standard//kernel.nit:352 */
31490 while(1) {
31491 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
31492 if (UNTAG_Bool(REGB2)) {
31493 } else {
31494 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
31495 }
31496 /* ./../lib/standard//kernel.nit:232 */
31497 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
31498 /* ./../lib/standard//kernel.nit:352 */
31499 if (UNTAG_Bool(REGB2)) {
31500 /* ./parser//parser_prod.nit:5888 */
31501 REGB2 = REGB0;
31502 /* ./parser//parser_prod.nit:5889 */
31503 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31504 if (UNTAG_Bool(REGB3)) {
31505 } else {
31506 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5889);
31507 }
31508 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
31509 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
31510 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
31511 if (UNTAG_Bool(REGB3)) {
31512 } else {
31513 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31514 if (UNTAG_Bool(REGB4)) {
31515 REGB4 = TAG_Bool(false);
31516 REGB3 = REGB4;
31517 } else {
31518 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31519 REGB3 = REGB4;
31520 }
31521 }
31522 if (UNTAG_Bool(REGB3)) {
31523 /* ./parser//parser_prod.nit:5890 */
31524 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31525 if (UNTAG_Bool(REGB3)) {
31526 } else {
31527 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31528 if (UNTAG_Bool(REGB4)) {
31529 REGB4 = TAG_Bool(false);
31530 REGB3 = REGB4;
31531 } else {
31532 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31533 REGB3 = REGB4;
31534 }
31535 }
31536 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
31537 if (UNTAG_Bool(REGB3)) {
31538 /* ./parser//parser_prod.nit:5891 */
31539 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*/;
31540 if (UNTAG_Bool(REGB3)) {
31541 } else {
31542 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5891);
31543 }
31544 /* ./parser//parser_prod.nit:5892 */
31545 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31546 if (UNTAG_Bool(REGB3)) {
31547 } else {
31548 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5892);
31549 }
31550 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
31551 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
31552 /* ./parser//parser_prod.nit:5893 */
31553 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31554 if (UNTAG_Bool(REGB3)) {
31555 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5893);
31556 }
31557 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31558 } else {
31559 /* ./parser//parser_prod.nit:5895 */
31560 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31561 if (UNTAG_Bool(REGB3)) {
31562 } else {
31563 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5895);
31564 }
31565 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
31566 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
31567 }
31568 /* ./parser//parser_prod.nit:5897 */
31569 goto label1;
31570 }
31571 /* ./../lib/standard//kernel.nit:354 */
31572 REGB2 = TAG_Int(1);
31573 /* ./../lib/standard//kernel.nit:235 */
31574 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
31575 /* ./../lib/standard//kernel.nit:354 */
31576 REGB0 = REGB2;
31577 } else {
31578 /* ./../lib/standard//kernel.nit:352 */
31579 goto label2;
31580 }
31581 }
31582 label2: while(0);
31583 label1: while(0);
31584 stack_frame_head = fra.me.prev;
31585 return;
31586 }
31587 void parser___parser_prod___ASuperExpr___visit_all(val_t p0, val_t p1){
31588 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31589 val_t REGB0;
31590 val_t REGB1;
31591 val_t tmp;
31592 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31593 fra.me.file = LOCATE_parser___parser_prod;
31594 fra.me.line = 5902;
31595 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___visit_all;
31596 fra.me.has_broke = 0;
31597 fra.me.REG_size = 4;
31598 fra.me.REG[0] = NIT_NULL;
31599 fra.me.REG[1] = NIT_NULL;
31600 fra.me.REG[2] = NIT_NULL;
31601 fra.me.REG[3] = NIT_NULL;
31602 fra.me.REG[0] = p0;
31603 fra.me.REG[1] = p1;
31604 /* ./parser//parser_prod.nit:5902 */
31605 fra.me.REG[2] = fra.me.REG[0];
31606 /* ./parser//parser_prod.nit:5904 */
31607 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[2]);
31608 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31609 if (UNTAG_Bool(REGB0)) {
31610 } else {
31611 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31612 if (UNTAG_Bool(REGB1)) {
31613 REGB1 = TAG_Bool(false);
31614 REGB0 = REGB1;
31615 } else {
31616 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
31617 REGB0 = REGB1;
31618 }
31619 }
31620 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31621 if (UNTAG_Bool(REGB0)) {
31622 /* ./parser//parser_prod.nit:5905 */
31623 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[2]);
31624 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*/;
31625 if (UNTAG_Bool(REGB0)) {
31626 } else {
31627 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5905);
31628 }
31629 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
31630 }
31631 /* ./parser//parser_prod.nit:5907 */
31632 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[2])!=NIT_NULL);
31633 if (UNTAG_Bool(REGB0)) {
31634 } else {
31635 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 5907);
31636 }
31637 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[2]);
31638 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
31639 /* ./parser//parser_prod.nit:5908 */
31640 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[2])!=NIT_NULL);
31641 if (UNTAG_Bool(REGB0)) {
31642 } else {
31643 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5908);
31644 }
31645 fra.me.REG[2] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[2]);
31646 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));
31647 stack_frame_head = fra.me.prev;
31648 return;
31649 }
31650 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){
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___ASuperExpr___visit_all;
31658 fra.me.has_broke = 0;
31659 fra.me.REG_size = 1;
31660 fra.me.REG[0] = NIT_NULL;
31661 fra.me.closure_ctx = closctx_param;
31662 fra.me.closure_funs = CREG;
31663 fra.me.REG[0] = p0;
31664 CREG[0] = clos_fun0;
31665 /* ./parser//parser_prod.nit:5909 */
31666 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
31667 stack_frame_head = fra.me.prev;
31668 return;
31669 }
31670 void parser___parser_prod___AInitExpr___empty_init(val_t p0, int* init_table){
31671 int itpos197 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitExpr].i;
31672 struct {struct stack_frame_t me;} fra;
31673 val_t tmp;
31674 if (init_table[itpos197]) return;
31675 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31676 fra.me.file = LOCATE_parser___parser_prod;
31677 fra.me.line = 5914;
31678 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___empty_init;
31679 fra.me.has_broke = 0;
31680 fra.me.REG_size = 1;
31681 fra.me.REG[0] = NIT_NULL;
31682 fra.me.REG[0] = p0;
31683 stack_frame_head = fra.me.prev;
31684 init_table[itpos197] = 1;
31685 return;
31686 }
31687 void parser___parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
31688 int itpos198 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitExpr].i;
31689 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
31690 val_t REGB0;
31691 val_t tmp;
31692 if (init_table[itpos198]) return;
31693 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31694 fra.me.file = LOCATE_parser___parser_prod;
31695 fra.me.line = 5916;
31696 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___init_ainitexpr;
31697 fra.me.has_broke = 0;
31698 fra.me.REG_size = 5;
31699 fra.me.REG[0] = NIT_NULL;
31700 fra.me.REG[1] = NIT_NULL;
31701 fra.me.REG[2] = NIT_NULL;
31702 fra.me.REG[3] = NIT_NULL;
31703 fra.me.REG[4] = NIT_NULL;
31704 fra.me.REG[0] = p0;
31705 fra.me.REG[1] = p1;
31706 fra.me.REG[2] = p2;
31707 fra.me.REG[3] = p3;
31708 /* ./parser//parser_prod.nit:5916 */
31709 fra.me.REG[4] = fra.me.REG[0];
31710 /* ./parser//parser_prod.nit:5922 */
31711 CALL_parser___parser_prod___AInitExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
31712 /* ./parser//parser_prod.nit:5923 */
31713 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
31714 if (UNTAG_Bool(REGB0)) {
31715 } else {
31716 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5923);
31717 }
31718 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[4]) = fra.me.REG[1];
31719 /* ./parser//parser_prod.nit:5924 */
31720 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31721 if (UNTAG_Bool(REGB0)) {
31722 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5924);
31723 }
31724 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
31725 /* ./parser//parser_prod.nit:5925 */
31726 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
31727 if (UNTAG_Bool(REGB0)) {
31728 } else {
31729 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5925);
31730 }
31731 ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[4]) = fra.me.REG[2];
31732 /* ./parser//parser_prod.nit:5926 */
31733 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31734 if (UNTAG_Bool(REGB0)) {
31735 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5926);
31736 }
31737 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
31738 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));
31739 stack_frame_head = fra.me.prev;
31740 init_table[itpos198] = 1;
31741 return;
31742 }
31743 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){
31744 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31745 val_t REGB0;
31746 fun_t CREG[1];
31747 val_t tmp;
31748 /* ./parser//parser_prod.nit:5927 */
31749 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31750 fra.me.file = LOCATE_parser___parser_prod;
31751 fra.me.line = 0;
31752 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___init_ainitexpr;
31753 fra.me.has_broke = 0;
31754 fra.me.REG_size = 2;
31755 fra.me.REG[0] = NIT_NULL;
31756 fra.me.REG[1] = NIT_NULL;
31757 fra.me.closure_ctx = closctx_param;
31758 fra.me.closure_funs = CREG;
31759 fra.me.REG[0] = p0;
31760 CREG[0] = clos_fun0;
31761 /* ./parser//parser_prod.nit:5928 */
31762 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31763 if (UNTAG_Bool(REGB0)) {
31764 } else {
31765 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5928);
31766 }
31767 /* ./parser//parser_prod.nit:5929 */
31768 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(closctx->REG[4])!=NIT_NULL);
31769 if (UNTAG_Bool(REGB0)) {
31770 } else {
31771 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5929);
31772 }
31773 fra.me.REG[1] = ATTR_parser___parser_nodes___AInitExpr____n_args(closctx->REG[4]);
31774 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31775 /* ./parser//parser_prod.nit:5930 */
31776 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
31777 stack_frame_head = fra.me.prev;
31778 return;
31779 }
31780 void parser___parser_prod___AInitExpr___replace_child(val_t p0, val_t p1, val_t p2){
31781 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31782 val_t REGB0;
31783 val_t REGB1;
31784 val_t REGB2;
31785 val_t REGB3;
31786 val_t REGB4;
31787 val_t tmp;
31788 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31789 fra.me.file = LOCATE_parser___parser_prod;
31790 fra.me.line = 5934;
31791 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___replace_child;
31792 fra.me.has_broke = 0;
31793 fra.me.REG_size = 4;
31794 fra.me.REG[0] = NIT_NULL;
31795 fra.me.REG[1] = NIT_NULL;
31796 fra.me.REG[2] = NIT_NULL;
31797 fra.me.REG[3] = NIT_NULL;
31798 fra.me.REG[0] = p0;
31799 fra.me.REG[1] = p1;
31800 fra.me.REG[2] = p2;
31801 /* ./parser//parser_prod.nit:5936 */
31802 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31803 if (UNTAG_Bool(REGB0)) {
31804 } else {
31805 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5936);
31806 }
31807 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31808 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31809 if (UNTAG_Bool(REGB0)) {
31810 } else {
31811 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31812 REGB0 = REGB1;
31813 }
31814 if (UNTAG_Bool(REGB0)) {
31815 /* ./parser//parser_prod.nit:5937 */
31816 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31817 if (UNTAG_Bool(REGB0)) {
31818 } else {
31819 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31820 if (UNTAG_Bool(REGB1)) {
31821 REGB1 = TAG_Bool(false);
31822 REGB0 = REGB1;
31823 } else {
31824 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31825 REGB0 = REGB1;
31826 }
31827 }
31828 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31829 if (UNTAG_Bool(REGB0)) {
31830 /* ./parser//parser_prod.nit:5938 */
31831 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31832 if (UNTAG_Bool(REGB0)) {
31833 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5938);
31834 }
31835 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31836 /* ./parser//parser_prod.nit:5939 */
31837 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31838 if (UNTAG_Bool(REGB0)) {
31839 } else {
31840 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5939);
31841 }
31842 /* ./parser//parser_prod.nit:5940 */
31843 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
31844 } else {
31845 /* ./parser//parser_prod.nit:5942 */
31846 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5942);
31847 }
31848 /* ./parser//parser_prod.nit:5944 */
31849 goto label1;
31850 }
31851 /* ./parser//parser_prod.nit:5946 */
31852 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
31853 if (UNTAG_Bool(REGB0)) {
31854 } else {
31855 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 5946);
31856 }
31857 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]);
31858 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31859 if (UNTAG_Bool(REGB0)) {
31860 } else {
31861 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31862 REGB0 = REGB1;
31863 }
31864 if (UNTAG_Bool(REGB0)) {
31865 /* ./parser//parser_prod.nit:5947 */
31866 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31867 if (UNTAG_Bool(REGB0)) {
31868 } else {
31869 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31870 if (UNTAG_Bool(REGB1)) {
31871 REGB1 = TAG_Bool(false);
31872 REGB0 = REGB1;
31873 } else {
31874 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31875 REGB0 = REGB1;
31876 }
31877 }
31878 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31879 if (UNTAG_Bool(REGB0)) {
31880 /* ./parser//parser_prod.nit:5948 */
31881 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31882 if (UNTAG_Bool(REGB0)) {
31883 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5948);
31884 }
31885 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31886 /* ./parser//parser_prod.nit:5949 */
31887 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*/;
31888 if (UNTAG_Bool(REGB0)) {
31889 } else {
31890 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5949);
31891 }
31892 /* ./parser//parser_prod.nit:5950 */
31893 ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]) = fra.me.REG[2];
31894 } else {
31895 /* ./parser//parser_prod.nit:5952 */
31896 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5952);
31897 }
31898 /* ./parser//parser_prod.nit:5954 */
31899 goto label1;
31900 }
31901 /* ./parser//parser_prod.nit:5956 */
31902 REGB0 = TAG_Int(0);
31903 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31904 if (UNTAG_Bool(REGB1)) {
31905 } else {
31906 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5956);
31907 }
31908 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
31909 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
31910 /* ./../lib/standard//kernel.nit:352 */
31911 while(1) {
31912 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
31913 if (UNTAG_Bool(REGB2)) {
31914 } else {
31915 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
31916 }
31917 /* ./../lib/standard//kernel.nit:232 */
31918 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
31919 /* ./../lib/standard//kernel.nit:352 */
31920 if (UNTAG_Bool(REGB2)) {
31921 /* ./parser//parser_prod.nit:5956 */
31922 REGB2 = REGB0;
31923 /* ./parser//parser_prod.nit:5957 */
31924 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31925 if (UNTAG_Bool(REGB3)) {
31926 } else {
31927 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5957);
31928 }
31929 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
31930 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
31931 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
31932 if (UNTAG_Bool(REGB3)) {
31933 } else {
31934 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31935 if (UNTAG_Bool(REGB4)) {
31936 REGB4 = TAG_Bool(false);
31937 REGB3 = REGB4;
31938 } else {
31939 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31940 REGB3 = REGB4;
31941 }
31942 }
31943 if (UNTAG_Bool(REGB3)) {
31944 /* ./parser//parser_prod.nit:5958 */
31945 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31946 if (UNTAG_Bool(REGB3)) {
31947 } else {
31948 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31949 if (UNTAG_Bool(REGB4)) {
31950 REGB4 = TAG_Bool(false);
31951 REGB3 = REGB4;
31952 } else {
31953 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31954 REGB3 = REGB4;
31955 }
31956 }
31957 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
31958 if (UNTAG_Bool(REGB3)) {
31959 /* ./parser//parser_prod.nit:5959 */
31960 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*/;
31961 if (UNTAG_Bool(REGB3)) {
31962 } else {
31963 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5959);
31964 }
31965 /* ./parser//parser_prod.nit:5960 */
31966 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31967 if (UNTAG_Bool(REGB3)) {
31968 } else {
31969 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5960);
31970 }
31971 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
31972 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
31973 /* ./parser//parser_prod.nit:5961 */
31974 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31975 if (UNTAG_Bool(REGB3)) {
31976 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5961);
31977 }
31978 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31979 } else {
31980 /* ./parser//parser_prod.nit:5963 */
31981 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31982 if (UNTAG_Bool(REGB3)) {
31983 } else {
31984 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5963);
31985 }
31986 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
31987 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
31988 }
31989 /* ./parser//parser_prod.nit:5965 */
31990 goto label1;
31991 }
31992 /* ./../lib/standard//kernel.nit:354 */
31993 REGB2 = TAG_Int(1);
31994 /* ./../lib/standard//kernel.nit:235 */
31995 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
31996 /* ./../lib/standard//kernel.nit:354 */
31997 REGB0 = REGB2;
31998 } else {
31999 /* ./../lib/standard//kernel.nit:352 */
32000 goto label2;
32001 }
32002 }
32003 label2: while(0);
32004 label1: while(0);
32005 stack_frame_head = fra.me.prev;
32006 return;
32007 }
32008 void parser___parser_prod___AInitExpr___visit_all(val_t p0, val_t p1){
32009 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
32010 val_t REGB0;
32011 val_t tmp;
32012 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32013 fra.me.file = LOCATE_parser___parser_prod;
32014 fra.me.line = 5970;
32015 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___visit_all;
32016 fra.me.has_broke = 0;
32017 fra.me.REG_size = 3;
32018 fra.me.REG[0] = NIT_NULL;
32019 fra.me.REG[1] = NIT_NULL;
32020 fra.me.REG[2] = NIT_NULL;
32021 fra.me.REG[0] = p0;
32022 fra.me.REG[1] = p1;
32023 /* ./parser//parser_prod.nit:5972 */
32024 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32025 if (UNTAG_Bool(REGB0)) {
32026 } else {
32027 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5972);
32028 }
32029 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32030 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32031 /* ./parser//parser_prod.nit:5973 */
32032 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
32033 if (UNTAG_Bool(REGB0)) {
32034 } else {
32035 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 5973);
32036 }
32037 fra.me.REG[2] = ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]);
32038 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32039 /* ./parser//parser_prod.nit:5974 */
32040 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32041 if (UNTAG_Bool(REGB0)) {
32042 } else {
32043 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5974);
32044 }
32045 fra.me.REG[0] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
32046 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));
32047 stack_frame_head = fra.me.prev;
32048 return;
32049 }
32050 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){
32051 struct {struct stack_frame_t me;} fra;
32052 fun_t CREG[1];
32053 val_t tmp;
32054 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32055 fra.me.file = LOCATE_parser___parser_prod;
32056 fra.me.line = 0;
32057 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___visit_all;
32058 fra.me.has_broke = 0;
32059 fra.me.REG_size = 1;
32060 fra.me.REG[0] = NIT_NULL;
32061 fra.me.closure_ctx = closctx_param;
32062 fra.me.closure_funs = CREG;
32063 fra.me.REG[0] = p0;
32064 CREG[0] = clos_fun0;
32065 /* ./parser//parser_prod.nit:5975 */
32066 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
32067 stack_frame_head = fra.me.prev;
32068 return;
32069 }
32070 void parser___parser_prod___ABraExpr___empty_init(val_t p0, int* init_table){
32071 int itpos199 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExpr].i;
32072 struct {struct stack_frame_t me;} fra;
32073 val_t tmp;
32074 if (init_table[itpos199]) return;
32075 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32076 fra.me.file = LOCATE_parser___parser_prod;
32077 fra.me.line = 5980;
32078 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___empty_init;
32079 fra.me.has_broke = 0;
32080 fra.me.REG_size = 1;
32081 fra.me.REG[0] = NIT_NULL;
32082 fra.me.REG[0] = p0;
32083 stack_frame_head = fra.me.prev;
32084 init_table[itpos199] = 1;
32085 return;
32086 }
32087 void parser___parser_prod___ABraExpr___init_abraexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
32088 int itpos200 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExpr].i;
32089 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32090 val_t REGB0;
32091 val_t tmp;
32092 if (init_table[itpos200]) return;
32093 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32094 fra.me.file = LOCATE_parser___parser_prod;
32095 fra.me.line = 5982;
32096 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___init_abraexpr;
32097 fra.me.has_broke = 0;
32098 fra.me.REG_size = 5;
32099 fra.me.REG[0] = NIT_NULL;
32100 fra.me.REG[1] = NIT_NULL;
32101 fra.me.REG[2] = NIT_NULL;
32102 fra.me.REG[3] = NIT_NULL;
32103 fra.me.REG[4] = NIT_NULL;
32104 fra.me.REG[0] = p0;
32105 fra.me.REG[1] = p1;
32106 fra.me.REG[2] = p2;
32107 fra.me.REG[3] = p3;
32108 /* ./parser//parser_prod.nit:5982 */
32109 fra.me.REG[4] = fra.me.REG[0];
32110 /* ./parser//parser_prod.nit:5988 */
32111 CALL_parser___parser_prod___ABraExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
32112 /* ./parser//parser_prod.nit:5989 */
32113 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32114 if (UNTAG_Bool(REGB0)) {
32115 } else {
32116 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5989);
32117 }
32118 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[4]) = fra.me.REG[1];
32119 /* ./parser//parser_prod.nit:5990 */
32120 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32121 if (UNTAG_Bool(REGB0)) {
32122 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5990);
32123 }
32124 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
32125 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));
32126 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));
32127 stack_frame_head = fra.me.prev;
32128 init_table[itpos200] = 1;
32129 return;
32130 }
32131 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){
32132 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32133 val_t REGB0;
32134 fun_t CREG[1];
32135 val_t tmp;
32136 /* ./parser//parser_prod.nit:5991 */
32137 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32138 fra.me.file = LOCATE_parser___parser_prod;
32139 fra.me.line = 0;
32140 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___init_abraexpr;
32141 fra.me.has_broke = 0;
32142 fra.me.REG_size = 2;
32143 fra.me.REG[0] = NIT_NULL;
32144 fra.me.REG[1] = NIT_NULL;
32145 fra.me.closure_ctx = closctx_param;
32146 fra.me.closure_funs = CREG;
32147 fra.me.REG[0] = p0;
32148 CREG[0] = clos_fun0;
32149 /* ./parser//parser_prod.nit:5992 */
32150 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
32151 if (UNTAG_Bool(REGB0)) {
32152 } else {
32153 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5992);
32154 }
32155 /* ./parser//parser_prod.nit:5993 */
32156 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[4])!=NIT_NULL);
32157 if (UNTAG_Bool(REGB0)) {
32158 } else {
32159 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5993);
32160 }
32161 fra.me.REG[1] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[4]);
32162 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32163 /* ./parser//parser_prod.nit:5994 */
32164 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
32165 stack_frame_head = fra.me.prev;
32166 return;
32167 }
32168 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){
32169 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32170 val_t REGB0;
32171 fun_t CREG[1];
32172 val_t tmp;
32173 /* ./parser//parser_prod.nit:5996 */
32174 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32175 fra.me.file = LOCATE_parser___parser_prod;
32176 fra.me.line = 0;
32177 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___init_abraexpr;
32178 fra.me.has_broke = 0;
32179 fra.me.REG_size = 2;
32180 fra.me.REG[0] = NIT_NULL;
32181 fra.me.REG[1] = NIT_NULL;
32182 fra.me.closure_ctx = closctx_param;
32183 fra.me.closure_funs = CREG;
32184 fra.me.REG[0] = p0;
32185 CREG[0] = clos_fun0;
32186 /* ./parser//parser_prod.nit:5997 */
32187 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
32188 if (UNTAG_Bool(REGB0)) {
32189 } else {
32190 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5997);
32191 }
32192 /* ./parser//parser_prod.nit:5998 */
32193 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[4])!=NIT_NULL);
32194 if (UNTAG_Bool(REGB0)) {
32195 } else {
32196 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5998);
32197 }
32198 fra.me.REG[1] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[4]);
32199 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32200 /* ./parser//parser_prod.nit:5999 */
32201 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
32202 stack_frame_head = fra.me.prev;
32203 return;
32204 }
32205 void parser___parser_prod___ABraExpr___replace_child(val_t p0, val_t p1, val_t p2){
32206 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32207 val_t REGB0;
32208 val_t REGB1;
32209 val_t REGB2;
32210 val_t REGB3;
32211 val_t REGB4;
32212 val_t tmp;
32213 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32214 fra.me.file = LOCATE_parser___parser_prod;
32215 fra.me.line = 6003;
32216 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___replace_child;
32217 fra.me.has_broke = 0;
32218 fra.me.REG_size = 4;
32219 fra.me.REG[0] = NIT_NULL;
32220 fra.me.REG[1] = NIT_NULL;
32221 fra.me.REG[2] = NIT_NULL;
32222 fra.me.REG[3] = NIT_NULL;
32223 fra.me.REG[0] = p0;
32224 fra.me.REG[1] = p1;
32225 fra.me.REG[2] = p2;
32226 /* ./parser//parser_prod.nit:6005 */
32227 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32228 if (UNTAG_Bool(REGB0)) {
32229 } else {
32230 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6005);
32231 }
32232 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32233 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32234 if (UNTAG_Bool(REGB0)) {
32235 } else {
32236 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32237 REGB0 = REGB1;
32238 }
32239 if (UNTAG_Bool(REGB0)) {
32240 /* ./parser//parser_prod.nit:6006 */
32241 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32242 if (UNTAG_Bool(REGB0)) {
32243 } else {
32244 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32245 if (UNTAG_Bool(REGB1)) {
32246 REGB1 = TAG_Bool(false);
32247 REGB0 = REGB1;
32248 } else {
32249 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32250 REGB0 = REGB1;
32251 }
32252 }
32253 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32254 if (UNTAG_Bool(REGB0)) {
32255 /* ./parser//parser_prod.nit:6007 */
32256 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32257 if (UNTAG_Bool(REGB0)) {
32258 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6007);
32259 }
32260 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32261 /* ./parser//parser_prod.nit:6008 */
32262 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
32263 if (UNTAG_Bool(REGB0)) {
32264 } else {
32265 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6008);
32266 }
32267 /* ./parser//parser_prod.nit:6009 */
32268 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
32269 } else {
32270 /* ./parser//parser_prod.nit:6011 */
32271 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6011);
32272 }
32273 /* ./parser//parser_prod.nit:6013 */
32274 goto label1;
32275 }
32276 /* ./parser//parser_prod.nit:6015 */
32277 REGB0 = TAG_Int(0);
32278 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32279 if (UNTAG_Bool(REGB1)) {
32280 } else {
32281 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6015);
32282 }
32283 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32284 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
32285 /* ./../lib/standard//kernel.nit:352 */
32286 while(1) {
32287 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
32288 if (UNTAG_Bool(REGB2)) {
32289 } else {
32290 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
32291 }
32292 /* ./../lib/standard//kernel.nit:232 */
32293 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
32294 /* ./../lib/standard//kernel.nit:352 */
32295 if (UNTAG_Bool(REGB2)) {
32296 /* ./parser//parser_prod.nit:6015 */
32297 REGB2 = REGB0;
32298 /* ./parser//parser_prod.nit:6016 */
32299 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32300 if (UNTAG_Bool(REGB3)) {
32301 } else {
32302 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6016);
32303 }
32304 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32305 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
32306 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
32307 if (UNTAG_Bool(REGB3)) {
32308 } else {
32309 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32310 if (UNTAG_Bool(REGB4)) {
32311 REGB4 = TAG_Bool(false);
32312 REGB3 = REGB4;
32313 } else {
32314 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32315 REGB3 = REGB4;
32316 }
32317 }
32318 if (UNTAG_Bool(REGB3)) {
32319 /* ./parser//parser_prod.nit:6017 */
32320 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32321 if (UNTAG_Bool(REGB3)) {
32322 } else {
32323 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32324 if (UNTAG_Bool(REGB4)) {
32325 REGB4 = TAG_Bool(false);
32326 REGB3 = REGB4;
32327 } else {
32328 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32329 REGB3 = REGB4;
32330 }
32331 }
32332 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
32333 if (UNTAG_Bool(REGB3)) {
32334 /* ./parser//parser_prod.nit:6018 */
32335 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*/;
32336 if (UNTAG_Bool(REGB3)) {
32337 } else {
32338 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6018);
32339 }
32340 /* ./parser//parser_prod.nit:6019 */
32341 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32342 if (UNTAG_Bool(REGB3)) {
32343 } else {
32344 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6019);
32345 }
32346 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32347 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
32348 /* ./parser//parser_prod.nit:6020 */
32349 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32350 if (UNTAG_Bool(REGB3)) {
32351 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6020);
32352 }
32353 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32354 } else {
32355 /* ./parser//parser_prod.nit:6022 */
32356 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32357 if (UNTAG_Bool(REGB3)) {
32358 } else {
32359 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6022);
32360 }
32361 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32362 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
32363 }
32364 /* ./parser//parser_prod.nit:6024 */
32365 goto label1;
32366 }
32367 /* ./../lib/standard//kernel.nit:354 */
32368 REGB2 = TAG_Int(1);
32369 /* ./../lib/standard//kernel.nit:235 */
32370 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
32371 /* ./../lib/standard//kernel.nit:354 */
32372 REGB0 = REGB2;
32373 } else {
32374 /* ./../lib/standard//kernel.nit:352 */
32375 goto label2;
32376 }
32377 }
32378 label2: while(0);
32379 /* ./parser//parser_prod.nit:6027 */
32380 REGB0 = TAG_Int(0);
32381 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32382 if (UNTAG_Bool(REGB1)) {
32383 } else {
32384 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6027);
32385 }
32386 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
32387 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
32388 /* ./../lib/standard//kernel.nit:352 */
32389 while(1) {
32390 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
32391 if (UNTAG_Bool(REGB2)) {
32392 } else {
32393 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
32394 }
32395 /* ./../lib/standard//kernel.nit:232 */
32396 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
32397 /* ./../lib/standard//kernel.nit:352 */
32398 if (UNTAG_Bool(REGB2)) {
32399 /* ./parser//parser_prod.nit:6027 */
32400 REGB2 = REGB0;
32401 /* ./parser//parser_prod.nit:6028 */
32402 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32403 if (UNTAG_Bool(REGB3)) {
32404 } else {
32405 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6028);
32406 }
32407 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
32408 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
32409 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
32410 if (UNTAG_Bool(REGB3)) {
32411 } else {
32412 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32413 if (UNTAG_Bool(REGB4)) {
32414 REGB4 = TAG_Bool(false);
32415 REGB3 = REGB4;
32416 } else {
32417 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32418 REGB3 = REGB4;
32419 }
32420 }
32421 if (UNTAG_Bool(REGB3)) {
32422 /* ./parser//parser_prod.nit:6029 */
32423 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32424 if (UNTAG_Bool(REGB3)) {
32425 } else {
32426 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32427 if (UNTAG_Bool(REGB4)) {
32428 REGB4 = TAG_Bool(false);
32429 REGB3 = REGB4;
32430 } else {
32431 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32432 REGB3 = REGB4;
32433 }
32434 }
32435 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
32436 if (UNTAG_Bool(REGB3)) {
32437 /* ./parser//parser_prod.nit:6030 */
32438 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*/;
32439 if (UNTAG_Bool(REGB3)) {
32440 } else {
32441 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6030);
32442 }
32443 /* ./parser//parser_prod.nit:6031 */
32444 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32445 if (UNTAG_Bool(REGB3)) {
32446 } else {
32447 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6031);
32448 }
32449 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
32450 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
32451 /* ./parser//parser_prod.nit:6032 */
32452 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32453 if (UNTAG_Bool(REGB3)) {
32454 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6032);
32455 }
32456 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32457 } else {
32458 /* ./parser//parser_prod.nit:6034 */
32459 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32460 if (UNTAG_Bool(REGB3)) {
32461 } else {
32462 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6034);
32463 }
32464 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
32465 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
32466 }
32467 /* ./parser//parser_prod.nit:6036 */
32468 goto label1;
32469 }
32470 /* ./../lib/standard//kernel.nit:354 */
32471 REGB2 = TAG_Int(1);
32472 /* ./../lib/standard//kernel.nit:235 */
32473 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
32474 /* ./../lib/standard//kernel.nit:354 */
32475 REGB0 = REGB2;
32476 } else {
32477 /* ./../lib/standard//kernel.nit:352 */
32478 goto label3;
32479 }
32480 }
32481 label3: while(0);
32482 label1: while(0);
32483 stack_frame_head = fra.me.prev;
32484 return;
32485 }
32486 void parser___parser_prod___ABraExpr___visit_all(val_t p0, val_t p1){
32487 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
32488 val_t REGB0;
32489 val_t tmp;
32490 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32491 fra.me.file = LOCATE_parser___parser_prod;
32492 fra.me.line = 6041;
32493 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___visit_all;
32494 fra.me.has_broke = 0;
32495 fra.me.REG_size = 3;
32496 fra.me.REG[0] = NIT_NULL;
32497 fra.me.REG[1] = NIT_NULL;
32498 fra.me.REG[2] = NIT_NULL;
32499 fra.me.REG[0] = p0;
32500 fra.me.REG[1] = p1;
32501 /* ./parser//parser_prod.nit:6043 */
32502 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32503 if (UNTAG_Bool(REGB0)) {
32504 } else {
32505 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6043);
32506 }
32507 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32508 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32509 /* ./parser//parser_prod.nit:6044 */
32510 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32511 if (UNTAG_Bool(REGB0)) {
32512 } else {
32513 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6044);
32514 }
32515 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32516 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));
32517 /* ./parser//parser_prod.nit:6047 */
32518 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32519 if (UNTAG_Bool(REGB0)) {
32520 } else {
32521 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6047);
32522 }
32523 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
32524 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));
32525 stack_frame_head = fra.me.prev;
32526 return;
32527 }
32528 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){
32529 struct {struct stack_frame_t me;} fra;
32530 fun_t CREG[1];
32531 val_t tmp;
32532 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32533 fra.me.file = LOCATE_parser___parser_prod;
32534 fra.me.line = 0;
32535 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___visit_all;
32536 fra.me.has_broke = 0;
32537 fra.me.REG_size = 1;
32538 fra.me.REG[0] = NIT_NULL;
32539 fra.me.closure_ctx = closctx_param;
32540 fra.me.closure_funs = CREG;
32541 fra.me.REG[0] = p0;
32542 CREG[0] = clos_fun0;
32543 /* ./parser//parser_prod.nit:6045 */
32544 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
32545 stack_frame_head = fra.me.prev;
32546 return;
32547 }
32548 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){
32549 struct {struct stack_frame_t me;} fra;
32550 fun_t CREG[1];
32551 val_t tmp;
32552 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32553 fra.me.file = LOCATE_parser___parser_prod;
32554 fra.me.line = 0;
32555 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___visit_all;
32556 fra.me.has_broke = 0;
32557 fra.me.REG_size = 1;
32558 fra.me.REG[0] = NIT_NULL;
32559 fra.me.closure_ctx = closctx_param;
32560 fra.me.closure_funs = CREG;
32561 fra.me.REG[0] = p0;
32562 CREG[0] = clos_fun0;
32563 /* ./parser//parser_prod.nit:6048 */
32564 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
32565 stack_frame_head = fra.me.prev;
32566 return;
32567 }
32568 void parser___parser_prod___ABraAssignExpr___empty_init(val_t p0, int* init_table){
32569 int itpos201 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraAssignExpr].i;
32570 struct {struct stack_frame_t me;} fra;
32571 val_t tmp;
32572 if (init_table[itpos201]) return;
32573 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32574 fra.me.file = LOCATE_parser___parser_prod;
32575 fra.me.line = 6053;
32576 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___empty_init;
32577 fra.me.has_broke = 0;
32578 fra.me.REG_size = 1;
32579 fra.me.REG[0] = NIT_NULL;
32580 fra.me.REG[0] = p0;
32581 stack_frame_head = fra.me.prev;
32582 init_table[itpos201] = 1;
32583 return;
32584 }
32585 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){
32586 int itpos202 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraAssignExpr].i;
32587 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
32588 val_t REGB0;
32589 val_t tmp;
32590 if (init_table[itpos202]) return;
32591 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32592 fra.me.file = LOCATE_parser___parser_prod;
32593 fra.me.line = 6055;
32594 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___init_abraassignexpr;
32595 fra.me.has_broke = 0;
32596 fra.me.REG_size = 6;
32597 fra.me.REG[0] = NIT_NULL;
32598 fra.me.REG[1] = NIT_NULL;
32599 fra.me.REG[2] = NIT_NULL;
32600 fra.me.REG[3] = NIT_NULL;
32601 fra.me.REG[4] = NIT_NULL;
32602 fra.me.REG[5] = NIT_NULL;
32603 fra.me.REG[0] = p0;
32604 fra.me.REG[1] = p1;
32605 fra.me.REG[2] = p2;
32606 fra.me.REG[3] = p3;
32607 fra.me.REG[4] = p4;
32608 /* ./parser//parser_prod.nit:6055 */
32609 fra.me.REG[5] = fra.me.REG[0];
32610 /* ./parser//parser_prod.nit:6062 */
32611 CALL_parser___parser_prod___ABraAssignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
32612 /* ./parser//parser_prod.nit:6063 */
32613 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32614 if (UNTAG_Bool(REGB0)) {
32615 } else {
32616 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6063);
32617 }
32618 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
32619 /* ./parser//parser_prod.nit:6064 */
32620 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32621 if (UNTAG_Bool(REGB0)) {
32622 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6064);
32623 }
32624 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
32625 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));
32626 /* ./parser//parser_prod.nit:6070 */
32627 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
32628 if (UNTAG_Bool(REGB0)) {
32629 } else {
32630 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6070);
32631 }
32632 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[5]) = fra.me.REG[3];
32633 /* ./parser//parser_prod.nit:6071 */
32634 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32635 if (UNTAG_Bool(REGB0)) {
32636 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6071);
32637 }
32638 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
32639 /* ./parser//parser_prod.nit:6072 */
32640 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
32641 if (UNTAG_Bool(REGB0)) {
32642 } else {
32643 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6072);
32644 }
32645 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
32646 /* ./parser//parser_prod.nit:6073 */
32647 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
32648 if (UNTAG_Bool(REGB0)) {
32649 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6073);
32650 }
32651 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
32652 stack_frame_head = fra.me.prev;
32653 init_table[itpos202] = 1;
32654 return;
32655 }
32656 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){
32657 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32658 val_t REGB0;
32659 fun_t CREG[1];
32660 val_t tmp;
32661 /* ./parser//parser_prod.nit:6065 */
32662 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32663 fra.me.file = LOCATE_parser___parser_prod;
32664 fra.me.line = 0;
32665 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___init_abraassignexpr;
32666 fra.me.has_broke = 0;
32667 fra.me.REG_size = 2;
32668 fra.me.REG[0] = NIT_NULL;
32669 fra.me.REG[1] = NIT_NULL;
32670 fra.me.closure_ctx = closctx_param;
32671 fra.me.closure_funs = CREG;
32672 fra.me.REG[0] = p0;
32673 CREG[0] = clos_fun0;
32674 /* ./parser//parser_prod.nit:6066 */
32675 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
32676 if (UNTAG_Bool(REGB0)) {
32677 } else {
32678 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6066);
32679 }
32680 /* ./parser//parser_prod.nit:6067 */
32681 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[5])!=NIT_NULL);
32682 if (UNTAG_Bool(REGB0)) {
32683 } else {
32684 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6067);
32685 }
32686 fra.me.REG[1] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[5]);
32687 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32688 /* ./parser//parser_prod.nit:6068 */
32689 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
32690 stack_frame_head = fra.me.prev;
32691 return;
32692 }
32693 void parser___parser_prod___ABraAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
32694 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32695 val_t REGB0;
32696 val_t REGB1;
32697 val_t REGB2;
32698 val_t REGB3;
32699 val_t REGB4;
32700 val_t tmp;
32701 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32702 fra.me.file = LOCATE_parser___parser_prod;
32703 fra.me.line = 6076;
32704 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___replace_child;
32705 fra.me.has_broke = 0;
32706 fra.me.REG_size = 4;
32707 fra.me.REG[0] = NIT_NULL;
32708 fra.me.REG[1] = NIT_NULL;
32709 fra.me.REG[2] = NIT_NULL;
32710 fra.me.REG[3] = NIT_NULL;
32711 fra.me.REG[0] = p0;
32712 fra.me.REG[1] = p1;
32713 fra.me.REG[2] = p2;
32714 /* ./parser//parser_prod.nit:6078 */
32715 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32716 if (UNTAG_Bool(REGB0)) {
32717 } else {
32718 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6078);
32719 }
32720 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32721 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32722 if (UNTAG_Bool(REGB0)) {
32723 } else {
32724 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32725 REGB0 = REGB1;
32726 }
32727 if (UNTAG_Bool(REGB0)) {
32728 /* ./parser//parser_prod.nit:6079 */
32729 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32730 if (UNTAG_Bool(REGB0)) {
32731 } else {
32732 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32733 if (UNTAG_Bool(REGB1)) {
32734 REGB1 = TAG_Bool(false);
32735 REGB0 = REGB1;
32736 } else {
32737 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32738 REGB0 = REGB1;
32739 }
32740 }
32741 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32742 if (UNTAG_Bool(REGB0)) {
32743 /* ./parser//parser_prod.nit:6080 */
32744 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32745 if (UNTAG_Bool(REGB0)) {
32746 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6080);
32747 }
32748 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32749 /* ./parser//parser_prod.nit:6081 */
32750 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
32751 if (UNTAG_Bool(REGB0)) {
32752 } else {
32753 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6081);
32754 }
32755 /* ./parser//parser_prod.nit:6082 */
32756 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
32757 } else {
32758 /* ./parser//parser_prod.nit:6084 */
32759 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6084);
32760 }
32761 /* ./parser//parser_prod.nit:6086 */
32762 goto label1;
32763 }
32764 /* ./parser//parser_prod.nit:6088 */
32765 REGB0 = TAG_Int(0);
32766 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32767 if (UNTAG_Bool(REGB1)) {
32768 } else {
32769 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6088);
32770 }
32771 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32772 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
32773 /* ./../lib/standard//kernel.nit:352 */
32774 while(1) {
32775 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
32776 if (UNTAG_Bool(REGB2)) {
32777 } else {
32778 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
32779 }
32780 /* ./../lib/standard//kernel.nit:232 */
32781 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
32782 /* ./../lib/standard//kernel.nit:352 */
32783 if (UNTAG_Bool(REGB2)) {
32784 /* ./parser//parser_prod.nit:6088 */
32785 REGB2 = REGB0;
32786 /* ./parser//parser_prod.nit:6089 */
32787 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32788 if (UNTAG_Bool(REGB3)) {
32789 } else {
32790 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6089);
32791 }
32792 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32793 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
32794 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
32795 if (UNTAG_Bool(REGB3)) {
32796 } else {
32797 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32798 if (UNTAG_Bool(REGB4)) {
32799 REGB4 = TAG_Bool(false);
32800 REGB3 = REGB4;
32801 } else {
32802 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32803 REGB3 = REGB4;
32804 }
32805 }
32806 if (UNTAG_Bool(REGB3)) {
32807 /* ./parser//parser_prod.nit:6090 */
32808 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32809 if (UNTAG_Bool(REGB3)) {
32810 } else {
32811 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32812 if (UNTAG_Bool(REGB4)) {
32813 REGB4 = TAG_Bool(false);
32814 REGB3 = REGB4;
32815 } else {
32816 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32817 REGB3 = REGB4;
32818 }
32819 }
32820 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
32821 if (UNTAG_Bool(REGB3)) {
32822 /* ./parser//parser_prod.nit:6091 */
32823 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*/;
32824 if (UNTAG_Bool(REGB3)) {
32825 } else {
32826 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6091);
32827 }
32828 /* ./parser//parser_prod.nit:6092 */
32829 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32830 if (UNTAG_Bool(REGB3)) {
32831 } else {
32832 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6092);
32833 }
32834 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32835 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
32836 /* ./parser//parser_prod.nit:6093 */
32837 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32838 if (UNTAG_Bool(REGB3)) {
32839 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6093);
32840 }
32841 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32842 } else {
32843 /* ./parser//parser_prod.nit:6095 */
32844 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32845 if (UNTAG_Bool(REGB3)) {
32846 } else {
32847 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6095);
32848 }
32849 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32850 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
32851 }
32852 /* ./parser//parser_prod.nit:6097 */
32853 goto label1;
32854 }
32855 /* ./../lib/standard//kernel.nit:354 */
32856 REGB2 = TAG_Int(1);
32857 /* ./../lib/standard//kernel.nit:235 */
32858 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
32859 /* ./../lib/standard//kernel.nit:354 */
32860 REGB0 = REGB2;
32861 } else {
32862 /* ./../lib/standard//kernel.nit:352 */
32863 goto label2;
32864 }
32865 }
32866 label2: while(0);
32867 /* ./parser//parser_prod.nit:6100 */
32868 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
32869 if (UNTAG_Bool(REGB0)) {
32870 } else {
32871 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6100);
32872 }
32873 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
32874 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32875 if (UNTAG_Bool(REGB0)) {
32876 } else {
32877 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32878 REGB0 = REGB1;
32879 }
32880 if (UNTAG_Bool(REGB0)) {
32881 /* ./parser//parser_prod.nit:6101 */
32882 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32883 if (UNTAG_Bool(REGB0)) {
32884 } else {
32885 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32886 if (UNTAG_Bool(REGB1)) {
32887 REGB1 = TAG_Bool(false);
32888 REGB0 = REGB1;
32889 } else {
32890 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32891 REGB0 = REGB1;
32892 }
32893 }
32894 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32895 if (UNTAG_Bool(REGB0)) {
32896 /* ./parser//parser_prod.nit:6102 */
32897 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32898 if (UNTAG_Bool(REGB0)) {
32899 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6102);
32900 }
32901 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32902 /* ./parser//parser_prod.nit:6103 */
32903 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*/;
32904 if (UNTAG_Bool(REGB0)) {
32905 } else {
32906 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6103);
32907 }
32908 /* ./parser//parser_prod.nit:6104 */
32909 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
32910 } else {
32911 /* ./parser//parser_prod.nit:6106 */
32912 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6106);
32913 }
32914 /* ./parser//parser_prod.nit:6108 */
32915 goto label1;
32916 }
32917 /* ./parser//parser_prod.nit:6110 */
32918 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
32919 if (UNTAG_Bool(REGB0)) {
32920 } else {
32921 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6110);
32922 }
32923 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
32924 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32925 if (UNTAG_Bool(REGB0)) {
32926 } else {
32927 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32928 REGB0 = REGB1;
32929 }
32930 if (UNTAG_Bool(REGB0)) {
32931 /* ./parser//parser_prod.nit:6111 */
32932 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32933 if (UNTAG_Bool(REGB0)) {
32934 } else {
32935 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32936 if (UNTAG_Bool(REGB1)) {
32937 REGB1 = TAG_Bool(false);
32938 REGB0 = REGB1;
32939 } else {
32940 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32941 REGB0 = REGB1;
32942 }
32943 }
32944 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32945 if (UNTAG_Bool(REGB0)) {
32946 /* ./parser//parser_prod.nit:6112 */
32947 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32948 if (UNTAG_Bool(REGB0)) {
32949 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6112);
32950 }
32951 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32952 /* ./parser//parser_prod.nit:6113 */
32953 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
32954 if (UNTAG_Bool(REGB0)) {
32955 } else {
32956 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6113);
32957 }
32958 /* ./parser//parser_prod.nit:6114 */
32959 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
32960 } else {
32961 /* ./parser//parser_prod.nit:6116 */
32962 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6116);
32963 }
32964 /* ./parser//parser_prod.nit:6118 */
32965 goto label1;
32966 }
32967 label1: while(0);
32968 stack_frame_head = fra.me.prev;
32969 return;
32970 }
32971 void parser___parser_prod___ABraAssignExpr___visit_all(val_t p0, val_t p1){
32972 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
32973 val_t REGB0;
32974 val_t tmp;
32975 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32976 fra.me.file = LOCATE_parser___parser_prod;
32977 fra.me.line = 6122;
32978 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___visit_all;
32979 fra.me.has_broke = 0;
32980 fra.me.REG_size = 3;
32981 fra.me.REG[0] = NIT_NULL;
32982 fra.me.REG[1] = NIT_NULL;
32983 fra.me.REG[2] = NIT_NULL;
32984 fra.me.REG[0] = p0;
32985 fra.me.REG[1] = p1;
32986 /* ./parser//parser_prod.nit:6124 */
32987 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32988 if (UNTAG_Bool(REGB0)) {
32989 } else {
32990 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6124);
32991 }
32992 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32993 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32994 /* ./parser//parser_prod.nit:6125 */
32995 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32996 if (UNTAG_Bool(REGB0)) {
32997 } else {
32998 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6125);
32999 }
33000 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33001 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));
33002 /* ./parser//parser_prod.nit:6128 */
33003 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
33004 if (UNTAG_Bool(REGB0)) {
33005 } else {
33006 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6128);
33007 }
33008 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
33009 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33010 /* ./parser//parser_prod.nit:6129 */
33011 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33012 if (UNTAG_Bool(REGB0)) {
33013 } else {
33014 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6129);
33015 }
33016 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
33017 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33018 stack_frame_head = fra.me.prev;
33019 return;
33020 }
33021 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){
33022 struct {struct stack_frame_t me;} fra;
33023 fun_t CREG[1];
33024 val_t tmp;
33025 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33026 fra.me.file = LOCATE_parser___parser_prod;
33027 fra.me.line = 0;
33028 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___visit_all;
33029 fra.me.has_broke = 0;
33030 fra.me.REG_size = 1;
33031 fra.me.REG[0] = NIT_NULL;
33032 fra.me.closure_ctx = closctx_param;
33033 fra.me.closure_funs = CREG;
33034 fra.me.REG[0] = p0;
33035 CREG[0] = clos_fun0;
33036 /* ./parser//parser_prod.nit:6126 */
33037 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
33038 stack_frame_head = fra.me.prev;
33039 return;
33040 }
33041 void parser___parser_prod___ABraReassignExpr___empty_init(val_t p0, int* init_table){
33042 int itpos203 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraReassignExpr].i;
33043 struct {struct stack_frame_t me;} fra;
33044 val_t tmp;
33045 if (init_table[itpos203]) return;
33046 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33047 fra.me.file = LOCATE_parser___parser_prod;
33048 fra.me.line = 6133;
33049 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___empty_init;
33050 fra.me.has_broke = 0;
33051 fra.me.REG_size = 1;
33052 fra.me.REG[0] = NIT_NULL;
33053 fra.me.REG[0] = p0;
33054 stack_frame_head = fra.me.prev;
33055 init_table[itpos203] = 1;
33056 return;
33057 }
33058 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){
33059 int itpos204 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraReassignExpr].i;
33060 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
33061 val_t REGB0;
33062 val_t tmp;
33063 if (init_table[itpos204]) return;
33064 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33065 fra.me.file = LOCATE_parser___parser_prod;
33066 fra.me.line = 6135;
33067 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr;
33068 fra.me.has_broke = 0;
33069 fra.me.REG_size = 6;
33070 fra.me.REG[0] = NIT_NULL;
33071 fra.me.REG[1] = NIT_NULL;
33072 fra.me.REG[2] = NIT_NULL;
33073 fra.me.REG[3] = NIT_NULL;
33074 fra.me.REG[4] = NIT_NULL;
33075 fra.me.REG[5] = NIT_NULL;
33076 fra.me.REG[0] = p0;
33077 fra.me.REG[1] = p1;
33078 fra.me.REG[2] = p2;
33079 fra.me.REG[3] = p3;
33080 fra.me.REG[4] = p4;
33081 /* ./parser//parser_prod.nit:6135 */
33082 fra.me.REG[5] = fra.me.REG[0];
33083 /* ./parser//parser_prod.nit:6142 */
33084 CALL_parser___parser_prod___ABraReassignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
33085 /* ./parser//parser_prod.nit:6143 */
33086 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
33087 if (UNTAG_Bool(REGB0)) {
33088 } else {
33089 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6143);
33090 }
33091 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
33092 /* ./parser//parser_prod.nit:6144 */
33093 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33094 if (UNTAG_Bool(REGB0)) {
33095 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6144);
33096 }
33097 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
33098 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));
33099 /* ./parser//parser_prod.nit:6150 */
33100 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
33101 if (UNTAG_Bool(REGB0)) {
33102 } else {
33103 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6150);
33104 }
33105 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[5]) = fra.me.REG[3];
33106 /* ./parser//parser_prod.nit:6151 */
33107 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
33108 if (UNTAG_Bool(REGB0)) {
33109 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6151);
33110 }
33111 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
33112 /* ./parser//parser_prod.nit:6152 */
33113 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
33114 if (UNTAG_Bool(REGB0)) {
33115 } else {
33116 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6152);
33117 }
33118 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
33119 /* ./parser//parser_prod.nit:6153 */
33120 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
33121 if (UNTAG_Bool(REGB0)) {
33122 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6153);
33123 }
33124 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
33125 stack_frame_head = fra.me.prev;
33126 init_table[itpos204] = 1;
33127 return;
33128 }
33129 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){
33130 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33131 val_t REGB0;
33132 fun_t CREG[1];
33133 val_t tmp;
33134 /* ./parser//parser_prod.nit:6145 */
33135 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33136 fra.me.file = LOCATE_parser___parser_prod;
33137 fra.me.line = 0;
33138 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr;
33139 fra.me.has_broke = 0;
33140 fra.me.REG_size = 2;
33141 fra.me.REG[0] = NIT_NULL;
33142 fra.me.REG[1] = NIT_NULL;
33143 fra.me.closure_ctx = closctx_param;
33144 fra.me.closure_funs = CREG;
33145 fra.me.REG[0] = p0;
33146 CREG[0] = clos_fun0;
33147 /* ./parser//parser_prod.nit:6146 */
33148 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
33149 if (UNTAG_Bool(REGB0)) {
33150 } else {
33151 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6146);
33152 }
33153 /* ./parser//parser_prod.nit:6147 */
33154 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[5])!=NIT_NULL);
33155 if (UNTAG_Bool(REGB0)) {
33156 } else {
33157 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6147);
33158 }
33159 fra.me.REG[1] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[5]);
33160 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33161 /* ./parser//parser_prod.nit:6148 */
33162 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
33163 stack_frame_head = fra.me.prev;
33164 return;
33165 }
33166 void parser___parser_prod___ABraReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
33167 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33168 val_t REGB0;
33169 val_t REGB1;
33170 val_t REGB2;
33171 val_t REGB3;
33172 val_t REGB4;
33173 val_t tmp;
33174 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33175 fra.me.file = LOCATE_parser___parser_prod;
33176 fra.me.line = 6156;
33177 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___replace_child;
33178 fra.me.has_broke = 0;
33179 fra.me.REG_size = 4;
33180 fra.me.REG[0] = NIT_NULL;
33181 fra.me.REG[1] = NIT_NULL;
33182 fra.me.REG[2] = NIT_NULL;
33183 fra.me.REG[3] = NIT_NULL;
33184 fra.me.REG[0] = p0;
33185 fra.me.REG[1] = p1;
33186 fra.me.REG[2] = p2;
33187 /* ./parser//parser_prod.nit:6158 */
33188 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33189 if (UNTAG_Bool(REGB0)) {
33190 } else {
33191 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6158);
33192 }
33193 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
33194 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33195 if (UNTAG_Bool(REGB0)) {
33196 } else {
33197 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33198 REGB0 = REGB1;
33199 }
33200 if (UNTAG_Bool(REGB0)) {
33201 /* ./parser//parser_prod.nit:6159 */
33202 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33203 if (UNTAG_Bool(REGB0)) {
33204 } else {
33205 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33206 if (UNTAG_Bool(REGB1)) {
33207 REGB1 = TAG_Bool(false);
33208 REGB0 = REGB1;
33209 } else {
33210 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33211 REGB0 = REGB1;
33212 }
33213 }
33214 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33215 if (UNTAG_Bool(REGB0)) {
33216 /* ./parser//parser_prod.nit:6160 */
33217 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33218 if (UNTAG_Bool(REGB0)) {
33219 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6160);
33220 }
33221 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33222 /* ./parser//parser_prod.nit:6161 */
33223 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
33224 if (UNTAG_Bool(REGB0)) {
33225 } else {
33226 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6161);
33227 }
33228 /* ./parser//parser_prod.nit:6162 */
33229 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
33230 } else {
33231 /* ./parser//parser_prod.nit:6164 */
33232 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6164);
33233 }
33234 /* ./parser//parser_prod.nit:6166 */
33235 goto label1;
33236 }
33237 /* ./parser//parser_prod.nit:6168 */
33238 REGB0 = TAG_Int(0);
33239 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33240 if (UNTAG_Bool(REGB1)) {
33241 } else {
33242 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6168);
33243 }
33244 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33245 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
33246 /* ./../lib/standard//kernel.nit:352 */
33247 while(1) {
33248 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
33249 if (UNTAG_Bool(REGB2)) {
33250 } else {
33251 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
33252 }
33253 /* ./../lib/standard//kernel.nit:232 */
33254 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
33255 /* ./../lib/standard//kernel.nit:352 */
33256 if (UNTAG_Bool(REGB2)) {
33257 /* ./parser//parser_prod.nit:6168 */
33258 REGB2 = REGB0;
33259 /* ./parser//parser_prod.nit:6169 */
33260 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33261 if (UNTAG_Bool(REGB3)) {
33262 } else {
33263 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6169);
33264 }
33265 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33266 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
33267 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
33268 if (UNTAG_Bool(REGB3)) {
33269 } else {
33270 REGB4 = TAG_Bool(fra.me.REG[3]==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[3])(fra.me.REG[3], fra.me.REG[1]);
33276 REGB3 = REGB4;
33277 }
33278 }
33279 if (UNTAG_Bool(REGB3)) {
33280 /* ./parser//parser_prod.nit:6170 */
33281 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33282 if (UNTAG_Bool(REGB3)) {
33283 } else {
33284 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33285 if (UNTAG_Bool(REGB4)) {
33286 REGB4 = TAG_Bool(false);
33287 REGB3 = REGB4;
33288 } else {
33289 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33290 REGB3 = REGB4;
33291 }
33292 }
33293 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
33294 if (UNTAG_Bool(REGB3)) {
33295 /* ./parser//parser_prod.nit:6171 */
33296 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*/;
33297 if (UNTAG_Bool(REGB3)) {
33298 } else {
33299 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6171);
33300 }
33301 /* ./parser//parser_prod.nit:6172 */
33302 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33303 if (UNTAG_Bool(REGB3)) {
33304 } else {
33305 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6172);
33306 }
33307 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33308 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
33309 /* ./parser//parser_prod.nit:6173 */
33310 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33311 if (UNTAG_Bool(REGB3)) {
33312 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6173);
33313 }
33314 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33315 } else {
33316 /* ./parser//parser_prod.nit:6175 */
33317 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33318 if (UNTAG_Bool(REGB3)) {
33319 } else {
33320 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6175);
33321 }
33322 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33323 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
33324 }
33325 /* ./parser//parser_prod.nit:6177 */
33326 goto label1;
33327 }
33328 /* ./../lib/standard//kernel.nit:354 */
33329 REGB2 = TAG_Int(1);
33330 /* ./../lib/standard//kernel.nit:235 */
33331 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
33332 /* ./../lib/standard//kernel.nit:354 */
33333 REGB0 = REGB2;
33334 } else {
33335 /* ./../lib/standard//kernel.nit:352 */
33336 goto label2;
33337 }
33338 }
33339 label2: while(0);
33340 /* ./parser//parser_prod.nit:6180 */
33341 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
33342 if (UNTAG_Bool(REGB0)) {
33343 } else {
33344 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6180);
33345 }
33346 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
33347 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33348 if (UNTAG_Bool(REGB0)) {
33349 } else {
33350 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33351 REGB0 = REGB1;
33352 }
33353 if (UNTAG_Bool(REGB0)) {
33354 /* ./parser//parser_prod.nit:6181 */
33355 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33356 if (UNTAG_Bool(REGB0)) {
33357 } else {
33358 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33359 if (UNTAG_Bool(REGB1)) {
33360 REGB1 = TAG_Bool(false);
33361 REGB0 = REGB1;
33362 } else {
33363 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33364 REGB0 = REGB1;
33365 }
33366 }
33367 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33368 if (UNTAG_Bool(REGB0)) {
33369 /* ./parser//parser_prod.nit:6182 */
33370 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33371 if (UNTAG_Bool(REGB0)) {
33372 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6182);
33373 }
33374 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33375 /* ./parser//parser_prod.nit:6183 */
33376 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*/;
33377 if (UNTAG_Bool(REGB0)) {
33378 } else {
33379 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6183);
33380 }
33381 /* ./parser//parser_prod.nit:6184 */
33382 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
33383 } else {
33384 /* ./parser//parser_prod.nit:6186 */
33385 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6186);
33386 }
33387 /* ./parser//parser_prod.nit:6188 */
33388 goto label1;
33389 }
33390 /* ./parser//parser_prod.nit:6190 */
33391 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33392 if (UNTAG_Bool(REGB0)) {
33393 } else {
33394 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6190);
33395 }
33396 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
33397 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33398 if (UNTAG_Bool(REGB0)) {
33399 } else {
33400 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33401 REGB0 = REGB1;
33402 }
33403 if (UNTAG_Bool(REGB0)) {
33404 /* ./parser//parser_prod.nit:6191 */
33405 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33406 if (UNTAG_Bool(REGB0)) {
33407 } else {
33408 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33409 if (UNTAG_Bool(REGB1)) {
33410 REGB1 = TAG_Bool(false);
33411 REGB0 = REGB1;
33412 } else {
33413 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33414 REGB0 = REGB1;
33415 }
33416 }
33417 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33418 if (UNTAG_Bool(REGB0)) {
33419 /* ./parser//parser_prod.nit:6192 */
33420 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33421 if (UNTAG_Bool(REGB0)) {
33422 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6192);
33423 }
33424 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33425 /* ./parser//parser_prod.nit:6193 */
33426 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
33427 if (UNTAG_Bool(REGB0)) {
33428 } else {
33429 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6193);
33430 }
33431 /* ./parser//parser_prod.nit:6194 */
33432 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
33433 } else {
33434 /* ./parser//parser_prod.nit:6196 */
33435 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6196);
33436 }
33437 /* ./parser//parser_prod.nit:6198 */
33438 goto label1;
33439 }
33440 label1: while(0);
33441 stack_frame_head = fra.me.prev;
33442 return;
33443 }
33444 void parser___parser_prod___ABraReassignExpr___visit_all(val_t p0, val_t p1){
33445 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33446 val_t REGB0;
33447 val_t tmp;
33448 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33449 fra.me.file = LOCATE_parser___parser_prod;
33450 fra.me.line = 6202;
33451 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___visit_all;
33452 fra.me.has_broke = 0;
33453 fra.me.REG_size = 3;
33454 fra.me.REG[0] = NIT_NULL;
33455 fra.me.REG[1] = NIT_NULL;
33456 fra.me.REG[2] = NIT_NULL;
33457 fra.me.REG[0] = p0;
33458 fra.me.REG[1] = p1;
33459 /* ./parser//parser_prod.nit:6204 */
33460 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33461 if (UNTAG_Bool(REGB0)) {
33462 } else {
33463 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6204);
33464 }
33465 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
33466 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33467 /* ./parser//parser_prod.nit:6205 */
33468 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33469 if (UNTAG_Bool(REGB0)) {
33470 } else {
33471 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6205);
33472 }
33473 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
33474 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));
33475 /* ./parser//parser_prod.nit:6208 */
33476 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
33477 if (UNTAG_Bool(REGB0)) {
33478 } else {
33479 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6208);
33480 }
33481 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
33482 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33483 /* ./parser//parser_prod.nit:6209 */
33484 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33485 if (UNTAG_Bool(REGB0)) {
33486 } else {
33487 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6209);
33488 }
33489 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
33490 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33491 stack_frame_head = fra.me.prev;
33492 return;
33493 }
33494 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){
33495 struct {struct stack_frame_t me;} fra;
33496 fun_t CREG[1];
33497 val_t tmp;
33498 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33499 fra.me.file = LOCATE_parser___parser_prod;
33500 fra.me.line = 0;
33501 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___visit_all;
33502 fra.me.has_broke = 0;
33503 fra.me.REG_size = 1;
33504 fra.me.REG[0] = NIT_NULL;
33505 fra.me.closure_ctx = closctx_param;
33506 fra.me.closure_funs = CREG;
33507 fra.me.REG[0] = p0;
33508 CREG[0] = clos_fun0;
33509 /* ./parser//parser_prod.nit:6206 */
33510 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
33511 stack_frame_head = fra.me.prev;
33512 return;
33513 }
33514 void parser___parser_prod___AClosureCallExpr___empty_init(val_t p0, int* init_table){
33515 int itpos205 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureCallExpr].i;
33516 struct {struct stack_frame_t me;} fra;
33517 val_t tmp;
33518 if (init_table[itpos205]) return;
33519 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33520 fra.me.file = LOCATE_parser___parser_prod;
33521 fra.me.line = 6213;
33522 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___empty_init;
33523 fra.me.has_broke = 0;
33524 fra.me.REG_size = 1;
33525 fra.me.REG[0] = NIT_NULL;
33526 fra.me.REG[0] = p0;
33527 stack_frame_head = fra.me.prev;
33528 init_table[itpos205] = 1;
33529 return;
33530 }
33531 void parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
33532 int itpos206 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureCallExpr].i;
33533 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33534 val_t REGB0;
33535 val_t tmp;
33536 if (init_table[itpos206]) return;
33537 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33538 fra.me.file = LOCATE_parser___parser_prod;
33539 fra.me.line = 6215;
33540 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr;
33541 fra.me.has_broke = 0;
33542 fra.me.REG_size = 5;
33543 fra.me.REG[0] = NIT_NULL;
33544 fra.me.REG[1] = NIT_NULL;
33545 fra.me.REG[2] = NIT_NULL;
33546 fra.me.REG[3] = NIT_NULL;
33547 fra.me.REG[4] = NIT_NULL;
33548 fra.me.REG[0] = p0;
33549 fra.me.REG[1] = p1;
33550 fra.me.REG[2] = p2;
33551 fra.me.REG[3] = p3;
33552 /* ./parser//parser_prod.nit:6215 */
33553 fra.me.REG[4] = fra.me.REG[0];
33554 /* ./parser//parser_prod.nit:6221 */
33555 CALL_parser___parser_prod___AClosureCallExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
33556 /* ./parser//parser_prod.nit:6222 */
33557 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
33558 if (UNTAG_Bool(REGB0)) {
33559 } else {
33560 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6222);
33561 }
33562 ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
33563 /* ./parser//parser_prod.nit:6223 */
33564 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33565 if (UNTAG_Bool(REGB0)) {
33566 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6223);
33567 }
33568 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
33569 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));
33570 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));
33571 stack_frame_head = fra.me.prev;
33572 init_table[itpos206] = 1;
33573 return;
33574 }
33575 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){
33576 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33577 val_t REGB0;
33578 fun_t CREG[1];
33579 val_t tmp;
33580 /* ./parser//parser_prod.nit:6224 */
33581 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33582 fra.me.file = LOCATE_parser___parser_prod;
33583 fra.me.line = 0;
33584 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr;
33585 fra.me.has_broke = 0;
33586 fra.me.REG_size = 2;
33587 fra.me.REG[0] = NIT_NULL;
33588 fra.me.REG[1] = NIT_NULL;
33589 fra.me.closure_ctx = closctx_param;
33590 fra.me.closure_funs = CREG;
33591 fra.me.REG[0] = p0;
33592 CREG[0] = clos_fun0;
33593 /* ./parser//parser_prod.nit:6225 */
33594 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
33595 if (UNTAG_Bool(REGB0)) {
33596 } else {
33597 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6225);
33598 }
33599 /* ./parser//parser_prod.nit:6226 */
33600 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(closctx->REG[4])!=NIT_NULL);
33601 if (UNTAG_Bool(REGB0)) {
33602 } else {
33603 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6226);
33604 }
33605 fra.me.REG[1] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(closctx->REG[4]);
33606 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33607 /* ./parser//parser_prod.nit:6227 */
33608 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
33609 stack_frame_head = fra.me.prev;
33610 return;
33611 }
33612 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){
33613 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33614 val_t REGB0;
33615 fun_t CREG[1];
33616 val_t tmp;
33617 /* ./parser//parser_prod.nit:6229 */
33618 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33619 fra.me.file = LOCATE_parser___parser_prod;
33620 fra.me.line = 0;
33621 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr;
33622 fra.me.has_broke = 0;
33623 fra.me.REG_size = 2;
33624 fra.me.REG[0] = NIT_NULL;
33625 fra.me.REG[1] = NIT_NULL;
33626 fra.me.closure_ctx = closctx_param;
33627 fra.me.closure_funs = CREG;
33628 fra.me.REG[0] = p0;
33629 CREG[0] = clos_fun0;
33630 /* ./parser//parser_prod.nit:6230 */
33631 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
33632 if (UNTAG_Bool(REGB0)) {
33633 } else {
33634 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6230);
33635 }
33636 /* ./parser//parser_prod.nit:6231 */
33637 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(closctx->REG[4])!=NIT_NULL);
33638 if (UNTAG_Bool(REGB0)) {
33639 } else {
33640 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6231);
33641 }
33642 fra.me.REG[1] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(closctx->REG[4]);
33643 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33644 /* ./parser//parser_prod.nit:6232 */
33645 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
33646 stack_frame_head = fra.me.prev;
33647 return;
33648 }
33649 void parser___parser_prod___AClosureCallExpr___replace_child(val_t p0, val_t p1, val_t p2){
33650 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33651 val_t REGB0;
33652 val_t REGB1;
33653 val_t REGB2;
33654 val_t REGB3;
33655 val_t REGB4;
33656 val_t tmp;
33657 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33658 fra.me.file = LOCATE_parser___parser_prod;
33659 fra.me.line = 6236;
33660 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___replace_child;
33661 fra.me.has_broke = 0;
33662 fra.me.REG_size = 4;
33663 fra.me.REG[0] = NIT_NULL;
33664 fra.me.REG[1] = NIT_NULL;
33665 fra.me.REG[2] = NIT_NULL;
33666 fra.me.REG[3] = NIT_NULL;
33667 fra.me.REG[0] = p0;
33668 fra.me.REG[1] = p1;
33669 fra.me.REG[2] = p2;
33670 /* ./parser//parser_prod.nit:6238 */
33671 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0])!=NIT_NULL);
33672 if (UNTAG_Bool(REGB0)) {
33673 } else {
33674 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6238);
33675 }
33676 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]);
33677 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33678 if (UNTAG_Bool(REGB0)) {
33679 } else {
33680 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33681 REGB0 = REGB1;
33682 }
33683 if (UNTAG_Bool(REGB0)) {
33684 /* ./parser//parser_prod.nit:6239 */
33685 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33686 if (UNTAG_Bool(REGB0)) {
33687 } else {
33688 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33689 if (UNTAG_Bool(REGB1)) {
33690 REGB1 = TAG_Bool(false);
33691 REGB0 = REGB1;
33692 } else {
33693 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33694 REGB0 = REGB1;
33695 }
33696 }
33697 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33698 if (UNTAG_Bool(REGB0)) {
33699 /* ./parser//parser_prod.nit:6240 */
33700 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33701 if (UNTAG_Bool(REGB0)) {
33702 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6240);
33703 }
33704 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33705 /* ./parser//parser_prod.nit:6241 */
33706 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*/;
33707 if (UNTAG_Bool(REGB0)) {
33708 } else {
33709 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6241);
33710 }
33711 /* ./parser//parser_prod.nit:6242 */
33712 ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
33713 } else {
33714 /* ./parser//parser_prod.nit:6244 */
33715 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6244);
33716 }
33717 /* ./parser//parser_prod.nit:6246 */
33718 goto label1;
33719 }
33720 /* ./parser//parser_prod.nit:6248 */
33721 REGB0 = TAG_Int(0);
33722 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33723 if (UNTAG_Bool(REGB1)) {
33724 } else {
33725 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6248);
33726 }
33727 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
33728 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
33729 /* ./../lib/standard//kernel.nit:352 */
33730 while(1) {
33731 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
33732 if (UNTAG_Bool(REGB2)) {
33733 } else {
33734 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
33735 }
33736 /* ./../lib/standard//kernel.nit:232 */
33737 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
33738 /* ./../lib/standard//kernel.nit:352 */
33739 if (UNTAG_Bool(REGB2)) {
33740 /* ./parser//parser_prod.nit:6248 */
33741 REGB2 = REGB0;
33742 /* ./parser//parser_prod.nit:6249 */
33743 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33744 if (UNTAG_Bool(REGB3)) {
33745 } else {
33746 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6249);
33747 }
33748 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
33749 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
33750 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
33751 if (UNTAG_Bool(REGB3)) {
33752 } else {
33753 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
33754 if (UNTAG_Bool(REGB4)) {
33755 REGB4 = TAG_Bool(false);
33756 REGB3 = REGB4;
33757 } else {
33758 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33759 REGB3 = REGB4;
33760 }
33761 }
33762 if (UNTAG_Bool(REGB3)) {
33763 /* ./parser//parser_prod.nit:6250 */
33764 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33765 if (UNTAG_Bool(REGB3)) {
33766 } else {
33767 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33768 if (UNTAG_Bool(REGB4)) {
33769 REGB4 = TAG_Bool(false);
33770 REGB3 = REGB4;
33771 } else {
33772 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33773 REGB3 = REGB4;
33774 }
33775 }
33776 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
33777 if (UNTAG_Bool(REGB3)) {
33778 /* ./parser//parser_prod.nit:6251 */
33779 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*/;
33780 if (UNTAG_Bool(REGB3)) {
33781 } else {
33782 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6251);
33783 }
33784 /* ./parser//parser_prod.nit:6252 */
33785 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33786 if (UNTAG_Bool(REGB3)) {
33787 } else {
33788 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6252);
33789 }
33790 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
33791 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
33792 /* ./parser//parser_prod.nit:6253 */
33793 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33794 if (UNTAG_Bool(REGB3)) {
33795 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6253);
33796 }
33797 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33798 } else {
33799 /* ./parser//parser_prod.nit:6255 */
33800 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33801 if (UNTAG_Bool(REGB3)) {
33802 } else {
33803 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6255);
33804 }
33805 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
33806 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
33807 }
33808 /* ./parser//parser_prod.nit:6257 */
33809 goto label1;
33810 }
33811 /* ./../lib/standard//kernel.nit:354 */
33812 REGB2 = TAG_Int(1);
33813 /* ./../lib/standard//kernel.nit:235 */
33814 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
33815 /* ./../lib/standard//kernel.nit:354 */
33816 REGB0 = REGB2;
33817 } else {
33818 /* ./../lib/standard//kernel.nit:352 */
33819 goto label2;
33820 }
33821 }
33822 label2: while(0);
33823 /* ./parser//parser_prod.nit:6260 */
33824 REGB0 = TAG_Int(0);
33825 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
33826 if (UNTAG_Bool(REGB1)) {
33827 } else {
33828 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6260);
33829 }
33830 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
33831 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
33832 /* ./../lib/standard//kernel.nit:352 */
33833 while(1) {
33834 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
33835 if (UNTAG_Bool(REGB2)) {
33836 } else {
33837 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
33838 }
33839 /* ./../lib/standard//kernel.nit:232 */
33840 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
33841 /* ./../lib/standard//kernel.nit:352 */
33842 if (UNTAG_Bool(REGB2)) {
33843 /* ./parser//parser_prod.nit:6260 */
33844 REGB2 = REGB0;
33845 /* ./parser//parser_prod.nit:6261 */
33846 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
33847 if (UNTAG_Bool(REGB3)) {
33848 } else {
33849 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6261);
33850 }
33851 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
33852 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
33853 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
33854 if (UNTAG_Bool(REGB3)) {
33855 } else {
33856 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
33857 if (UNTAG_Bool(REGB4)) {
33858 REGB4 = TAG_Bool(false);
33859 REGB3 = REGB4;
33860 } else {
33861 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33862 REGB3 = REGB4;
33863 }
33864 }
33865 if (UNTAG_Bool(REGB3)) {
33866 /* ./parser//parser_prod.nit:6262 */
33867 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33868 if (UNTAG_Bool(REGB3)) {
33869 } else {
33870 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33871 if (UNTAG_Bool(REGB4)) {
33872 REGB4 = TAG_Bool(false);
33873 REGB3 = REGB4;
33874 } else {
33875 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33876 REGB3 = REGB4;
33877 }
33878 }
33879 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
33880 if (UNTAG_Bool(REGB3)) {
33881 /* ./parser//parser_prod.nit:6263 */
33882 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*/;
33883 if (UNTAG_Bool(REGB3)) {
33884 } else {
33885 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6263);
33886 }
33887 /* ./parser//parser_prod.nit:6264 */
33888 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
33889 if (UNTAG_Bool(REGB3)) {
33890 } else {
33891 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6264);
33892 }
33893 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
33894 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
33895 /* ./parser//parser_prod.nit:6265 */
33896 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33897 if (UNTAG_Bool(REGB3)) {
33898 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6265);
33899 }
33900 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33901 } else {
33902 /* ./parser//parser_prod.nit:6267 */
33903 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
33904 if (UNTAG_Bool(REGB3)) {
33905 } else {
33906 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6267);
33907 }
33908 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
33909 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
33910 }
33911 /* ./parser//parser_prod.nit:6269 */
33912 goto label1;
33913 }
33914 /* ./../lib/standard//kernel.nit:354 */
33915 REGB2 = TAG_Int(1);
33916 /* ./../lib/standard//kernel.nit:235 */
33917 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
33918 /* ./../lib/standard//kernel.nit:354 */
33919 REGB0 = REGB2;
33920 } else {
33921 /* ./../lib/standard//kernel.nit:352 */
33922 goto label3;
33923 }
33924 }
33925 label3: while(0);
33926 label1: while(0);
33927 stack_frame_head = fra.me.prev;
33928 return;
33929 }
33930 void parser___parser_prod___AClosureCallExpr___visit_all(val_t p0, val_t p1){
33931 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33932 val_t REGB0;
33933 val_t tmp;
33934 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33935 fra.me.file = LOCATE_parser___parser_prod;
33936 fra.me.line = 6274;
33937 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___visit_all;
33938 fra.me.has_broke = 0;
33939 fra.me.REG_size = 3;
33940 fra.me.REG[0] = NIT_NULL;
33941 fra.me.REG[1] = NIT_NULL;
33942 fra.me.REG[2] = NIT_NULL;
33943 fra.me.REG[0] = p0;
33944 fra.me.REG[1] = p1;
33945 /* ./parser//parser_prod.nit:6276 */
33946 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0])!=NIT_NULL);
33947 if (UNTAG_Bool(REGB0)) {
33948 } else {
33949 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6276);
33950 }
33951 fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]);
33952 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33953 /* ./parser//parser_prod.nit:6277 */
33954 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33955 if (UNTAG_Bool(REGB0)) {
33956 } else {
33957 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6277);
33958 }
33959 fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
33960 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));
33961 /* ./parser//parser_prod.nit:6280 */
33962 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
33963 if (UNTAG_Bool(REGB0)) {
33964 } else {
33965 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6280);
33966 }
33967 fra.me.REG[0] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
33968 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));
33969 stack_frame_head = fra.me.prev;
33970 return;
33971 }
33972 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){
33973 struct {struct stack_frame_t me;} fra;
33974 fun_t CREG[1];
33975 val_t tmp;
33976 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33977 fra.me.file = LOCATE_parser___parser_prod;
33978 fra.me.line = 0;
33979 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___visit_all;
33980 fra.me.has_broke = 0;
33981 fra.me.REG_size = 1;
33982 fra.me.REG[0] = NIT_NULL;
33983 fra.me.closure_ctx = closctx_param;
33984 fra.me.closure_funs = CREG;
33985 fra.me.REG[0] = p0;
33986 CREG[0] = clos_fun0;
33987 /* ./parser//parser_prod.nit:6278 */
33988 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
33989 stack_frame_head = fra.me.prev;
33990 return;
33991 }
33992 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){
33993 struct {struct stack_frame_t me;} fra;
33994 fun_t CREG[1];
33995 val_t tmp;
33996 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33997 fra.me.file = LOCATE_parser___parser_prod;
33998 fra.me.line = 0;
33999 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___visit_all;
34000 fra.me.has_broke = 0;
34001 fra.me.REG_size = 1;
34002 fra.me.REG[0] = NIT_NULL;
34003 fra.me.closure_ctx = closctx_param;
34004 fra.me.closure_funs = CREG;
34005 fra.me.REG[0] = p0;
34006 CREG[0] = clos_fun0;
34007 /* ./parser//parser_prod.nit:6281 */
34008 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
34009 stack_frame_head = fra.me.prev;
34010 return;
34011 }
34012 void parser___parser_prod___AVarExpr___empty_init(val_t p0, int* init_table){
34013 int itpos207 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarExpr].i;
34014 struct {struct stack_frame_t me;} fra;
34015 val_t tmp;
34016 if (init_table[itpos207]) return;
34017 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34018 fra.me.file = LOCATE_parser___parser_prod;
34019 fra.me.line = 6286;
34020 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___empty_init;
34021 fra.me.has_broke = 0;
34022 fra.me.REG_size = 1;
34023 fra.me.REG[0] = NIT_NULL;
34024 fra.me.REG[0] = p0;
34025 stack_frame_head = fra.me.prev;
34026 init_table[itpos207] = 1;
34027 return;
34028 }
34029 void parser___parser_prod___AVarExpr___init_avarexpr(val_t p0, val_t p1, int* init_table){
34030 int itpos208 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarExpr].i;
34031 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34032 val_t REGB0;
34033 val_t tmp;
34034 if (init_table[itpos208]) return;
34035 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34036 fra.me.file = LOCATE_parser___parser_prod;
34037 fra.me.line = 6288;
34038 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___init_avarexpr;
34039 fra.me.has_broke = 0;
34040 fra.me.REG_size = 3;
34041 fra.me.REG[0] = NIT_NULL;
34042 fra.me.REG[1] = NIT_NULL;
34043 fra.me.REG[2] = NIT_NULL;
34044 fra.me.REG[0] = p0;
34045 fra.me.REG[1] = p1;
34046 /* ./parser//parser_prod.nit:6288 */
34047 fra.me.REG[2] = fra.me.REG[0];
34048 /* ./parser//parser_prod.nit:6292 */
34049 CALL_parser___parser_prod___AVarExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
34050 /* ./parser//parser_prod.nit:6293 */
34051 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34052 if (UNTAG_Bool(REGB0)) {
34053 } else {
34054 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6293);
34055 }
34056 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[2]) = fra.me.REG[1];
34057 /* ./parser//parser_prod.nit:6294 */
34058 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34059 if (UNTAG_Bool(REGB0)) {
34060 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6294);
34061 }
34062 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34063 stack_frame_head = fra.me.prev;
34064 init_table[itpos208] = 1;
34065 return;
34066 }
34067 void parser___parser_prod___AVarExpr___replace_child(val_t p0, val_t p1, val_t p2){
34068 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34069 val_t REGB0;
34070 val_t REGB1;
34071 val_t tmp;
34072 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34073 fra.me.file = LOCATE_parser___parser_prod;
34074 fra.me.line = 6297;
34075 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___replace_child;
34076 fra.me.has_broke = 0;
34077 fra.me.REG_size = 4;
34078 fra.me.REG[0] = NIT_NULL;
34079 fra.me.REG[1] = NIT_NULL;
34080 fra.me.REG[2] = NIT_NULL;
34081 fra.me.REG[3] = NIT_NULL;
34082 fra.me.REG[0] = p0;
34083 fra.me.REG[1] = p1;
34084 fra.me.REG[2] = p2;
34085 /* ./parser//parser_prod.nit:6299 */
34086 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
34087 if (UNTAG_Bool(REGB0)) {
34088 } else {
34089 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6299);
34090 }
34091 fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
34092 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34093 if (UNTAG_Bool(REGB0)) {
34094 } else {
34095 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34096 REGB0 = REGB1;
34097 }
34098 if (UNTAG_Bool(REGB0)) {
34099 /* ./parser//parser_prod.nit:6300 */
34100 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34101 if (UNTAG_Bool(REGB0)) {
34102 } else {
34103 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34104 if (UNTAG_Bool(REGB1)) {
34105 REGB1 = TAG_Bool(false);
34106 REGB0 = REGB1;
34107 } else {
34108 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34109 REGB0 = REGB1;
34110 }
34111 }
34112 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34113 if (UNTAG_Bool(REGB0)) {
34114 /* ./parser//parser_prod.nit:6301 */
34115 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34116 if (UNTAG_Bool(REGB0)) {
34117 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6301);
34118 }
34119 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34120 /* ./parser//parser_prod.nit:6302 */
34121 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*/;
34122 if (UNTAG_Bool(REGB0)) {
34123 } else {
34124 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6302);
34125 }
34126 /* ./parser//parser_prod.nit:6303 */
34127 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
34128 } else {
34129 /* ./parser//parser_prod.nit:6305 */
34130 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6305);
34131 }
34132 /* ./parser//parser_prod.nit:6307 */
34133 goto label1;
34134 }
34135 label1: while(0);
34136 stack_frame_head = fra.me.prev;
34137 return;
34138 }
34139 void parser___parser_prod___AVarExpr___visit_all(val_t p0, val_t p1){
34140 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34141 val_t REGB0;
34142 val_t tmp;
34143 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34144 fra.me.file = LOCATE_parser___parser_prod;
34145 fra.me.line = 6311;
34146 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___visit_all;
34147 fra.me.has_broke = 0;
34148 fra.me.REG_size = 2;
34149 fra.me.REG[0] = NIT_NULL;
34150 fra.me.REG[1] = NIT_NULL;
34151 fra.me.REG[0] = p0;
34152 fra.me.REG[1] = p1;
34153 /* ./parser//parser_prod.nit:6313 */
34154 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
34155 if (UNTAG_Bool(REGB0)) {
34156 } else {
34157 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6313);
34158 }
34159 fra.me.REG[0] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
34160 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34161 stack_frame_head = fra.me.prev;
34162 return;
34163 }
34164 void parser___parser_prod___AVarAssignExpr___empty_init(val_t p0, int* init_table){
34165 int itpos209 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarAssignExpr].i;
34166 struct {struct stack_frame_t me;} fra;
34167 val_t tmp;
34168 if (init_table[itpos209]) return;
34169 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34170 fra.me.file = LOCATE_parser___parser_prod;
34171 fra.me.line = 6317;
34172 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___empty_init;
34173 fra.me.has_broke = 0;
34174 fra.me.REG_size = 1;
34175 fra.me.REG[0] = NIT_NULL;
34176 fra.me.REG[0] = p0;
34177 stack_frame_head = fra.me.prev;
34178 init_table[itpos209] = 1;
34179 return;
34180 }
34181 void parser___parser_prod___AVarAssignExpr___init_avarassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
34182 int itpos210 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarAssignExpr].i;
34183 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
34184 val_t REGB0;
34185 val_t tmp;
34186 if (init_table[itpos210]) return;
34187 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34188 fra.me.file = LOCATE_parser___parser_prod;
34189 fra.me.line = 6319;
34190 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___init_avarassignexpr;
34191 fra.me.has_broke = 0;
34192 fra.me.REG_size = 5;
34193 fra.me.REG[0] = NIT_NULL;
34194 fra.me.REG[1] = NIT_NULL;
34195 fra.me.REG[2] = NIT_NULL;
34196 fra.me.REG[3] = NIT_NULL;
34197 fra.me.REG[4] = NIT_NULL;
34198 fra.me.REG[0] = p0;
34199 fra.me.REG[1] = p1;
34200 fra.me.REG[2] = p2;
34201 fra.me.REG[3] = p3;
34202 /* ./parser//parser_prod.nit:6319 */
34203 fra.me.REG[4] = fra.me.REG[0];
34204 /* ./parser//parser_prod.nit:6325 */
34205 CALL_parser___parser_prod___AVarAssignExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
34206 /* ./parser//parser_prod.nit:6326 */
34207 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34208 if (UNTAG_Bool(REGB0)) {
34209 } else {
34210 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6326);
34211 }
34212 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
34213 /* ./parser//parser_prod.nit:6327 */
34214 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34215 if (UNTAG_Bool(REGB0)) {
34216 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6327);
34217 }
34218 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
34219 /* ./parser//parser_prod.nit:6328 */
34220 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
34221 if (UNTAG_Bool(REGB0)) {
34222 } else {
34223 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6328);
34224 }
34225 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[4]) = fra.me.REG[2];
34226 /* ./parser//parser_prod.nit:6329 */
34227 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34228 if (UNTAG_Bool(REGB0)) {
34229 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6329);
34230 }
34231 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
34232 /* ./parser//parser_prod.nit:6330 */
34233 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
34234 if (UNTAG_Bool(REGB0)) {
34235 } else {
34236 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6330);
34237 }
34238 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[4]) = fra.me.REG[3];
34239 /* ./parser//parser_prod.nit:6331 */
34240 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34241 if (UNTAG_Bool(REGB0)) {
34242 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6331);
34243 }
34244 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
34245 stack_frame_head = fra.me.prev;
34246 init_table[itpos210] = 1;
34247 return;
34248 }
34249 void parser___parser_prod___AVarAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
34250 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34251 val_t REGB0;
34252 val_t REGB1;
34253 val_t tmp;
34254 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34255 fra.me.file = LOCATE_parser___parser_prod;
34256 fra.me.line = 6334;
34257 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___replace_child;
34258 fra.me.has_broke = 0;
34259 fra.me.REG_size = 4;
34260 fra.me.REG[0] = NIT_NULL;
34261 fra.me.REG[1] = NIT_NULL;
34262 fra.me.REG[2] = NIT_NULL;
34263 fra.me.REG[3] = NIT_NULL;
34264 fra.me.REG[0] = p0;
34265 fra.me.REG[1] = p1;
34266 fra.me.REG[2] = p2;
34267 /* ./parser//parser_prod.nit:6336 */
34268 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
34269 if (UNTAG_Bool(REGB0)) {
34270 } else {
34271 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6336);
34272 }
34273 fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
34274 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34275 if (UNTAG_Bool(REGB0)) {
34276 } else {
34277 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34278 REGB0 = REGB1;
34279 }
34280 if (UNTAG_Bool(REGB0)) {
34281 /* ./parser//parser_prod.nit:6337 */
34282 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34283 if (UNTAG_Bool(REGB0)) {
34284 } else {
34285 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34286 if (UNTAG_Bool(REGB1)) {
34287 REGB1 = TAG_Bool(false);
34288 REGB0 = REGB1;
34289 } else {
34290 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34291 REGB0 = REGB1;
34292 }
34293 }
34294 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34295 if (UNTAG_Bool(REGB0)) {
34296 /* ./parser//parser_prod.nit:6338 */
34297 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34298 if (UNTAG_Bool(REGB0)) {
34299 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6338);
34300 }
34301 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34302 /* ./parser//parser_prod.nit:6339 */
34303 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*/;
34304 if (UNTAG_Bool(REGB0)) {
34305 } else {
34306 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6339);
34307 }
34308 /* ./parser//parser_prod.nit:6340 */
34309 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
34310 } else {
34311 /* ./parser//parser_prod.nit:6342 */
34312 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6342);
34313 }
34314 /* ./parser//parser_prod.nit:6344 */
34315 goto label1;
34316 }
34317 /* ./parser//parser_prod.nit:6346 */
34318 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
34319 if (UNTAG_Bool(REGB0)) {
34320 } else {
34321 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6346);
34322 }
34323 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
34324 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34325 if (UNTAG_Bool(REGB0)) {
34326 } else {
34327 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34328 REGB0 = REGB1;
34329 }
34330 if (UNTAG_Bool(REGB0)) {
34331 /* ./parser//parser_prod.nit:6347 */
34332 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34333 if (UNTAG_Bool(REGB0)) {
34334 } else {
34335 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34336 if (UNTAG_Bool(REGB1)) {
34337 REGB1 = TAG_Bool(false);
34338 REGB0 = REGB1;
34339 } else {
34340 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34341 REGB0 = REGB1;
34342 }
34343 }
34344 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34345 if (UNTAG_Bool(REGB0)) {
34346 /* ./parser//parser_prod.nit:6348 */
34347 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34348 if (UNTAG_Bool(REGB0)) {
34349 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6348);
34350 }
34351 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34352 /* ./parser//parser_prod.nit:6349 */
34353 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*/;
34354 if (UNTAG_Bool(REGB0)) {
34355 } else {
34356 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6349);
34357 }
34358 /* ./parser//parser_prod.nit:6350 */
34359 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
34360 } else {
34361 /* ./parser//parser_prod.nit:6352 */
34362 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6352);
34363 }
34364 /* ./parser//parser_prod.nit:6354 */
34365 goto label1;
34366 }
34367 /* ./parser//parser_prod.nit:6356 */
34368 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
34369 if (UNTAG_Bool(REGB0)) {
34370 } else {
34371 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6356);
34372 }
34373 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
34374 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34375 if (UNTAG_Bool(REGB0)) {
34376 } else {
34377 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34378 REGB0 = REGB1;
34379 }
34380 if (UNTAG_Bool(REGB0)) {
34381 /* ./parser//parser_prod.nit:6357 */
34382 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34383 if (UNTAG_Bool(REGB0)) {
34384 } else {
34385 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34386 if (UNTAG_Bool(REGB1)) {
34387 REGB1 = TAG_Bool(false);
34388 REGB0 = REGB1;
34389 } else {
34390 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34391 REGB0 = REGB1;
34392 }
34393 }
34394 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34395 if (UNTAG_Bool(REGB0)) {
34396 /* ./parser//parser_prod.nit:6358 */
34397 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34398 if (UNTAG_Bool(REGB0)) {
34399 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6358);
34400 }
34401 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34402 /* ./parser//parser_prod.nit:6359 */
34403 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
34404 if (UNTAG_Bool(REGB0)) {
34405 } else {
34406 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6359);
34407 }
34408 /* ./parser//parser_prod.nit:6360 */
34409 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
34410 } else {
34411 /* ./parser//parser_prod.nit:6362 */
34412 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6362);
34413 }
34414 /* ./parser//parser_prod.nit:6364 */
34415 goto label1;
34416 }
34417 label1: while(0);
34418 stack_frame_head = fra.me.prev;
34419 return;
34420 }
34421 void parser___parser_prod___AVarAssignExpr___visit_all(val_t p0, val_t p1){
34422 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34423 val_t REGB0;
34424 val_t tmp;
34425 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34426 fra.me.file = LOCATE_parser___parser_prod;
34427 fra.me.line = 6368;
34428 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___visit_all;
34429 fra.me.has_broke = 0;
34430 fra.me.REG_size = 3;
34431 fra.me.REG[0] = NIT_NULL;
34432 fra.me.REG[1] = NIT_NULL;
34433 fra.me.REG[2] = NIT_NULL;
34434 fra.me.REG[0] = p0;
34435 fra.me.REG[1] = p1;
34436 /* ./parser//parser_prod.nit:6370 */
34437 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
34438 if (UNTAG_Bool(REGB0)) {
34439 } else {
34440 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6370);
34441 }
34442 fra.me.REG[2] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
34443 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34444 /* ./parser//parser_prod.nit:6371 */
34445 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
34446 if (UNTAG_Bool(REGB0)) {
34447 } else {
34448 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6371);
34449 }
34450 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
34451 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34452 /* ./parser//parser_prod.nit:6372 */
34453 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
34454 if (UNTAG_Bool(REGB0)) {
34455 } else {
34456 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6372);
34457 }
34458 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
34459 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34460 stack_frame_head = fra.me.prev;
34461 return;
34462 }
34463 void parser___parser_prod___AVarReassignExpr___empty_init(val_t p0, int* init_table){
34464 int itpos211 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarReassignExpr].i;
34465 struct {struct stack_frame_t me;} fra;
34466 val_t tmp;
34467 if (init_table[itpos211]) return;
34468 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34469 fra.me.file = LOCATE_parser___parser_prod;
34470 fra.me.line = 6376;
34471 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___empty_init;
34472 fra.me.has_broke = 0;
34473 fra.me.REG_size = 1;
34474 fra.me.REG[0] = NIT_NULL;
34475 fra.me.REG[0] = p0;
34476 stack_frame_head = fra.me.prev;
34477 init_table[itpos211] = 1;
34478 return;
34479 }
34480 void parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
34481 int itpos212 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarReassignExpr].i;
34482 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
34483 val_t REGB0;
34484 val_t tmp;
34485 if (init_table[itpos212]) return;
34486 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34487 fra.me.file = LOCATE_parser___parser_prod;
34488 fra.me.line = 6378;
34489 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr;
34490 fra.me.has_broke = 0;
34491 fra.me.REG_size = 5;
34492 fra.me.REG[0] = NIT_NULL;
34493 fra.me.REG[1] = NIT_NULL;
34494 fra.me.REG[2] = NIT_NULL;
34495 fra.me.REG[3] = NIT_NULL;
34496 fra.me.REG[4] = NIT_NULL;
34497 fra.me.REG[0] = p0;
34498 fra.me.REG[1] = p1;
34499 fra.me.REG[2] = p2;
34500 fra.me.REG[3] = p3;
34501 /* ./parser//parser_prod.nit:6378 */
34502 fra.me.REG[4] = fra.me.REG[0];
34503 /* ./parser//parser_prod.nit:6384 */
34504 CALL_parser___parser_prod___AVarReassignExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
34505 /* ./parser//parser_prod.nit:6385 */
34506 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34507 if (UNTAG_Bool(REGB0)) {
34508 } else {
34509 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6385);
34510 }
34511 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
34512 /* ./parser//parser_prod.nit:6386 */
34513 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34514 if (UNTAG_Bool(REGB0)) {
34515 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6386);
34516 }
34517 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
34518 /* ./parser//parser_prod.nit:6387 */
34519 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
34520 if (UNTAG_Bool(REGB0)) {
34521 } else {
34522 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6387);
34523 }
34524 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[4]) = fra.me.REG[2];
34525 /* ./parser//parser_prod.nit:6388 */
34526 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34527 if (UNTAG_Bool(REGB0)) {
34528 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6388);
34529 }
34530 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
34531 /* ./parser//parser_prod.nit:6389 */
34532 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
34533 if (UNTAG_Bool(REGB0)) {
34534 } else {
34535 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6389);
34536 }
34537 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[4]) = fra.me.REG[3];
34538 /* ./parser//parser_prod.nit:6390 */
34539 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34540 if (UNTAG_Bool(REGB0)) {
34541 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6390);
34542 }
34543 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
34544 stack_frame_head = fra.me.prev;
34545 init_table[itpos212] = 1;
34546 return;
34547 }
34548 void parser___parser_prod___AVarReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
34549 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34550 val_t REGB0;
34551 val_t REGB1;
34552 val_t tmp;
34553 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34554 fra.me.file = LOCATE_parser___parser_prod;
34555 fra.me.line = 6393;
34556 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___replace_child;
34557 fra.me.has_broke = 0;
34558 fra.me.REG_size = 4;
34559 fra.me.REG[0] = NIT_NULL;
34560 fra.me.REG[1] = NIT_NULL;
34561 fra.me.REG[2] = NIT_NULL;
34562 fra.me.REG[3] = NIT_NULL;
34563 fra.me.REG[0] = p0;
34564 fra.me.REG[1] = p1;
34565 fra.me.REG[2] = p2;
34566 /* ./parser//parser_prod.nit:6395 */
34567 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
34568 if (UNTAG_Bool(REGB0)) {
34569 } else {
34570 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6395);
34571 }
34572 fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
34573 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34574 if (UNTAG_Bool(REGB0)) {
34575 } else {
34576 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34577 REGB0 = REGB1;
34578 }
34579 if (UNTAG_Bool(REGB0)) {
34580 /* ./parser//parser_prod.nit:6396 */
34581 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34582 if (UNTAG_Bool(REGB0)) {
34583 } else {
34584 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34585 if (UNTAG_Bool(REGB1)) {
34586 REGB1 = TAG_Bool(false);
34587 REGB0 = REGB1;
34588 } else {
34589 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34590 REGB0 = REGB1;
34591 }
34592 }
34593 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34594 if (UNTAG_Bool(REGB0)) {
34595 /* ./parser//parser_prod.nit:6397 */
34596 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34597 if (UNTAG_Bool(REGB0)) {
34598 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6397);
34599 }
34600 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34601 /* ./parser//parser_prod.nit:6398 */
34602 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*/;
34603 if (UNTAG_Bool(REGB0)) {
34604 } else {
34605 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6398);
34606 }
34607 /* ./parser//parser_prod.nit:6399 */
34608 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
34609 } else {
34610 /* ./parser//parser_prod.nit:6401 */
34611 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6401);
34612 }
34613 /* ./parser//parser_prod.nit:6403 */
34614 goto label1;
34615 }
34616 /* ./parser//parser_prod.nit:6405 */
34617 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
34618 if (UNTAG_Bool(REGB0)) {
34619 } else {
34620 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6405);
34621 }
34622 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
34623 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34624 if (UNTAG_Bool(REGB0)) {
34625 } else {
34626 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34627 REGB0 = REGB1;
34628 }
34629 if (UNTAG_Bool(REGB0)) {
34630 /* ./parser//parser_prod.nit:6406 */
34631 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34632 if (UNTAG_Bool(REGB0)) {
34633 } else {
34634 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34635 if (UNTAG_Bool(REGB1)) {
34636 REGB1 = TAG_Bool(false);
34637 REGB0 = REGB1;
34638 } else {
34639 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34640 REGB0 = REGB1;
34641 }
34642 }
34643 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34644 if (UNTAG_Bool(REGB0)) {
34645 /* ./parser//parser_prod.nit:6407 */
34646 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34647 if (UNTAG_Bool(REGB0)) {
34648 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6407);
34649 }
34650 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34651 /* ./parser//parser_prod.nit:6408 */
34652 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*/;
34653 if (UNTAG_Bool(REGB0)) {
34654 } else {
34655 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6408);
34656 }
34657 /* ./parser//parser_prod.nit:6409 */
34658 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
34659 } else {
34660 /* ./parser//parser_prod.nit:6411 */
34661 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6411);
34662 }
34663 /* ./parser//parser_prod.nit:6413 */
34664 goto label1;
34665 }
34666 /* ./parser//parser_prod.nit:6415 */
34667 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
34668 if (UNTAG_Bool(REGB0)) {
34669 } else {
34670 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6415);
34671 }
34672 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
34673 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34674 if (UNTAG_Bool(REGB0)) {
34675 } else {
34676 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34677 REGB0 = REGB1;
34678 }
34679 if (UNTAG_Bool(REGB0)) {
34680 /* ./parser//parser_prod.nit:6416 */
34681 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34682 if (UNTAG_Bool(REGB0)) {
34683 } else {
34684 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34685 if (UNTAG_Bool(REGB1)) {
34686 REGB1 = TAG_Bool(false);
34687 REGB0 = REGB1;
34688 } else {
34689 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34690 REGB0 = REGB1;
34691 }
34692 }
34693 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34694 if (UNTAG_Bool(REGB0)) {
34695 /* ./parser//parser_prod.nit:6417 */
34696 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34697 if (UNTAG_Bool(REGB0)) {
34698 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6417);
34699 }
34700 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34701 /* ./parser//parser_prod.nit:6418 */
34702 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
34703 if (UNTAG_Bool(REGB0)) {
34704 } else {
34705 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6418);
34706 }
34707 /* ./parser//parser_prod.nit:6419 */
34708 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
34709 } else {
34710 /* ./parser//parser_prod.nit:6421 */
34711 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6421);
34712 }
34713 /* ./parser//parser_prod.nit:6423 */
34714 goto label1;
34715 }
34716 label1: while(0);
34717 stack_frame_head = fra.me.prev;
34718 return;
34719 }
34720 void parser___parser_prod___AVarReassignExpr___visit_all(val_t p0, val_t p1){
34721 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34722 val_t REGB0;
34723 val_t tmp;
34724 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34725 fra.me.file = LOCATE_parser___parser_prod;
34726 fra.me.line = 6427;
34727 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___visit_all;
34728 fra.me.has_broke = 0;
34729 fra.me.REG_size = 3;
34730 fra.me.REG[0] = NIT_NULL;
34731 fra.me.REG[1] = NIT_NULL;
34732 fra.me.REG[2] = NIT_NULL;
34733 fra.me.REG[0] = p0;
34734 fra.me.REG[1] = p1;
34735 /* ./parser//parser_prod.nit:6429 */
34736 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
34737 if (UNTAG_Bool(REGB0)) {
34738 } else {
34739 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6429);
34740 }
34741 fra.me.REG[2] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
34742 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34743 /* ./parser//parser_prod.nit:6430 */
34744 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
34745 if (UNTAG_Bool(REGB0)) {
34746 } else {
34747 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6430);
34748 }
34749 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
34750 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34751 /* ./parser//parser_prod.nit:6431 */
34752 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
34753 if (UNTAG_Bool(REGB0)) {
34754 } else {
34755 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6431);
34756 }
34757 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
34758 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34759 stack_frame_head = fra.me.prev;
34760 return;
34761 }
34762 void parser___parser_prod___ARangeExpr___empty_init(val_t p0, int* init_table){
34763 int itpos213 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ARangeExpr].i;
34764 struct {struct stack_frame_t me;} fra;
34765 val_t tmp;
34766 if (init_table[itpos213]) return;
34767 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34768 fra.me.file = LOCATE_parser___parser_prod;
34769 fra.me.line = 6435;
34770 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___empty_init;
34771 fra.me.has_broke = 0;
34772 fra.me.REG_size = 1;
34773 fra.me.REG[0] = NIT_NULL;
34774 fra.me.REG[0] = p0;
34775 stack_frame_head = fra.me.prev;
34776 init_table[itpos213] = 1;
34777 return;
34778 }
34779 void parser___parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
34780 int itpos214 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ARangeExpr].i;
34781 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34782 val_t REGB0;
34783 val_t tmp;
34784 if (init_table[itpos214]) return;
34785 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34786 fra.me.file = LOCATE_parser___parser_prod;
34787 fra.me.line = 6437;
34788 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___init_arangeexpr;
34789 fra.me.has_broke = 0;
34790 fra.me.REG_size = 4;
34791 fra.me.REG[0] = NIT_NULL;
34792 fra.me.REG[1] = NIT_NULL;
34793 fra.me.REG[2] = NIT_NULL;
34794 fra.me.REG[3] = NIT_NULL;
34795 fra.me.REG[0] = p0;
34796 fra.me.REG[1] = p1;
34797 fra.me.REG[2] = p2;
34798 /* ./parser//parser_prod.nit:6437 */
34799 fra.me.REG[3] = fra.me.REG[0];
34800 /* ./parser//parser_prod.nit:6442 */
34801 CALL_parser___parser_prod___ARangeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
34802 /* ./parser//parser_prod.nit:6443 */
34803 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34804 if (UNTAG_Bool(REGB0)) {
34805 } else {
34806 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6443);
34807 }
34808 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
34809 /* ./parser//parser_prod.nit:6444 */
34810 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34811 if (UNTAG_Bool(REGB0)) {
34812 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6444);
34813 }
34814 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
34815 /* ./parser//parser_prod.nit:6445 */
34816 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
34817 if (UNTAG_Bool(REGB0)) {
34818 } else {
34819 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6445);
34820 }
34821 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
34822 /* ./parser//parser_prod.nit:6446 */
34823 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34824 if (UNTAG_Bool(REGB0)) {
34825 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6446);
34826 }
34827 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
34828 stack_frame_head = fra.me.prev;
34829 init_table[itpos214] = 1;
34830 return;
34831 }
34832 void parser___parser_prod___ARangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
34833 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34834 val_t REGB0;
34835 val_t REGB1;
34836 val_t tmp;
34837 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34838 fra.me.file = LOCATE_parser___parser_prod;
34839 fra.me.line = 6449;
34840 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___replace_child;
34841 fra.me.has_broke = 0;
34842 fra.me.REG_size = 4;
34843 fra.me.REG[0] = NIT_NULL;
34844 fra.me.REG[1] = NIT_NULL;
34845 fra.me.REG[2] = NIT_NULL;
34846 fra.me.REG[3] = NIT_NULL;
34847 fra.me.REG[0] = p0;
34848 fra.me.REG[1] = p1;
34849 fra.me.REG[2] = p2;
34850 /* ./parser//parser_prod.nit:6451 */
34851 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
34852 if (UNTAG_Bool(REGB0)) {
34853 } else {
34854 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6451);
34855 }
34856 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
34857 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34858 if (UNTAG_Bool(REGB0)) {
34859 } else {
34860 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34861 REGB0 = REGB1;
34862 }
34863 if (UNTAG_Bool(REGB0)) {
34864 /* ./parser//parser_prod.nit:6452 */
34865 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34866 if (UNTAG_Bool(REGB0)) {
34867 } else {
34868 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34869 if (UNTAG_Bool(REGB1)) {
34870 REGB1 = TAG_Bool(false);
34871 REGB0 = REGB1;
34872 } else {
34873 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34874 REGB0 = REGB1;
34875 }
34876 }
34877 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34878 if (UNTAG_Bool(REGB0)) {
34879 /* ./parser//parser_prod.nit:6453 */
34880 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34881 if (UNTAG_Bool(REGB0)) {
34882 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6453);
34883 }
34884 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34885 /* ./parser//parser_prod.nit:6454 */
34886 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
34887 if (UNTAG_Bool(REGB0)) {
34888 } else {
34889 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6454);
34890 }
34891 /* ./parser//parser_prod.nit:6455 */
34892 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
34893 } else {
34894 /* ./parser//parser_prod.nit:6457 */
34895 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6457);
34896 }
34897 /* ./parser//parser_prod.nit:6459 */
34898 goto label1;
34899 }
34900 /* ./parser//parser_prod.nit:6461 */
34901 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
34902 if (UNTAG_Bool(REGB0)) {
34903 } else {
34904 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6461);
34905 }
34906 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
34907 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34908 if (UNTAG_Bool(REGB0)) {
34909 } else {
34910 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34911 REGB0 = REGB1;
34912 }
34913 if (UNTAG_Bool(REGB0)) {
34914 /* ./parser//parser_prod.nit:6462 */
34915 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34916 if (UNTAG_Bool(REGB0)) {
34917 } else {
34918 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34919 if (UNTAG_Bool(REGB1)) {
34920 REGB1 = TAG_Bool(false);
34921 REGB0 = REGB1;
34922 } else {
34923 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34924 REGB0 = REGB1;
34925 }
34926 }
34927 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34928 if (UNTAG_Bool(REGB0)) {
34929 /* ./parser//parser_prod.nit:6463 */
34930 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34931 if (UNTAG_Bool(REGB0)) {
34932 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6463);
34933 }
34934 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34935 /* ./parser//parser_prod.nit:6464 */
34936 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
34937 if (UNTAG_Bool(REGB0)) {
34938 } else {
34939 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6464);
34940 }
34941 /* ./parser//parser_prod.nit:6465 */
34942 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
34943 } else {
34944 /* ./parser//parser_prod.nit:6467 */
34945 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6467);
34946 }
34947 /* ./parser//parser_prod.nit:6469 */
34948 goto label1;
34949 }
34950 label1: while(0);
34951 stack_frame_head = fra.me.prev;
34952 return;
34953 }
34954 void parser___parser_prod___ARangeExpr___visit_all(val_t p0, val_t p1){
34955 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34956 val_t REGB0;
34957 val_t tmp;
34958 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34959 fra.me.file = LOCATE_parser___parser_prod;
34960 fra.me.line = 6473;
34961 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___visit_all;
34962 fra.me.has_broke = 0;
34963 fra.me.REG_size = 3;
34964 fra.me.REG[0] = NIT_NULL;
34965 fra.me.REG[1] = NIT_NULL;
34966 fra.me.REG[2] = NIT_NULL;
34967 fra.me.REG[0] = p0;
34968 fra.me.REG[1] = p1;
34969 /* ./parser//parser_prod.nit:6475 */
34970 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
34971 if (UNTAG_Bool(REGB0)) {
34972 } else {
34973 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6475);
34974 }
34975 fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
34976 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34977 /* ./parser//parser_prod.nit:6476 */
34978 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
34979 if (UNTAG_Bool(REGB0)) {
34980 } else {
34981 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6476);
34982 }
34983 fra.me.REG[0] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
34984 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34985 stack_frame_head = fra.me.prev;
34986 return;
34987 }
34988 void parser___parser_prod___ACrangeExpr___empty_init(val_t p0, int* init_table){
34989 int itpos215 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACrangeExpr].i;
34990 struct {struct stack_frame_t me;} fra;
34991 val_t tmp;
34992 if (init_table[itpos215]) return;
34993 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34994 fra.me.file = LOCATE_parser___parser_prod;
34995 fra.me.line = 6480;
34996 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___empty_init;
34997 fra.me.has_broke = 0;
34998 fra.me.REG_size = 1;
34999 fra.me.REG[0] = NIT_NULL;
35000 fra.me.REG[0] = p0;
35001 stack_frame_head = fra.me.prev;
35002 init_table[itpos215] = 1;
35003 return;
35004 }
35005 void parser___parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
35006 int itpos216 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACrangeExpr].i;
35007 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35008 val_t REGB0;
35009 val_t tmp;
35010 if (init_table[itpos216]) return;
35011 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35012 fra.me.file = LOCATE_parser___parser_prod;
35013 fra.me.line = 6482;
35014 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___init_acrangeexpr;
35015 fra.me.has_broke = 0;
35016 fra.me.REG_size = 4;
35017 fra.me.REG[0] = NIT_NULL;
35018 fra.me.REG[1] = NIT_NULL;
35019 fra.me.REG[2] = NIT_NULL;
35020 fra.me.REG[3] = NIT_NULL;
35021 fra.me.REG[0] = p0;
35022 fra.me.REG[1] = p1;
35023 fra.me.REG[2] = p2;
35024 /* ./parser//parser_prod.nit:6482 */
35025 fra.me.REG[3] = fra.me.REG[0];
35026 /* ./parser//parser_prod.nit:6487 */
35027 CALL_parser___parser_prod___ACrangeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
35028 /* ./parser//parser_prod.nit:6488 */
35029 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35030 if (UNTAG_Bool(REGB0)) {
35031 } else {
35032 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6488);
35033 }
35034 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
35035 /* ./parser//parser_prod.nit:6489 */
35036 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35037 if (UNTAG_Bool(REGB0)) {
35038 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6489);
35039 }
35040 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
35041 /* ./parser//parser_prod.nit:6490 */
35042 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
35043 if (UNTAG_Bool(REGB0)) {
35044 } else {
35045 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6490);
35046 }
35047 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
35048 /* ./parser//parser_prod.nit:6491 */
35049 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35050 if (UNTAG_Bool(REGB0)) {
35051 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6491);
35052 }
35053 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
35054 stack_frame_head = fra.me.prev;
35055 init_table[itpos216] = 1;
35056 return;
35057 }
35058 void parser___parser_prod___ACrangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
35059 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35060 val_t REGB0;
35061 val_t REGB1;
35062 val_t tmp;
35063 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35064 fra.me.file = LOCATE_parser___parser_prod;
35065 fra.me.line = 6494;
35066 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___replace_child;
35067 fra.me.has_broke = 0;
35068 fra.me.REG_size = 4;
35069 fra.me.REG[0] = NIT_NULL;
35070 fra.me.REG[1] = NIT_NULL;
35071 fra.me.REG[2] = NIT_NULL;
35072 fra.me.REG[3] = NIT_NULL;
35073 fra.me.REG[0] = p0;
35074 fra.me.REG[1] = p1;
35075 fra.me.REG[2] = p2;
35076 /* ./parser//parser_prod.nit:6496 */
35077 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35078 if (UNTAG_Bool(REGB0)) {
35079 } else {
35080 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6496);
35081 }
35082 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
35083 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35084 if (UNTAG_Bool(REGB0)) {
35085 } else {
35086 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35087 REGB0 = REGB1;
35088 }
35089 if (UNTAG_Bool(REGB0)) {
35090 /* ./parser//parser_prod.nit:6497 */
35091 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35092 if (UNTAG_Bool(REGB0)) {
35093 } else {
35094 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35095 if (UNTAG_Bool(REGB1)) {
35096 REGB1 = TAG_Bool(false);
35097 REGB0 = REGB1;
35098 } else {
35099 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35100 REGB0 = REGB1;
35101 }
35102 }
35103 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35104 if (UNTAG_Bool(REGB0)) {
35105 /* ./parser//parser_prod.nit:6498 */
35106 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35107 if (UNTAG_Bool(REGB0)) {
35108 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6498);
35109 }
35110 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35111 /* ./parser//parser_prod.nit:6499 */
35112 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
35113 if (UNTAG_Bool(REGB0)) {
35114 } else {
35115 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6499);
35116 }
35117 /* ./parser//parser_prod.nit:6500 */
35118 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
35119 } else {
35120 /* ./parser//parser_prod.nit:6502 */
35121 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6502);
35122 }
35123 /* ./parser//parser_prod.nit:6504 */
35124 goto label1;
35125 }
35126 /* ./parser//parser_prod.nit:6506 */
35127 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
35128 if (UNTAG_Bool(REGB0)) {
35129 } else {
35130 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6506);
35131 }
35132 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
35133 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35134 if (UNTAG_Bool(REGB0)) {
35135 } else {
35136 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35137 REGB0 = REGB1;
35138 }
35139 if (UNTAG_Bool(REGB0)) {
35140 /* ./parser//parser_prod.nit:6507 */
35141 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35142 if (UNTAG_Bool(REGB0)) {
35143 } else {
35144 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35145 if (UNTAG_Bool(REGB1)) {
35146 REGB1 = TAG_Bool(false);
35147 REGB0 = REGB1;
35148 } else {
35149 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35150 REGB0 = REGB1;
35151 }
35152 }
35153 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35154 if (UNTAG_Bool(REGB0)) {
35155 /* ./parser//parser_prod.nit:6508 */
35156 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35157 if (UNTAG_Bool(REGB0)) {
35158 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6508);
35159 }
35160 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35161 /* ./parser//parser_prod.nit:6509 */
35162 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
35163 if (UNTAG_Bool(REGB0)) {
35164 } else {
35165 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6509);
35166 }
35167 /* ./parser//parser_prod.nit:6510 */
35168 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
35169 } else {
35170 /* ./parser//parser_prod.nit:6512 */
35171 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6512);
35172 }
35173 /* ./parser//parser_prod.nit:6514 */
35174 goto label1;
35175 }
35176 label1: while(0);
35177 stack_frame_head = fra.me.prev;
35178 return;
35179 }
35180 void parser___parser_prod___ACrangeExpr___visit_all(val_t p0, val_t p1){
35181 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35182 val_t REGB0;
35183 val_t tmp;
35184 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35185 fra.me.file = LOCATE_parser___parser_prod;
35186 fra.me.line = 6518;
35187 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___visit_all;
35188 fra.me.has_broke = 0;
35189 fra.me.REG_size = 3;
35190 fra.me.REG[0] = NIT_NULL;
35191 fra.me.REG[1] = NIT_NULL;
35192 fra.me.REG[2] = NIT_NULL;
35193 fra.me.REG[0] = p0;
35194 fra.me.REG[1] = p1;
35195 /* ./parser//parser_prod.nit:6520 */
35196 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35197 if (UNTAG_Bool(REGB0)) {
35198 } else {
35199 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6520);
35200 }
35201 fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
35202 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35203 /* ./parser//parser_prod.nit:6521 */
35204 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
35205 if (UNTAG_Bool(REGB0)) {
35206 } else {
35207 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6521);
35208 }
35209 fra.me.REG[0] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
35210 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35211 stack_frame_head = fra.me.prev;
35212 return;
35213 }
35214 void parser___parser_prod___AOrangeExpr___empty_init(val_t p0, int* init_table){
35215 int itpos217 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrangeExpr].i;
35216 struct {struct stack_frame_t me;} fra;
35217 val_t tmp;
35218 if (init_table[itpos217]) return;
35219 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35220 fra.me.file = LOCATE_parser___parser_prod;
35221 fra.me.line = 6525;
35222 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___empty_init;
35223 fra.me.has_broke = 0;
35224 fra.me.REG_size = 1;
35225 fra.me.REG[0] = NIT_NULL;
35226 fra.me.REG[0] = p0;
35227 stack_frame_head = fra.me.prev;
35228 init_table[itpos217] = 1;
35229 return;
35230 }
35231 void parser___parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
35232 int itpos218 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrangeExpr].i;
35233 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35234 val_t REGB0;
35235 val_t tmp;
35236 if (init_table[itpos218]) return;
35237 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35238 fra.me.file = LOCATE_parser___parser_prod;
35239 fra.me.line = 6527;
35240 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___init_aorangeexpr;
35241 fra.me.has_broke = 0;
35242 fra.me.REG_size = 4;
35243 fra.me.REG[0] = NIT_NULL;
35244 fra.me.REG[1] = NIT_NULL;
35245 fra.me.REG[2] = NIT_NULL;
35246 fra.me.REG[3] = NIT_NULL;
35247 fra.me.REG[0] = p0;
35248 fra.me.REG[1] = p1;
35249 fra.me.REG[2] = p2;
35250 /* ./parser//parser_prod.nit:6527 */
35251 fra.me.REG[3] = fra.me.REG[0];
35252 /* ./parser//parser_prod.nit:6532 */
35253 CALL_parser___parser_prod___AOrangeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
35254 /* ./parser//parser_prod.nit:6533 */
35255 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35256 if (UNTAG_Bool(REGB0)) {
35257 } else {
35258 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6533);
35259 }
35260 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
35261 /* ./parser//parser_prod.nit:6534 */
35262 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35263 if (UNTAG_Bool(REGB0)) {
35264 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6534);
35265 }
35266 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
35267 /* ./parser//parser_prod.nit:6535 */
35268 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
35269 if (UNTAG_Bool(REGB0)) {
35270 } else {
35271 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6535);
35272 }
35273 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
35274 /* ./parser//parser_prod.nit:6536 */
35275 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35276 if (UNTAG_Bool(REGB0)) {
35277 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6536);
35278 }
35279 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
35280 stack_frame_head = fra.me.prev;
35281 init_table[itpos218] = 1;
35282 return;
35283 }
35284 void parser___parser_prod___AOrangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
35285 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35286 val_t REGB0;
35287 val_t REGB1;
35288 val_t tmp;
35289 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35290 fra.me.file = LOCATE_parser___parser_prod;
35291 fra.me.line = 6539;
35292 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___replace_child;
35293 fra.me.has_broke = 0;
35294 fra.me.REG_size = 4;
35295 fra.me.REG[0] = NIT_NULL;
35296 fra.me.REG[1] = NIT_NULL;
35297 fra.me.REG[2] = NIT_NULL;
35298 fra.me.REG[3] = NIT_NULL;
35299 fra.me.REG[0] = p0;
35300 fra.me.REG[1] = p1;
35301 fra.me.REG[2] = p2;
35302 /* ./parser//parser_prod.nit:6541 */
35303 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35304 if (UNTAG_Bool(REGB0)) {
35305 } else {
35306 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6541);
35307 }
35308 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
35309 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35310 if (UNTAG_Bool(REGB0)) {
35311 } else {
35312 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35313 REGB0 = REGB1;
35314 }
35315 if (UNTAG_Bool(REGB0)) {
35316 /* ./parser//parser_prod.nit:6542 */
35317 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35318 if (UNTAG_Bool(REGB0)) {
35319 } else {
35320 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35321 if (UNTAG_Bool(REGB1)) {
35322 REGB1 = TAG_Bool(false);
35323 REGB0 = REGB1;
35324 } else {
35325 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35326 REGB0 = REGB1;
35327 }
35328 }
35329 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35330 if (UNTAG_Bool(REGB0)) {
35331 /* ./parser//parser_prod.nit:6543 */
35332 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35333 if (UNTAG_Bool(REGB0)) {
35334 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6543);
35335 }
35336 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35337 /* ./parser//parser_prod.nit:6544 */
35338 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
35339 if (UNTAG_Bool(REGB0)) {
35340 } else {
35341 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6544);
35342 }
35343 /* ./parser//parser_prod.nit:6545 */
35344 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
35345 } else {
35346 /* ./parser//parser_prod.nit:6547 */
35347 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6547);
35348 }
35349 /* ./parser//parser_prod.nit:6549 */
35350 goto label1;
35351 }
35352 /* ./parser//parser_prod.nit:6551 */
35353 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
35354 if (UNTAG_Bool(REGB0)) {
35355 } else {
35356 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6551);
35357 }
35358 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
35359 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35360 if (UNTAG_Bool(REGB0)) {
35361 } else {
35362 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35363 REGB0 = REGB1;
35364 }
35365 if (UNTAG_Bool(REGB0)) {
35366 /* ./parser//parser_prod.nit:6552 */
35367 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35368 if (UNTAG_Bool(REGB0)) {
35369 } else {
35370 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35371 if (UNTAG_Bool(REGB1)) {
35372 REGB1 = TAG_Bool(false);
35373 REGB0 = REGB1;
35374 } else {
35375 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35376 REGB0 = REGB1;
35377 }
35378 }
35379 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35380 if (UNTAG_Bool(REGB0)) {
35381 /* ./parser//parser_prod.nit:6553 */
35382 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35383 if (UNTAG_Bool(REGB0)) {
35384 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6553);
35385 }
35386 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35387 /* ./parser//parser_prod.nit:6554 */
35388 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
35389 if (UNTAG_Bool(REGB0)) {
35390 } else {
35391 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6554);
35392 }
35393 /* ./parser//parser_prod.nit:6555 */
35394 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
35395 } else {
35396 /* ./parser//parser_prod.nit:6557 */
35397 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6557);
35398 }
35399 /* ./parser//parser_prod.nit:6559 */
35400 goto label1;
35401 }
35402 label1: while(0);
35403 stack_frame_head = fra.me.prev;
35404 return;
35405 }
35406 void parser___parser_prod___AOrangeExpr___visit_all(val_t p0, val_t p1){
35407 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35408 val_t REGB0;
35409 val_t tmp;
35410 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35411 fra.me.file = LOCATE_parser___parser_prod;
35412 fra.me.line = 6563;
35413 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___visit_all;
35414 fra.me.has_broke = 0;
35415 fra.me.REG_size = 3;
35416 fra.me.REG[0] = NIT_NULL;
35417 fra.me.REG[1] = NIT_NULL;
35418 fra.me.REG[2] = NIT_NULL;
35419 fra.me.REG[0] = p0;
35420 fra.me.REG[1] = p1;
35421 /* ./parser//parser_prod.nit:6565 */
35422 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35423 if (UNTAG_Bool(REGB0)) {
35424 } else {
35425 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6565);
35426 }
35427 fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
35428 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35429 /* ./parser//parser_prod.nit:6566 */
35430 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
35431 if (UNTAG_Bool(REGB0)) {
35432 } else {
35433 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6566);
35434 }
35435 fra.me.REG[0] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
35436 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35437 stack_frame_head = fra.me.prev;
35438 return;
35439 }
35440 void parser___parser_prod___AArrayExpr___empty_init(val_t p0, int* init_table){
35441 int itpos219 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AArrayExpr].i;
35442 struct {struct stack_frame_t me;} fra;
35443 val_t tmp;
35444 if (init_table[itpos219]) return;
35445 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35446 fra.me.file = LOCATE_parser___parser_prod;
35447 fra.me.line = 6570;
35448 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___empty_init;
35449 fra.me.has_broke = 0;
35450 fra.me.REG_size = 1;
35451 fra.me.REG[0] = NIT_NULL;
35452 fra.me.REG[0] = p0;
35453 stack_frame_head = fra.me.prev;
35454 init_table[itpos219] = 1;
35455 return;
35456 }
35457 void parser___parser_prod___AArrayExpr___init_aarrayexpr(val_t p0, val_t p1, int* init_table){
35458 int itpos220 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AArrayExpr].i;
35459 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35460 val_t tmp;
35461 if (init_table[itpos220]) return;
35462 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35463 fra.me.file = LOCATE_parser___parser_prod;
35464 fra.me.line = 6572;
35465 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___init_aarrayexpr;
35466 fra.me.has_broke = 0;
35467 fra.me.REG_size = 2;
35468 fra.me.REG[0] = NIT_NULL;
35469 fra.me.REG[1] = NIT_NULL;
35470 fra.me.REG[0] = p0;
35471 fra.me.REG[1] = p1;
35472 /* ./parser//parser_prod.nit:6576 */
35473 CALL_parser___parser_prod___AArrayExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
35474 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));
35475 stack_frame_head = fra.me.prev;
35476 init_table[itpos220] = 1;
35477 return;
35478 }
35479 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){
35480 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35481 val_t REGB0;
35482 fun_t CREG[1];
35483 val_t tmp;
35484 /* ./parser//parser_prod.nit:6577 */
35485 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35486 fra.me.file = LOCATE_parser___parser_prod;
35487 fra.me.line = 0;
35488 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___init_aarrayexpr;
35489 fra.me.has_broke = 0;
35490 fra.me.REG_size = 2;
35491 fra.me.REG[0] = NIT_NULL;
35492 fra.me.REG[1] = NIT_NULL;
35493 fra.me.closure_ctx = closctx_param;
35494 fra.me.closure_funs = CREG;
35495 fra.me.REG[0] = p0;
35496 CREG[0] = clos_fun0;
35497 /* ./parser//parser_prod.nit:6578 */
35498 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
35499 if (UNTAG_Bool(REGB0)) {
35500 } else {
35501 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6578);
35502 }
35503 /* ./parser//parser_prod.nit:6579 */
35504 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(closctx->REG[0])!=NIT_NULL);
35505 if (UNTAG_Bool(REGB0)) {
35506 } else {
35507 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6579);
35508 }
35509 fra.me.REG[1] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(closctx->REG[0]);
35510 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35511 /* ./parser//parser_prod.nit:6580 */
35512 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
35513 stack_frame_head = fra.me.prev;
35514 return;
35515 }
35516 void parser___parser_prod___AArrayExpr___replace_child(val_t p0, val_t p1, val_t p2){
35517 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35518 val_t REGB0;
35519 val_t REGB1;
35520 val_t REGB2;
35521 val_t REGB3;
35522 val_t REGB4;
35523 val_t tmp;
35524 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35525 fra.me.file = LOCATE_parser___parser_prod;
35526 fra.me.line = 6584;
35527 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___replace_child;
35528 fra.me.has_broke = 0;
35529 fra.me.REG_size = 4;
35530 fra.me.REG[0] = NIT_NULL;
35531 fra.me.REG[1] = NIT_NULL;
35532 fra.me.REG[2] = NIT_NULL;
35533 fra.me.REG[3] = NIT_NULL;
35534 fra.me.REG[0] = p0;
35535 fra.me.REG[1] = p1;
35536 fra.me.REG[2] = p2;
35537 /* ./parser//parser_prod.nit:6586 */
35538 REGB0 = TAG_Int(0);
35539 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
35540 if (UNTAG_Bool(REGB1)) {
35541 } else {
35542 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6586);
35543 }
35544 fra.me.REG[3] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
35545 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
35546 /* ./../lib/standard//kernel.nit:352 */
35547 while(1) {
35548 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
35549 if (UNTAG_Bool(REGB2)) {
35550 } else {
35551 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
35552 }
35553 /* ./../lib/standard//kernel.nit:232 */
35554 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
35555 /* ./../lib/standard//kernel.nit:352 */
35556 if (UNTAG_Bool(REGB2)) {
35557 /* ./parser//parser_prod.nit:6586 */
35558 REGB2 = REGB0;
35559 /* ./parser//parser_prod.nit:6587 */
35560 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
35561 if (UNTAG_Bool(REGB3)) {
35562 } else {
35563 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6587);
35564 }
35565 fra.me.REG[3] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
35566 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
35567 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
35568 if (UNTAG_Bool(REGB3)) {
35569 } else {
35570 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35571 if (UNTAG_Bool(REGB4)) {
35572 REGB4 = TAG_Bool(false);
35573 REGB3 = REGB4;
35574 } else {
35575 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35576 REGB3 = REGB4;
35577 }
35578 }
35579 if (UNTAG_Bool(REGB3)) {
35580 /* ./parser//parser_prod.nit:6588 */
35581 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35582 if (UNTAG_Bool(REGB3)) {
35583 } else {
35584 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35585 if (UNTAG_Bool(REGB4)) {
35586 REGB4 = TAG_Bool(false);
35587 REGB3 = REGB4;
35588 } else {
35589 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35590 REGB3 = REGB4;
35591 }
35592 }
35593 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
35594 if (UNTAG_Bool(REGB3)) {
35595 /* ./parser//parser_prod.nit:6589 */
35596 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*/;
35597 if (UNTAG_Bool(REGB3)) {
35598 } else {
35599 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6589);
35600 }
35601 /* ./parser//parser_prod.nit:6590 */
35602 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
35603 if (UNTAG_Bool(REGB3)) {
35604 } else {
35605 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6590);
35606 }
35607 fra.me.REG[3] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
35608 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
35609 /* ./parser//parser_prod.nit:6591 */
35610 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35611 if (UNTAG_Bool(REGB3)) {
35612 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6591);
35613 }
35614 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35615 } else {
35616 /* ./parser//parser_prod.nit:6593 */
35617 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
35618 if (UNTAG_Bool(REGB3)) {
35619 } else {
35620 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6593);
35621 }
35622 fra.me.REG[3] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
35623 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
35624 }
35625 /* ./parser//parser_prod.nit:6595 */
35626 goto label1;
35627 }
35628 /* ./../lib/standard//kernel.nit:354 */
35629 REGB2 = TAG_Int(1);
35630 /* ./../lib/standard//kernel.nit:235 */
35631 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
35632 /* ./../lib/standard//kernel.nit:354 */
35633 REGB0 = REGB2;
35634 } else {
35635 /* ./../lib/standard//kernel.nit:352 */
35636 goto label2;
35637 }
35638 }
35639 label2: while(0);
35640 label1: while(0);
35641 stack_frame_head = fra.me.prev;
35642 return;
35643 }
35644 void parser___parser_prod___AArrayExpr___visit_all(val_t p0, val_t p1){
35645 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35646 val_t REGB0;
35647 val_t tmp;
35648 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35649 fra.me.file = LOCATE_parser___parser_prod;
35650 fra.me.line = 6600;
35651 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___visit_all;
35652 fra.me.has_broke = 0;
35653 fra.me.REG_size = 2;
35654 fra.me.REG[0] = NIT_NULL;
35655 fra.me.REG[1] = NIT_NULL;
35656 fra.me.REG[0] = p0;
35657 fra.me.REG[1] = p1;
35658 /* ./parser//parser_prod.nit:6602 */
35659 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
35660 if (UNTAG_Bool(REGB0)) {
35661 } else {
35662 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6602);
35663 }
35664 fra.me.REG[0] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
35665 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));
35666 stack_frame_head = fra.me.prev;
35667 return;
35668 }
35669 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){
35670 struct {struct stack_frame_t me;} fra;
35671 fun_t CREG[1];
35672 val_t tmp;
35673 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35674 fra.me.file = LOCATE_parser___parser_prod;
35675 fra.me.line = 0;
35676 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___visit_all;
35677 fra.me.has_broke = 0;
35678 fra.me.REG_size = 1;
35679 fra.me.REG[0] = NIT_NULL;
35680 fra.me.closure_ctx = closctx_param;
35681 fra.me.closure_funs = CREG;
35682 fra.me.REG[0] = p0;
35683 CREG[0] = clos_fun0;
35684 /* ./parser//parser_prod.nit:6603 */
35685 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
35686 stack_frame_head = fra.me.prev;
35687 return;
35688 }
35689 void parser___parser_prod___ASelfExpr___empty_init(val_t p0, int* init_table){
35690 int itpos221 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASelfExpr].i;
35691 struct {struct stack_frame_t me;} fra;
35692 val_t tmp;
35693 if (init_table[itpos221]) return;
35694 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35695 fra.me.file = LOCATE_parser___parser_prod;
35696 fra.me.line = 6608;
35697 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___empty_init;
35698 fra.me.has_broke = 0;
35699 fra.me.REG_size = 1;
35700 fra.me.REG[0] = NIT_NULL;
35701 fra.me.REG[0] = p0;
35702 stack_frame_head = fra.me.prev;
35703 init_table[itpos221] = 1;
35704 return;
35705 }
35706 void parser___parser_prod___ASelfExpr___init_aselfexpr(val_t p0, val_t p1, int* init_table){
35707 int itpos222 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASelfExpr].i;
35708 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35709 val_t REGB0;
35710 val_t tmp;
35711 if (init_table[itpos222]) return;
35712 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35713 fra.me.file = LOCATE_parser___parser_prod;
35714 fra.me.line = 6610;
35715 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___init_aselfexpr;
35716 fra.me.has_broke = 0;
35717 fra.me.REG_size = 3;
35718 fra.me.REG[0] = NIT_NULL;
35719 fra.me.REG[1] = NIT_NULL;
35720 fra.me.REG[2] = NIT_NULL;
35721 fra.me.REG[0] = p0;
35722 fra.me.REG[1] = p1;
35723 /* ./parser//parser_prod.nit:6610 */
35724 fra.me.REG[2] = fra.me.REG[0];
35725 /* ./parser//parser_prod.nit:6614 */
35726 CALL_parser___parser_prod___ASelfExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
35727 /* ./parser//parser_prod.nit:6615 */
35728 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35729 if (UNTAG_Bool(REGB0)) {
35730 } else {
35731 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6615);
35732 }
35733 ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[2]) = fra.me.REG[1];
35734 /* ./parser//parser_prod.nit:6616 */
35735 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35736 if (UNTAG_Bool(REGB0)) {
35737 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6616);
35738 }
35739 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35740 stack_frame_head = fra.me.prev;
35741 init_table[itpos222] = 1;
35742 return;
35743 }
35744 void parser___parser_prod___ASelfExpr___replace_child(val_t p0, val_t p1, val_t p2){
35745 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35746 val_t REGB0;
35747 val_t REGB1;
35748 val_t tmp;
35749 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35750 fra.me.file = LOCATE_parser___parser_prod;
35751 fra.me.line = 6619;
35752 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___replace_child;
35753 fra.me.has_broke = 0;
35754 fra.me.REG_size = 4;
35755 fra.me.REG[0] = NIT_NULL;
35756 fra.me.REG[1] = NIT_NULL;
35757 fra.me.REG[2] = NIT_NULL;
35758 fra.me.REG[3] = NIT_NULL;
35759 fra.me.REG[0] = p0;
35760 fra.me.REG[1] = p1;
35761 fra.me.REG[2] = p2;
35762 /* ./parser//parser_prod.nit:6621 */
35763 fra.me.REG[3] = ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]);
35764 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
35765 if (UNTAG_Bool(REGB0)) {
35766 } else {
35767 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35768 if (UNTAG_Bool(REGB1)) {
35769 REGB1 = TAG_Bool(false);
35770 REGB0 = REGB1;
35771 } else {
35772 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35773 REGB0 = REGB1;
35774 }
35775 }
35776 if (UNTAG_Bool(REGB0)) {
35777 /* ./parser//parser_prod.nit:6622 */
35778 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35779 if (UNTAG_Bool(REGB0)) {
35780 } else {
35781 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35782 if (UNTAG_Bool(REGB1)) {
35783 REGB1 = TAG_Bool(false);
35784 REGB0 = REGB1;
35785 } else {
35786 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35787 REGB0 = REGB1;
35788 }
35789 }
35790 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35791 if (UNTAG_Bool(REGB0)) {
35792 /* ./parser//parser_prod.nit:6623 */
35793 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35794 if (UNTAG_Bool(REGB0)) {
35795 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6623);
35796 }
35797 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35798 /* ./parser//parser_prod.nit:6624 */
35799 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*/;
35800 if (UNTAG_Bool(REGB0)) {
35801 } else {
35802 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6624);
35803 }
35804 /* ./parser//parser_prod.nit:6625 */
35805 ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]) = fra.me.REG[2];
35806 } else {
35807 /* ./parser//parser_prod.nit:6627 */
35808 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6627);
35809 }
35810 /* ./parser//parser_prod.nit:6629 */
35811 goto label1;
35812 }
35813 label1: while(0);
35814 stack_frame_head = fra.me.prev;
35815 return;
35816 }
35817 void parser___parser_prod___ASelfExpr___visit_all(val_t p0, val_t p1){
35818 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35819 val_t tmp;
35820 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35821 fra.me.file = LOCATE_parser___parser_prod;
35822 fra.me.line = 6633;
35823 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___visit_all;
35824 fra.me.has_broke = 0;
35825 fra.me.REG_size = 2;
35826 fra.me.REG[0] = NIT_NULL;
35827 fra.me.REG[1] = NIT_NULL;
35828 fra.me.REG[0] = p0;
35829 fra.me.REG[1] = p1;
35830 /* ./parser//parser_prod.nit:6635 */
35831 fra.me.REG[0] = ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]);
35832 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35833 stack_frame_head = fra.me.prev;
35834 return;
35835 }
35836 void parser___parser_prod___AImplicitSelfExpr___empty_init(val_t p0, int* init_table){
35837 int itpos223 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AImplicitSelfExpr].i;
35838 struct {struct stack_frame_t me;} fra;
35839 val_t tmp;
35840 if (init_table[itpos223]) return;
35841 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35842 fra.me.file = LOCATE_parser___parser_prod;
35843 fra.me.line = 6639;
35844 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___empty_init;
35845 fra.me.has_broke = 0;
35846 fra.me.REG_size = 1;
35847 fra.me.REG[0] = NIT_NULL;
35848 fra.me.REG[0] = p0;
35849 stack_frame_head = fra.me.prev;
35850 init_table[itpos223] = 1;
35851 return;
35852 }
35853 void parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(val_t p0, int* init_table){
35854 int itpos224 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AImplicitSelfExpr].i;
35855 struct {struct stack_frame_t me;} fra;
35856 val_t tmp;
35857 if (init_table[itpos224]) return;
35858 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35859 fra.me.file = LOCATE_parser___parser_prod;
35860 fra.me.line = 6641;
35861 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr;
35862 fra.me.has_broke = 0;
35863 fra.me.REG_size = 1;
35864 fra.me.REG[0] = NIT_NULL;
35865 fra.me.REG[0] = p0;
35866 /* ./parser//parser_prod.nit:6643 */
35867 CALL_parser___parser_prod___AImplicitSelfExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
35868 stack_frame_head = fra.me.prev;
35869 init_table[itpos224] = 1;
35870 return;
35871 }
35872 void parser___parser_prod___AImplicitSelfExpr___replace_child(val_t p0, val_t p1, val_t p2){
35873 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35874 val_t tmp;
35875 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35876 fra.me.file = LOCATE_parser___parser_prod;
35877 fra.me.line = 6646;
35878 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___replace_child;
35879 fra.me.has_broke = 0;
35880 fra.me.REG_size = 3;
35881 fra.me.REG[0] = NIT_NULL;
35882 fra.me.REG[1] = NIT_NULL;
35883 fra.me.REG[2] = NIT_NULL;
35884 fra.me.REG[0] = p0;
35885 fra.me.REG[1] = p1;
35886 fra.me.REG[2] = p2;
35887 stack_frame_head = fra.me.prev;
35888 return;
35889 }
35890 void parser___parser_prod___AImplicitSelfExpr___visit_all(val_t p0, val_t p1){
35891 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35892 val_t tmp;
35893 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35894 fra.me.file = LOCATE_parser___parser_prod;
35895 fra.me.line = 6650;
35896 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___visit_all;
35897 fra.me.has_broke = 0;
35898 fra.me.REG_size = 2;
35899 fra.me.REG[0] = NIT_NULL;
35900 fra.me.REG[1] = NIT_NULL;
35901 fra.me.REG[0] = p0;
35902 fra.me.REG[1] = p1;
35903 stack_frame_head = fra.me.prev;
35904 return;
35905 }
35906 void parser___parser_prod___ATrueExpr___empty_init(val_t p0, int* init_table){
35907 int itpos225 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATrueExpr].i;
35908 struct {struct stack_frame_t me;} fra;
35909 val_t tmp;
35910 if (init_table[itpos225]) return;
35911 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35912 fra.me.file = LOCATE_parser___parser_prod;
35913 fra.me.line = 6655;
35914 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___empty_init;
35915 fra.me.has_broke = 0;
35916 fra.me.REG_size = 1;
35917 fra.me.REG[0] = NIT_NULL;
35918 fra.me.REG[0] = p0;
35919 stack_frame_head = fra.me.prev;
35920 init_table[itpos225] = 1;
35921 return;
35922 }
35923 void parser___parser_prod___ATrueExpr___init_atrueexpr(val_t p0, val_t p1, int* init_table){
35924 int itpos226 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATrueExpr].i;
35925 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35926 val_t REGB0;
35927 val_t tmp;
35928 if (init_table[itpos226]) return;
35929 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35930 fra.me.file = LOCATE_parser___parser_prod;
35931 fra.me.line = 6657;
35932 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___init_atrueexpr;
35933 fra.me.has_broke = 0;
35934 fra.me.REG_size = 3;
35935 fra.me.REG[0] = NIT_NULL;
35936 fra.me.REG[1] = NIT_NULL;
35937 fra.me.REG[2] = NIT_NULL;
35938 fra.me.REG[0] = p0;
35939 fra.me.REG[1] = p1;
35940 /* ./parser//parser_prod.nit:6657 */
35941 fra.me.REG[2] = fra.me.REG[0];
35942 /* ./parser//parser_prod.nit:6661 */
35943 CALL_parser___parser_prod___ATrueExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
35944 /* ./parser//parser_prod.nit:6662 */
35945 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35946 if (UNTAG_Bool(REGB0)) {
35947 } else {
35948 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6662);
35949 }
35950 ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[2]) = fra.me.REG[1];
35951 /* ./parser//parser_prod.nit:6663 */
35952 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35953 if (UNTAG_Bool(REGB0)) {
35954 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6663);
35955 }
35956 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35957 stack_frame_head = fra.me.prev;
35958 init_table[itpos226] = 1;
35959 return;
35960 }
35961 void parser___parser_prod___ATrueExpr___replace_child(val_t p0, val_t p1, val_t p2){
35962 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35963 val_t REGB0;
35964 val_t REGB1;
35965 val_t tmp;
35966 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35967 fra.me.file = LOCATE_parser___parser_prod;
35968 fra.me.line = 6666;
35969 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___replace_child;
35970 fra.me.has_broke = 0;
35971 fra.me.REG_size = 4;
35972 fra.me.REG[0] = NIT_NULL;
35973 fra.me.REG[1] = NIT_NULL;
35974 fra.me.REG[2] = NIT_NULL;
35975 fra.me.REG[3] = NIT_NULL;
35976 fra.me.REG[0] = p0;
35977 fra.me.REG[1] = p1;
35978 fra.me.REG[2] = p2;
35979 /* ./parser//parser_prod.nit:6668 */
35980 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0])!=NIT_NULL);
35981 if (UNTAG_Bool(REGB0)) {
35982 } else {
35983 nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser___parser_prod, 6668);
35984 }
35985 fra.me.REG[3] = ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]);
35986 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35987 if (UNTAG_Bool(REGB0)) {
35988 } else {
35989 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35990 REGB0 = REGB1;
35991 }
35992 if (UNTAG_Bool(REGB0)) {
35993 /* ./parser//parser_prod.nit:6669 */
35994 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35995 if (UNTAG_Bool(REGB0)) {
35996 } else {
35997 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35998 if (UNTAG_Bool(REGB1)) {
35999 REGB1 = TAG_Bool(false);
36000 REGB0 = REGB1;
36001 } else {
36002 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36003 REGB0 = REGB1;
36004 }
36005 }
36006 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36007 if (UNTAG_Bool(REGB0)) {
36008 /* ./parser//parser_prod.nit:6670 */
36009 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36010 if (UNTAG_Bool(REGB0)) {
36011 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6670);
36012 }
36013 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36014 /* ./parser//parser_prod.nit:6671 */
36015 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*/;
36016 if (UNTAG_Bool(REGB0)) {
36017 } else {
36018 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6671);
36019 }
36020 /* ./parser//parser_prod.nit:6672 */
36021 ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]) = fra.me.REG[2];
36022 } else {
36023 /* ./parser//parser_prod.nit:6674 */
36024 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6674);
36025 }
36026 /* ./parser//parser_prod.nit:6676 */
36027 goto label1;
36028 }
36029 label1: while(0);
36030 stack_frame_head = fra.me.prev;
36031 return;
36032 }
36033 void parser___parser_prod___ATrueExpr___visit_all(val_t p0, val_t p1){
36034 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36035 val_t REGB0;
36036 val_t tmp;
36037 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36038 fra.me.file = LOCATE_parser___parser_prod;
36039 fra.me.line = 6680;
36040 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___visit_all;
36041 fra.me.has_broke = 0;
36042 fra.me.REG_size = 2;
36043 fra.me.REG[0] = NIT_NULL;
36044 fra.me.REG[1] = NIT_NULL;
36045 fra.me.REG[0] = p0;
36046 fra.me.REG[1] = p1;
36047 /* ./parser//parser_prod.nit:6682 */
36048 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0])!=NIT_NULL);
36049 if (UNTAG_Bool(REGB0)) {
36050 } else {
36051 nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser___parser_prod, 6682);
36052 }
36053 fra.me.REG[0] = ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]);
36054 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36055 stack_frame_head = fra.me.prev;
36056 return;
36057 }
36058 void parser___parser_prod___AFalseExpr___empty_init(val_t p0, int* init_table){
36059 int itpos227 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFalseExpr].i;
36060 struct {struct stack_frame_t me;} fra;
36061 val_t tmp;
36062 if (init_table[itpos227]) return;
36063 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36064 fra.me.file = LOCATE_parser___parser_prod;
36065 fra.me.line = 6686;
36066 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___empty_init;
36067 fra.me.has_broke = 0;
36068 fra.me.REG_size = 1;
36069 fra.me.REG[0] = NIT_NULL;
36070 fra.me.REG[0] = p0;
36071 stack_frame_head = fra.me.prev;
36072 init_table[itpos227] = 1;
36073 return;
36074 }
36075 void parser___parser_prod___AFalseExpr___init_afalseexpr(val_t p0, val_t p1, int* init_table){
36076 int itpos228 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFalseExpr].i;
36077 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36078 val_t REGB0;
36079 val_t tmp;
36080 if (init_table[itpos228]) return;
36081 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36082 fra.me.file = LOCATE_parser___parser_prod;
36083 fra.me.line = 6688;
36084 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___init_afalseexpr;
36085 fra.me.has_broke = 0;
36086 fra.me.REG_size = 3;
36087 fra.me.REG[0] = NIT_NULL;
36088 fra.me.REG[1] = NIT_NULL;
36089 fra.me.REG[2] = NIT_NULL;
36090 fra.me.REG[0] = p0;
36091 fra.me.REG[1] = p1;
36092 /* ./parser//parser_prod.nit:6688 */
36093 fra.me.REG[2] = fra.me.REG[0];
36094 /* ./parser//parser_prod.nit:6692 */
36095 CALL_parser___parser_prod___AFalseExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36096 /* ./parser//parser_prod.nit:6693 */
36097 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36098 if (UNTAG_Bool(REGB0)) {
36099 } else {
36100 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6693);
36101 }
36102 ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[2]) = fra.me.REG[1];
36103 /* ./parser//parser_prod.nit:6694 */
36104 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36105 if (UNTAG_Bool(REGB0)) {
36106 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6694);
36107 }
36108 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36109 stack_frame_head = fra.me.prev;
36110 init_table[itpos228] = 1;
36111 return;
36112 }
36113 void parser___parser_prod___AFalseExpr___replace_child(val_t p0, val_t p1, val_t p2){
36114 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36115 val_t REGB0;
36116 val_t REGB1;
36117 val_t tmp;
36118 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36119 fra.me.file = LOCATE_parser___parser_prod;
36120 fra.me.line = 6697;
36121 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___replace_child;
36122 fra.me.has_broke = 0;
36123 fra.me.REG_size = 4;
36124 fra.me.REG[0] = NIT_NULL;
36125 fra.me.REG[1] = NIT_NULL;
36126 fra.me.REG[2] = NIT_NULL;
36127 fra.me.REG[3] = NIT_NULL;
36128 fra.me.REG[0] = p0;
36129 fra.me.REG[1] = p1;
36130 fra.me.REG[2] = p2;
36131 /* ./parser//parser_prod.nit:6699 */
36132 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0])!=NIT_NULL);
36133 if (UNTAG_Bool(REGB0)) {
36134 } else {
36135 nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser___parser_prod, 6699);
36136 }
36137 fra.me.REG[3] = ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]);
36138 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36139 if (UNTAG_Bool(REGB0)) {
36140 } else {
36141 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36142 REGB0 = REGB1;
36143 }
36144 if (UNTAG_Bool(REGB0)) {
36145 /* ./parser//parser_prod.nit:6700 */
36146 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36147 if (UNTAG_Bool(REGB0)) {
36148 } else {
36149 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36150 if (UNTAG_Bool(REGB1)) {
36151 REGB1 = TAG_Bool(false);
36152 REGB0 = REGB1;
36153 } else {
36154 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36155 REGB0 = REGB1;
36156 }
36157 }
36158 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36159 if (UNTAG_Bool(REGB0)) {
36160 /* ./parser//parser_prod.nit:6701 */
36161 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36162 if (UNTAG_Bool(REGB0)) {
36163 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6701);
36164 }
36165 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36166 /* ./parser//parser_prod.nit:6702 */
36167 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*/;
36168 if (UNTAG_Bool(REGB0)) {
36169 } else {
36170 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6702);
36171 }
36172 /* ./parser//parser_prod.nit:6703 */
36173 ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]) = fra.me.REG[2];
36174 } else {
36175 /* ./parser//parser_prod.nit:6705 */
36176 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6705);
36177 }
36178 /* ./parser//parser_prod.nit:6707 */
36179 goto label1;
36180 }
36181 label1: while(0);
36182 stack_frame_head = fra.me.prev;
36183 return;
36184 }
36185 void parser___parser_prod___AFalseExpr___visit_all(val_t p0, val_t p1){
36186 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36187 val_t REGB0;
36188 val_t tmp;
36189 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36190 fra.me.file = LOCATE_parser___parser_prod;
36191 fra.me.line = 6711;
36192 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___visit_all;
36193 fra.me.has_broke = 0;
36194 fra.me.REG_size = 2;
36195 fra.me.REG[0] = NIT_NULL;
36196 fra.me.REG[1] = NIT_NULL;
36197 fra.me.REG[0] = p0;
36198 fra.me.REG[1] = p1;
36199 /* ./parser//parser_prod.nit:6713 */
36200 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0])!=NIT_NULL);
36201 if (UNTAG_Bool(REGB0)) {
36202 } else {
36203 nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser___parser_prod, 6713);
36204 }
36205 fra.me.REG[0] = ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]);
36206 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36207 stack_frame_head = fra.me.prev;
36208 return;
36209 }
36210 void parser___parser_prod___ANullExpr___empty_init(val_t p0, int* init_table){
36211 int itpos229 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANullExpr].i;
36212 struct {struct stack_frame_t me;} fra;
36213 val_t tmp;
36214 if (init_table[itpos229]) return;
36215 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36216 fra.me.file = LOCATE_parser___parser_prod;
36217 fra.me.line = 6717;
36218 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___empty_init;
36219 fra.me.has_broke = 0;
36220 fra.me.REG_size = 1;
36221 fra.me.REG[0] = NIT_NULL;
36222 fra.me.REG[0] = p0;
36223 stack_frame_head = fra.me.prev;
36224 init_table[itpos229] = 1;
36225 return;
36226 }
36227 void parser___parser_prod___ANullExpr___init_anullexpr(val_t p0, val_t p1, int* init_table){
36228 int itpos230 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANullExpr].i;
36229 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36230 val_t REGB0;
36231 val_t tmp;
36232 if (init_table[itpos230]) return;
36233 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36234 fra.me.file = LOCATE_parser___parser_prod;
36235 fra.me.line = 6719;
36236 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___init_anullexpr;
36237 fra.me.has_broke = 0;
36238 fra.me.REG_size = 3;
36239 fra.me.REG[0] = NIT_NULL;
36240 fra.me.REG[1] = NIT_NULL;
36241 fra.me.REG[2] = NIT_NULL;
36242 fra.me.REG[0] = p0;
36243 fra.me.REG[1] = p1;
36244 /* ./parser//parser_prod.nit:6719 */
36245 fra.me.REG[2] = fra.me.REG[0];
36246 /* ./parser//parser_prod.nit:6723 */
36247 CALL_parser___parser_prod___ANullExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36248 /* ./parser//parser_prod.nit:6724 */
36249 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36250 if (UNTAG_Bool(REGB0)) {
36251 } else {
36252 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6724);
36253 }
36254 ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[2]) = fra.me.REG[1];
36255 /* ./parser//parser_prod.nit:6725 */
36256 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36257 if (UNTAG_Bool(REGB0)) {
36258 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6725);
36259 }
36260 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36261 stack_frame_head = fra.me.prev;
36262 init_table[itpos230] = 1;
36263 return;
36264 }
36265 void parser___parser_prod___ANullExpr___replace_child(val_t p0, val_t p1, val_t p2){
36266 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36267 val_t REGB0;
36268 val_t REGB1;
36269 val_t tmp;
36270 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36271 fra.me.file = LOCATE_parser___parser_prod;
36272 fra.me.line = 6728;
36273 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___replace_child;
36274 fra.me.has_broke = 0;
36275 fra.me.REG_size = 4;
36276 fra.me.REG[0] = NIT_NULL;
36277 fra.me.REG[1] = NIT_NULL;
36278 fra.me.REG[2] = NIT_NULL;
36279 fra.me.REG[3] = NIT_NULL;
36280 fra.me.REG[0] = p0;
36281 fra.me.REG[1] = p1;
36282 fra.me.REG[2] = p2;
36283 /* ./parser//parser_prod.nit:6730 */
36284 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
36285 if (UNTAG_Bool(REGB0)) {
36286 } else {
36287 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 6730);
36288 }
36289 fra.me.REG[3] = ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]);
36290 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36291 if (UNTAG_Bool(REGB0)) {
36292 } else {
36293 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36294 REGB0 = REGB1;
36295 }
36296 if (UNTAG_Bool(REGB0)) {
36297 /* ./parser//parser_prod.nit:6731 */
36298 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36299 if (UNTAG_Bool(REGB0)) {
36300 } else {
36301 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36302 if (UNTAG_Bool(REGB1)) {
36303 REGB1 = TAG_Bool(false);
36304 REGB0 = REGB1;
36305 } else {
36306 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36307 REGB0 = REGB1;
36308 }
36309 }
36310 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36311 if (UNTAG_Bool(REGB0)) {
36312 /* ./parser//parser_prod.nit:6732 */
36313 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36314 if (UNTAG_Bool(REGB0)) {
36315 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6732);
36316 }
36317 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36318 /* ./parser//parser_prod.nit:6733 */
36319 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*/;
36320 if (UNTAG_Bool(REGB0)) {
36321 } else {
36322 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6733);
36323 }
36324 /* ./parser//parser_prod.nit:6734 */
36325 ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[2];
36326 } else {
36327 /* ./parser//parser_prod.nit:6736 */
36328 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6736);
36329 }
36330 /* ./parser//parser_prod.nit:6738 */
36331 goto label1;
36332 }
36333 label1: while(0);
36334 stack_frame_head = fra.me.prev;
36335 return;
36336 }
36337 void parser___parser_prod___ANullExpr___visit_all(val_t p0, val_t p1){
36338 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36339 val_t REGB0;
36340 val_t tmp;
36341 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36342 fra.me.file = LOCATE_parser___parser_prod;
36343 fra.me.line = 6742;
36344 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___visit_all;
36345 fra.me.has_broke = 0;
36346 fra.me.REG_size = 2;
36347 fra.me.REG[0] = NIT_NULL;
36348 fra.me.REG[1] = NIT_NULL;
36349 fra.me.REG[0] = p0;
36350 fra.me.REG[1] = p1;
36351 /* ./parser//parser_prod.nit:6744 */
36352 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
36353 if (UNTAG_Bool(REGB0)) {
36354 } else {
36355 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 6744);
36356 }
36357 fra.me.REG[0] = ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]);
36358 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36359 stack_frame_head = fra.me.prev;
36360 return;
36361 }
36362 void parser___parser_prod___AIntExpr___empty_init(val_t p0, int* init_table){
36363 int itpos231 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIntExpr].i;
36364 struct {struct stack_frame_t me;} fra;
36365 val_t tmp;
36366 if (init_table[itpos231]) return;
36367 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36368 fra.me.file = LOCATE_parser___parser_prod;
36369 fra.me.line = 6748;
36370 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___empty_init;
36371 fra.me.has_broke = 0;
36372 fra.me.REG_size = 1;
36373 fra.me.REG[0] = NIT_NULL;
36374 fra.me.REG[0] = p0;
36375 stack_frame_head = fra.me.prev;
36376 init_table[itpos231] = 1;
36377 return;
36378 }
36379 void parser___parser_prod___AIntExpr___init_aintexpr(val_t p0, val_t p1, int* init_table){
36380 int itpos232 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIntExpr].i;
36381 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36382 val_t REGB0;
36383 val_t tmp;
36384 if (init_table[itpos232]) return;
36385 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36386 fra.me.file = LOCATE_parser___parser_prod;
36387 fra.me.line = 6750;
36388 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___init_aintexpr;
36389 fra.me.has_broke = 0;
36390 fra.me.REG_size = 3;
36391 fra.me.REG[0] = NIT_NULL;
36392 fra.me.REG[1] = NIT_NULL;
36393 fra.me.REG[2] = NIT_NULL;
36394 fra.me.REG[0] = p0;
36395 fra.me.REG[1] = p1;
36396 /* ./parser//parser_prod.nit:6750 */
36397 fra.me.REG[2] = fra.me.REG[0];
36398 /* ./parser//parser_prod.nit:6754 */
36399 CALL_parser___parser_prod___AIntExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36400 /* ./parser//parser_prod.nit:6755 */
36401 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36402 if (UNTAG_Bool(REGB0)) {
36403 } else {
36404 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6755);
36405 }
36406 ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[2]) = fra.me.REG[1];
36407 /* ./parser//parser_prod.nit:6756 */
36408 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36409 if (UNTAG_Bool(REGB0)) {
36410 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6756);
36411 }
36412 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36413 stack_frame_head = fra.me.prev;
36414 init_table[itpos232] = 1;
36415 return;
36416 }
36417 void parser___parser_prod___AIntExpr___replace_child(val_t p0, val_t p1, val_t p2){
36418 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36419 val_t REGB0;
36420 val_t REGB1;
36421 val_t tmp;
36422 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36423 fra.me.file = LOCATE_parser___parser_prod;
36424 fra.me.line = 6759;
36425 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___replace_child;
36426 fra.me.has_broke = 0;
36427 fra.me.REG_size = 4;
36428 fra.me.REG[0] = NIT_NULL;
36429 fra.me.REG[1] = NIT_NULL;
36430 fra.me.REG[2] = NIT_NULL;
36431 fra.me.REG[3] = NIT_NULL;
36432 fra.me.REG[0] = p0;
36433 fra.me.REG[1] = p1;
36434 fra.me.REG[2] = p2;
36435 /* ./parser//parser_prod.nit:6761 */
36436 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
36437 if (UNTAG_Bool(REGB0)) {
36438 } else {
36439 nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser___parser_prod, 6761);
36440 }
36441 fra.me.REG[3] = ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]);
36442 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36443 if (UNTAG_Bool(REGB0)) {
36444 } else {
36445 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36446 REGB0 = REGB1;
36447 }
36448 if (UNTAG_Bool(REGB0)) {
36449 /* ./parser//parser_prod.nit:6762 */
36450 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36451 if (UNTAG_Bool(REGB0)) {
36452 } else {
36453 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36454 if (UNTAG_Bool(REGB1)) {
36455 REGB1 = TAG_Bool(false);
36456 REGB0 = REGB1;
36457 } else {
36458 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36459 REGB0 = REGB1;
36460 }
36461 }
36462 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36463 if (UNTAG_Bool(REGB0)) {
36464 /* ./parser//parser_prod.nit:6763 */
36465 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36466 if (UNTAG_Bool(REGB0)) {
36467 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6763);
36468 }
36469 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36470 /* ./parser//parser_prod.nit:6764 */
36471 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*/;
36472 if (UNTAG_Bool(REGB0)) {
36473 } else {
36474 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6764);
36475 }
36476 /* ./parser//parser_prod.nit:6765 */
36477 ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]) = fra.me.REG[2];
36478 } else {
36479 /* ./parser//parser_prod.nit:6767 */
36480 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6767);
36481 }
36482 /* ./parser//parser_prod.nit:6769 */
36483 goto label1;
36484 }
36485 label1: while(0);
36486 stack_frame_head = fra.me.prev;
36487 return;
36488 }
36489 void parser___parser_prod___AIntExpr___visit_all(val_t p0, val_t p1){
36490 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36491 val_t REGB0;
36492 val_t tmp;
36493 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36494 fra.me.file = LOCATE_parser___parser_prod;
36495 fra.me.line = 6773;
36496 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___visit_all;
36497 fra.me.has_broke = 0;
36498 fra.me.REG_size = 2;
36499 fra.me.REG[0] = NIT_NULL;
36500 fra.me.REG[1] = NIT_NULL;
36501 fra.me.REG[0] = p0;
36502 fra.me.REG[1] = p1;
36503 /* ./parser//parser_prod.nit:6775 */
36504 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
36505 if (UNTAG_Bool(REGB0)) {
36506 } else {
36507 nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser___parser_prod, 6775);
36508 }
36509 fra.me.REG[0] = ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]);
36510 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36511 stack_frame_head = fra.me.prev;
36512 return;
36513 }
36514 void parser___parser_prod___AFloatExpr___empty_init(val_t p0, int* init_table){
36515 int itpos233 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFloatExpr].i;
36516 struct {struct stack_frame_t me;} fra;
36517 val_t tmp;
36518 if (init_table[itpos233]) return;
36519 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36520 fra.me.file = LOCATE_parser___parser_prod;
36521 fra.me.line = 6779;
36522 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___empty_init;
36523 fra.me.has_broke = 0;
36524 fra.me.REG_size = 1;
36525 fra.me.REG[0] = NIT_NULL;
36526 fra.me.REG[0] = p0;
36527 stack_frame_head = fra.me.prev;
36528 init_table[itpos233] = 1;
36529 return;
36530 }
36531 void parser___parser_prod___AFloatExpr___init_afloatexpr(val_t p0, val_t p1, int* init_table){
36532 int itpos234 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFloatExpr].i;
36533 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36534 val_t REGB0;
36535 val_t tmp;
36536 if (init_table[itpos234]) return;
36537 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36538 fra.me.file = LOCATE_parser___parser_prod;
36539 fra.me.line = 6781;
36540 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___init_afloatexpr;
36541 fra.me.has_broke = 0;
36542 fra.me.REG_size = 3;
36543 fra.me.REG[0] = NIT_NULL;
36544 fra.me.REG[1] = NIT_NULL;
36545 fra.me.REG[2] = NIT_NULL;
36546 fra.me.REG[0] = p0;
36547 fra.me.REG[1] = p1;
36548 /* ./parser//parser_prod.nit:6781 */
36549 fra.me.REG[2] = fra.me.REG[0];
36550 /* ./parser//parser_prod.nit:6785 */
36551 CALL_parser___parser_prod___AFloatExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36552 /* ./parser//parser_prod.nit:6786 */
36553 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36554 if (UNTAG_Bool(REGB0)) {
36555 } else {
36556 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6786);
36557 }
36558 ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[2]) = fra.me.REG[1];
36559 /* ./parser//parser_prod.nit:6787 */
36560 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36561 if (UNTAG_Bool(REGB0)) {
36562 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6787);
36563 }
36564 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36565 stack_frame_head = fra.me.prev;
36566 init_table[itpos234] = 1;
36567 return;
36568 }
36569 void parser___parser_prod___AFloatExpr___replace_child(val_t p0, val_t p1, val_t p2){
36570 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36571 val_t REGB0;
36572 val_t REGB1;
36573 val_t tmp;
36574 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36575 fra.me.file = LOCATE_parser___parser_prod;
36576 fra.me.line = 6790;
36577 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___replace_child;
36578 fra.me.has_broke = 0;
36579 fra.me.REG_size = 4;
36580 fra.me.REG[0] = NIT_NULL;
36581 fra.me.REG[1] = NIT_NULL;
36582 fra.me.REG[2] = NIT_NULL;
36583 fra.me.REG[3] = NIT_NULL;
36584 fra.me.REG[0] = p0;
36585 fra.me.REG[1] = p1;
36586 fra.me.REG[2] = p2;
36587 /* ./parser//parser_prod.nit:6792 */
36588 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
36589 if (UNTAG_Bool(REGB0)) {
36590 } else {
36591 nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser___parser_prod, 6792);
36592 }
36593 fra.me.REG[3] = ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]);
36594 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36595 if (UNTAG_Bool(REGB0)) {
36596 } else {
36597 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36598 REGB0 = REGB1;
36599 }
36600 if (UNTAG_Bool(REGB0)) {
36601 /* ./parser//parser_prod.nit:6793 */
36602 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36603 if (UNTAG_Bool(REGB0)) {
36604 } else {
36605 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36606 if (UNTAG_Bool(REGB1)) {
36607 REGB1 = TAG_Bool(false);
36608 REGB0 = REGB1;
36609 } else {
36610 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36611 REGB0 = REGB1;
36612 }
36613 }
36614 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36615 if (UNTAG_Bool(REGB0)) {
36616 /* ./parser//parser_prod.nit:6794 */
36617 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36618 if (UNTAG_Bool(REGB0)) {
36619 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6794);
36620 }
36621 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36622 /* ./parser//parser_prod.nit:6795 */
36623 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*/;
36624 if (UNTAG_Bool(REGB0)) {
36625 } else {
36626 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6795);
36627 }
36628 /* ./parser//parser_prod.nit:6796 */
36629 ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]) = fra.me.REG[2];
36630 } else {
36631 /* ./parser//parser_prod.nit:6798 */
36632 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6798);
36633 }
36634 /* ./parser//parser_prod.nit:6800 */
36635 goto label1;
36636 }
36637 label1: while(0);
36638 stack_frame_head = fra.me.prev;
36639 return;
36640 }
36641 void parser___parser_prod___AFloatExpr___visit_all(val_t p0, val_t p1){
36642 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36643 val_t REGB0;
36644 val_t tmp;
36645 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36646 fra.me.file = LOCATE_parser___parser_prod;
36647 fra.me.line = 6804;
36648 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___visit_all;
36649 fra.me.has_broke = 0;
36650 fra.me.REG_size = 2;
36651 fra.me.REG[0] = NIT_NULL;
36652 fra.me.REG[1] = NIT_NULL;
36653 fra.me.REG[0] = p0;
36654 fra.me.REG[1] = p1;
36655 /* ./parser//parser_prod.nit:6806 */
36656 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
36657 if (UNTAG_Bool(REGB0)) {
36658 } else {
36659 nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser___parser_prod, 6806);
36660 }
36661 fra.me.REG[0] = ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]);
36662 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36663 stack_frame_head = fra.me.prev;
36664 return;
36665 }
36666 void parser___parser_prod___ACharExpr___empty_init(val_t p0, int* init_table){
36667 int itpos235 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACharExpr].i;
36668 struct {struct stack_frame_t me;} fra;
36669 val_t tmp;
36670 if (init_table[itpos235]) return;
36671 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36672 fra.me.file = LOCATE_parser___parser_prod;
36673 fra.me.line = 6810;
36674 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___empty_init;
36675 fra.me.has_broke = 0;
36676 fra.me.REG_size = 1;
36677 fra.me.REG[0] = NIT_NULL;
36678 fra.me.REG[0] = p0;
36679 stack_frame_head = fra.me.prev;
36680 init_table[itpos235] = 1;
36681 return;
36682 }
36683 void parser___parser_prod___ACharExpr___init_acharexpr(val_t p0, val_t p1, int* init_table){
36684 int itpos236 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACharExpr].i;
36685 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36686 val_t REGB0;
36687 val_t tmp;
36688 if (init_table[itpos236]) return;
36689 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36690 fra.me.file = LOCATE_parser___parser_prod;
36691 fra.me.line = 6812;
36692 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___init_acharexpr;
36693 fra.me.has_broke = 0;
36694 fra.me.REG_size = 3;
36695 fra.me.REG[0] = NIT_NULL;
36696 fra.me.REG[1] = NIT_NULL;
36697 fra.me.REG[2] = NIT_NULL;
36698 fra.me.REG[0] = p0;
36699 fra.me.REG[1] = p1;
36700 /* ./parser//parser_prod.nit:6812 */
36701 fra.me.REG[2] = fra.me.REG[0];
36702 /* ./parser//parser_prod.nit:6816 */
36703 CALL_parser___parser_prod___ACharExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36704 /* ./parser//parser_prod.nit:6817 */
36705 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36706 if (UNTAG_Bool(REGB0)) {
36707 } else {
36708 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6817);
36709 }
36710 ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[2]) = fra.me.REG[1];
36711 /* ./parser//parser_prod.nit:6818 */
36712 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36713 if (UNTAG_Bool(REGB0)) {
36714 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6818);
36715 }
36716 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36717 stack_frame_head = fra.me.prev;
36718 init_table[itpos236] = 1;
36719 return;
36720 }
36721 void parser___parser_prod___ACharExpr___replace_child(val_t p0, val_t p1, val_t p2){
36722 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36723 val_t REGB0;
36724 val_t REGB1;
36725 val_t tmp;
36726 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36727 fra.me.file = LOCATE_parser___parser_prod;
36728 fra.me.line = 6821;
36729 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___replace_child;
36730 fra.me.has_broke = 0;
36731 fra.me.REG_size = 4;
36732 fra.me.REG[0] = NIT_NULL;
36733 fra.me.REG[1] = NIT_NULL;
36734 fra.me.REG[2] = NIT_NULL;
36735 fra.me.REG[3] = NIT_NULL;
36736 fra.me.REG[0] = p0;
36737 fra.me.REG[1] = p1;
36738 fra.me.REG[2] = p2;
36739 /* ./parser//parser_prod.nit:6823 */
36740 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
36741 if (UNTAG_Bool(REGB0)) {
36742 } else {
36743 nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser___parser_prod, 6823);
36744 }
36745 fra.me.REG[3] = ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]);
36746 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36747 if (UNTAG_Bool(REGB0)) {
36748 } else {
36749 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36750 REGB0 = REGB1;
36751 }
36752 if (UNTAG_Bool(REGB0)) {
36753 /* ./parser//parser_prod.nit:6824 */
36754 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36755 if (UNTAG_Bool(REGB0)) {
36756 } else {
36757 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36758 if (UNTAG_Bool(REGB1)) {
36759 REGB1 = TAG_Bool(false);
36760 REGB0 = REGB1;
36761 } else {
36762 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36763 REGB0 = REGB1;
36764 }
36765 }
36766 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36767 if (UNTAG_Bool(REGB0)) {
36768 /* ./parser//parser_prod.nit:6825 */
36769 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36770 if (UNTAG_Bool(REGB0)) {
36771 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6825);
36772 }
36773 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36774 /* ./parser//parser_prod.nit:6826 */
36775 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*/;
36776 if (UNTAG_Bool(REGB0)) {
36777 } else {
36778 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6826);
36779 }
36780 /* ./parser//parser_prod.nit:6827 */
36781 ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]) = fra.me.REG[2];
36782 } else {
36783 /* ./parser//parser_prod.nit:6829 */
36784 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6829);
36785 }
36786 /* ./parser//parser_prod.nit:6831 */
36787 goto label1;
36788 }
36789 label1: while(0);
36790 stack_frame_head = fra.me.prev;
36791 return;
36792 }
36793 void parser___parser_prod___ACharExpr___visit_all(val_t p0, val_t p1){
36794 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36795 val_t REGB0;
36796 val_t tmp;
36797 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36798 fra.me.file = LOCATE_parser___parser_prod;
36799 fra.me.line = 6835;
36800 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___visit_all;
36801 fra.me.has_broke = 0;
36802 fra.me.REG_size = 2;
36803 fra.me.REG[0] = NIT_NULL;
36804 fra.me.REG[1] = NIT_NULL;
36805 fra.me.REG[0] = p0;
36806 fra.me.REG[1] = p1;
36807 /* ./parser//parser_prod.nit:6837 */
36808 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
36809 if (UNTAG_Bool(REGB0)) {
36810 } else {
36811 nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser___parser_prod, 6837);
36812 }
36813 fra.me.REG[0] = ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]);
36814 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36815 stack_frame_head = fra.me.prev;
36816 return;
36817 }
36818 void parser___parser_prod___AStringExpr___empty_init(val_t p0, int* init_table){
36819 int itpos237 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStringExpr].i;
36820 struct {struct stack_frame_t me;} fra;
36821 val_t tmp;
36822 if (init_table[itpos237]) return;
36823 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36824 fra.me.file = LOCATE_parser___parser_prod;
36825 fra.me.line = 6841;
36826 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___empty_init;
36827 fra.me.has_broke = 0;
36828 fra.me.REG_size = 1;
36829 fra.me.REG[0] = NIT_NULL;
36830 fra.me.REG[0] = p0;
36831 stack_frame_head = fra.me.prev;
36832 init_table[itpos237] = 1;
36833 return;
36834 }
36835 void parser___parser_prod___AStringExpr___init_astringexpr(val_t p0, val_t p1, int* init_table){
36836 int itpos238 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStringExpr].i;
36837 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36838 val_t REGB0;
36839 val_t tmp;
36840 if (init_table[itpos238]) return;
36841 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36842 fra.me.file = LOCATE_parser___parser_prod;
36843 fra.me.line = 6843;
36844 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___init_astringexpr;
36845 fra.me.has_broke = 0;
36846 fra.me.REG_size = 3;
36847 fra.me.REG[0] = NIT_NULL;
36848 fra.me.REG[1] = NIT_NULL;
36849 fra.me.REG[2] = NIT_NULL;
36850 fra.me.REG[0] = p0;
36851 fra.me.REG[1] = p1;
36852 /* ./parser//parser_prod.nit:6843 */
36853 fra.me.REG[2] = fra.me.REG[0];
36854 /* ./parser//parser_prod.nit:6847 */
36855 CALL_parser___parser_prod___AStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36856 /* ./parser//parser_prod.nit:6848 */
36857 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36858 if (UNTAG_Bool(REGB0)) {
36859 } else {
36860 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6848);
36861 }
36862 ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
36863 /* ./parser//parser_prod.nit:6849 */
36864 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36865 if (UNTAG_Bool(REGB0)) {
36866 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6849);
36867 }
36868 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36869 stack_frame_head = fra.me.prev;
36870 init_table[itpos238] = 1;
36871 return;
36872 }
36873 void parser___parser_prod___AStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
36874 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36875 val_t REGB0;
36876 val_t REGB1;
36877 val_t tmp;
36878 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36879 fra.me.file = LOCATE_parser___parser_prod;
36880 fra.me.line = 6852;
36881 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___replace_child;
36882 fra.me.has_broke = 0;
36883 fra.me.REG_size = 4;
36884 fra.me.REG[0] = NIT_NULL;
36885 fra.me.REG[1] = NIT_NULL;
36886 fra.me.REG[2] = NIT_NULL;
36887 fra.me.REG[3] = NIT_NULL;
36888 fra.me.REG[0] = p0;
36889 fra.me.REG[1] = p1;
36890 fra.me.REG[2] = p2;
36891 /* ./parser//parser_prod.nit:6854 */
36892 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
36893 if (UNTAG_Bool(REGB0)) {
36894 } else {
36895 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6854);
36896 }
36897 fra.me.REG[3] = ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0]);
36898 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36899 if (UNTAG_Bool(REGB0)) {
36900 } else {
36901 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36902 REGB0 = REGB1;
36903 }
36904 if (UNTAG_Bool(REGB0)) {
36905 /* ./parser//parser_prod.nit:6855 */
36906 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36907 if (UNTAG_Bool(REGB0)) {
36908 } else {
36909 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36910 if (UNTAG_Bool(REGB1)) {
36911 REGB1 = TAG_Bool(false);
36912 REGB0 = REGB1;
36913 } else {
36914 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36915 REGB0 = REGB1;
36916 }
36917 }
36918 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36919 if (UNTAG_Bool(REGB0)) {
36920 /* ./parser//parser_prod.nit:6856 */
36921 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36922 if (UNTAG_Bool(REGB0)) {
36923 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6856);
36924 }
36925 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36926 /* ./parser//parser_prod.nit:6857 */
36927 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*/;
36928 if (UNTAG_Bool(REGB0)) {
36929 } else {
36930 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6857);
36931 }
36932 /* ./parser//parser_prod.nit:6858 */
36933 ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
36934 } else {
36935 /* ./parser//parser_prod.nit:6860 */
36936 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6860);
36937 }
36938 /* ./parser//parser_prod.nit:6862 */
36939 goto label1;
36940 }
36941 label1: while(0);
36942 stack_frame_head = fra.me.prev;
36943 return;
36944 }
36945 void parser___parser_prod___AStringExpr___visit_all(val_t p0, val_t p1){
36946 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36947 val_t REGB0;
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 = 6866;
36952 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___visit_all;
36953 fra.me.has_broke = 0;
36954 fra.me.REG_size = 2;
36955 fra.me.REG[0] = NIT_NULL;
36956 fra.me.REG[1] = NIT_NULL;
36957 fra.me.REG[0] = p0;
36958 fra.me.REG[1] = p1;
36959 /* ./parser//parser_prod.nit:6868 */
36960 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
36961 if (UNTAG_Bool(REGB0)) {
36962 } else {
36963 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6868);
36964 }
36965 fra.me.REG[0] = ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0]);
36966 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36967 stack_frame_head = fra.me.prev;
36968 return;
36969 }
36970 void parser___parser_prod___AStartStringExpr___empty_init(val_t p0, int* init_table){
36971 int itpos239 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStartStringExpr].i;
36972 struct {struct stack_frame_t me;} fra;
36973 val_t tmp;
36974 if (init_table[itpos239]) return;
36975 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36976 fra.me.file = LOCATE_parser___parser_prod;
36977 fra.me.line = 6872;
36978 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___empty_init;
36979 fra.me.has_broke = 0;
36980 fra.me.REG_size = 1;
36981 fra.me.REG[0] = NIT_NULL;
36982 fra.me.REG[0] = p0;
36983 stack_frame_head = fra.me.prev;
36984 init_table[itpos239] = 1;
36985 return;
36986 }
36987 void parser___parser_prod___AStartStringExpr___init_astartstringexpr(val_t p0, val_t p1, int* init_table){
36988 int itpos240 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStartStringExpr].i;
36989 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36990 val_t REGB0;
36991 val_t tmp;
36992 if (init_table[itpos240]) return;
36993 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36994 fra.me.file = LOCATE_parser___parser_prod;
36995 fra.me.line = 6874;
36996 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___init_astartstringexpr;
36997 fra.me.has_broke = 0;
36998 fra.me.REG_size = 3;
36999 fra.me.REG[0] = NIT_NULL;
37000 fra.me.REG[1] = NIT_NULL;
37001 fra.me.REG[2] = NIT_NULL;
37002 fra.me.REG[0] = p0;
37003 fra.me.REG[1] = p1;
37004 /* ./parser//parser_prod.nit:6874 */
37005 fra.me.REG[2] = fra.me.REG[0];
37006 /* ./parser//parser_prod.nit:6878 */
37007 CALL_parser___parser_prod___AStartStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37008 /* ./parser//parser_prod.nit:6879 */
37009 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37010 if (UNTAG_Bool(REGB0)) {
37011 } else {
37012 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6879);
37013 }
37014 ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
37015 /* ./parser//parser_prod.nit:6880 */
37016 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37017 if (UNTAG_Bool(REGB0)) {
37018 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6880);
37019 }
37020 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37021 stack_frame_head = fra.me.prev;
37022 init_table[itpos240] = 1;
37023 return;
37024 }
37025 void parser___parser_prod___AStartStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
37026 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37027 val_t REGB0;
37028 val_t REGB1;
37029 val_t tmp;
37030 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37031 fra.me.file = LOCATE_parser___parser_prod;
37032 fra.me.line = 6883;
37033 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___replace_child;
37034 fra.me.has_broke = 0;
37035 fra.me.REG_size = 4;
37036 fra.me.REG[0] = NIT_NULL;
37037 fra.me.REG[1] = NIT_NULL;
37038 fra.me.REG[2] = NIT_NULL;
37039 fra.me.REG[3] = NIT_NULL;
37040 fra.me.REG[0] = p0;
37041 fra.me.REG[1] = p1;
37042 fra.me.REG[2] = p2;
37043 /* ./parser//parser_prod.nit:6885 */
37044 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37045 if (UNTAG_Bool(REGB0)) {
37046 } else {
37047 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6885);
37048 }
37049 fra.me.REG[3] = ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]);
37050 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37051 if (UNTAG_Bool(REGB0)) {
37052 } else {
37053 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37054 REGB0 = REGB1;
37055 }
37056 if (UNTAG_Bool(REGB0)) {
37057 /* ./parser//parser_prod.nit:6886 */
37058 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37059 if (UNTAG_Bool(REGB0)) {
37060 } else {
37061 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37062 if (UNTAG_Bool(REGB1)) {
37063 REGB1 = TAG_Bool(false);
37064 REGB0 = REGB1;
37065 } else {
37066 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37067 REGB0 = REGB1;
37068 }
37069 }
37070 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37071 if (UNTAG_Bool(REGB0)) {
37072 /* ./parser//parser_prod.nit:6887 */
37073 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37074 if (UNTAG_Bool(REGB0)) {
37075 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6887);
37076 }
37077 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37078 /* ./parser//parser_prod.nit:6888 */
37079 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*/;
37080 if (UNTAG_Bool(REGB0)) {
37081 } else {
37082 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6888);
37083 }
37084 /* ./parser//parser_prod.nit:6889 */
37085 ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
37086 } else {
37087 /* ./parser//parser_prod.nit:6891 */
37088 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6891);
37089 }
37090 /* ./parser//parser_prod.nit:6893 */
37091 goto label1;
37092 }
37093 label1: while(0);
37094 stack_frame_head = fra.me.prev;
37095 return;
37096 }
37097 void parser___parser_prod___AStartStringExpr___visit_all(val_t p0, val_t p1){
37098 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37099 val_t REGB0;
37100 val_t tmp;
37101 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37102 fra.me.file = LOCATE_parser___parser_prod;
37103 fra.me.line = 6897;
37104 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___visit_all;
37105 fra.me.has_broke = 0;
37106 fra.me.REG_size = 2;
37107 fra.me.REG[0] = NIT_NULL;
37108 fra.me.REG[1] = NIT_NULL;
37109 fra.me.REG[0] = p0;
37110 fra.me.REG[1] = p1;
37111 /* ./parser//parser_prod.nit:6899 */
37112 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37113 if (UNTAG_Bool(REGB0)) {
37114 } else {
37115 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6899);
37116 }
37117 fra.me.REG[0] = ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]);
37118 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37119 stack_frame_head = fra.me.prev;
37120 return;
37121 }
37122 void parser___parser_prod___AMidStringExpr___empty_init(val_t p0, int* init_table){
37123 int itpos241 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMidStringExpr].i;
37124 struct {struct stack_frame_t me;} fra;
37125 val_t tmp;
37126 if (init_table[itpos241]) return;
37127 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37128 fra.me.file = LOCATE_parser___parser_prod;
37129 fra.me.line = 6903;
37130 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___empty_init;
37131 fra.me.has_broke = 0;
37132 fra.me.REG_size = 1;
37133 fra.me.REG[0] = NIT_NULL;
37134 fra.me.REG[0] = p0;
37135 stack_frame_head = fra.me.prev;
37136 init_table[itpos241] = 1;
37137 return;
37138 }
37139 void parser___parser_prod___AMidStringExpr___init_amidstringexpr(val_t p0, val_t p1, int* init_table){
37140 int itpos242 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMidStringExpr].i;
37141 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37142 val_t REGB0;
37143 val_t tmp;
37144 if (init_table[itpos242]) return;
37145 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37146 fra.me.file = LOCATE_parser___parser_prod;
37147 fra.me.line = 6905;
37148 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___init_amidstringexpr;
37149 fra.me.has_broke = 0;
37150 fra.me.REG_size = 3;
37151 fra.me.REG[0] = NIT_NULL;
37152 fra.me.REG[1] = NIT_NULL;
37153 fra.me.REG[2] = NIT_NULL;
37154 fra.me.REG[0] = p0;
37155 fra.me.REG[1] = p1;
37156 /* ./parser//parser_prod.nit:6905 */
37157 fra.me.REG[2] = fra.me.REG[0];
37158 /* ./parser//parser_prod.nit:6909 */
37159 CALL_parser___parser_prod___AMidStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37160 /* ./parser//parser_prod.nit:6910 */
37161 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37162 if (UNTAG_Bool(REGB0)) {
37163 } else {
37164 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6910);
37165 }
37166 ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
37167 /* ./parser//parser_prod.nit:6911 */
37168 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37169 if (UNTAG_Bool(REGB0)) {
37170 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6911);
37171 }
37172 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37173 stack_frame_head = fra.me.prev;
37174 init_table[itpos242] = 1;
37175 return;
37176 }
37177 void parser___parser_prod___AMidStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
37178 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37179 val_t REGB0;
37180 val_t REGB1;
37181 val_t tmp;
37182 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37183 fra.me.file = LOCATE_parser___parser_prod;
37184 fra.me.line = 6914;
37185 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___replace_child;
37186 fra.me.has_broke = 0;
37187 fra.me.REG_size = 4;
37188 fra.me.REG[0] = NIT_NULL;
37189 fra.me.REG[1] = NIT_NULL;
37190 fra.me.REG[2] = NIT_NULL;
37191 fra.me.REG[3] = NIT_NULL;
37192 fra.me.REG[0] = p0;
37193 fra.me.REG[1] = p1;
37194 fra.me.REG[2] = p2;
37195 /* ./parser//parser_prod.nit:6916 */
37196 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37197 if (UNTAG_Bool(REGB0)) {
37198 } else {
37199 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6916);
37200 }
37201 fra.me.REG[3] = ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]);
37202 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37203 if (UNTAG_Bool(REGB0)) {
37204 } else {
37205 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37206 REGB0 = REGB1;
37207 }
37208 if (UNTAG_Bool(REGB0)) {
37209 /* ./parser//parser_prod.nit:6917 */
37210 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37211 if (UNTAG_Bool(REGB0)) {
37212 } else {
37213 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37214 if (UNTAG_Bool(REGB1)) {
37215 REGB1 = TAG_Bool(false);
37216 REGB0 = REGB1;
37217 } else {
37218 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37219 REGB0 = REGB1;
37220 }
37221 }
37222 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37223 if (UNTAG_Bool(REGB0)) {
37224 /* ./parser//parser_prod.nit:6918 */
37225 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37226 if (UNTAG_Bool(REGB0)) {
37227 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6918);
37228 }
37229 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37230 /* ./parser//parser_prod.nit:6919 */
37231 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*/;
37232 if (UNTAG_Bool(REGB0)) {
37233 } else {
37234 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6919);
37235 }
37236 /* ./parser//parser_prod.nit:6920 */
37237 ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
37238 } else {
37239 /* ./parser//parser_prod.nit:6922 */
37240 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6922);
37241 }
37242 /* ./parser//parser_prod.nit:6924 */
37243 goto label1;
37244 }
37245 label1: while(0);
37246 stack_frame_head = fra.me.prev;
37247 return;
37248 }
37249 void parser___parser_prod___AMidStringExpr___visit_all(val_t p0, val_t p1){
37250 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37251 val_t REGB0;
37252 val_t tmp;
37253 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37254 fra.me.file = LOCATE_parser___parser_prod;
37255 fra.me.line = 6928;
37256 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___visit_all;
37257 fra.me.has_broke = 0;
37258 fra.me.REG_size = 2;
37259 fra.me.REG[0] = NIT_NULL;
37260 fra.me.REG[1] = NIT_NULL;
37261 fra.me.REG[0] = p0;
37262 fra.me.REG[1] = p1;
37263 /* ./parser//parser_prod.nit:6930 */
37264 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37265 if (UNTAG_Bool(REGB0)) {
37266 } else {
37267 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6930);
37268 }
37269 fra.me.REG[0] = ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]);
37270 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37271 stack_frame_head = fra.me.prev;
37272 return;
37273 }
37274 void parser___parser_prod___AEndStringExpr___empty_init(val_t p0, int* init_table){
37275 int itpos243 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEndStringExpr].i;
37276 struct {struct stack_frame_t me;} fra;
37277 val_t tmp;
37278 if (init_table[itpos243]) return;
37279 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37280 fra.me.file = LOCATE_parser___parser_prod;
37281 fra.me.line = 6934;
37282 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___empty_init;
37283 fra.me.has_broke = 0;
37284 fra.me.REG_size = 1;
37285 fra.me.REG[0] = NIT_NULL;
37286 fra.me.REG[0] = p0;
37287 stack_frame_head = fra.me.prev;
37288 init_table[itpos243] = 1;
37289 return;
37290 }
37291 void parser___parser_prod___AEndStringExpr___init_aendstringexpr(val_t p0, val_t p1, int* init_table){
37292 int itpos244 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEndStringExpr].i;
37293 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37294 val_t REGB0;
37295 val_t tmp;
37296 if (init_table[itpos244]) return;
37297 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37298 fra.me.file = LOCATE_parser___parser_prod;
37299 fra.me.line = 6936;
37300 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___init_aendstringexpr;
37301 fra.me.has_broke = 0;
37302 fra.me.REG_size = 3;
37303 fra.me.REG[0] = NIT_NULL;
37304 fra.me.REG[1] = NIT_NULL;
37305 fra.me.REG[2] = NIT_NULL;
37306 fra.me.REG[0] = p0;
37307 fra.me.REG[1] = p1;
37308 /* ./parser//parser_prod.nit:6936 */
37309 fra.me.REG[2] = fra.me.REG[0];
37310 /* ./parser//parser_prod.nit:6940 */
37311 CALL_parser___parser_prod___AEndStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37312 /* ./parser//parser_prod.nit:6941 */
37313 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37314 if (UNTAG_Bool(REGB0)) {
37315 } else {
37316 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6941);
37317 }
37318 ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
37319 /* ./parser//parser_prod.nit:6942 */
37320 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37321 if (UNTAG_Bool(REGB0)) {
37322 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6942);
37323 }
37324 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37325 stack_frame_head = fra.me.prev;
37326 init_table[itpos244] = 1;
37327 return;
37328 }
37329 void parser___parser_prod___AEndStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
37330 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37331 val_t REGB0;
37332 val_t REGB1;
37333 val_t tmp;
37334 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37335 fra.me.file = LOCATE_parser___parser_prod;
37336 fra.me.line = 6945;
37337 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___replace_child;
37338 fra.me.has_broke = 0;
37339 fra.me.REG_size = 4;
37340 fra.me.REG[0] = NIT_NULL;
37341 fra.me.REG[1] = NIT_NULL;
37342 fra.me.REG[2] = NIT_NULL;
37343 fra.me.REG[3] = NIT_NULL;
37344 fra.me.REG[0] = p0;
37345 fra.me.REG[1] = p1;
37346 fra.me.REG[2] = p2;
37347 /* ./parser//parser_prod.nit:6947 */
37348 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37349 if (UNTAG_Bool(REGB0)) {
37350 } else {
37351 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6947);
37352 }
37353 fra.me.REG[3] = ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]);
37354 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37355 if (UNTAG_Bool(REGB0)) {
37356 } else {
37357 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37358 REGB0 = REGB1;
37359 }
37360 if (UNTAG_Bool(REGB0)) {
37361 /* ./parser//parser_prod.nit:6948 */
37362 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37363 if (UNTAG_Bool(REGB0)) {
37364 } else {
37365 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37366 if (UNTAG_Bool(REGB1)) {
37367 REGB1 = TAG_Bool(false);
37368 REGB0 = REGB1;
37369 } else {
37370 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37371 REGB0 = REGB1;
37372 }
37373 }
37374 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37375 if (UNTAG_Bool(REGB0)) {
37376 /* ./parser//parser_prod.nit:6949 */
37377 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37378 if (UNTAG_Bool(REGB0)) {
37379 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6949);
37380 }
37381 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37382 /* ./parser//parser_prod.nit:6950 */
37383 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*/;
37384 if (UNTAG_Bool(REGB0)) {
37385 } else {
37386 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6950);
37387 }
37388 /* ./parser//parser_prod.nit:6951 */
37389 ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
37390 } else {
37391 /* ./parser//parser_prod.nit:6953 */
37392 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6953);
37393 }
37394 /* ./parser//parser_prod.nit:6955 */
37395 goto label1;
37396 }
37397 label1: while(0);
37398 stack_frame_head = fra.me.prev;
37399 return;
37400 }
37401 void parser___parser_prod___AEndStringExpr___visit_all(val_t p0, val_t p1){
37402 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37403 val_t REGB0;
37404 val_t tmp;
37405 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37406 fra.me.file = LOCATE_parser___parser_prod;
37407 fra.me.line = 6959;
37408 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___visit_all;
37409 fra.me.has_broke = 0;
37410 fra.me.REG_size = 2;
37411 fra.me.REG[0] = NIT_NULL;
37412 fra.me.REG[1] = NIT_NULL;
37413 fra.me.REG[0] = p0;
37414 fra.me.REG[1] = p1;
37415 /* ./parser//parser_prod.nit:6961 */
37416 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
37417 if (UNTAG_Bool(REGB0)) {
37418 } else {
37419 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6961);
37420 }
37421 fra.me.REG[0] = ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]);
37422 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37423 stack_frame_head = fra.me.prev;
37424 return;
37425 }
37426 void parser___parser_prod___ASuperstringExpr___empty_init(val_t p0, int* init_table){
37427 int itpos245 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperstringExpr].i;
37428 struct {struct stack_frame_t me;} fra;
37429 val_t tmp;
37430 if (init_table[itpos245]) return;
37431 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37432 fra.me.file = LOCATE_parser___parser_prod;
37433 fra.me.line = 6965;
37434 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___empty_init;
37435 fra.me.has_broke = 0;
37436 fra.me.REG_size = 1;
37437 fra.me.REG[0] = NIT_NULL;
37438 fra.me.REG[0] = p0;
37439 stack_frame_head = fra.me.prev;
37440 init_table[itpos245] = 1;
37441 return;
37442 }
37443 void parser___parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0, val_t p1, int* init_table){
37444 int itpos246 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperstringExpr].i;
37445 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37446 val_t tmp;
37447 if (init_table[itpos246]) return;
37448 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37449 fra.me.file = LOCATE_parser___parser_prod;
37450 fra.me.line = 6967;
37451 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr;
37452 fra.me.has_broke = 0;
37453 fra.me.REG_size = 2;
37454 fra.me.REG[0] = NIT_NULL;
37455 fra.me.REG[1] = NIT_NULL;
37456 fra.me.REG[0] = p0;
37457 fra.me.REG[1] = p1;
37458 /* ./parser//parser_prod.nit:6971 */
37459 CALL_parser___parser_prod___ASuperstringExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
37460 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));
37461 stack_frame_head = fra.me.prev;
37462 init_table[itpos246] = 1;
37463 return;
37464 }
37465 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){
37466 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37467 val_t REGB0;
37468 fun_t CREG[1];
37469 val_t tmp;
37470 /* ./parser//parser_prod.nit:6972 */
37471 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37472 fra.me.file = LOCATE_parser___parser_prod;
37473 fra.me.line = 0;
37474 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr;
37475 fra.me.has_broke = 0;
37476 fra.me.REG_size = 2;
37477 fra.me.REG[0] = NIT_NULL;
37478 fra.me.REG[1] = NIT_NULL;
37479 fra.me.closure_ctx = closctx_param;
37480 fra.me.closure_funs = CREG;
37481 fra.me.REG[0] = p0;
37482 CREG[0] = clos_fun0;
37483 /* ./parser//parser_prod.nit:6973 */
37484 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
37485 if (UNTAG_Bool(REGB0)) {
37486 } else {
37487 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6973);
37488 }
37489 /* ./parser//parser_prod.nit:6974 */
37490 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(closctx->REG[0])!=NIT_NULL);
37491 if (UNTAG_Bool(REGB0)) {
37492 } else {
37493 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6974);
37494 }
37495 fra.me.REG[1] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(closctx->REG[0]);
37496 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37497 /* ./parser//parser_prod.nit:6975 */
37498 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
37499 stack_frame_head = fra.me.prev;
37500 return;
37501 }
37502 void parser___parser_prod___ASuperstringExpr___replace_child(val_t p0, val_t p1, val_t p2){
37503 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37504 val_t REGB0;
37505 val_t REGB1;
37506 val_t REGB2;
37507 val_t REGB3;
37508 val_t REGB4;
37509 val_t tmp;
37510 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37511 fra.me.file = LOCATE_parser___parser_prod;
37512 fra.me.line = 6979;
37513 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___replace_child;
37514 fra.me.has_broke = 0;
37515 fra.me.REG_size = 4;
37516 fra.me.REG[0] = NIT_NULL;
37517 fra.me.REG[1] = NIT_NULL;
37518 fra.me.REG[2] = NIT_NULL;
37519 fra.me.REG[3] = NIT_NULL;
37520 fra.me.REG[0] = p0;
37521 fra.me.REG[1] = p1;
37522 fra.me.REG[2] = p2;
37523 /* ./parser//parser_prod.nit:6981 */
37524 REGB0 = TAG_Int(0);
37525 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
37526 if (UNTAG_Bool(REGB1)) {
37527 } else {
37528 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6981);
37529 }
37530 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
37531 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
37532 /* ./../lib/standard//kernel.nit:352 */
37533 while(1) {
37534 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
37535 if (UNTAG_Bool(REGB2)) {
37536 } else {
37537 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
37538 }
37539 /* ./../lib/standard//kernel.nit:232 */
37540 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
37541 /* ./../lib/standard//kernel.nit:352 */
37542 if (UNTAG_Bool(REGB2)) {
37543 /* ./parser//parser_prod.nit:6981 */
37544 REGB2 = REGB0;
37545 /* ./parser//parser_prod.nit:6982 */
37546 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
37547 if (UNTAG_Bool(REGB3)) {
37548 } else {
37549 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6982);
37550 }
37551 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
37552 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
37553 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
37554 if (UNTAG_Bool(REGB3)) {
37555 } else {
37556 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37557 if (UNTAG_Bool(REGB4)) {
37558 REGB4 = TAG_Bool(false);
37559 REGB3 = REGB4;
37560 } else {
37561 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37562 REGB3 = REGB4;
37563 }
37564 }
37565 if (UNTAG_Bool(REGB3)) {
37566 /* ./parser//parser_prod.nit:6983 */
37567 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37568 if (UNTAG_Bool(REGB3)) {
37569 } else {
37570 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37571 if (UNTAG_Bool(REGB4)) {
37572 REGB4 = TAG_Bool(false);
37573 REGB3 = REGB4;
37574 } else {
37575 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37576 REGB3 = REGB4;
37577 }
37578 }
37579 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
37580 if (UNTAG_Bool(REGB3)) {
37581 /* ./parser//parser_prod.nit:6984 */
37582 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*/;
37583 if (UNTAG_Bool(REGB3)) {
37584 } else {
37585 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6984);
37586 }
37587 /* ./parser//parser_prod.nit:6985 */
37588 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
37589 if (UNTAG_Bool(REGB3)) {
37590 } else {
37591 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6985);
37592 }
37593 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
37594 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
37595 /* ./parser//parser_prod.nit:6986 */
37596 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37597 if (UNTAG_Bool(REGB3)) {
37598 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6986);
37599 }
37600 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37601 } else {
37602 /* ./parser//parser_prod.nit:6988 */
37603 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
37604 if (UNTAG_Bool(REGB3)) {
37605 } else {
37606 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6988);
37607 }
37608 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
37609 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
37610 }
37611 /* ./parser//parser_prod.nit:6990 */
37612 goto label1;
37613 }
37614 /* ./../lib/standard//kernel.nit:354 */
37615 REGB2 = TAG_Int(1);
37616 /* ./../lib/standard//kernel.nit:235 */
37617 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
37618 /* ./../lib/standard//kernel.nit:354 */
37619 REGB0 = REGB2;
37620 } else {
37621 /* ./../lib/standard//kernel.nit:352 */
37622 goto label2;
37623 }
37624 }
37625 label2: while(0);
37626 label1: while(0);
37627 stack_frame_head = fra.me.prev;
37628 return;
37629 }
37630 void parser___parser_prod___ASuperstringExpr___visit_all(val_t p0, val_t p1){
37631 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37632 val_t REGB0;
37633 val_t tmp;
37634 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37635 fra.me.file = LOCATE_parser___parser_prod;
37636 fra.me.line = 6995;
37637 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___visit_all;
37638 fra.me.has_broke = 0;
37639 fra.me.REG_size = 2;
37640 fra.me.REG[0] = NIT_NULL;
37641 fra.me.REG[1] = NIT_NULL;
37642 fra.me.REG[0] = p0;
37643 fra.me.REG[1] = p1;
37644 /* ./parser//parser_prod.nit:6997 */
37645 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
37646 if (UNTAG_Bool(REGB0)) {
37647 } else {
37648 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6997);
37649 }
37650 fra.me.REG[0] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
37651 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));
37652 stack_frame_head = fra.me.prev;
37653 return;
37654 }
37655 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){
37656 struct {struct stack_frame_t me;} fra;
37657 fun_t CREG[1];
37658 val_t tmp;
37659 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37660 fra.me.file = LOCATE_parser___parser_prod;
37661 fra.me.line = 0;
37662 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___visit_all;
37663 fra.me.has_broke = 0;
37664 fra.me.REG_size = 1;
37665 fra.me.REG[0] = NIT_NULL;
37666 fra.me.closure_ctx = closctx_param;
37667 fra.me.closure_funs = CREG;
37668 fra.me.REG[0] = p0;
37669 CREG[0] = clos_fun0;
37670 /* ./parser//parser_prod.nit:6998 */
37671 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
37672 stack_frame_head = fra.me.prev;
37673 return;
37674 }
37675 void parser___parser_prod___AParExpr___empty_init(val_t p0, int* init_table){
37676 int itpos247 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExpr].i;
37677 struct {struct stack_frame_t me;} fra;
37678 val_t tmp;
37679 if (init_table[itpos247]) return;
37680 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37681 fra.me.file = LOCATE_parser___parser_prod;
37682 fra.me.line = 7003;
37683 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___empty_init;
37684 fra.me.has_broke = 0;
37685 fra.me.REG_size = 1;
37686 fra.me.REG[0] = NIT_NULL;
37687 fra.me.REG[0] = p0;
37688 stack_frame_head = fra.me.prev;
37689 init_table[itpos247] = 1;
37690 return;
37691 }
37692 void parser___parser_prod___AParExpr___init_aparexpr(val_t p0, val_t p1, int* init_table){
37693 int itpos248 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExpr].i;
37694 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37695 val_t REGB0;
37696 val_t tmp;
37697 if (init_table[itpos248]) return;
37698 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37699 fra.me.file = LOCATE_parser___parser_prod;
37700 fra.me.line = 7005;
37701 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___init_aparexpr;
37702 fra.me.has_broke = 0;
37703 fra.me.REG_size = 3;
37704 fra.me.REG[0] = NIT_NULL;
37705 fra.me.REG[1] = NIT_NULL;
37706 fra.me.REG[2] = NIT_NULL;
37707 fra.me.REG[0] = p0;
37708 fra.me.REG[1] = p1;
37709 /* ./parser//parser_prod.nit:7005 */
37710 fra.me.REG[2] = fra.me.REG[0];
37711 /* ./parser//parser_prod.nit:7009 */
37712 CALL_parser___parser_prod___AParExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37713 /* ./parser//parser_prod.nit:7010 */
37714 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37715 if (UNTAG_Bool(REGB0)) {
37716 } else {
37717 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7010);
37718 }
37719 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[2]) = fra.me.REG[1];
37720 /* ./parser//parser_prod.nit:7011 */
37721 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37722 if (UNTAG_Bool(REGB0)) {
37723 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7011);
37724 }
37725 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37726 stack_frame_head = fra.me.prev;
37727 init_table[itpos248] = 1;
37728 return;
37729 }
37730 void parser___parser_prod___AParExpr___replace_child(val_t p0, val_t p1, val_t p2){
37731 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37732 val_t REGB0;
37733 val_t REGB1;
37734 val_t tmp;
37735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37736 fra.me.file = LOCATE_parser___parser_prod;
37737 fra.me.line = 7014;
37738 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___replace_child;
37739 fra.me.has_broke = 0;
37740 fra.me.REG_size = 4;
37741 fra.me.REG[0] = NIT_NULL;
37742 fra.me.REG[1] = NIT_NULL;
37743 fra.me.REG[2] = NIT_NULL;
37744 fra.me.REG[3] = NIT_NULL;
37745 fra.me.REG[0] = p0;
37746 fra.me.REG[1] = p1;
37747 fra.me.REG[2] = p2;
37748 /* ./parser//parser_prod.nit:7016 */
37749 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
37750 if (UNTAG_Bool(REGB0)) {
37751 } else {
37752 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7016);
37753 }
37754 fra.me.REG[3] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
37755 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37756 if (UNTAG_Bool(REGB0)) {
37757 } else {
37758 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37759 REGB0 = REGB1;
37760 }
37761 if (UNTAG_Bool(REGB0)) {
37762 /* ./parser//parser_prod.nit:7017 */
37763 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37764 if (UNTAG_Bool(REGB0)) {
37765 } else {
37766 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37767 if (UNTAG_Bool(REGB1)) {
37768 REGB1 = TAG_Bool(false);
37769 REGB0 = REGB1;
37770 } else {
37771 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37772 REGB0 = REGB1;
37773 }
37774 }
37775 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37776 if (UNTAG_Bool(REGB0)) {
37777 /* ./parser//parser_prod.nit:7018 */
37778 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37779 if (UNTAG_Bool(REGB0)) {
37780 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7018);
37781 }
37782 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37783 /* ./parser//parser_prod.nit:7019 */
37784 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
37785 if (UNTAG_Bool(REGB0)) {
37786 } else {
37787 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7019);
37788 }
37789 /* ./parser//parser_prod.nit:7020 */
37790 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
37791 } else {
37792 /* ./parser//parser_prod.nit:7022 */
37793 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7022);
37794 }
37795 /* ./parser//parser_prod.nit:7024 */
37796 goto label1;
37797 }
37798 label1: while(0);
37799 stack_frame_head = fra.me.prev;
37800 return;
37801 }
37802 void parser___parser_prod___AParExpr___visit_all(val_t p0, val_t p1){
37803 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37804 val_t REGB0;
37805 val_t tmp;
37806 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37807 fra.me.file = LOCATE_parser___parser_prod;
37808 fra.me.line = 7028;
37809 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___visit_all;
37810 fra.me.has_broke = 0;
37811 fra.me.REG_size = 2;
37812 fra.me.REG[0] = NIT_NULL;
37813 fra.me.REG[1] = NIT_NULL;
37814 fra.me.REG[0] = p0;
37815 fra.me.REG[1] = p1;
37816 /* ./parser//parser_prod.nit:7030 */
37817 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
37818 if (UNTAG_Bool(REGB0)) {
37819 } else {
37820 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7030);
37821 }
37822 fra.me.REG[0] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
37823 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37824 stack_frame_head = fra.me.prev;
37825 return;
37826 }
37827 void parser___parser_prod___AAsCastExpr___empty_init(val_t p0, int* init_table){
37828 int itpos249 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsCastExpr].i;
37829 struct {struct stack_frame_t me;} fra;
37830 val_t tmp;
37831 if (init_table[itpos249]) return;
37832 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37833 fra.me.file = LOCATE_parser___parser_prod;
37834 fra.me.line = 7034;
37835 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___empty_init;
37836 fra.me.has_broke = 0;
37837 fra.me.REG_size = 1;
37838 fra.me.REG[0] = NIT_NULL;
37839 fra.me.REG[0] = p0;
37840 stack_frame_head = fra.me.prev;
37841 init_table[itpos249] = 1;
37842 return;
37843 }
37844 void parser___parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
37845 int itpos250 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsCastExpr].i;
37846 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
37847 val_t REGB0;
37848 val_t tmp;
37849 if (init_table[itpos250]) return;
37850 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37851 fra.me.file = LOCATE_parser___parser_prod;
37852 fra.me.line = 7036;
37853 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___init_aascastexpr;
37854 fra.me.has_broke = 0;
37855 fra.me.REG_size = 5;
37856 fra.me.REG[0] = NIT_NULL;
37857 fra.me.REG[1] = NIT_NULL;
37858 fra.me.REG[2] = NIT_NULL;
37859 fra.me.REG[3] = NIT_NULL;
37860 fra.me.REG[4] = NIT_NULL;
37861 fra.me.REG[0] = p0;
37862 fra.me.REG[1] = p1;
37863 fra.me.REG[2] = p2;
37864 fra.me.REG[3] = p3;
37865 /* ./parser//parser_prod.nit:7036 */
37866 fra.me.REG[4] = fra.me.REG[0];
37867 /* ./parser//parser_prod.nit:7042 */
37868 CALL_parser___parser_prod___AAsCastExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
37869 /* ./parser//parser_prod.nit:7043 */
37870 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37871 if (UNTAG_Bool(REGB0)) {
37872 } else {
37873 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7043);
37874 }
37875 ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[4]) = fra.me.REG[1];
37876 /* ./parser//parser_prod.nit:7044 */
37877 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37878 if (UNTAG_Bool(REGB0)) {
37879 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7044);
37880 }
37881 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
37882 /* ./parser//parser_prod.nit:7045 */
37883 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
37884 if (UNTAG_Bool(REGB0)) {
37885 } else {
37886 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7045);
37887 }
37888 ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[4]) = fra.me.REG[2];
37889 /* ./parser//parser_prod.nit:7046 */
37890 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37891 if (UNTAG_Bool(REGB0)) {
37892 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7046);
37893 }
37894 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
37895 /* ./parser//parser_prod.nit:7047 */
37896 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
37897 if (UNTAG_Bool(REGB0)) {
37898 } else {
37899 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7047);
37900 }
37901 ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[4]) = fra.me.REG[3];
37902 /* ./parser//parser_prod.nit:7048 */
37903 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37904 if (UNTAG_Bool(REGB0)) {
37905 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7048);
37906 }
37907 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
37908 stack_frame_head = fra.me.prev;
37909 init_table[itpos250] = 1;
37910 return;
37911 }
37912 void parser___parser_prod___AAsCastExpr___replace_child(val_t p0, val_t p1, val_t p2){
37913 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37914 val_t REGB0;
37915 val_t REGB1;
37916 val_t tmp;
37917 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37918 fra.me.file = LOCATE_parser___parser_prod;
37919 fra.me.line = 7051;
37920 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___replace_child;
37921 fra.me.has_broke = 0;
37922 fra.me.REG_size = 4;
37923 fra.me.REG[0] = NIT_NULL;
37924 fra.me.REG[1] = NIT_NULL;
37925 fra.me.REG[2] = NIT_NULL;
37926 fra.me.REG[3] = NIT_NULL;
37927 fra.me.REG[0] = p0;
37928 fra.me.REG[1] = p1;
37929 fra.me.REG[2] = p2;
37930 /* ./parser//parser_prod.nit:7053 */
37931 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
37932 if (UNTAG_Bool(REGB0)) {
37933 } else {
37934 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7053);
37935 }
37936 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]);
37937 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37938 if (UNTAG_Bool(REGB0)) {
37939 } else {
37940 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37941 REGB0 = REGB1;
37942 }
37943 if (UNTAG_Bool(REGB0)) {
37944 /* ./parser//parser_prod.nit:7054 */
37945 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37946 if (UNTAG_Bool(REGB0)) {
37947 } else {
37948 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37949 if (UNTAG_Bool(REGB1)) {
37950 REGB1 = TAG_Bool(false);
37951 REGB0 = REGB1;
37952 } else {
37953 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37954 REGB0 = REGB1;
37955 }
37956 }
37957 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37958 if (UNTAG_Bool(REGB0)) {
37959 /* ./parser//parser_prod.nit:7055 */
37960 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37961 if (UNTAG_Bool(REGB0)) {
37962 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7055);
37963 }
37964 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37965 /* ./parser//parser_prod.nit:7056 */
37966 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
37967 if (UNTAG_Bool(REGB0)) {
37968 } else {
37969 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7056);
37970 }
37971 /* ./parser//parser_prod.nit:7057 */
37972 ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
37973 } else {
37974 /* ./parser//parser_prod.nit:7059 */
37975 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7059);
37976 }
37977 /* ./parser//parser_prod.nit:7061 */
37978 goto label1;
37979 }
37980 /* ./parser//parser_prod.nit:7063 */
37981 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
37982 if (UNTAG_Bool(REGB0)) {
37983 } else {
37984 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7063);
37985 }
37986 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]);
37987 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37988 if (UNTAG_Bool(REGB0)) {
37989 } else {
37990 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37991 REGB0 = REGB1;
37992 }
37993 if (UNTAG_Bool(REGB0)) {
37994 /* ./parser//parser_prod.nit:7064 */
37995 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37996 if (UNTAG_Bool(REGB0)) {
37997 } else {
37998 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37999 if (UNTAG_Bool(REGB1)) {
38000 REGB1 = TAG_Bool(false);
38001 REGB0 = REGB1;
38002 } else {
38003 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38004 REGB0 = REGB1;
38005 }
38006 }
38007 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38008 if (UNTAG_Bool(REGB0)) {
38009 /* ./parser//parser_prod.nit:7065 */
38010 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38011 if (UNTAG_Bool(REGB0)) {
38012 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7065);
38013 }
38014 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38015 /* ./parser//parser_prod.nit:7066 */
38016 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*/;
38017 if (UNTAG_Bool(REGB0)) {
38018 } else {
38019 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7066);
38020 }
38021 /* ./parser//parser_prod.nit:7067 */
38022 ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
38023 } else {
38024 /* ./parser//parser_prod.nit:7069 */
38025 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7069);
38026 }
38027 /* ./parser//parser_prod.nit:7071 */
38028 goto label1;
38029 }
38030 /* ./parser//parser_prod.nit:7073 */
38031 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
38032 if (UNTAG_Bool(REGB0)) {
38033 } else {
38034 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7073);
38035 }
38036 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]);
38037 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38038 if (UNTAG_Bool(REGB0)) {
38039 } else {
38040 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38041 REGB0 = REGB1;
38042 }
38043 if (UNTAG_Bool(REGB0)) {
38044 /* ./parser//parser_prod.nit:7074 */
38045 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38046 if (UNTAG_Bool(REGB0)) {
38047 } else {
38048 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38049 if (UNTAG_Bool(REGB1)) {
38050 REGB1 = TAG_Bool(false);
38051 REGB0 = REGB1;
38052 } else {
38053 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38054 REGB0 = REGB1;
38055 }
38056 }
38057 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38058 if (UNTAG_Bool(REGB0)) {
38059 /* ./parser//parser_prod.nit:7075 */
38060 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38061 if (UNTAG_Bool(REGB0)) {
38062 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7075);
38063 }
38064 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38065 /* ./parser//parser_prod.nit:7076 */
38066 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*/;
38067 if (UNTAG_Bool(REGB0)) {
38068 } else {
38069 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7076);
38070 }
38071 /* ./parser//parser_prod.nit:7077 */
38072 ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
38073 } else {
38074 /* ./parser//parser_prod.nit:7079 */
38075 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7079);
38076 }
38077 /* ./parser//parser_prod.nit:7081 */
38078 goto label1;
38079 }
38080 label1: while(0);
38081 stack_frame_head = fra.me.prev;
38082 return;
38083 }
38084 void parser___parser_prod___AAsCastExpr___visit_all(val_t p0, val_t p1){
38085 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38086 val_t REGB0;
38087 val_t tmp;
38088 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38089 fra.me.file = LOCATE_parser___parser_prod;
38090 fra.me.line = 7085;
38091 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___visit_all;
38092 fra.me.has_broke = 0;
38093 fra.me.REG_size = 3;
38094 fra.me.REG[0] = NIT_NULL;
38095 fra.me.REG[1] = NIT_NULL;
38096 fra.me.REG[2] = NIT_NULL;
38097 fra.me.REG[0] = p0;
38098 fra.me.REG[1] = p1;
38099 /* ./parser//parser_prod.nit:7087 */
38100 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
38101 if (UNTAG_Bool(REGB0)) {
38102 } else {
38103 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7087);
38104 }
38105 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]);
38106 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38107 /* ./parser//parser_prod.nit:7088 */
38108 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
38109 if (UNTAG_Bool(REGB0)) {
38110 } else {
38111 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7088);
38112 }
38113 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]);
38114 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38115 /* ./parser//parser_prod.nit:7089 */
38116 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
38117 if (UNTAG_Bool(REGB0)) {
38118 } else {
38119 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7089);
38120 }
38121 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]);
38122 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38123 stack_frame_head = fra.me.prev;
38124 return;
38125 }
38126 void parser___parser_prod___AAsNotnullExpr___empty_init(val_t p0, int* init_table){
38127 int itpos251 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotnullExpr].i;
38128 struct {struct stack_frame_t me;} fra;
38129 val_t tmp;
38130 if (init_table[itpos251]) return;
38131 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38132 fra.me.file = LOCATE_parser___parser_prod;
38133 fra.me.line = 7093;
38134 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___empty_init;
38135 fra.me.has_broke = 0;
38136 fra.me.REG_size = 1;
38137 fra.me.REG[0] = NIT_NULL;
38138 fra.me.REG[0] = p0;
38139 stack_frame_head = fra.me.prev;
38140 init_table[itpos251] = 1;
38141 return;
38142 }
38143 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){
38144 int itpos252 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotnullExpr].i;
38145 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
38146 val_t REGB0;
38147 val_t tmp;
38148 if (init_table[itpos252]) return;
38149 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38150 fra.me.file = LOCATE_parser___parser_prod;
38151 fra.me.line = 7095;
38152 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr;
38153 fra.me.has_broke = 0;
38154 fra.me.REG_size = 6;
38155 fra.me.REG[0] = NIT_NULL;
38156 fra.me.REG[1] = NIT_NULL;
38157 fra.me.REG[2] = NIT_NULL;
38158 fra.me.REG[3] = NIT_NULL;
38159 fra.me.REG[4] = NIT_NULL;
38160 fra.me.REG[5] = NIT_NULL;
38161 fra.me.REG[0] = p0;
38162 fra.me.REG[1] = p1;
38163 fra.me.REG[2] = p2;
38164 fra.me.REG[3] = p3;
38165 fra.me.REG[4] = p4;
38166 /* ./parser//parser_prod.nit:7095 */
38167 fra.me.REG[5] = fra.me.REG[0];
38168 /* ./parser//parser_prod.nit:7102 */
38169 CALL_parser___parser_prod___AAsNotnullExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
38170 /* ./parser//parser_prod.nit:7103 */
38171 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38172 if (UNTAG_Bool(REGB0)) {
38173 } else {
38174 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7103);
38175 }
38176 ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
38177 /* ./parser//parser_prod.nit:7104 */
38178 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38179 if (UNTAG_Bool(REGB0)) {
38180 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7104);
38181 }
38182 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
38183 /* ./parser//parser_prod.nit:7105 */
38184 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
38185 if (UNTAG_Bool(REGB0)) {
38186 } else {
38187 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7105);
38188 }
38189 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[5]) = fra.me.REG[2];
38190 /* ./parser//parser_prod.nit:7106 */
38191 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38192 if (UNTAG_Bool(REGB0)) {
38193 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7106);
38194 }
38195 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
38196 /* ./parser//parser_prod.nit:7107 */
38197 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
38198 if (UNTAG_Bool(REGB0)) {
38199 } else {
38200 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7107);
38201 }
38202 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[5]) = fra.me.REG[3];
38203 /* ./parser//parser_prod.nit:7108 */
38204 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38205 if (UNTAG_Bool(REGB0)) {
38206 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7108);
38207 }
38208 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
38209 /* ./parser//parser_prod.nit:7109 */
38210 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
38211 if (UNTAG_Bool(REGB0)) {
38212 } else {
38213 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7109);
38214 }
38215 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[5]) = fra.me.REG[4];
38216 /* ./parser//parser_prod.nit:7110 */
38217 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
38218 if (UNTAG_Bool(REGB0)) {
38219 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7110);
38220 }
38221 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
38222 stack_frame_head = fra.me.prev;
38223 init_table[itpos252] = 1;
38224 return;
38225 }
38226 void parser___parser_prod___AAsNotnullExpr___replace_child(val_t p0, val_t p1, val_t p2){
38227 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38228 val_t REGB0;
38229 val_t REGB1;
38230 val_t tmp;
38231 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38232 fra.me.file = LOCATE_parser___parser_prod;
38233 fra.me.line = 7113;
38234 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___replace_child;
38235 fra.me.has_broke = 0;
38236 fra.me.REG_size = 4;
38237 fra.me.REG[0] = NIT_NULL;
38238 fra.me.REG[1] = NIT_NULL;
38239 fra.me.REG[2] = NIT_NULL;
38240 fra.me.REG[3] = NIT_NULL;
38241 fra.me.REG[0] = p0;
38242 fra.me.REG[1] = p1;
38243 fra.me.REG[2] = p2;
38244 /* ./parser//parser_prod.nit:7115 */
38245 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
38246 if (UNTAG_Bool(REGB0)) {
38247 } else {
38248 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7115);
38249 }
38250 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]);
38251 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38252 if (UNTAG_Bool(REGB0)) {
38253 } else {
38254 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38255 REGB0 = REGB1;
38256 }
38257 if (UNTAG_Bool(REGB0)) {
38258 /* ./parser//parser_prod.nit:7116 */
38259 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38260 if (UNTAG_Bool(REGB0)) {
38261 } else {
38262 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38263 if (UNTAG_Bool(REGB1)) {
38264 REGB1 = TAG_Bool(false);
38265 REGB0 = REGB1;
38266 } else {
38267 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38268 REGB0 = REGB1;
38269 }
38270 }
38271 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38272 if (UNTAG_Bool(REGB0)) {
38273 /* ./parser//parser_prod.nit:7117 */
38274 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38275 if (UNTAG_Bool(REGB0)) {
38276 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7117);
38277 }
38278 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38279 /* ./parser//parser_prod.nit:7118 */
38280 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
38281 if (UNTAG_Bool(REGB0)) {
38282 } else {
38283 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7118);
38284 }
38285 /* ./parser//parser_prod.nit:7119 */
38286 ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
38287 } else {
38288 /* ./parser//parser_prod.nit:7121 */
38289 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7121);
38290 }
38291 /* ./parser//parser_prod.nit:7123 */
38292 goto label1;
38293 }
38294 /* ./parser//parser_prod.nit:7125 */
38295 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
38296 if (UNTAG_Bool(REGB0)) {
38297 } else {
38298 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7125);
38299 }
38300 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]);
38301 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38302 if (UNTAG_Bool(REGB0)) {
38303 } else {
38304 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38305 REGB0 = REGB1;
38306 }
38307 if (UNTAG_Bool(REGB0)) {
38308 /* ./parser//parser_prod.nit:7126 */
38309 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38310 if (UNTAG_Bool(REGB0)) {
38311 } else {
38312 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38313 if (UNTAG_Bool(REGB1)) {
38314 REGB1 = TAG_Bool(false);
38315 REGB0 = REGB1;
38316 } else {
38317 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38318 REGB0 = REGB1;
38319 }
38320 }
38321 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38322 if (UNTAG_Bool(REGB0)) {
38323 /* ./parser//parser_prod.nit:7127 */
38324 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38325 if (UNTAG_Bool(REGB0)) {
38326 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7127);
38327 }
38328 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38329 /* ./parser//parser_prod.nit:7128 */
38330 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*/;
38331 if (UNTAG_Bool(REGB0)) {
38332 } else {
38333 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7128);
38334 }
38335 /* ./parser//parser_prod.nit:7129 */
38336 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
38337 } else {
38338 /* ./parser//parser_prod.nit:7131 */
38339 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7131);
38340 }
38341 /* ./parser//parser_prod.nit:7133 */
38342 goto label1;
38343 }
38344 /* ./parser//parser_prod.nit:7135 */
38345 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
38346 if (UNTAG_Bool(REGB0)) {
38347 } else {
38348 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 7135);
38349 }
38350 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]);
38351 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38352 if (UNTAG_Bool(REGB0)) {
38353 } else {
38354 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38355 REGB0 = REGB1;
38356 }
38357 if (UNTAG_Bool(REGB0)) {
38358 /* ./parser//parser_prod.nit:7136 */
38359 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38360 if (UNTAG_Bool(REGB0)) {
38361 } else {
38362 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38363 if (UNTAG_Bool(REGB1)) {
38364 REGB1 = TAG_Bool(false);
38365 REGB0 = REGB1;
38366 } else {
38367 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38368 REGB0 = REGB1;
38369 }
38370 }
38371 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38372 if (UNTAG_Bool(REGB0)) {
38373 /* ./parser//parser_prod.nit:7137 */
38374 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38375 if (UNTAG_Bool(REGB0)) {
38376 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7137);
38377 }
38378 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38379 /* ./parser//parser_prod.nit:7138 */
38380 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*/;
38381 if (UNTAG_Bool(REGB0)) {
38382 } else {
38383 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7138);
38384 }
38385 /* ./parser//parser_prod.nit:7139 */
38386 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
38387 } else {
38388 /* ./parser//parser_prod.nit:7141 */
38389 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7141);
38390 }
38391 /* ./parser//parser_prod.nit:7143 */
38392 goto label1;
38393 }
38394 /* ./parser//parser_prod.nit:7145 */
38395 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
38396 if (UNTAG_Bool(REGB0)) {
38397 } else {
38398 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 7145);
38399 }
38400 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]);
38401 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38402 if (UNTAG_Bool(REGB0)) {
38403 } else {
38404 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38405 REGB0 = REGB1;
38406 }
38407 if (UNTAG_Bool(REGB0)) {
38408 /* ./parser//parser_prod.nit:7146 */
38409 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38410 if (UNTAG_Bool(REGB0)) {
38411 } else {
38412 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38413 if (UNTAG_Bool(REGB1)) {
38414 REGB1 = TAG_Bool(false);
38415 REGB0 = REGB1;
38416 } else {
38417 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38418 REGB0 = REGB1;
38419 }
38420 }
38421 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38422 if (UNTAG_Bool(REGB0)) {
38423 /* ./parser//parser_prod.nit:7147 */
38424 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38425 if (UNTAG_Bool(REGB0)) {
38426 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7147);
38427 }
38428 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38429 /* ./parser//parser_prod.nit:7148 */
38430 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*/;
38431 if (UNTAG_Bool(REGB0)) {
38432 } else {
38433 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7148);
38434 }
38435 /* ./parser//parser_prod.nit:7149 */
38436 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[2];
38437 } else {
38438 /* ./parser//parser_prod.nit:7151 */
38439 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7151);
38440 }
38441 /* ./parser//parser_prod.nit:7153 */
38442 goto label1;
38443 }
38444 label1: while(0);
38445 stack_frame_head = fra.me.prev;
38446 return;
38447 }
38448 void parser___parser_prod___AAsNotnullExpr___visit_all(val_t p0, val_t p1){
38449 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38450 val_t REGB0;
38451 val_t tmp;
38452 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38453 fra.me.file = LOCATE_parser___parser_prod;
38454 fra.me.line = 7157;
38455 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___visit_all;
38456 fra.me.has_broke = 0;
38457 fra.me.REG_size = 3;
38458 fra.me.REG[0] = NIT_NULL;
38459 fra.me.REG[1] = NIT_NULL;
38460 fra.me.REG[2] = NIT_NULL;
38461 fra.me.REG[0] = p0;
38462 fra.me.REG[1] = p1;
38463 /* ./parser//parser_prod.nit:7159 */
38464 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
38465 if (UNTAG_Bool(REGB0)) {
38466 } else {
38467 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7159);
38468 }
38469 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]);
38470 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38471 /* ./parser//parser_prod.nit:7160 */
38472 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
38473 if (UNTAG_Bool(REGB0)) {
38474 } else {
38475 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7160);
38476 }
38477 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]);
38478 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38479 /* ./parser//parser_prod.nit:7161 */
38480 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
38481 if (UNTAG_Bool(REGB0)) {
38482 } else {
38483 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 7161);
38484 }
38485 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]);
38486 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38487 /* ./parser//parser_prod.nit:7162 */
38488 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
38489 if (UNTAG_Bool(REGB0)) {
38490 } else {
38491 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 7162);
38492 }
38493 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]);
38494 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38495 stack_frame_head = fra.me.prev;
38496 return;
38497 }
38498 void parser___parser_prod___AIssetAttrExpr___empty_init(val_t p0, int* init_table){
38499 int itpos253 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIssetAttrExpr].i;
38500 struct {struct stack_frame_t me;} fra;
38501 val_t tmp;
38502 if (init_table[itpos253]) return;
38503 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38504 fra.me.file = LOCATE_parser___parser_prod;
38505 fra.me.line = 7166;
38506 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___empty_init;
38507 fra.me.has_broke = 0;
38508 fra.me.REG_size = 1;
38509 fra.me.REG[0] = NIT_NULL;
38510 fra.me.REG[0] = p0;
38511 stack_frame_head = fra.me.prev;
38512 init_table[itpos253] = 1;
38513 return;
38514 }
38515 void parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
38516 int itpos254 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIssetAttrExpr].i;
38517 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
38518 val_t REGB0;
38519 val_t tmp;
38520 if (init_table[itpos254]) return;
38521 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38522 fra.me.file = LOCATE_parser___parser_prod;
38523 fra.me.line = 7168;
38524 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr;
38525 fra.me.has_broke = 0;
38526 fra.me.REG_size = 5;
38527 fra.me.REG[0] = NIT_NULL;
38528 fra.me.REG[1] = NIT_NULL;
38529 fra.me.REG[2] = NIT_NULL;
38530 fra.me.REG[3] = NIT_NULL;
38531 fra.me.REG[4] = NIT_NULL;
38532 fra.me.REG[0] = p0;
38533 fra.me.REG[1] = p1;
38534 fra.me.REG[2] = p2;
38535 fra.me.REG[3] = p3;
38536 /* ./parser//parser_prod.nit:7168 */
38537 fra.me.REG[4] = fra.me.REG[0];
38538 /* ./parser//parser_prod.nit:7174 */
38539 CALL_parser___parser_prod___AIssetAttrExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
38540 /* ./parser//parser_prod.nit:7175 */
38541 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38542 if (UNTAG_Bool(REGB0)) {
38543 } else {
38544 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7175);
38545 }
38546 ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[4]) = fra.me.REG[1];
38547 /* ./parser//parser_prod.nit:7176 */
38548 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38549 if (UNTAG_Bool(REGB0)) {
38550 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7176);
38551 }
38552 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
38553 /* ./parser//parser_prod.nit:7177 */
38554 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
38555 if (UNTAG_Bool(REGB0)) {
38556 } else {
38557 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7177);
38558 }
38559 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[4]) = fra.me.REG[2];
38560 /* ./parser//parser_prod.nit:7178 */
38561 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38562 if (UNTAG_Bool(REGB0)) {
38563 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7178);
38564 }
38565 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
38566 /* ./parser//parser_prod.nit:7179 */
38567 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
38568 if (UNTAG_Bool(REGB0)) {
38569 } else {
38570 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7179);
38571 }
38572 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[3];
38573 /* ./parser//parser_prod.nit:7180 */
38574 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38575 if (UNTAG_Bool(REGB0)) {
38576 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7180);
38577 }
38578 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
38579 stack_frame_head = fra.me.prev;
38580 init_table[itpos254] = 1;
38581 return;
38582 }
38583 void parser___parser_prod___AIssetAttrExpr___replace_child(val_t p0, val_t p1, val_t p2){
38584 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38585 val_t REGB0;
38586 val_t REGB1;
38587 val_t tmp;
38588 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38589 fra.me.file = LOCATE_parser___parser_prod;
38590 fra.me.line = 7183;
38591 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___replace_child;
38592 fra.me.has_broke = 0;
38593 fra.me.REG_size = 4;
38594 fra.me.REG[0] = NIT_NULL;
38595 fra.me.REG[1] = NIT_NULL;
38596 fra.me.REG[2] = NIT_NULL;
38597 fra.me.REG[3] = NIT_NULL;
38598 fra.me.REG[0] = p0;
38599 fra.me.REG[1] = p1;
38600 fra.me.REG[2] = p2;
38601 /* ./parser//parser_prod.nit:7185 */
38602 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
38603 if (UNTAG_Bool(REGB0)) {
38604 } else {
38605 nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser___parser_prod, 7185);
38606 }
38607 fra.me.REG[3] = ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]);
38608 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38609 if (UNTAG_Bool(REGB0)) {
38610 } else {
38611 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38612 REGB0 = REGB1;
38613 }
38614 if (UNTAG_Bool(REGB0)) {
38615 /* ./parser//parser_prod.nit:7186 */
38616 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38617 if (UNTAG_Bool(REGB0)) {
38618 } else {
38619 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38620 if (UNTAG_Bool(REGB1)) {
38621 REGB1 = TAG_Bool(false);
38622 REGB0 = REGB1;
38623 } else {
38624 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38625 REGB0 = REGB1;
38626 }
38627 }
38628 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38629 if (UNTAG_Bool(REGB0)) {
38630 /* ./parser//parser_prod.nit:7187 */
38631 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38632 if (UNTAG_Bool(REGB0)) {
38633 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7187);
38634 }
38635 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38636 /* ./parser//parser_prod.nit:7188 */
38637 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*/;
38638 if (UNTAG_Bool(REGB0)) {
38639 } else {
38640 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7188);
38641 }
38642 /* ./parser//parser_prod.nit:7189 */
38643 ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]) = fra.me.REG[2];
38644 } else {
38645 /* ./parser//parser_prod.nit:7191 */
38646 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7191);
38647 }
38648 /* ./parser//parser_prod.nit:7193 */
38649 goto label1;
38650 }
38651 /* ./parser//parser_prod.nit:7195 */
38652 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
38653 if (UNTAG_Bool(REGB0)) {
38654 } else {
38655 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7195);
38656 }
38657 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
38658 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38659 if (UNTAG_Bool(REGB0)) {
38660 } else {
38661 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38662 REGB0 = REGB1;
38663 }
38664 if (UNTAG_Bool(REGB0)) {
38665 /* ./parser//parser_prod.nit:7196 */
38666 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38667 if (UNTAG_Bool(REGB0)) {
38668 } else {
38669 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38670 if (UNTAG_Bool(REGB1)) {
38671 REGB1 = TAG_Bool(false);
38672 REGB0 = REGB1;
38673 } else {
38674 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38675 REGB0 = REGB1;
38676 }
38677 }
38678 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38679 if (UNTAG_Bool(REGB0)) {
38680 /* ./parser//parser_prod.nit:7197 */
38681 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38682 if (UNTAG_Bool(REGB0)) {
38683 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7197);
38684 }
38685 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38686 /* ./parser//parser_prod.nit:7198 */
38687 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
38688 if (UNTAG_Bool(REGB0)) {
38689 } else {
38690 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7198);
38691 }
38692 /* ./parser//parser_prod.nit:7199 */
38693 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
38694 } else {
38695 /* ./parser//parser_prod.nit:7201 */
38696 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7201);
38697 }
38698 /* ./parser//parser_prod.nit:7203 */
38699 goto label1;
38700 }
38701 /* ./parser//parser_prod.nit:7205 */
38702 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
38703 if (UNTAG_Bool(REGB0)) {
38704 } else {
38705 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7205);
38706 }
38707 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
38708 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38709 if (UNTAG_Bool(REGB0)) {
38710 } else {
38711 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38712 REGB0 = REGB1;
38713 }
38714 if (UNTAG_Bool(REGB0)) {
38715 /* ./parser//parser_prod.nit:7206 */
38716 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38717 if (UNTAG_Bool(REGB0)) {
38718 } else {
38719 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38720 if (UNTAG_Bool(REGB1)) {
38721 REGB1 = TAG_Bool(false);
38722 REGB0 = REGB1;
38723 } else {
38724 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38725 REGB0 = REGB1;
38726 }
38727 }
38728 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38729 if (UNTAG_Bool(REGB0)) {
38730 /* ./parser//parser_prod.nit:7207 */
38731 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38732 if (UNTAG_Bool(REGB0)) {
38733 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7207);
38734 }
38735 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38736 /* ./parser//parser_prod.nit:7208 */
38737 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*/;
38738 if (UNTAG_Bool(REGB0)) {
38739 } else {
38740 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7208);
38741 }
38742 /* ./parser//parser_prod.nit:7209 */
38743 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
38744 } else {
38745 /* ./parser//parser_prod.nit:7211 */
38746 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7211);
38747 }
38748 /* ./parser//parser_prod.nit:7213 */
38749 goto label1;
38750 }
38751 label1: while(0);
38752 stack_frame_head = fra.me.prev;
38753 return;
38754 }
38755 void parser___parser_prod___AIssetAttrExpr___visit_all(val_t p0, val_t p1){
38756 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38757 val_t REGB0;
38758 val_t tmp;
38759 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38760 fra.me.file = LOCATE_parser___parser_prod;
38761 fra.me.line = 7217;
38762 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___visit_all;
38763 fra.me.has_broke = 0;
38764 fra.me.REG_size = 3;
38765 fra.me.REG[0] = NIT_NULL;
38766 fra.me.REG[1] = NIT_NULL;
38767 fra.me.REG[2] = NIT_NULL;
38768 fra.me.REG[0] = p0;
38769 fra.me.REG[1] = p1;
38770 /* ./parser//parser_prod.nit:7219 */
38771 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
38772 if (UNTAG_Bool(REGB0)) {
38773 } else {
38774 nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser___parser_prod, 7219);
38775 }
38776 fra.me.REG[2] = ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]);
38777 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38778 /* ./parser//parser_prod.nit:7220 */
38779 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
38780 if (UNTAG_Bool(REGB0)) {
38781 } else {
38782 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7220);
38783 }
38784 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
38785 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38786 /* ./parser//parser_prod.nit:7221 */
38787 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
38788 if (UNTAG_Bool(REGB0)) {
38789 } else {
38790 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7221);
38791 }
38792 fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
38793 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38794 stack_frame_head = fra.me.prev;
38795 return;
38796 }
38797 void parser___parser_prod___APlusAssignOp___empty_init(val_t p0, int* init_table){
38798 int itpos255 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusAssignOp].i;
38799 struct {struct stack_frame_t me;} fra;
38800 val_t tmp;
38801 if (init_table[itpos255]) return;
38802 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38803 fra.me.file = LOCATE_parser___parser_prod;
38804 fra.me.line = 7225;
38805 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___empty_init;
38806 fra.me.has_broke = 0;
38807 fra.me.REG_size = 1;
38808 fra.me.REG[0] = NIT_NULL;
38809 fra.me.REG[0] = p0;
38810 stack_frame_head = fra.me.prev;
38811 init_table[itpos255] = 1;
38812 return;
38813 }
38814 void parser___parser_prod___APlusAssignOp___init_aplusassignop(val_t p0, val_t p1, int* init_table){
38815 int itpos256 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusAssignOp].i;
38816 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38817 val_t REGB0;
38818 val_t tmp;
38819 if (init_table[itpos256]) return;
38820 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38821 fra.me.file = LOCATE_parser___parser_prod;
38822 fra.me.line = 7227;
38823 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___init_aplusassignop;
38824 fra.me.has_broke = 0;
38825 fra.me.REG_size = 3;
38826 fra.me.REG[0] = NIT_NULL;
38827 fra.me.REG[1] = NIT_NULL;
38828 fra.me.REG[2] = NIT_NULL;
38829 fra.me.REG[0] = p0;
38830 fra.me.REG[1] = p1;
38831 /* ./parser//parser_prod.nit:7227 */
38832 fra.me.REG[2] = fra.me.REG[0];
38833 /* ./parser//parser_prod.nit:7231 */
38834 CALL_parser___parser_prod___APlusAssignOp___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
38835 /* ./parser//parser_prod.nit:7232 */
38836 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38837 if (UNTAG_Bool(REGB0)) {
38838 } else {
38839 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7232);
38840 }
38841 ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[2]) = fra.me.REG[1];
38842 /* ./parser//parser_prod.nit:7233 */
38843 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38844 if (UNTAG_Bool(REGB0)) {
38845 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7233);
38846 }
38847 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38848 stack_frame_head = fra.me.prev;
38849 init_table[itpos256] = 1;
38850 return;
38851 }
38852 void parser___parser_prod___APlusAssignOp___replace_child(val_t p0, val_t p1, val_t p2){
38853 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38854 val_t REGB0;
38855 val_t REGB1;
38856 val_t tmp;
38857 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38858 fra.me.file = LOCATE_parser___parser_prod;
38859 fra.me.line = 7236;
38860 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___replace_child;
38861 fra.me.has_broke = 0;
38862 fra.me.REG_size = 4;
38863 fra.me.REG[0] = NIT_NULL;
38864 fra.me.REG[1] = NIT_NULL;
38865 fra.me.REG[2] = NIT_NULL;
38866 fra.me.REG[3] = NIT_NULL;
38867 fra.me.REG[0] = p0;
38868 fra.me.REG[1] = p1;
38869 fra.me.REG[2] = p2;
38870 /* ./parser//parser_prod.nit:7238 */
38871 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0])!=NIT_NULL);
38872 if (UNTAG_Bool(REGB0)) {
38873 } else {
38874 nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser___parser_prod, 7238);
38875 }
38876 fra.me.REG[3] = ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]);
38877 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38878 if (UNTAG_Bool(REGB0)) {
38879 } else {
38880 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38881 REGB0 = REGB1;
38882 }
38883 if (UNTAG_Bool(REGB0)) {
38884 /* ./parser//parser_prod.nit:7239 */
38885 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38886 if (UNTAG_Bool(REGB0)) {
38887 } else {
38888 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38889 if (UNTAG_Bool(REGB1)) {
38890 REGB1 = TAG_Bool(false);
38891 REGB0 = REGB1;
38892 } else {
38893 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38894 REGB0 = REGB1;
38895 }
38896 }
38897 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38898 if (UNTAG_Bool(REGB0)) {
38899 /* ./parser//parser_prod.nit:7240 */
38900 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38901 if (UNTAG_Bool(REGB0)) {
38902 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7240);
38903 }
38904 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38905 /* ./parser//parser_prod.nit:7241 */
38906 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*/;
38907 if (UNTAG_Bool(REGB0)) {
38908 } else {
38909 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7241);
38910 }
38911 /* ./parser//parser_prod.nit:7242 */
38912 ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]) = fra.me.REG[2];
38913 } else {
38914 /* ./parser//parser_prod.nit:7244 */
38915 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7244);
38916 }
38917 /* ./parser//parser_prod.nit:7246 */
38918 goto label1;
38919 }
38920 label1: while(0);
38921 stack_frame_head = fra.me.prev;
38922 return;
38923 }
38924 void parser___parser_prod___APlusAssignOp___visit_all(val_t p0, val_t p1){
38925 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38926 val_t REGB0;
38927 val_t tmp;
38928 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38929 fra.me.file = LOCATE_parser___parser_prod;
38930 fra.me.line = 7250;
38931 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___visit_all;
38932 fra.me.has_broke = 0;
38933 fra.me.REG_size = 2;
38934 fra.me.REG[0] = NIT_NULL;
38935 fra.me.REG[1] = NIT_NULL;
38936 fra.me.REG[0] = p0;
38937 fra.me.REG[1] = p1;
38938 /* ./parser//parser_prod.nit:7252 */
38939 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0])!=NIT_NULL);
38940 if (UNTAG_Bool(REGB0)) {
38941 } else {
38942 nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser___parser_prod, 7252);
38943 }
38944 fra.me.REG[0] = ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]);
38945 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38946 stack_frame_head = fra.me.prev;
38947 return;
38948 }
38949 void parser___parser_prod___AMinusAssignOp___empty_init(val_t p0, int* init_table){
38950 int itpos257 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusAssignOp].i;
38951 struct {struct stack_frame_t me;} fra;
38952 val_t tmp;
38953 if (init_table[itpos257]) return;
38954 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38955 fra.me.file = LOCATE_parser___parser_prod;
38956 fra.me.line = 7256;
38957 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___empty_init;
38958 fra.me.has_broke = 0;
38959 fra.me.REG_size = 1;
38960 fra.me.REG[0] = NIT_NULL;
38961 fra.me.REG[0] = p0;
38962 stack_frame_head = fra.me.prev;
38963 init_table[itpos257] = 1;
38964 return;
38965 }
38966 void parser___parser_prod___AMinusAssignOp___init_aminusassignop(val_t p0, val_t p1, int* init_table){
38967 int itpos258 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusAssignOp].i;
38968 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38969 val_t REGB0;
38970 val_t tmp;
38971 if (init_table[itpos258]) return;
38972 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38973 fra.me.file = LOCATE_parser___parser_prod;
38974 fra.me.line = 7258;
38975 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___init_aminusassignop;
38976 fra.me.has_broke = 0;
38977 fra.me.REG_size = 3;
38978 fra.me.REG[0] = NIT_NULL;
38979 fra.me.REG[1] = NIT_NULL;
38980 fra.me.REG[2] = NIT_NULL;
38981 fra.me.REG[0] = p0;
38982 fra.me.REG[1] = p1;
38983 /* ./parser//parser_prod.nit:7258 */
38984 fra.me.REG[2] = fra.me.REG[0];
38985 /* ./parser//parser_prod.nit:7262 */
38986 CALL_parser___parser_prod___AMinusAssignOp___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
38987 /* ./parser//parser_prod.nit:7263 */
38988 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38989 if (UNTAG_Bool(REGB0)) {
38990 } else {
38991 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7263);
38992 }
38993 ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[2]) = fra.me.REG[1];
38994 /* ./parser//parser_prod.nit:7264 */
38995 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38996 if (UNTAG_Bool(REGB0)) {
38997 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7264);
38998 }
38999 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39000 stack_frame_head = fra.me.prev;
39001 init_table[itpos258] = 1;
39002 return;
39003 }
39004 void parser___parser_prod___AMinusAssignOp___replace_child(val_t p0, val_t p1, val_t p2){
39005 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39006 val_t REGB0;
39007 val_t REGB1;
39008 val_t tmp;
39009 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39010 fra.me.file = LOCATE_parser___parser_prod;
39011 fra.me.line = 7267;
39012 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___replace_child;
39013 fra.me.has_broke = 0;
39014 fra.me.REG_size = 4;
39015 fra.me.REG[0] = NIT_NULL;
39016 fra.me.REG[1] = NIT_NULL;
39017 fra.me.REG[2] = NIT_NULL;
39018 fra.me.REG[3] = NIT_NULL;
39019 fra.me.REG[0] = p0;
39020 fra.me.REG[1] = p1;
39021 fra.me.REG[2] = p2;
39022 /* ./parser//parser_prod.nit:7269 */
39023 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0])!=NIT_NULL);
39024 if (UNTAG_Bool(REGB0)) {
39025 } else {
39026 nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser___parser_prod, 7269);
39027 }
39028 fra.me.REG[3] = ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]);
39029 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39030 if (UNTAG_Bool(REGB0)) {
39031 } else {
39032 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39033 REGB0 = REGB1;
39034 }
39035 if (UNTAG_Bool(REGB0)) {
39036 /* ./parser//parser_prod.nit:7270 */
39037 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39038 if (UNTAG_Bool(REGB0)) {
39039 } else {
39040 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39041 if (UNTAG_Bool(REGB1)) {
39042 REGB1 = TAG_Bool(false);
39043 REGB0 = REGB1;
39044 } else {
39045 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39046 REGB0 = REGB1;
39047 }
39048 }
39049 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39050 if (UNTAG_Bool(REGB0)) {
39051 /* ./parser//parser_prod.nit:7271 */
39052 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39053 if (UNTAG_Bool(REGB0)) {
39054 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7271);
39055 }
39056 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39057 /* ./parser//parser_prod.nit:7272 */
39058 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*/;
39059 if (UNTAG_Bool(REGB0)) {
39060 } else {
39061 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7272);
39062 }
39063 /* ./parser//parser_prod.nit:7273 */
39064 ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]) = fra.me.REG[2];
39065 } else {
39066 /* ./parser//parser_prod.nit:7275 */
39067 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7275);
39068 }
39069 /* ./parser//parser_prod.nit:7277 */
39070 goto label1;
39071 }
39072 label1: while(0);
39073 stack_frame_head = fra.me.prev;
39074 return;
39075 }
39076 void parser___parser_prod___AMinusAssignOp___visit_all(val_t p0, val_t p1){
39077 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39078 val_t REGB0;
39079 val_t tmp;
39080 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39081 fra.me.file = LOCATE_parser___parser_prod;
39082 fra.me.line = 7281;
39083 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___visit_all;
39084 fra.me.has_broke = 0;
39085 fra.me.REG_size = 2;
39086 fra.me.REG[0] = NIT_NULL;
39087 fra.me.REG[1] = NIT_NULL;
39088 fra.me.REG[0] = p0;
39089 fra.me.REG[1] = p1;
39090 /* ./parser//parser_prod.nit:7283 */
39091 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0])!=NIT_NULL);
39092 if (UNTAG_Bool(REGB0)) {
39093 } else {
39094 nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser___parser_prod, 7283);
39095 }
39096 fra.me.REG[0] = ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]);
39097 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39098 stack_frame_head = fra.me.prev;
39099 return;
39100 }
39101 void parser___parser_prod___AClosureDef___empty_init(val_t p0, int* init_table){
39102 int itpos259 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDef].i;
39103 struct {struct stack_frame_t me;} fra;
39104 val_t tmp;
39105 if (init_table[itpos259]) return;
39106 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39107 fra.me.file = LOCATE_parser___parser_prod;
39108 fra.me.line = 7287;
39109 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___empty_init;
39110 fra.me.has_broke = 0;
39111 fra.me.REG_size = 1;
39112 fra.me.REG[0] = NIT_NULL;
39113 fra.me.REG[0] = p0;
39114 stack_frame_head = fra.me.prev;
39115 init_table[itpos259] = 1;
39116 return;
39117 }
39118 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){
39119 int itpos260 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDef].i;
39120 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
39121 val_t REGB0;
39122 val_t REGB1;
39123 val_t tmp;
39124 if (init_table[itpos260]) return;
39125 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39126 fra.me.file = LOCATE_parser___parser_prod;
39127 fra.me.line = 7289;
39128 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___init_aclosuredef;
39129 fra.me.has_broke = 0;
39130 fra.me.REG_size = 8;
39131 fra.me.REG[0] = NIT_NULL;
39132 fra.me.REG[1] = NIT_NULL;
39133 fra.me.REG[2] = NIT_NULL;
39134 fra.me.REG[3] = NIT_NULL;
39135 fra.me.REG[4] = NIT_NULL;
39136 fra.me.REG[5] = NIT_NULL;
39137 fra.me.REG[6] = NIT_NULL;
39138 fra.me.REG[7] = NIT_NULL;
39139 fra.me.REG[0] = p0;
39140 fra.me.REG[1] = p1;
39141 fra.me.REG[2] = p2;
39142 fra.me.REG[3] = p3;
39143 fra.me.REG[4] = p4;
39144 fra.me.REG[5] = p5;
39145 fra.me.REG[6] = p6;
39146 /* ./parser//parser_prod.nit:7289 */
39147 fra.me.REG[7] = fra.me.REG[0];
39148 /* ./parser//parser_prod.nit:7298 */
39149 CALL_parser___parser_prod___AClosureDef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
39150 /* ./parser//parser_prod.nit:7299 */
39151 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
39152 if (UNTAG_Bool(REGB0)) {
39153 } else {
39154 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7299);
39155 }
39156 ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[7]) = fra.me.REG[1];
39157 /* ./parser//parser_prod.nit:7300 */
39158 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39159 if (UNTAG_Bool(REGB0)) {
39160 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7300);
39161 }
39162 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
39163 /* ./parser//parser_prod.nit:7301 */
39164 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
39165 if (UNTAG_Bool(REGB0)) {
39166 } else {
39167 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7301);
39168 }
39169 ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[7]) = fra.me.REG[2];
39170 /* ./parser//parser_prod.nit:7302 */
39171 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39172 if (UNTAG_Bool(REGB0)) {
39173 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7302);
39174 }
39175 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
39176 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));
39177 /* ./parser//parser_prod.nit:7308 */
39178 ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[7]) = fra.me.REG[4];
39179 /* ./parser//parser_prod.nit:7309 */
39180 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
39181 if (UNTAG_Bool(REGB0)) {
39182 } else {
39183 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
39184 if (UNTAG_Bool(REGB1)) {
39185 REGB1 = TAG_Bool(false);
39186 REGB0 = REGB1;
39187 } else {
39188 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
39189 REGB0 = REGB1;
39190 }
39191 }
39192 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39193 if (UNTAG_Bool(REGB0)) {
39194 /* ./parser//parser_prod.nit:7310 */
39195 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
39196 if (UNTAG_Bool(REGB0)) {
39197 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7310);
39198 }
39199 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
39200 }
39201 /* ./parser//parser_prod.nit:7312 */
39202 ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[7]) = fra.me.REG[5];
39203 /* ./parser//parser_prod.nit:7313 */
39204 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
39205 if (UNTAG_Bool(REGB0)) {
39206 } else {
39207 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
39208 if (UNTAG_Bool(REGB1)) {
39209 REGB1 = TAG_Bool(false);
39210 REGB0 = REGB1;
39211 } else {
39212 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
39213 REGB0 = REGB1;
39214 }
39215 }
39216 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39217 if (UNTAG_Bool(REGB0)) {
39218 /* ./parser//parser_prod.nit:7314 */
39219 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
39220 if (UNTAG_Bool(REGB0)) {
39221 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7314);
39222 }
39223 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
39224 }
39225 /* ./parser//parser_prod.nit:7316 */
39226 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[7]) = fra.me.REG[6];
39227 /* ./parser//parser_prod.nit:7317 */
39228 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
39229 if (UNTAG_Bool(REGB0)) {
39230 } else {
39231 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
39232 if (UNTAG_Bool(REGB1)) {
39233 REGB1 = TAG_Bool(false);
39234 REGB0 = REGB1;
39235 } else {
39236 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
39237 REGB0 = REGB1;
39238 }
39239 }
39240 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39241 if (UNTAG_Bool(REGB0)) {
39242 /* ./parser//parser_prod.nit:7318 */
39243 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
39244 if (UNTAG_Bool(REGB0)) {
39245 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7318);
39246 }
39247 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
39248 }
39249 stack_frame_head = fra.me.prev;
39250 init_table[itpos260] = 1;
39251 return;
39252 }
39253 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){
39254 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39255 val_t REGB0;
39256 fun_t CREG[1];
39257 val_t tmp;
39258 /* ./parser//parser_prod.nit:7303 */
39259 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39260 fra.me.file = LOCATE_parser___parser_prod;
39261 fra.me.line = 0;
39262 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___init_aclosuredef;
39263 fra.me.has_broke = 0;
39264 fra.me.REG_size = 2;
39265 fra.me.REG[0] = NIT_NULL;
39266 fra.me.REG[1] = NIT_NULL;
39267 fra.me.closure_ctx = closctx_param;
39268 fra.me.closure_funs = CREG;
39269 fra.me.REG[0] = p0;
39270 CREG[0] = clos_fun0;
39271 /* ./parser//parser_prod.nit:7304 */
39272 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
39273 if (UNTAG_Bool(REGB0)) {
39274 } else {
39275 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7304);
39276 }
39277 /* ./parser//parser_prod.nit:7305 */
39278 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(closctx->REG[7])!=NIT_NULL);
39279 if (UNTAG_Bool(REGB0)) {
39280 } else {
39281 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7305);
39282 }
39283 fra.me.REG[1] = ATTR_parser___parser_nodes___AClosureDef____n_ids(closctx->REG[7]);
39284 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39285 /* ./parser//parser_prod.nit:7306 */
39286 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[7]);
39287 stack_frame_head = fra.me.prev;
39288 return;
39289 }
39290 void parser___parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_t p2){
39291 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39292 val_t REGB0;
39293 val_t REGB1;
39294 val_t REGB2;
39295 val_t REGB3;
39296 val_t REGB4;
39297 val_t tmp;
39298 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39299 fra.me.file = LOCATE_parser___parser_prod;
39300 fra.me.line = 7322;
39301 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___replace_child;
39302 fra.me.has_broke = 0;
39303 fra.me.REG_size = 4;
39304 fra.me.REG[0] = NIT_NULL;
39305 fra.me.REG[1] = NIT_NULL;
39306 fra.me.REG[2] = NIT_NULL;
39307 fra.me.REG[3] = NIT_NULL;
39308 fra.me.REG[0] = p0;
39309 fra.me.REG[1] = p1;
39310 fra.me.REG[2] = p2;
39311 /* ./parser//parser_prod.nit:7324 */
39312 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0])!=NIT_NULL);
39313 if (UNTAG_Bool(REGB0)) {
39314 } else {
39315 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 7324);
39316 }
39317 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0]);
39318 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39319 if (UNTAG_Bool(REGB0)) {
39320 } else {
39321 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39322 REGB0 = REGB1;
39323 }
39324 if (UNTAG_Bool(REGB0)) {
39325 /* ./parser//parser_prod.nit:7325 */
39326 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39327 if (UNTAG_Bool(REGB0)) {
39328 } else {
39329 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39330 if (UNTAG_Bool(REGB1)) {
39331 REGB1 = TAG_Bool(false);
39332 REGB0 = REGB1;
39333 } else {
39334 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39335 REGB0 = REGB1;
39336 }
39337 }
39338 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39339 if (UNTAG_Bool(REGB0)) {
39340 /* ./parser//parser_prod.nit:7326 */
39341 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39342 if (UNTAG_Bool(REGB0)) {
39343 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7326);
39344 }
39345 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39346 /* ./parser//parser_prod.nit:7327 */
39347 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*/;
39348 if (UNTAG_Bool(REGB0)) {
39349 } else {
39350 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7327);
39351 }
39352 /* ./parser//parser_prod.nit:7328 */
39353 ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0]) = fra.me.REG[2];
39354 } else {
39355 /* ./parser//parser_prod.nit:7330 */
39356 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7330);
39357 }
39358 /* ./parser//parser_prod.nit:7332 */
39359 goto label1;
39360 }
39361 /* ./parser//parser_prod.nit:7334 */
39362 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____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, 7334);
39366 }
39367 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0]);
39368 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39369 if (UNTAG_Bool(REGB0)) {
39370 } else {
39371 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39372 REGB0 = REGB1;
39373 }
39374 if (UNTAG_Bool(REGB0)) {
39375 /* ./parser//parser_prod.nit:7335 */
39376 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39377 if (UNTAG_Bool(REGB0)) {
39378 } else {
39379 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39380 if (UNTAG_Bool(REGB1)) {
39381 REGB1 = TAG_Bool(false);
39382 REGB0 = REGB1;
39383 } else {
39384 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39385 REGB0 = REGB1;
39386 }
39387 }
39388 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39389 if (UNTAG_Bool(REGB0)) {
39390 /* ./parser//parser_prod.nit:7336 */
39391 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39392 if (UNTAG_Bool(REGB0)) {
39393 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7336);
39394 }
39395 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39396 /* ./parser//parser_prod.nit:7337 */
39397 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*/;
39398 if (UNTAG_Bool(REGB0)) {
39399 } else {
39400 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7337);
39401 }
39402 /* ./parser//parser_prod.nit:7338 */
39403 ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0]) = fra.me.REG[2];
39404 } else {
39405 /* ./parser//parser_prod.nit:7340 */
39406 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7340);
39407 }
39408 /* ./parser//parser_prod.nit:7342 */
39409 goto label1;
39410 }
39411 /* ./parser//parser_prod.nit:7344 */
39412 REGB0 = TAG_Int(0);
39413 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
39414 if (UNTAG_Bool(REGB1)) {
39415 } else {
39416 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7344);
39417 }
39418 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
39419 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
39420 /* ./../lib/standard//kernel.nit:352 */
39421 while(1) {
39422 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
39423 if (UNTAG_Bool(REGB2)) {
39424 } else {
39425 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
39426 }
39427 /* ./../lib/standard//kernel.nit:232 */
39428 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
39429 /* ./../lib/standard//kernel.nit:352 */
39430 if (UNTAG_Bool(REGB2)) {
39431 /* ./parser//parser_prod.nit:7344 */
39432 REGB2 = REGB0;
39433 /* ./parser//parser_prod.nit:7345 */
39434 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
39435 if (UNTAG_Bool(REGB3)) {
39436 } else {
39437 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7345);
39438 }
39439 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
39440 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
39441 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
39442 if (UNTAG_Bool(REGB3)) {
39443 } else {
39444 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39445 if (UNTAG_Bool(REGB4)) {
39446 REGB4 = TAG_Bool(false);
39447 REGB3 = REGB4;
39448 } else {
39449 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39450 REGB3 = REGB4;
39451 }
39452 }
39453 if (UNTAG_Bool(REGB3)) {
39454 /* ./parser//parser_prod.nit:7346 */
39455 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39456 if (UNTAG_Bool(REGB3)) {
39457 } else {
39458 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39459 if (UNTAG_Bool(REGB4)) {
39460 REGB4 = TAG_Bool(false);
39461 REGB3 = REGB4;
39462 } else {
39463 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39464 REGB3 = REGB4;
39465 }
39466 }
39467 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
39468 if (UNTAG_Bool(REGB3)) {
39469 /* ./parser//parser_prod.nit:7347 */
39470 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*/;
39471 if (UNTAG_Bool(REGB3)) {
39472 } else {
39473 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7347);
39474 }
39475 /* ./parser//parser_prod.nit:7348 */
39476 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
39477 if (UNTAG_Bool(REGB3)) {
39478 } else {
39479 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7348);
39480 }
39481 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
39482 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
39483 /* ./parser//parser_prod.nit:7349 */
39484 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39485 if (UNTAG_Bool(REGB3)) {
39486 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7349);
39487 }
39488 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39489 } else {
39490 /* ./parser//parser_prod.nit:7351 */
39491 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
39492 if (UNTAG_Bool(REGB3)) {
39493 } else {
39494 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7351);
39495 }
39496 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
39497 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
39498 }
39499 /* ./parser//parser_prod.nit:7353 */
39500 goto label1;
39501 }
39502 /* ./../lib/standard//kernel.nit:354 */
39503 REGB2 = TAG_Int(1);
39504 /* ./../lib/standard//kernel.nit:235 */
39505 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
39506 /* ./../lib/standard//kernel.nit:354 */
39507 REGB0 = REGB2;
39508 } else {
39509 /* ./../lib/standard//kernel.nit:352 */
39510 goto label2;
39511 }
39512 }
39513 label2: while(0);
39514 /* ./parser//parser_prod.nit:7356 */
39515 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]);
39516 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
39517 if (UNTAG_Bool(REGB0)) {
39518 } else {
39519 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39520 if (UNTAG_Bool(REGB1)) {
39521 REGB1 = TAG_Bool(false);
39522 REGB0 = REGB1;
39523 } else {
39524 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39525 REGB0 = REGB1;
39526 }
39527 }
39528 if (UNTAG_Bool(REGB0)) {
39529 /* ./parser//parser_prod.nit:7357 */
39530 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39531 if (UNTAG_Bool(REGB0)) {
39532 } else {
39533 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39534 if (UNTAG_Bool(REGB1)) {
39535 REGB1 = TAG_Bool(false);
39536 REGB0 = REGB1;
39537 } else {
39538 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39539 REGB0 = REGB1;
39540 }
39541 }
39542 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39543 if (UNTAG_Bool(REGB0)) {
39544 /* ./parser//parser_prod.nit:7358 */
39545 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39546 if (UNTAG_Bool(REGB0)) {
39547 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7358);
39548 }
39549 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39550 /* ./parser//parser_prod.nit:7359 */
39551 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*/;
39552 if (UNTAG_Bool(REGB0)) {
39553 } else {
39554 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7359);
39555 }
39556 /* ./parser//parser_prod.nit:7360 */
39557 ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
39558 } else {
39559 /* ./parser//parser_prod.nit:7362 */
39560 ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = NIT_NULL;
39561 }
39562 /* ./parser//parser_prod.nit:7364 */
39563 goto label1;
39564 }
39565 /* ./parser//parser_prod.nit:7366 */
39566 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]);
39567 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
39568 if (UNTAG_Bool(REGB0)) {
39569 } else {
39570 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39571 if (UNTAG_Bool(REGB1)) {
39572 REGB1 = TAG_Bool(false);
39573 REGB0 = REGB1;
39574 } else {
39575 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39576 REGB0 = REGB1;
39577 }
39578 }
39579 if (UNTAG_Bool(REGB0)) {
39580 /* ./parser//parser_prod.nit:7367 */
39581 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39582 if (UNTAG_Bool(REGB0)) {
39583 } else {
39584 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39585 if (UNTAG_Bool(REGB1)) {
39586 REGB1 = TAG_Bool(false);
39587 REGB0 = REGB1;
39588 } else {
39589 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39590 REGB0 = REGB1;
39591 }
39592 }
39593 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39594 if (UNTAG_Bool(REGB0)) {
39595 /* ./parser//parser_prod.nit:7368 */
39596 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39597 if (UNTAG_Bool(REGB0)) {
39598 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7368);
39599 }
39600 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39601 /* ./parser//parser_prod.nit:7369 */
39602 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
39603 if (UNTAG_Bool(REGB0)) {
39604 } else {
39605 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7369);
39606 }
39607 /* ./parser//parser_prod.nit:7370 */
39608 ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = fra.me.REG[2];
39609 } else {
39610 /* ./parser//parser_prod.nit:7372 */
39611 ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = NIT_NULL;
39612 }
39613 /* ./parser//parser_prod.nit:7374 */
39614 goto label1;
39615 }
39616 /* ./parser//parser_prod.nit:7376 */
39617 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
39618 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
39619 if (UNTAG_Bool(REGB0)) {
39620 } else {
39621 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39622 if (UNTAG_Bool(REGB1)) {
39623 REGB1 = TAG_Bool(false);
39624 REGB0 = REGB1;
39625 } else {
39626 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39627 REGB0 = REGB1;
39628 }
39629 }
39630 if (UNTAG_Bool(REGB0)) {
39631 /* ./parser//parser_prod.nit:7377 */
39632 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39633 if (UNTAG_Bool(REGB0)) {
39634 } else {
39635 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39636 if (UNTAG_Bool(REGB1)) {
39637 REGB1 = TAG_Bool(false);
39638 REGB0 = REGB1;
39639 } else {
39640 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39641 REGB0 = REGB1;
39642 }
39643 }
39644 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39645 if (UNTAG_Bool(REGB0)) {
39646 /* ./parser//parser_prod.nit:7378 */
39647 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39648 if (UNTAG_Bool(REGB0)) {
39649 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7378);
39650 }
39651 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39652 /* ./parser//parser_prod.nit:7379 */
39653 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*/;
39654 if (UNTAG_Bool(REGB0)) {
39655 } else {
39656 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7379);
39657 }
39658 /* ./parser//parser_prod.nit:7380 */
39659 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
39660 } else {
39661 /* ./parser//parser_prod.nit:7382 */
39662 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
39663 }
39664 /* ./parser//parser_prod.nit:7384 */
39665 goto label1;
39666 }
39667 label1: while(0);
39668 stack_frame_head = fra.me.prev;
39669 return;
39670 }
39671 void parser___parser_prod___AClosureDef___visit_all(val_t p0, val_t p1){
39672 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39673 val_t REGB0;
39674 val_t REGB1;
39675 val_t tmp;
39676 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39677 fra.me.file = LOCATE_parser___parser_prod;
39678 fra.me.line = 7388;
39679 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___visit_all;
39680 fra.me.has_broke = 0;
39681 fra.me.REG_size = 4;
39682 fra.me.REG[0] = NIT_NULL;
39683 fra.me.REG[1] = NIT_NULL;
39684 fra.me.REG[2] = NIT_NULL;
39685 fra.me.REG[3] = NIT_NULL;
39686 fra.me.REG[0] = p0;
39687 fra.me.REG[1] = p1;
39688 /* ./parser//parser_prod.nit:7388 */
39689 fra.me.REG[2] = fra.me.REG[0];
39690 /* ./parser//parser_prod.nit:7390 */
39691 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[2])!=NIT_NULL);
39692 if (UNTAG_Bool(REGB0)) {
39693 } else {
39694 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 7390);
39695 }
39696 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[2]);
39697 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
39698 /* ./parser//parser_prod.nit:7391 */
39699 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[2])!=NIT_NULL);
39700 if (UNTAG_Bool(REGB0)) {
39701 } else {
39702 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7391);
39703 }
39704 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[2]);
39705 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
39706 /* ./parser//parser_prod.nit:7392 */
39707 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[2])!=NIT_NULL);
39708 if (UNTAG_Bool(REGB0)) {
39709 } else {
39710 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7392);
39711 }
39712 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[2]);
39713 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));
39714 /* ./parser//parser_prod.nit:7395 */
39715 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[2]);
39716 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39717 if (UNTAG_Bool(REGB0)) {
39718 } else {
39719 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39720 if (UNTAG_Bool(REGB1)) {
39721 REGB1 = TAG_Bool(false);
39722 REGB0 = REGB1;
39723 } else {
39724 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39725 REGB0 = REGB1;
39726 }
39727 }
39728 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39729 if (UNTAG_Bool(REGB0)) {
39730 /* ./parser//parser_prod.nit:7396 */
39731 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[2]);
39732 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*/;
39733 if (UNTAG_Bool(REGB0)) {
39734 } else {
39735 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7396);
39736 }
39737 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
39738 }
39739 /* ./parser//parser_prod.nit:7398 */
39740 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[2]);
39741 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39742 if (UNTAG_Bool(REGB0)) {
39743 } else {
39744 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39745 if (UNTAG_Bool(REGB1)) {
39746 REGB1 = TAG_Bool(false);
39747 REGB0 = REGB1;
39748 } else {
39749 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39750 REGB0 = REGB1;
39751 }
39752 }
39753 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39754 if (UNTAG_Bool(REGB0)) {
39755 /* ./parser//parser_prod.nit:7399 */
39756 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[2]);
39757 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*/;
39758 if (UNTAG_Bool(REGB0)) {
39759 } else {
39760 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7399);
39761 }
39762 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
39763 }
39764 /* ./parser//parser_prod.nit:7401 */
39765 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
39766 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39767 if (UNTAG_Bool(REGB0)) {
39768 } else {
39769 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39770 if (UNTAG_Bool(REGB1)) {
39771 REGB1 = TAG_Bool(false);
39772 REGB0 = REGB1;
39773 } else {
39774 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39775 REGB0 = REGB1;
39776 }
39777 }
39778 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39779 if (UNTAG_Bool(REGB0)) {
39780 /* ./parser//parser_prod.nit:7402 */
39781 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
39782 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*/;
39783 if (UNTAG_Bool(REGB0)) {
39784 } else {
39785 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7402);
39786 }
39787 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39788 }
39789 stack_frame_head = fra.me.prev;
39790 return;
39791 }
39792 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){
39793 struct {struct stack_frame_t me;} fra;
39794 fun_t CREG[1];
39795 val_t tmp;
39796 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39797 fra.me.file = LOCATE_parser___parser_prod;
39798 fra.me.line = 0;
39799 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___visit_all;
39800 fra.me.has_broke = 0;
39801 fra.me.REG_size = 1;
39802 fra.me.REG[0] = NIT_NULL;
39803 fra.me.closure_ctx = closctx_param;
39804 fra.me.closure_funs = CREG;
39805 fra.me.REG[0] = p0;
39806 CREG[0] = clos_fun0;
39807 /* ./parser//parser_prod.nit:7393 */
39808 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
39809 stack_frame_head = fra.me.prev;
39810 return;
39811 }
39812 void parser___parser_prod___ASimpleClosureId___empty_init(val_t p0, int* init_table){
39813 int itpos261 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASimpleClosureId].i;
39814 struct {struct stack_frame_t me;} fra;
39815 val_t tmp;
39816 if (init_table[itpos261]) return;
39817 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39818 fra.me.file = LOCATE_parser___parser_prod;
39819 fra.me.line = 7407;
39820 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___empty_init;
39821 fra.me.has_broke = 0;
39822 fra.me.REG_size = 1;
39823 fra.me.REG[0] = NIT_NULL;
39824 fra.me.REG[0] = p0;
39825 stack_frame_head = fra.me.prev;
39826 init_table[itpos261] = 1;
39827 return;
39828 }
39829 void parser___parser_prod___ASimpleClosureId___init_asimpleclosureid(val_t p0, val_t p1, int* init_table){
39830 int itpos262 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASimpleClosureId].i;
39831 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
39832 val_t REGB0;
39833 val_t tmp;
39834 if (init_table[itpos262]) return;
39835 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39836 fra.me.file = LOCATE_parser___parser_prod;
39837 fra.me.line = 7409;
39838 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___init_asimpleclosureid;
39839 fra.me.has_broke = 0;
39840 fra.me.REG_size = 3;
39841 fra.me.REG[0] = NIT_NULL;
39842 fra.me.REG[1] = NIT_NULL;
39843 fra.me.REG[2] = NIT_NULL;
39844 fra.me.REG[0] = p0;
39845 fra.me.REG[1] = p1;
39846 /* ./parser//parser_prod.nit:7409 */
39847 fra.me.REG[2] = fra.me.REG[0];
39848 /* ./parser//parser_prod.nit:7413 */
39849 CALL_parser___parser_prod___ASimpleClosureId___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
39850 /* ./parser//parser_prod.nit:7414 */
39851 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
39852 if (UNTAG_Bool(REGB0)) {
39853 } else {
39854 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7414);
39855 }
39856 ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[2]) = fra.me.REG[1];
39857 /* ./parser//parser_prod.nit:7415 */
39858 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39859 if (UNTAG_Bool(REGB0)) {
39860 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7415);
39861 }
39862 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39863 stack_frame_head = fra.me.prev;
39864 init_table[itpos262] = 1;
39865 return;
39866 }
39867 void parser___parser_prod___ASimpleClosureId___replace_child(val_t p0, val_t p1, val_t p2){
39868 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39869 val_t REGB0;
39870 val_t REGB1;
39871 val_t tmp;
39872 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39873 fra.me.file = LOCATE_parser___parser_prod;
39874 fra.me.line = 7418;
39875 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___replace_child;
39876 fra.me.has_broke = 0;
39877 fra.me.REG_size = 4;
39878 fra.me.REG[0] = NIT_NULL;
39879 fra.me.REG[1] = NIT_NULL;
39880 fra.me.REG[2] = NIT_NULL;
39881 fra.me.REG[3] = NIT_NULL;
39882 fra.me.REG[0] = p0;
39883 fra.me.REG[1] = p1;
39884 fra.me.REG[2] = p2;
39885 /* ./parser//parser_prod.nit:7420 */
39886 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0])!=NIT_NULL);
39887 if (UNTAG_Bool(REGB0)) {
39888 } else {
39889 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7420);
39890 }
39891 fra.me.REG[3] = ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]);
39892 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39893 if (UNTAG_Bool(REGB0)) {
39894 } else {
39895 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39896 REGB0 = REGB1;
39897 }
39898 if (UNTAG_Bool(REGB0)) {
39899 /* ./parser//parser_prod.nit:7421 */
39900 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39901 if (UNTAG_Bool(REGB0)) {
39902 } else {
39903 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39904 if (UNTAG_Bool(REGB1)) {
39905 REGB1 = TAG_Bool(false);
39906 REGB0 = REGB1;
39907 } else {
39908 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39909 REGB0 = REGB1;
39910 }
39911 }
39912 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39913 if (UNTAG_Bool(REGB0)) {
39914 /* ./parser//parser_prod.nit:7422 */
39915 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39916 if (UNTAG_Bool(REGB0)) {
39917 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7422);
39918 }
39919 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39920 /* ./parser//parser_prod.nit:7423 */
39921 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*/;
39922 if (UNTAG_Bool(REGB0)) {
39923 } else {
39924 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7423);
39925 }
39926 /* ./parser//parser_prod.nit:7424 */
39927 ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]) = fra.me.REG[2];
39928 } else {
39929 /* ./parser//parser_prod.nit:7426 */
39930 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7426);
39931 }
39932 /* ./parser//parser_prod.nit:7428 */
39933 goto label1;
39934 }
39935 label1: while(0);
39936 stack_frame_head = fra.me.prev;
39937 return;
39938 }
39939 void parser___parser_prod___ASimpleClosureId___visit_all(val_t p0, val_t p1){
39940 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39941 val_t REGB0;
39942 val_t tmp;
39943 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39944 fra.me.file = LOCATE_parser___parser_prod;
39945 fra.me.line = 7432;
39946 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___visit_all;
39947 fra.me.has_broke = 0;
39948 fra.me.REG_size = 2;
39949 fra.me.REG[0] = NIT_NULL;
39950 fra.me.REG[1] = NIT_NULL;
39951 fra.me.REG[0] = p0;
39952 fra.me.REG[1] = p1;
39953 /* ./parser//parser_prod.nit:7434 */
39954 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0])!=NIT_NULL);
39955 if (UNTAG_Bool(REGB0)) {
39956 } else {
39957 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7434);
39958 }
39959 fra.me.REG[0] = ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]);
39960 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39961 stack_frame_head = fra.me.prev;
39962 return;
39963 }
39964 void parser___parser_prod___ABreakClosureId___empty_init(val_t p0, int* init_table){
39965 int itpos263 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakClosureId].i;
39966 struct {struct stack_frame_t me;} fra;
39967 val_t tmp;
39968 if (init_table[itpos263]) return;
39969 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39970 fra.me.file = LOCATE_parser___parser_prod;
39971 fra.me.line = 7438;
39972 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___empty_init;
39973 fra.me.has_broke = 0;
39974 fra.me.REG_size = 1;
39975 fra.me.REG[0] = NIT_NULL;
39976 fra.me.REG[0] = p0;
39977 stack_frame_head = fra.me.prev;
39978 init_table[itpos263] = 1;
39979 return;
39980 }
39981 void parser___parser_prod___ABreakClosureId___init_abreakclosureid(val_t p0, val_t p1, int* init_table){
39982 int itpos264 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakClosureId].i;
39983 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
39984 val_t REGB0;
39985 val_t tmp;
39986 if (init_table[itpos264]) return;
39987 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39988 fra.me.file = LOCATE_parser___parser_prod;
39989 fra.me.line = 7440;
39990 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___init_abreakclosureid;
39991 fra.me.has_broke = 0;
39992 fra.me.REG_size = 3;
39993 fra.me.REG[0] = NIT_NULL;
39994 fra.me.REG[1] = NIT_NULL;
39995 fra.me.REG[2] = NIT_NULL;
39996 fra.me.REG[0] = p0;
39997 fra.me.REG[1] = p1;
39998 /* ./parser//parser_prod.nit:7440 */
39999 fra.me.REG[2] = fra.me.REG[0];
40000 /* ./parser//parser_prod.nit:7444 */
40001 CALL_parser___parser_prod___ABreakClosureId___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
40002 /* ./parser//parser_prod.nit:7445 */
40003 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
40004 if (UNTAG_Bool(REGB0)) {
40005 } else {
40006 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7445);
40007 }
40008 ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[2]) = fra.me.REG[1];
40009 /* ./parser//parser_prod.nit:7446 */
40010 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40011 if (UNTAG_Bool(REGB0)) {
40012 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7446);
40013 }
40014 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40015 stack_frame_head = fra.me.prev;
40016 init_table[itpos264] = 1;
40017 return;
40018 }
40019 void parser___parser_prod___ABreakClosureId___replace_child(val_t p0, val_t p1, val_t p2){
40020 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40021 val_t REGB0;
40022 val_t REGB1;
40023 val_t tmp;
40024 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40025 fra.me.file = LOCATE_parser___parser_prod;
40026 fra.me.line = 7449;
40027 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___replace_child;
40028 fra.me.has_broke = 0;
40029 fra.me.REG_size = 4;
40030 fra.me.REG[0] = NIT_NULL;
40031 fra.me.REG[1] = NIT_NULL;
40032 fra.me.REG[2] = NIT_NULL;
40033 fra.me.REG[3] = NIT_NULL;
40034 fra.me.REG[0] = p0;
40035 fra.me.REG[1] = p1;
40036 fra.me.REG[2] = p2;
40037 /* ./parser//parser_prod.nit:7451 */
40038 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
40039 if (UNTAG_Bool(REGB0)) {
40040 } else {
40041 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 7451);
40042 }
40043 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]);
40044 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40045 if (UNTAG_Bool(REGB0)) {
40046 } else {
40047 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40048 REGB0 = REGB1;
40049 }
40050 if (UNTAG_Bool(REGB0)) {
40051 /* ./parser//parser_prod.nit:7452 */
40052 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40053 if (UNTAG_Bool(REGB0)) {
40054 } else {
40055 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40056 if (UNTAG_Bool(REGB1)) {
40057 REGB1 = TAG_Bool(false);
40058 REGB0 = REGB1;
40059 } else {
40060 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40061 REGB0 = REGB1;
40062 }
40063 }
40064 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40065 if (UNTAG_Bool(REGB0)) {
40066 /* ./parser//parser_prod.nit:7453 */
40067 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40068 if (UNTAG_Bool(REGB0)) {
40069 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7453);
40070 }
40071 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40072 /* ./parser//parser_prod.nit:7454 */
40073 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*/;
40074 if (UNTAG_Bool(REGB0)) {
40075 } else {
40076 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7454);
40077 }
40078 /* ./parser//parser_prod.nit:7455 */
40079 ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
40080 } else {
40081 /* ./parser//parser_prod.nit:7457 */
40082 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7457);
40083 }
40084 /* ./parser//parser_prod.nit:7459 */
40085 goto label1;
40086 }
40087 label1: while(0);
40088 stack_frame_head = fra.me.prev;
40089 return;
40090 }
40091 void parser___parser_prod___ABreakClosureId___visit_all(val_t p0, val_t p1){
40092 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
40093 val_t REGB0;
40094 val_t tmp;
40095 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40096 fra.me.file = LOCATE_parser___parser_prod;
40097 fra.me.line = 7463;
40098 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___visit_all;
40099 fra.me.has_broke = 0;
40100 fra.me.REG_size = 2;
40101 fra.me.REG[0] = NIT_NULL;
40102 fra.me.REG[1] = NIT_NULL;
40103 fra.me.REG[0] = p0;
40104 fra.me.REG[1] = p1;
40105 /* ./parser//parser_prod.nit:7465 */
40106 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
40107 if (UNTAG_Bool(REGB0)) {
40108 } else {
40109 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 7465);
40110 }
40111 fra.me.REG[0] = ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]);
40112 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40113 stack_frame_head = fra.me.prev;
40114 return;
40115 }
40116 void parser___parser_prod___AModuleName___empty_init(val_t p0, int* init_table){
40117 int itpos265 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuleName].i;
40118 struct {struct stack_frame_t me;} fra;
40119 val_t tmp;
40120 if (init_table[itpos265]) return;
40121 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40122 fra.me.file = LOCATE_parser___parser_prod;
40123 fra.me.line = 7469;
40124 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___empty_init;
40125 fra.me.has_broke = 0;
40126 fra.me.REG_size = 1;
40127 fra.me.REG[0] = NIT_NULL;
40128 fra.me.REG[0] = p0;
40129 stack_frame_head = fra.me.prev;
40130 init_table[itpos265] = 1;
40131 return;
40132 }
40133 void parser___parser_prod___AModuleName___init_amodulename(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
40134 int itpos266 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuleName].i;
40135 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
40136 val_t REGB0;
40137 val_t REGB1;
40138 val_t tmp;
40139 if (init_table[itpos266]) return;
40140 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40141 fra.me.file = LOCATE_parser___parser_prod;
40142 fra.me.line = 7471;
40143 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___init_amodulename;
40144 fra.me.has_broke = 0;
40145 fra.me.REG_size = 5;
40146 fra.me.REG[0] = NIT_NULL;
40147 fra.me.REG[1] = NIT_NULL;
40148 fra.me.REG[2] = NIT_NULL;
40149 fra.me.REG[3] = NIT_NULL;
40150 fra.me.REG[4] = NIT_NULL;
40151 fra.me.REG[0] = p0;
40152 fra.me.REG[1] = p1;
40153 fra.me.REG[2] = p2;
40154 fra.me.REG[3] = p3;
40155 /* ./parser//parser_prod.nit:7471 */
40156 fra.me.REG[4] = fra.me.REG[0];
40157 /* ./parser//parser_prod.nit:7477 */
40158 CALL_parser___parser_prod___AModuleName___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
40159 /* ./parser//parser_prod.nit:7478 */
40160 ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[4]) = fra.me.REG[1];
40161 /* ./parser//parser_prod.nit:7479 */
40162 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40163 if (UNTAG_Bool(REGB0)) {
40164 } else {
40165 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40166 if (UNTAG_Bool(REGB1)) {
40167 REGB1 = TAG_Bool(false);
40168 REGB0 = REGB1;
40169 } else {
40170 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
40171 REGB0 = REGB1;
40172 }
40173 }
40174 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40175 if (UNTAG_Bool(REGB0)) {
40176 /* ./parser//parser_prod.nit:7480 */
40177 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40178 if (UNTAG_Bool(REGB0)) {
40179 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7480);
40180 }
40181 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
40182 }
40183 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));
40184 /* ./parser//parser_prod.nit:7487 */
40185 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
40186 if (UNTAG_Bool(REGB0)) {
40187 } else {
40188 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7487);
40189 }
40190 ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[4]) = fra.me.REG[3];
40191 /* ./parser//parser_prod.nit:7488 */
40192 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40193 if (UNTAG_Bool(REGB0)) {
40194 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7488);
40195 }
40196 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
40197 stack_frame_head = fra.me.prev;
40198 init_table[itpos266] = 1;
40199 return;
40200 }
40201 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){
40202 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
40203 val_t REGB0;
40204 fun_t CREG[1];
40205 val_t tmp;
40206 /* ./parser//parser_prod.nit:7482 */
40207 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40208 fra.me.file = LOCATE_parser___parser_prod;
40209 fra.me.line = 0;
40210 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___init_amodulename;
40211 fra.me.has_broke = 0;
40212 fra.me.REG_size = 2;
40213 fra.me.REG[0] = NIT_NULL;
40214 fra.me.REG[1] = NIT_NULL;
40215 fra.me.closure_ctx = closctx_param;
40216 fra.me.closure_funs = CREG;
40217 fra.me.REG[0] = p0;
40218 CREG[0] = clos_fun0;
40219 /* ./parser//parser_prod.nit:7483 */
40220 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
40221 if (UNTAG_Bool(REGB0)) {
40222 } else {
40223 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7483);
40224 }
40225 /* ./parser//parser_prod.nit:7484 */
40226 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(closctx->REG[4])!=NIT_NULL);
40227 if (UNTAG_Bool(REGB0)) {
40228 } else {
40229 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7484);
40230 }
40231 fra.me.REG[1] = ATTR_parser___parser_nodes___AModuleName____n_path(closctx->REG[4]);
40232 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40233 /* ./parser//parser_prod.nit:7485 */
40234 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
40235 stack_frame_head = fra.me.prev;
40236 return;
40237 }
40238 void parser___parser_prod___AModuleName___replace_child(val_t p0, val_t p1, val_t p2){
40239 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40240 val_t REGB0;
40241 val_t REGB1;
40242 val_t REGB2;
40243 val_t REGB3;
40244 val_t REGB4;
40245 val_t tmp;
40246 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40247 fra.me.file = LOCATE_parser___parser_prod;
40248 fra.me.line = 7491;
40249 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___replace_child;
40250 fra.me.has_broke = 0;
40251 fra.me.REG_size = 4;
40252 fra.me.REG[0] = NIT_NULL;
40253 fra.me.REG[1] = NIT_NULL;
40254 fra.me.REG[2] = NIT_NULL;
40255 fra.me.REG[3] = NIT_NULL;
40256 fra.me.REG[0] = p0;
40257 fra.me.REG[1] = p1;
40258 fra.me.REG[2] = p2;
40259 /* ./parser//parser_prod.nit:7493 */
40260 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]);
40261 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
40262 if (UNTAG_Bool(REGB0)) {
40263 } else {
40264 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40265 if (UNTAG_Bool(REGB1)) {
40266 REGB1 = TAG_Bool(false);
40267 REGB0 = REGB1;
40268 } else {
40269 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40270 REGB0 = REGB1;
40271 }
40272 }
40273 if (UNTAG_Bool(REGB0)) {
40274 /* ./parser//parser_prod.nit:7494 */
40275 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40276 if (UNTAG_Bool(REGB0)) {
40277 } else {
40278 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40279 if (UNTAG_Bool(REGB1)) {
40280 REGB1 = TAG_Bool(false);
40281 REGB0 = REGB1;
40282 } else {
40283 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40284 REGB0 = REGB1;
40285 }
40286 }
40287 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40288 if (UNTAG_Bool(REGB0)) {
40289 /* ./parser//parser_prod.nit:7495 */
40290 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40291 if (UNTAG_Bool(REGB0)) {
40292 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7495);
40293 }
40294 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40295 /* ./parser//parser_prod.nit:7496 */
40296 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*/;
40297 if (UNTAG_Bool(REGB0)) {
40298 } else {
40299 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7496);
40300 }
40301 /* ./parser//parser_prod.nit:7497 */
40302 ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]) = fra.me.REG[2];
40303 } else {
40304 /* ./parser//parser_prod.nit:7499 */
40305 ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]) = NIT_NULL;
40306 }
40307 /* ./parser//parser_prod.nit:7501 */
40308 goto label1;
40309 }
40310 /* ./parser//parser_prod.nit:7503 */
40311 REGB0 = TAG_Int(0);
40312 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
40313 if (UNTAG_Bool(REGB1)) {
40314 } else {
40315 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7503);
40316 }
40317 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
40318 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
40319 /* ./../lib/standard//kernel.nit:352 */
40320 while(1) {
40321 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
40322 if (UNTAG_Bool(REGB2)) {
40323 } else {
40324 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
40325 }
40326 /* ./../lib/standard//kernel.nit:232 */
40327 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
40328 /* ./../lib/standard//kernel.nit:352 */
40329 if (UNTAG_Bool(REGB2)) {
40330 /* ./parser//parser_prod.nit:7503 */
40331 REGB2 = REGB0;
40332 /* ./parser//parser_prod.nit:7504 */
40333 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
40334 if (UNTAG_Bool(REGB3)) {
40335 } else {
40336 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7504);
40337 }
40338 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
40339 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
40340 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
40341 if (UNTAG_Bool(REGB3)) {
40342 } else {
40343 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40344 if (UNTAG_Bool(REGB4)) {
40345 REGB4 = TAG_Bool(false);
40346 REGB3 = REGB4;
40347 } else {
40348 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40349 REGB3 = REGB4;
40350 }
40351 }
40352 if (UNTAG_Bool(REGB3)) {
40353 /* ./parser//parser_prod.nit:7505 */
40354 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40355 if (UNTAG_Bool(REGB3)) {
40356 } else {
40357 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40358 if (UNTAG_Bool(REGB4)) {
40359 REGB4 = TAG_Bool(false);
40360 REGB3 = REGB4;
40361 } else {
40362 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40363 REGB3 = REGB4;
40364 }
40365 }
40366 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
40367 if (UNTAG_Bool(REGB3)) {
40368 /* ./parser//parser_prod.nit:7506 */
40369 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*/;
40370 if (UNTAG_Bool(REGB3)) {
40371 } else {
40372 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7506);
40373 }
40374 /* ./parser//parser_prod.nit:7507 */
40375 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
40376 if (UNTAG_Bool(REGB3)) {
40377 } else {
40378 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7507);
40379 }
40380 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
40381 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
40382 /* ./parser//parser_prod.nit:7508 */
40383 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40384 if (UNTAG_Bool(REGB3)) {
40385 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7508);
40386 }
40387 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40388 } else {
40389 /* ./parser//parser_prod.nit:7510 */
40390 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
40391 if (UNTAG_Bool(REGB3)) {
40392 } else {
40393 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7510);
40394 }
40395 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
40396 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
40397 }
40398 /* ./parser//parser_prod.nit:7512 */
40399 goto label1;
40400 }
40401 /* ./../lib/standard//kernel.nit:354 */
40402 REGB2 = TAG_Int(1);
40403 /* ./../lib/standard//kernel.nit:235 */
40404 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
40405 /* ./../lib/standard//kernel.nit:354 */
40406 REGB0 = REGB2;
40407 } else {
40408 /* ./../lib/standard//kernel.nit:352 */
40409 goto label2;
40410 }
40411 }
40412 label2: while(0);
40413 /* ./parser//parser_prod.nit:7515 */
40414 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0])!=NIT_NULL);
40415 if (UNTAG_Bool(REGB0)) {
40416 } else {
40417 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7515);
40418 }
40419 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0]);
40420 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40421 if (UNTAG_Bool(REGB0)) {
40422 } else {
40423 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40424 REGB0 = REGB1;
40425 }
40426 if (UNTAG_Bool(REGB0)) {
40427 /* ./parser//parser_prod.nit:7516 */
40428 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40429 if (UNTAG_Bool(REGB0)) {
40430 } else {
40431 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40432 if (UNTAG_Bool(REGB1)) {
40433 REGB1 = TAG_Bool(false);
40434 REGB0 = REGB1;
40435 } else {
40436 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40437 REGB0 = REGB1;
40438 }
40439 }
40440 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40441 if (UNTAG_Bool(REGB0)) {
40442 /* ./parser//parser_prod.nit:7517 */
40443 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40444 if (UNTAG_Bool(REGB0)) {
40445 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7517);
40446 }
40447 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40448 /* ./parser//parser_prod.nit:7518 */
40449 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*/;
40450 if (UNTAG_Bool(REGB0)) {
40451 } else {
40452 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7518);
40453 }
40454 /* ./parser//parser_prod.nit:7519 */
40455 ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0]) = fra.me.REG[2];
40456 } else {
40457 /* ./parser//parser_prod.nit:7521 */
40458 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7521);
40459 }
40460 /* ./parser//parser_prod.nit:7523 */
40461 goto label1;
40462 }
40463 label1: while(0);
40464 stack_frame_head = fra.me.prev;
40465 return;
40466 }
40467 void parser___parser_prod___AModuleName___visit_all(val_t p0, val_t p1){
40468 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40469 val_t REGB0;
40470 val_t REGB1;
40471 val_t tmp;
40472 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40473 fra.me.file = LOCATE_parser___parser_prod;
40474 fra.me.line = 7527;
40475 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___visit_all;
40476 fra.me.has_broke = 0;
40477 fra.me.REG_size = 4;
40478 fra.me.REG[0] = NIT_NULL;
40479 fra.me.REG[1] = NIT_NULL;
40480 fra.me.REG[2] = NIT_NULL;
40481 fra.me.REG[3] = NIT_NULL;
40482 fra.me.REG[0] = p0;
40483 fra.me.REG[1] = p1;
40484 /* ./parser//parser_prod.nit:7527 */
40485 fra.me.REG[2] = fra.me.REG[0];
40486 /* ./parser//parser_prod.nit:7529 */
40487 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[2]);
40488 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40489 if (UNTAG_Bool(REGB0)) {
40490 } else {
40491 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40492 if (UNTAG_Bool(REGB1)) {
40493 REGB1 = TAG_Bool(false);
40494 REGB0 = REGB1;
40495 } else {
40496 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
40497 REGB0 = REGB1;
40498 }
40499 }
40500 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40501 if (UNTAG_Bool(REGB0)) {
40502 /* ./parser//parser_prod.nit:7530 */
40503 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[2]);
40504 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*/;
40505 if (UNTAG_Bool(REGB0)) {
40506 } else {
40507 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7530);
40508 }
40509 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
40510 }
40511 /* ./parser//parser_prod.nit:7532 */
40512 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[2])!=NIT_NULL);
40513 if (UNTAG_Bool(REGB0)) {
40514 } else {
40515 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7532);
40516 }
40517 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[2]);
40518 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));
40519 /* ./parser//parser_prod.nit:7535 */
40520 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[2])!=NIT_NULL);
40521 if (UNTAG_Bool(REGB0)) {
40522 } else {
40523 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7535);
40524 }
40525 fra.me.REG[2] = ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[2]);
40526 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40527 stack_frame_head = fra.me.prev;
40528 return;
40529 }
40530 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){
40531 struct {struct stack_frame_t me;} fra;
40532 fun_t CREG[1];
40533 val_t tmp;
40534 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40535 fra.me.file = LOCATE_parser___parser_prod;
40536 fra.me.line = 0;
40537 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___visit_all;
40538 fra.me.has_broke = 0;
40539 fra.me.REG_size = 1;
40540 fra.me.REG[0] = NIT_NULL;
40541 fra.me.closure_ctx = closctx_param;
40542 fra.me.closure_funs = CREG;
40543 fra.me.REG[0] = p0;
40544 CREG[0] = clos_fun0;
40545 /* ./parser//parser_prod.nit:7533 */
40546 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
40547 stack_frame_head = fra.me.prev;
40548 return;
40549 }
40550 void parser___parser_prod___AExternCalls___empty_init(val_t p0, int* init_table){
40551 int itpos267 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCalls].i;
40552 struct {struct stack_frame_t me;} fra;
40553 val_t tmp;
40554 if (init_table[itpos267]) return;
40555 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40556 fra.me.file = LOCATE_parser___parser_prod;
40557 fra.me.line = 7539;
40558 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___empty_init;
40559 fra.me.has_broke = 0;
40560 fra.me.REG_size = 1;
40561 fra.me.REG[0] = NIT_NULL;
40562 fra.me.REG[0] = p0;
40563 stack_frame_head = fra.me.prev;
40564 init_table[itpos267] = 1;
40565 return;
40566 }
40567 void parser___parser_prod___AExternCalls___init_aexterncalls(val_t p0, val_t p1, val_t p2, int* init_table){
40568 int itpos268 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCalls].i;
40569 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40570 val_t REGB0;
40571 val_t tmp;
40572 if (init_table[itpos268]) return;
40573 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40574 fra.me.file = LOCATE_parser___parser_prod;
40575 fra.me.line = 7541;
40576 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___init_aexterncalls;
40577 fra.me.has_broke = 0;
40578 fra.me.REG_size = 4;
40579 fra.me.REG[0] = NIT_NULL;
40580 fra.me.REG[1] = NIT_NULL;
40581 fra.me.REG[2] = NIT_NULL;
40582 fra.me.REG[3] = NIT_NULL;
40583 fra.me.REG[0] = p0;
40584 fra.me.REG[1] = p1;
40585 fra.me.REG[2] = p2;
40586 /* ./parser//parser_prod.nit:7541 */
40587 fra.me.REG[3] = fra.me.REG[0];
40588 /* ./parser//parser_prod.nit:7546 */
40589 CALL_parser___parser_prod___AExternCalls___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
40590 /* ./parser//parser_prod.nit:7547 */
40591 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
40592 if (UNTAG_Bool(REGB0)) {
40593 } else {
40594 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7547);
40595 }
40596 ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[3]) = fra.me.REG[1];
40597 /* ./parser//parser_prod.nit:7548 */
40598 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40599 if (UNTAG_Bool(REGB0)) {
40600 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7548);
40601 }
40602 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
40603 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));
40604 stack_frame_head = fra.me.prev;
40605 init_table[itpos268] = 1;
40606 return;
40607 }
40608 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){
40609 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
40610 val_t REGB0;
40611 fun_t CREG[1];
40612 val_t tmp;
40613 /* ./parser//parser_prod.nit:7549 */
40614 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40615 fra.me.file = LOCATE_parser___parser_prod;
40616 fra.me.line = 0;
40617 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___init_aexterncalls;
40618 fra.me.has_broke = 0;
40619 fra.me.REG_size = 2;
40620 fra.me.REG[0] = NIT_NULL;
40621 fra.me.REG[1] = NIT_NULL;
40622 fra.me.closure_ctx = closctx_param;
40623 fra.me.closure_funs = CREG;
40624 fra.me.REG[0] = p0;
40625 CREG[0] = clos_fun0;
40626 /* ./parser//parser_prod.nit:7550 */
40627 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExternCall, ID_parser___parser_nodes___AExternCall)) /*cast AExternCall*/;
40628 if (UNTAG_Bool(REGB0)) {
40629 } else {
40630 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7550);
40631 }
40632 /* ./parser//parser_prod.nit:7551 */
40633 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(closctx->REG[3])!=NIT_NULL);
40634 if (UNTAG_Bool(REGB0)) {
40635 } else {
40636 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7551);
40637 }
40638 fra.me.REG[1] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(closctx->REG[3]);
40639 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40640 /* ./parser//parser_prod.nit:7552 */
40641 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[3]);
40642 stack_frame_head = fra.me.prev;
40643 return;
40644 }
40645 void parser___parser_prod___AExternCalls___replace_child(val_t p0, val_t p1, val_t p2){
40646 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40647 val_t REGB0;
40648 val_t REGB1;
40649 val_t REGB2;
40650 val_t REGB3;
40651 val_t REGB4;
40652 val_t tmp;
40653 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40654 fra.me.file = LOCATE_parser___parser_prod;
40655 fra.me.line = 7556;
40656 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___replace_child;
40657 fra.me.has_broke = 0;
40658 fra.me.REG_size = 4;
40659 fra.me.REG[0] = NIT_NULL;
40660 fra.me.REG[1] = NIT_NULL;
40661 fra.me.REG[2] = NIT_NULL;
40662 fra.me.REG[3] = NIT_NULL;
40663 fra.me.REG[0] = p0;
40664 fra.me.REG[1] = p1;
40665 fra.me.REG[2] = p2;
40666 /* ./parser//parser_prod.nit:7558 */
40667 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0])!=NIT_NULL);
40668 if (UNTAG_Bool(REGB0)) {
40669 } else {
40670 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 7558);
40671 }
40672 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]);
40673 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40674 if (UNTAG_Bool(REGB0)) {
40675 } else {
40676 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40677 REGB0 = REGB1;
40678 }
40679 if (UNTAG_Bool(REGB0)) {
40680 /* ./parser//parser_prod.nit:7559 */
40681 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40682 if (UNTAG_Bool(REGB0)) {
40683 } else {
40684 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40685 if (UNTAG_Bool(REGB1)) {
40686 REGB1 = TAG_Bool(false);
40687 REGB0 = REGB1;
40688 } else {
40689 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40690 REGB0 = REGB1;
40691 }
40692 }
40693 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40694 if (UNTAG_Bool(REGB0)) {
40695 /* ./parser//parser_prod.nit:7560 */
40696 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40697 if (UNTAG_Bool(REGB0)) {
40698 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7560);
40699 }
40700 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40701 /* ./parser//parser_prod.nit:7561 */
40702 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*/;
40703 if (UNTAG_Bool(REGB0)) {
40704 } else {
40705 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7561);
40706 }
40707 /* ./parser//parser_prod.nit:7562 */
40708 ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
40709 } else {
40710 /* ./parser//parser_prod.nit:7564 */
40711 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7564);
40712 }
40713 /* ./parser//parser_prod.nit:7566 */
40714 goto label1;
40715 }
40716 /* ./parser//parser_prod.nit:7568 */
40717 REGB0 = TAG_Int(0);
40718 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
40719 if (UNTAG_Bool(REGB1)) {
40720 } else {
40721 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7568);
40722 }
40723 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
40724 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
40725 /* ./../lib/standard//kernel.nit:352 */
40726 while(1) {
40727 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
40728 if (UNTAG_Bool(REGB2)) {
40729 } else {
40730 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
40731 }
40732 /* ./../lib/standard//kernel.nit:232 */
40733 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
40734 /* ./../lib/standard//kernel.nit:352 */
40735 if (UNTAG_Bool(REGB2)) {
40736 /* ./parser//parser_prod.nit:7568 */
40737 REGB2 = REGB0;
40738 /* ./parser//parser_prod.nit:7569 */
40739 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
40740 if (UNTAG_Bool(REGB3)) {
40741 } else {
40742 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7569);
40743 }
40744 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
40745 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
40746 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
40747 if (UNTAG_Bool(REGB3)) {
40748 } else {
40749 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40750 if (UNTAG_Bool(REGB4)) {
40751 REGB4 = TAG_Bool(false);
40752 REGB3 = REGB4;
40753 } else {
40754 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40755 REGB3 = REGB4;
40756 }
40757 }
40758 if (UNTAG_Bool(REGB3)) {
40759 /* ./parser//parser_prod.nit:7570 */
40760 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40761 if (UNTAG_Bool(REGB3)) {
40762 } else {
40763 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40764 if (UNTAG_Bool(REGB4)) {
40765 REGB4 = TAG_Bool(false);
40766 REGB3 = REGB4;
40767 } else {
40768 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40769 REGB3 = REGB4;
40770 }
40771 }
40772 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
40773 if (UNTAG_Bool(REGB3)) {
40774 /* ./parser//parser_prod.nit:7571 */
40775 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*/;
40776 if (UNTAG_Bool(REGB3)) {
40777 } else {
40778 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7571);
40779 }
40780 /* ./parser//parser_prod.nit:7572 */
40781 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
40782 if (UNTAG_Bool(REGB3)) {
40783 } else {
40784 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7572);
40785 }
40786 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
40787 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
40788 /* ./parser//parser_prod.nit:7573 */
40789 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40790 if (UNTAG_Bool(REGB3)) {
40791 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7573);
40792 }
40793 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40794 } else {
40795 /* ./parser//parser_prod.nit:7575 */
40796 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
40797 if (UNTAG_Bool(REGB3)) {
40798 } else {
40799 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7575);
40800 }
40801 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
40802 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
40803 }
40804 /* ./parser//parser_prod.nit:7577 */
40805 goto label1;
40806 }
40807 /* ./../lib/standard//kernel.nit:354 */
40808 REGB2 = TAG_Int(1);
40809 /* ./../lib/standard//kernel.nit:235 */
40810 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
40811 /* ./../lib/standard//kernel.nit:354 */
40812 REGB0 = REGB2;
40813 } else {
40814 /* ./../lib/standard//kernel.nit:352 */
40815 goto label2;
40816 }
40817 }
40818 label2: while(0);
40819 label1: while(0);
40820 stack_frame_head = fra.me.prev;
40821 return;
40822 }
40823 void parser___parser_prod___AExternCalls___visit_all(val_t p0, val_t p1){
40824 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
40825 val_t REGB0;
40826 val_t tmp;
40827 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40828 fra.me.file = LOCATE_parser___parser_prod;
40829 fra.me.line = 7582;
40830 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___visit_all;
40831 fra.me.has_broke = 0;
40832 fra.me.REG_size = 3;
40833 fra.me.REG[0] = NIT_NULL;
40834 fra.me.REG[1] = NIT_NULL;
40835 fra.me.REG[2] = NIT_NULL;
40836 fra.me.REG[0] = p0;
40837 fra.me.REG[1] = p1;
40838 /* ./parser//parser_prod.nit:7584 */
40839 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0])!=NIT_NULL);
40840 if (UNTAG_Bool(REGB0)) {
40841 } else {
40842 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 7584);
40843 }
40844 fra.me.REG[2] = ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]);
40845 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40846 /* ./parser//parser_prod.nit:7585 */
40847 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
40848 if (UNTAG_Bool(REGB0)) {
40849 } else {
40850 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7585);
40851 }
40852 fra.me.REG[0] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
40853 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));
40854 stack_frame_head = fra.me.prev;
40855 return;
40856 }
40857 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){
40858 struct {struct stack_frame_t me;} fra;
40859 fun_t CREG[1];
40860 val_t tmp;
40861 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40862 fra.me.file = LOCATE_parser___parser_prod;
40863 fra.me.line = 0;
40864 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___visit_all;
40865 fra.me.has_broke = 0;
40866 fra.me.REG_size = 1;
40867 fra.me.REG[0] = NIT_NULL;
40868 fra.me.closure_ctx = closctx_param;
40869 fra.me.closure_funs = CREG;
40870 fra.me.REG[0] = p0;
40871 CREG[0] = clos_fun0;
40872 /* ./parser//parser_prod.nit:7586 */
40873 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
40874 stack_frame_head = fra.me.prev;
40875 return;
40876 }
40877 void parser___parser_prod___AExternCall___empty_init(val_t p0, int* init_table){
40878 int itpos269 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCall].i;
40879 struct {struct stack_frame_t me;} fra;
40880 val_t tmp;
40881 if (init_table[itpos269]) return;
40882 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40883 fra.me.file = LOCATE_parser___parser_prod;
40884 fra.me.line = 7591;
40885 fra.me.meth = LOCATE_parser___parser_prod___AExternCall___empty_init;
40886 fra.me.has_broke = 0;
40887 fra.me.REG_size = 1;
40888 fra.me.REG[0] = NIT_NULL;
40889 fra.me.REG[0] = p0;
40890 stack_frame_head = fra.me.prev;
40891 init_table[itpos269] = 1;
40892 return;
40893 }
40894 void parser___parser_prod___AExternCall___init_aexterncall(val_t p0, int* init_table){
40895 int itpos270 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCall].i;
40896 struct {struct stack_frame_t me;} fra;
40897 val_t tmp;
40898 if (init_table[itpos270]) return;
40899 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40900 fra.me.file = LOCATE_parser___parser_prod;
40901 fra.me.line = 7593;
40902 fra.me.meth = LOCATE_parser___parser_prod___AExternCall___init_aexterncall;
40903 fra.me.has_broke = 0;
40904 fra.me.REG_size = 1;
40905 fra.me.REG[0] = NIT_NULL;
40906 fra.me.REG[0] = p0;
40907 /* ./parser//parser_prod.nit:7595 */
40908 CALL_parser___parser_prod___AExternCall___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
40909 stack_frame_head = fra.me.prev;
40910 init_table[itpos270] = 1;
40911 return;
40912 }
40913 void parser___parser_prod___AExternCall___replace_child(val_t p0, val_t p1, val_t p2){
40914 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
40915 val_t tmp;
40916 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40917 fra.me.file = LOCATE_parser___parser_prod;
40918 fra.me.line = 7598;
40919 fra.me.meth = LOCATE_parser___parser_prod___AExternCall___replace_child;
40920 fra.me.has_broke = 0;
40921 fra.me.REG_size = 3;
40922 fra.me.REG[0] = NIT_NULL;
40923 fra.me.REG[1] = NIT_NULL;
40924 fra.me.REG[2] = NIT_NULL;
40925 fra.me.REG[0] = p0;
40926 fra.me.REG[1] = p1;
40927 fra.me.REG[2] = p2;
40928 stack_frame_head = fra.me.prev;
40929 return;
40930 }
40931 void parser___parser_prod___AExternCall___visit_all(val_t p0, val_t p1){
40932 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
40933 val_t tmp;
40934 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40935 fra.me.file = LOCATE_parser___parser_prod;
40936 fra.me.line = 7602;
40937 fra.me.meth = LOCATE_parser___parser_prod___AExternCall___visit_all;
40938 fra.me.has_broke = 0;
40939 fra.me.REG_size = 2;
40940 fra.me.REG[0] = NIT_NULL;
40941 fra.me.REG[1] = NIT_NULL;
40942 fra.me.REG[0] = p0;
40943 fra.me.REG[1] = p1;
40944 stack_frame_head = fra.me.prev;
40945 return;
40946 }
40947 void parser___parser_prod___ASuperExternCall___empty_init(val_t p0, int* init_table){
40948 int itpos271 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExternCall].i;
40949 struct {struct stack_frame_t me;} fra;
40950 val_t tmp;
40951 if (init_table[itpos271]) return;
40952 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40953 fra.me.file = LOCATE_parser___parser_prod;
40954 fra.me.line = 7607;
40955 fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___empty_init;
40956 fra.me.has_broke = 0;
40957 fra.me.REG_size = 1;
40958 fra.me.REG[0] = NIT_NULL;
40959 fra.me.REG[0] = p0;
40960 stack_frame_head = fra.me.prev;
40961 init_table[itpos271] = 1;
40962 return;
40963 }
40964 void parser___parser_prod___ASuperExternCall___init_asuperexterncall(val_t p0, val_t p1, int* init_table){
40965 int itpos272 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExternCall].i;
40966 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
40967 val_t REGB0;
40968 val_t tmp;
40969 if (init_table[itpos272]) return;
40970 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40971 fra.me.file = LOCATE_parser___parser_prod;
40972 fra.me.line = 7609;
40973 fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___init_asuperexterncall;
40974 fra.me.has_broke = 0;
40975 fra.me.REG_size = 3;
40976 fra.me.REG[0] = NIT_NULL;
40977 fra.me.REG[1] = NIT_NULL;
40978 fra.me.REG[2] = NIT_NULL;
40979 fra.me.REG[0] = p0;
40980 fra.me.REG[1] = p1;
40981 /* ./parser//parser_prod.nit:7609 */
40982 fra.me.REG[2] = fra.me.REG[0];
40983 /* ./parser//parser_prod.nit:7613 */
40984 CALL_parser___parser_prod___ASuperExternCall___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
40985 /* ./parser//parser_prod.nit:7614 */
40986 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
40987 if (UNTAG_Bool(REGB0)) {
40988 } else {
40989 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7614);
40990 }
40991 ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[2]) = fra.me.REG[1];
40992 /* ./parser//parser_prod.nit:7615 */
40993 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40994 if (UNTAG_Bool(REGB0)) {
40995 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7615);
40996 }
40997 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40998 stack_frame_head = fra.me.prev;
40999 init_table[itpos272] = 1;
41000 return;
41001 }
41002 void parser___parser_prod___ASuperExternCall___replace_child(val_t p0, val_t p1, val_t p2){
41003 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41004 val_t REGB0;
41005 val_t REGB1;
41006 val_t tmp;
41007 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41008 fra.me.file = LOCATE_parser___parser_prod;
41009 fra.me.line = 7618;
41010 fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___replace_child;
41011 fra.me.has_broke = 0;
41012 fra.me.REG_size = 4;
41013 fra.me.REG[0] = NIT_NULL;
41014 fra.me.REG[1] = NIT_NULL;
41015 fra.me.REG[2] = NIT_NULL;
41016 fra.me.REG[3] = NIT_NULL;
41017 fra.me.REG[0] = p0;
41018 fra.me.REG[1] = p1;
41019 fra.me.REG[2] = p2;
41020 /* ./parser//parser_prod.nit:7620 */
41021 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
41022 if (UNTAG_Bool(REGB0)) {
41023 } else {
41024 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 7620);
41025 }
41026 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]);
41027 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41028 if (UNTAG_Bool(REGB0)) {
41029 } else {
41030 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41031 REGB0 = REGB1;
41032 }
41033 if (UNTAG_Bool(REGB0)) {
41034 /* ./parser//parser_prod.nit:7621 */
41035 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41036 if (UNTAG_Bool(REGB0)) {
41037 } else {
41038 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41039 if (UNTAG_Bool(REGB1)) {
41040 REGB1 = TAG_Bool(false);
41041 REGB0 = REGB1;
41042 } else {
41043 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41044 REGB0 = REGB1;
41045 }
41046 }
41047 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41048 if (UNTAG_Bool(REGB0)) {
41049 /* ./parser//parser_prod.nit:7622 */
41050 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41051 if (UNTAG_Bool(REGB0)) {
41052 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7622);
41053 }
41054 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41055 /* ./parser//parser_prod.nit:7623 */
41056 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*/;
41057 if (UNTAG_Bool(REGB0)) {
41058 } else {
41059 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7623);
41060 }
41061 /* ./parser//parser_prod.nit:7624 */
41062 ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
41063 } else {
41064 /* ./parser//parser_prod.nit:7626 */
41065 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7626);
41066 }
41067 /* ./parser//parser_prod.nit:7628 */
41068 goto label1;
41069 }
41070 label1: while(0);
41071 stack_frame_head = fra.me.prev;
41072 return;
41073 }
41074 void parser___parser_prod___ASuperExternCall___visit_all(val_t p0, val_t p1){
41075 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
41076 val_t REGB0;
41077 val_t tmp;
41078 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41079 fra.me.file = LOCATE_parser___parser_prod;
41080 fra.me.line = 7632;
41081 fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___visit_all;
41082 fra.me.has_broke = 0;
41083 fra.me.REG_size = 2;
41084 fra.me.REG[0] = NIT_NULL;
41085 fra.me.REG[1] = NIT_NULL;
41086 fra.me.REG[0] = p0;
41087 fra.me.REG[1] = p1;
41088 /* ./parser//parser_prod.nit:7634 */
41089 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
41090 if (UNTAG_Bool(REGB0)) {
41091 } else {
41092 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 7634);
41093 }
41094 fra.me.REG[0] = ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]);
41095 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
41096 stack_frame_head = fra.me.prev;
41097 return;
41098 }
41099 void parser___parser_prod___ALocalPropExternCall___empty_init(val_t p0, int* init_table){
41100 int itpos273 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALocalPropExternCall].i;
41101 struct {struct stack_frame_t me;} fra;
41102 val_t tmp;
41103 if (init_table[itpos273]) return;
41104 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41105 fra.me.file = LOCATE_parser___parser_prod;
41106 fra.me.line = 7638;
41107 fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___empty_init;
41108 fra.me.has_broke = 0;
41109 fra.me.REG_size = 1;
41110 fra.me.REG[0] = NIT_NULL;
41111 fra.me.REG[0] = p0;
41112 stack_frame_head = fra.me.prev;
41113 init_table[itpos273] = 1;
41114 return;
41115 }
41116 void parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall(val_t p0, val_t p1, int* init_table){
41117 int itpos274 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALocalPropExternCall].i;
41118 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
41119 val_t REGB0;
41120 val_t tmp;
41121 if (init_table[itpos274]) return;
41122 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41123 fra.me.file = LOCATE_parser___parser_prod;
41124 fra.me.line = 7640;
41125 fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall;
41126 fra.me.has_broke = 0;
41127 fra.me.REG_size = 3;
41128 fra.me.REG[0] = NIT_NULL;
41129 fra.me.REG[1] = NIT_NULL;
41130 fra.me.REG[2] = NIT_NULL;
41131 fra.me.REG[0] = p0;
41132 fra.me.REG[1] = p1;
41133 /* ./parser//parser_prod.nit:7640 */
41134 fra.me.REG[2] = fra.me.REG[0];
41135 /* ./parser//parser_prod.nit:7644 */
41136 CALL_parser___parser_prod___ALocalPropExternCall___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
41137 /* ./parser//parser_prod.nit:7645 */
41138 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
41139 if (UNTAG_Bool(REGB0)) {
41140 } else {
41141 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7645);
41142 }
41143 ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[2]) = fra.me.REG[1];
41144 /* ./parser//parser_prod.nit:7646 */
41145 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
41146 if (UNTAG_Bool(REGB0)) {
41147 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7646);
41148 }
41149 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
41150 stack_frame_head = fra.me.prev;
41151 init_table[itpos274] = 1;
41152 return;
41153 }
41154 void parser___parser_prod___ALocalPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
41155 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41156 val_t REGB0;
41157 val_t REGB1;
41158 val_t tmp;
41159 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41160 fra.me.file = LOCATE_parser___parser_prod;
41161 fra.me.line = 7649;
41162 fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___replace_child;
41163 fra.me.has_broke = 0;
41164 fra.me.REG_size = 4;
41165 fra.me.REG[0] = NIT_NULL;
41166 fra.me.REG[1] = NIT_NULL;
41167 fra.me.REG[2] = NIT_NULL;
41168 fra.me.REG[3] = NIT_NULL;
41169 fra.me.REG[0] = p0;
41170 fra.me.REG[1] = p1;
41171 fra.me.REG[2] = p2;
41172 /* ./parser//parser_prod.nit:7651 */
41173 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
41174 if (UNTAG_Bool(REGB0)) {
41175 } else {
41176 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 7651);
41177 }
41178 fra.me.REG[3] = ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]);
41179 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41180 if (UNTAG_Bool(REGB0)) {
41181 } else {
41182 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41183 REGB0 = REGB1;
41184 }
41185 if (UNTAG_Bool(REGB0)) {
41186 /* ./parser//parser_prod.nit:7652 */
41187 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41188 if (UNTAG_Bool(REGB0)) {
41189 } else {
41190 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41191 if (UNTAG_Bool(REGB1)) {
41192 REGB1 = TAG_Bool(false);
41193 REGB0 = REGB1;
41194 } else {
41195 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41196 REGB0 = REGB1;
41197 }
41198 }
41199 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41200 if (UNTAG_Bool(REGB0)) {
41201 /* ./parser//parser_prod.nit:7653 */
41202 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41203 if (UNTAG_Bool(REGB0)) {
41204 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7653);
41205 }
41206 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41207 /* ./parser//parser_prod.nit:7654 */
41208 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*/;
41209 if (UNTAG_Bool(REGB0)) {
41210 } else {
41211 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7654);
41212 }
41213 /* ./parser//parser_prod.nit:7655 */
41214 ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]) = fra.me.REG[2];
41215 } else {
41216 /* ./parser//parser_prod.nit:7657 */
41217 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7657);
41218 }
41219 /* ./parser//parser_prod.nit:7659 */
41220 goto label1;
41221 }
41222 label1: while(0);
41223 stack_frame_head = fra.me.prev;
41224 return;
41225 }
41226 void parser___parser_prod___ALocalPropExternCall___visit_all(val_t p0, val_t p1){
41227 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
41228 val_t REGB0;
41229 val_t tmp;
41230 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41231 fra.me.file = LOCATE_parser___parser_prod;
41232 fra.me.line = 7663;
41233 fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___visit_all;
41234 fra.me.has_broke = 0;
41235 fra.me.REG_size = 2;
41236 fra.me.REG[0] = NIT_NULL;
41237 fra.me.REG[1] = NIT_NULL;
41238 fra.me.REG[0] = p0;
41239 fra.me.REG[1] = p1;
41240 /* ./parser//parser_prod.nit:7665 */
41241 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
41242 if (UNTAG_Bool(REGB0)) {
41243 } else {
41244 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 7665);
41245 }
41246 fra.me.REG[0] = ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]);
41247 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
41248 stack_frame_head = fra.me.prev;
41249 return;
41250 }
41251 void parser___parser_prod___AFullPropExternCall___empty_init(val_t p0, int* init_table){
41252 int itpos275 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFullPropExternCall].i;
41253 struct {struct stack_frame_t me;} fra;
41254 val_t tmp;
41255 if (init_table[itpos275]) return;
41256 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41257 fra.me.file = LOCATE_parser___parser_prod;
41258 fra.me.line = 7669;
41259 fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___empty_init;
41260 fra.me.has_broke = 0;
41261 fra.me.REG_size = 1;
41262 fra.me.REG[0] = NIT_NULL;
41263 fra.me.REG[0] = p0;
41264 stack_frame_head = fra.me.prev;
41265 init_table[itpos275] = 1;
41266 return;
41267 }
41268 void parser___parser_prod___AFullPropExternCall___init_afullpropexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
41269 int itpos276 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFullPropExternCall].i;
41270 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
41271 val_t REGB0;
41272 val_t REGB1;
41273 val_t tmp;
41274 if (init_table[itpos276]) return;
41275 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41276 fra.me.file = LOCATE_parser___parser_prod;
41277 fra.me.line = 7671;
41278 fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___init_afullpropexterncall;
41279 fra.me.has_broke = 0;
41280 fra.me.REG_size = 5;
41281 fra.me.REG[0] = NIT_NULL;
41282 fra.me.REG[1] = NIT_NULL;
41283 fra.me.REG[2] = NIT_NULL;
41284 fra.me.REG[3] = NIT_NULL;
41285 fra.me.REG[4] = NIT_NULL;
41286 fra.me.REG[0] = p0;
41287 fra.me.REG[1] = p1;
41288 fra.me.REG[2] = p2;
41289 fra.me.REG[3] = p3;
41290 /* ./parser//parser_prod.nit:7671 */
41291 fra.me.REG[4] = fra.me.REG[0];
41292 /* ./parser//parser_prod.nit:7677 */
41293 CALL_parser___parser_prod___AFullPropExternCall___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
41294 /* ./parser//parser_prod.nit:7678 */
41295 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
41296 if (UNTAG_Bool(REGB0)) {
41297 } else {
41298 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7678);
41299 }
41300 ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[4]) = fra.me.REG[1];
41301 /* ./parser//parser_prod.nit:7679 */
41302 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
41303 if (UNTAG_Bool(REGB0)) {
41304 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7679);
41305 }
41306 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
41307 /* ./parser//parser_prod.nit:7680 */
41308 ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[4]) = fra.me.REG[2];
41309 /* ./parser//parser_prod.nit:7681 */
41310 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41311 if (UNTAG_Bool(REGB0)) {
41312 } else {
41313 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41314 if (UNTAG_Bool(REGB1)) {
41315 REGB1 = TAG_Bool(false);
41316 REGB0 = REGB1;
41317 } else {
41318 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41319 REGB0 = REGB1;
41320 }
41321 }
41322 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41323 if (UNTAG_Bool(REGB0)) {
41324 /* ./parser//parser_prod.nit:7682 */
41325 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41326 if (UNTAG_Bool(REGB0)) {
41327 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7682);
41328 }
41329 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
41330 }
41331 /* ./parser//parser_prod.nit:7684 */
41332 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
41333 if (UNTAG_Bool(REGB0)) {
41334 } else {
41335 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7684);
41336 }
41337 ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[4]) = fra.me.REG[3];
41338 /* ./parser//parser_prod.nit:7685 */
41339 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41340 if (UNTAG_Bool(REGB0)) {
41341 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7685);
41342 }
41343 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
41344 stack_frame_head = fra.me.prev;
41345 init_table[itpos276] = 1;
41346 return;
41347 }
41348 void parser___parser_prod___AFullPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
41349 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41350 val_t REGB0;
41351 val_t REGB1;
41352 val_t tmp;
41353 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41354 fra.me.file = LOCATE_parser___parser_prod;
41355 fra.me.line = 7688;
41356 fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___replace_child;
41357 fra.me.has_broke = 0;
41358 fra.me.REG_size = 4;
41359 fra.me.REG[0] = NIT_NULL;
41360 fra.me.REG[1] = NIT_NULL;
41361 fra.me.REG[2] = NIT_NULL;
41362 fra.me.REG[3] = NIT_NULL;
41363 fra.me.REG[0] = p0;
41364 fra.me.REG[1] = p1;
41365 fra.me.REG[2] = p2;
41366 /* ./parser//parser_prod.nit:7690 */
41367 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
41368 if (UNTAG_Bool(REGB0)) {
41369 } else {
41370 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 7690);
41371 }
41372 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0]);
41373 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41374 if (UNTAG_Bool(REGB0)) {
41375 } else {
41376 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41377 REGB0 = REGB1;
41378 }
41379 if (UNTAG_Bool(REGB0)) {
41380 /* ./parser//parser_prod.nit:7691 */
41381 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41382 if (UNTAG_Bool(REGB0)) {
41383 } else {
41384 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41385 if (UNTAG_Bool(REGB1)) {
41386 REGB1 = TAG_Bool(false);
41387 REGB0 = REGB1;
41388 } else {
41389 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41390 REGB0 = REGB1;
41391 }
41392 }
41393 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41394 if (UNTAG_Bool(REGB0)) {
41395 /* ./parser//parser_prod.nit:7692 */
41396 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41397 if (UNTAG_Bool(REGB0)) {
41398 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7692);
41399 }
41400 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41401 /* ./parser//parser_prod.nit:7693 */
41402 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*/;
41403 if (UNTAG_Bool(REGB0)) {
41404 } else {
41405 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7693);
41406 }
41407 /* ./parser//parser_prod.nit:7694 */
41408 ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0]) = fra.me.REG[2];
41409 } else {
41410 /* ./parser//parser_prod.nit:7696 */
41411 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7696);
41412 }
41413 /* ./parser//parser_prod.nit:7698 */
41414 goto label1;
41415 }
41416 /* ./parser//parser_prod.nit:7700 */
41417 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]);
41418 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
41419 if (UNTAG_Bool(REGB0)) {
41420 } else {
41421 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41422 if (UNTAG_Bool(REGB1)) {
41423 REGB1 = TAG_Bool(false);
41424 REGB0 = REGB1;
41425 } else {
41426 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41427 REGB0 = REGB1;
41428 }
41429 }
41430 if (UNTAG_Bool(REGB0)) {
41431 /* ./parser//parser_prod.nit:7701 */
41432 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41433 if (UNTAG_Bool(REGB0)) {
41434 } else {
41435 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41436 if (UNTAG_Bool(REGB1)) {
41437 REGB1 = TAG_Bool(false);
41438 REGB0 = REGB1;
41439 } else {
41440 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41441 REGB0 = REGB1;
41442 }
41443 }
41444 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41445 if (UNTAG_Bool(REGB0)) {
41446 /* ./parser//parser_prod.nit:7702 */
41447 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41448 if (UNTAG_Bool(REGB0)) {
41449 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7702);
41450 }
41451 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41452 /* ./parser//parser_prod.nit:7703 */
41453 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*/;
41454 if (UNTAG_Bool(REGB0)) {
41455 } else {
41456 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7703);
41457 }
41458 /* ./parser//parser_prod.nit:7704 */
41459 ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]) = fra.me.REG[2];
41460 } else {
41461 /* ./parser//parser_prod.nit:7706 */
41462 ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]) = NIT_NULL;
41463 }
41464 /* ./parser//parser_prod.nit:7708 */
41465 goto label1;
41466 }
41467 /* ./parser//parser_prod.nit:7710 */
41468 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
41469 if (UNTAG_Bool(REGB0)) {
41470 } else {
41471 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 7710);
41472 }
41473 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0]);
41474 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41475 if (UNTAG_Bool(REGB0)) {
41476 } else {
41477 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41478 REGB0 = REGB1;
41479 }
41480 if (UNTAG_Bool(REGB0)) {
41481 /* ./parser//parser_prod.nit:7711 */
41482 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41483 if (UNTAG_Bool(REGB0)) {
41484 } else {
41485 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41486 if (UNTAG_Bool(REGB1)) {
41487 REGB1 = TAG_Bool(false);
41488 REGB0 = REGB1;
41489 } else {
41490 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41491 REGB0 = REGB1;
41492 }
41493 }
41494 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41495 if (UNTAG_Bool(REGB0)) {
41496 /* ./parser//parser_prod.nit:7712 */
41497 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41498 if (UNTAG_Bool(REGB0)) {
41499 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7712);
41500 }
41501 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41502 /* ./parser//parser_prod.nit:7713 */
41503 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*/;
41504 if (UNTAG_Bool(REGB0)) {
41505 } else {
41506 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7713);
41507 }
41508 /* ./parser//parser_prod.nit:7714 */
41509 ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0]) = fra.me.REG[2];
41510 } else {
41511 /* ./parser//parser_prod.nit:7716 */
41512 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7716);
41513 }
41514 /* ./parser//parser_prod.nit:7718 */
41515 goto label1;
41516 }
41517 label1: while(0);
41518 stack_frame_head = fra.me.prev;
41519 return;
41520 }
41521 void parser___parser_prod___AFullPropExternCall___visit_all(val_t p0, val_t p1){
41522 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41523 val_t REGB0;
41524 val_t REGB1;
41525 val_t tmp;
41526 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41527 fra.me.file = LOCATE_parser___parser_prod;
41528 fra.me.line = 7722;
41529 fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___visit_all;
41530 fra.me.has_broke = 0;
41531 fra.me.REG_size = 4;
41532 fra.me.REG[0] = NIT_NULL;
41533 fra.me.REG[1] = NIT_NULL;
41534 fra.me.REG[2] = NIT_NULL;
41535 fra.me.REG[3] = NIT_NULL;
41536 fra.me.REG[0] = p0;
41537 fra.me.REG[1] = p1;
41538 /* ./parser//parser_prod.nit:7722 */
41539 fra.me.REG[2] = fra.me.REG[0];
41540 /* ./parser//parser_prod.nit:7724 */
41541 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[2])!=NIT_NULL);
41542 if (UNTAG_Bool(REGB0)) {
41543 } else {
41544 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 7724);
41545 }
41546 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[2]);
41547 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
41548 /* ./parser//parser_prod.nit:7725 */
41549 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[2]);
41550 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41551 if (UNTAG_Bool(REGB0)) {
41552 } else {
41553 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41554 if (UNTAG_Bool(REGB1)) {
41555 REGB1 = TAG_Bool(false);
41556 REGB0 = REGB1;
41557 } else {
41558 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
41559 REGB0 = REGB1;
41560 }
41561 }
41562 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41563 if (UNTAG_Bool(REGB0)) {
41564 /* ./parser//parser_prod.nit:7726 */
41565 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[2]);
41566 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*/;
41567 if (UNTAG_Bool(REGB0)) {
41568 } else {
41569 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7726);
41570 }
41571 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
41572 }
41573 /* ./parser//parser_prod.nit:7728 */
41574 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[2])!=NIT_NULL);
41575 if (UNTAG_Bool(REGB0)) {
41576 } else {
41577 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 7728);
41578 }
41579 fra.me.REG[2] = ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[2]);
41580 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
41581 stack_frame_head = fra.me.prev;
41582 return;
41583 }
41584 void parser___parser_prod___AInitPropExternCall___empty_init(val_t p0, int* init_table){
41585 int itpos277 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitPropExternCall].i;
41586 struct {struct stack_frame_t me;} fra;
41587 val_t tmp;
41588 if (init_table[itpos277]) return;
41589 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41590 fra.me.file = LOCATE_parser___parser_prod;
41591 fra.me.line = 7732;
41592 fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___empty_init;
41593 fra.me.has_broke = 0;
41594 fra.me.REG_size = 1;
41595 fra.me.REG[0] = NIT_NULL;
41596 fra.me.REG[0] = p0;
41597 stack_frame_head = fra.me.prev;
41598 init_table[itpos277] = 1;
41599 return;
41600 }
41601 void parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall(val_t p0, val_t p1, int* init_table){
41602 int itpos278 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitPropExternCall].i;
41603 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
41604 val_t REGB0;
41605 val_t tmp;
41606 if (init_table[itpos278]) return;
41607 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41608 fra.me.file = LOCATE_parser___parser_prod;
41609 fra.me.line = 7734;
41610 fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall;
41611 fra.me.has_broke = 0;
41612 fra.me.REG_size = 3;
41613 fra.me.REG[0] = NIT_NULL;
41614 fra.me.REG[1] = NIT_NULL;
41615 fra.me.REG[2] = NIT_NULL;
41616 fra.me.REG[0] = p0;
41617 fra.me.REG[1] = p1;
41618 /* ./parser//parser_prod.nit:7734 */
41619 fra.me.REG[2] = fra.me.REG[0];
41620 /* ./parser//parser_prod.nit:7738 */
41621 CALL_parser___parser_prod___AInitPropExternCall___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
41622 /* ./parser//parser_prod.nit:7739 */
41623 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
41624 if (UNTAG_Bool(REGB0)) {
41625 } else {
41626 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7739);
41627 }
41628 ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[2]) = fra.me.REG[1];
41629 /* ./parser//parser_prod.nit:7740 */
41630 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
41631 if (UNTAG_Bool(REGB0)) {
41632 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7740);
41633 }
41634 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
41635 stack_frame_head = fra.me.prev;
41636 init_table[itpos278] = 1;
41637 return;
41638 }
41639 void parser___parser_prod___AInitPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
41640 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41641 val_t REGB0;
41642 val_t REGB1;
41643 val_t tmp;
41644 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41645 fra.me.file = LOCATE_parser___parser_prod;
41646 fra.me.line = 7743;
41647 fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___replace_child;
41648 fra.me.has_broke = 0;
41649 fra.me.REG_size = 4;
41650 fra.me.REG[0] = NIT_NULL;
41651 fra.me.REG[1] = NIT_NULL;
41652 fra.me.REG[2] = NIT_NULL;
41653 fra.me.REG[3] = NIT_NULL;
41654 fra.me.REG[0] = p0;
41655 fra.me.REG[1] = p1;
41656 fra.me.REG[2] = p2;
41657 /* ./parser//parser_prod.nit:7745 */
41658 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
41659 if (UNTAG_Bool(REGB0)) {
41660 } else {
41661 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 7745);
41662 }
41663 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]);
41664 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41665 if (UNTAG_Bool(REGB0)) {
41666 } else {
41667 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41668 REGB0 = REGB1;
41669 }
41670 if (UNTAG_Bool(REGB0)) {
41671 /* ./parser//parser_prod.nit:7746 */
41672 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41673 if (UNTAG_Bool(REGB0)) {
41674 } else {
41675 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41676 if (UNTAG_Bool(REGB1)) {
41677 REGB1 = TAG_Bool(false);
41678 REGB0 = REGB1;
41679 } else {
41680 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41681 REGB0 = REGB1;
41682 }
41683 }
41684 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41685 if (UNTAG_Bool(REGB0)) {
41686 /* ./parser//parser_prod.nit:7747 */
41687 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41688 if (UNTAG_Bool(REGB0)) {
41689 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7747);
41690 }
41691 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41692 /* ./parser//parser_prod.nit:7748 */
41693 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*/;
41694 if (UNTAG_Bool(REGB0)) {
41695 } else {
41696 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7748);
41697 }
41698 /* ./parser//parser_prod.nit:7749 */
41699 ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]) = fra.me.REG[2];
41700 } else {
41701 /* ./parser//parser_prod.nit:7751 */
41702 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7751);
41703 }
41704 /* ./parser//parser_prod.nit:7753 */
41705 goto label1;
41706 }
41707 label1: while(0);
41708 stack_frame_head = fra.me.prev;
41709 return;
41710 }
41711 void parser___parser_prod___AInitPropExternCall___visit_all(val_t p0, val_t p1){
41712 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
41713 val_t REGB0;
41714 val_t tmp;
41715 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41716 fra.me.file = LOCATE_parser___parser_prod;
41717 fra.me.line = 7757;
41718 fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___visit_all;
41719 fra.me.has_broke = 0;
41720 fra.me.REG_size = 2;
41721 fra.me.REG[0] = NIT_NULL;
41722 fra.me.REG[1] = NIT_NULL;
41723 fra.me.REG[0] = p0;
41724 fra.me.REG[1] = p1;
41725 /* ./parser//parser_prod.nit:7759 */
41726 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
41727 if (UNTAG_Bool(REGB0)) {
41728 } else {
41729 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 7759);
41730 }
41731 fra.me.REG[0] = ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]);
41732 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
41733 stack_frame_head = fra.me.prev;
41734 return;
41735 }
41736 void parser___parser_prod___ACastAsExternCall___empty_init(val_t p0, int* init_table){
41737 int itpos279 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACastAsExternCall].i;
41738 struct {struct stack_frame_t me;} fra;
41739 val_t tmp;
41740 if (init_table[itpos279]) return;
41741 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41742 fra.me.file = LOCATE_parser___parser_prod;
41743 fra.me.line = 7763;
41744 fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___empty_init;
41745 fra.me.has_broke = 0;
41746 fra.me.REG_size = 1;
41747 fra.me.REG[0] = NIT_NULL;
41748 fra.me.REG[0] = p0;
41749 stack_frame_head = fra.me.prev;
41750 init_table[itpos279] = 1;
41751 return;
41752 }
41753 void parser___parser_prod___ACastAsExternCall___init_acastasexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
41754 int itpos280 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACastAsExternCall].i;
41755 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
41756 val_t REGB0;
41757 val_t tmp;
41758 if (init_table[itpos280]) return;
41759 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41760 fra.me.file = LOCATE_parser___parser_prod;
41761 fra.me.line = 7765;
41762 fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___init_acastasexterncall;
41763 fra.me.has_broke = 0;
41764 fra.me.REG_size = 5;
41765 fra.me.REG[0] = NIT_NULL;
41766 fra.me.REG[1] = NIT_NULL;
41767 fra.me.REG[2] = NIT_NULL;
41768 fra.me.REG[3] = NIT_NULL;
41769 fra.me.REG[4] = NIT_NULL;
41770 fra.me.REG[0] = p0;
41771 fra.me.REG[1] = p1;
41772 fra.me.REG[2] = p2;
41773 fra.me.REG[3] = p3;
41774 /* ./parser//parser_prod.nit:7765 */
41775 fra.me.REG[4] = fra.me.REG[0];
41776 /* ./parser//parser_prod.nit:7771 */
41777 CALL_parser___parser_prod___ACastAsExternCall___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
41778 /* ./parser//parser_prod.nit:7772 */
41779 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
41780 if (UNTAG_Bool(REGB0)) {
41781 } else {
41782 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7772);
41783 }
41784 ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[4]) = fra.me.REG[1];
41785 /* ./parser//parser_prod.nit:7773 */
41786 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
41787 if (UNTAG_Bool(REGB0)) {
41788 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7773);
41789 }
41790 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
41791 /* ./parser//parser_prod.nit:7774 */
41792 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
41793 if (UNTAG_Bool(REGB0)) {
41794 } else {
41795 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7774);
41796 }
41797 ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[4]) = fra.me.REG[2];
41798 /* ./parser//parser_prod.nit:7775 */
41799 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41800 if (UNTAG_Bool(REGB0)) {
41801 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7775);
41802 }
41803 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
41804 /* ./parser//parser_prod.nit:7776 */
41805 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
41806 if (UNTAG_Bool(REGB0)) {
41807 } else {
41808 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7776);
41809 }
41810 ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[4]) = fra.me.REG[3];
41811 /* ./parser//parser_prod.nit:7777 */
41812 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41813 if (UNTAG_Bool(REGB0)) {
41814 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7777);
41815 }
41816 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
41817 stack_frame_head = fra.me.prev;
41818 init_table[itpos280] = 1;
41819 return;
41820 }
41821 void parser___parser_prod___ACastAsExternCall___replace_child(val_t p0, val_t p1, val_t p2){
41822 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41823 val_t REGB0;
41824 val_t REGB1;
41825 val_t tmp;
41826 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41827 fra.me.file = LOCATE_parser___parser_prod;
41828 fra.me.line = 7780;
41829 fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___replace_child;
41830 fra.me.has_broke = 0;
41831 fra.me.REG_size = 4;
41832 fra.me.REG[0] = NIT_NULL;
41833 fra.me.REG[1] = NIT_NULL;
41834 fra.me.REG[2] = NIT_NULL;
41835 fra.me.REG[3] = NIT_NULL;
41836 fra.me.REG[0] = p0;
41837 fra.me.REG[1] = p1;
41838 fra.me.REG[2] = p2;
41839 /* ./parser//parser_prod.nit:7782 */
41840 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0])!=NIT_NULL);
41841 if (UNTAG_Bool(REGB0)) {
41842 } else {
41843 nit_abort("Uninitialized attribute %s", "_n_from_type", LOCATE_parser___parser_prod, 7782);
41844 }
41845 fra.me.REG[3] = ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]);
41846 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41847 if (UNTAG_Bool(REGB0)) {
41848 } else {
41849 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41850 REGB0 = REGB1;
41851 }
41852 if (UNTAG_Bool(REGB0)) {
41853 /* ./parser//parser_prod.nit:7783 */
41854 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41855 if (UNTAG_Bool(REGB0)) {
41856 } else {
41857 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41858 if (UNTAG_Bool(REGB1)) {
41859 REGB1 = TAG_Bool(false);
41860 REGB0 = REGB1;
41861 } else {
41862 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41863 REGB0 = REGB1;
41864 }
41865 }
41866 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41867 if (UNTAG_Bool(REGB0)) {
41868 /* ./parser//parser_prod.nit:7784 */
41869 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41870 if (UNTAG_Bool(REGB0)) {
41871 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7784);
41872 }
41873 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41874 /* ./parser//parser_prod.nit:7785 */
41875 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*/;
41876 if (UNTAG_Bool(REGB0)) {
41877 } else {
41878 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7785);
41879 }
41880 /* ./parser//parser_prod.nit:7786 */
41881 ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]) = fra.me.REG[2];
41882 } else {
41883 /* ./parser//parser_prod.nit:7788 */
41884 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7788);
41885 }
41886 /* ./parser//parser_prod.nit:7790 */
41887 goto label1;
41888 }
41889 /* ./parser//parser_prod.nit:7792 */
41890 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
41891 if (UNTAG_Bool(REGB0)) {
41892 } else {
41893 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7792);
41894 }
41895 fra.me.REG[3] = ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]);
41896 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41897 if (UNTAG_Bool(REGB0)) {
41898 } else {
41899 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41900 REGB0 = REGB1;
41901 }
41902 if (UNTAG_Bool(REGB0)) {
41903 /* ./parser//parser_prod.nit:7793 */
41904 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41905 if (UNTAG_Bool(REGB0)) {
41906 } else {
41907 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41908 if (UNTAG_Bool(REGB1)) {
41909 REGB1 = TAG_Bool(false);
41910 REGB0 = REGB1;
41911 } else {
41912 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41913 REGB0 = REGB1;
41914 }
41915 }
41916 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41917 if (UNTAG_Bool(REGB0)) {
41918 /* ./parser//parser_prod.nit:7794 */
41919 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41920 if (UNTAG_Bool(REGB0)) {
41921 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7794);
41922 }
41923 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41924 /* ./parser//parser_prod.nit:7795 */
41925 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*/;
41926 if (UNTAG_Bool(REGB0)) {
41927 } else {
41928 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7795);
41929 }
41930 /* ./parser//parser_prod.nit:7796 */
41931 ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
41932 } else {
41933 /* ./parser//parser_prod.nit:7798 */
41934 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7798);
41935 }
41936 /* ./parser//parser_prod.nit:7800 */
41937 goto label1;
41938 }
41939 /* ./parser//parser_prod.nit:7802 */
41940 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0])!=NIT_NULL);
41941 if (UNTAG_Bool(REGB0)) {
41942 } else {
41943 nit_abort("Uninitialized attribute %s", "_n_to_type", LOCATE_parser___parser_prod, 7802);
41944 }
41945 fra.me.REG[3] = ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]);
41946 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41947 if (UNTAG_Bool(REGB0)) {
41948 } else {
41949 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41950 REGB0 = REGB1;
41951 }
41952 if (UNTAG_Bool(REGB0)) {
41953 /* ./parser//parser_prod.nit:7803 */
41954 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41955 if (UNTAG_Bool(REGB0)) {
41956 } else {
41957 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41958 if (UNTAG_Bool(REGB1)) {
41959 REGB1 = TAG_Bool(false);
41960 REGB0 = REGB1;
41961 } else {
41962 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41963 REGB0 = REGB1;
41964 }
41965 }
41966 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41967 if (UNTAG_Bool(REGB0)) {
41968 /* ./parser//parser_prod.nit:7804 */
41969 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41970 if (UNTAG_Bool(REGB0)) {
41971 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7804);
41972 }
41973 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41974 /* ./parser//parser_prod.nit:7805 */
41975 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*/;
41976 if (UNTAG_Bool(REGB0)) {
41977 } else {
41978 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7805);
41979 }
41980 /* ./parser//parser_prod.nit:7806 */
41981 ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]) = fra.me.REG[2];
41982 } else {
41983 /* ./parser//parser_prod.nit:7808 */
41984 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7808);
41985 }
41986 /* ./parser//parser_prod.nit:7810 */
41987 goto label1;
41988 }
41989 label1: while(0);
41990 stack_frame_head = fra.me.prev;
41991 return;
41992 }
41993 void parser___parser_prod___ACastAsExternCall___visit_all(val_t p0, val_t p1){
41994 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
41995 val_t REGB0;
41996 val_t tmp;
41997 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41998 fra.me.file = LOCATE_parser___parser_prod;
41999 fra.me.line = 7814;
42000 fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___visit_all;
42001 fra.me.has_broke = 0;
42002 fra.me.REG_size = 3;
42003 fra.me.REG[0] = NIT_NULL;
42004 fra.me.REG[1] = NIT_NULL;
42005 fra.me.REG[2] = NIT_NULL;
42006 fra.me.REG[0] = p0;
42007 fra.me.REG[1] = p1;
42008 /* ./parser//parser_prod.nit:7816 */
42009 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0])!=NIT_NULL);
42010 if (UNTAG_Bool(REGB0)) {
42011 } else {
42012 nit_abort("Uninitialized attribute %s", "_n_from_type", LOCATE_parser___parser_prod, 7816);
42013 }
42014 fra.me.REG[2] = ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]);
42015 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42016 /* ./parser//parser_prod.nit:7817 */
42017 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
42018 if (UNTAG_Bool(REGB0)) {
42019 } else {
42020 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7817);
42021 }
42022 fra.me.REG[2] = ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]);
42023 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42024 /* ./parser//parser_prod.nit:7818 */
42025 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0])!=NIT_NULL);
42026 if (UNTAG_Bool(REGB0)) {
42027 } else {
42028 nit_abort("Uninitialized attribute %s", "_n_to_type", LOCATE_parser___parser_prod, 7818);
42029 }
42030 fra.me.REG[0] = ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]);
42031 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
42032 stack_frame_head = fra.me.prev;
42033 return;
42034 }
42035 void parser___parser_prod___AAsNullableExternCall___empty_init(val_t p0, int* init_table){
42036 int itpos281 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNullableExternCall].i;
42037 struct {struct stack_frame_t me;} fra;
42038 val_t tmp;
42039 if (init_table[itpos281]) return;
42040 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42041 fra.me.file = LOCATE_parser___parser_prod;
42042 fra.me.line = 7822;
42043 fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___empty_init;
42044 fra.me.has_broke = 0;
42045 fra.me.REG_size = 1;
42046 fra.me.REG[0] = NIT_NULL;
42047 fra.me.REG[0] = p0;
42048 stack_frame_head = fra.me.prev;
42049 init_table[itpos281] = 1;
42050 return;
42051 }
42052 void parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
42053 int itpos282 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNullableExternCall].i;
42054 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
42055 val_t REGB0;
42056 val_t tmp;
42057 if (init_table[itpos282]) return;
42058 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42059 fra.me.file = LOCATE_parser___parser_prod;
42060 fra.me.line = 7824;
42061 fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall;
42062 fra.me.has_broke = 0;
42063 fra.me.REG_size = 5;
42064 fra.me.REG[0] = NIT_NULL;
42065 fra.me.REG[1] = NIT_NULL;
42066 fra.me.REG[2] = NIT_NULL;
42067 fra.me.REG[3] = NIT_NULL;
42068 fra.me.REG[4] = NIT_NULL;
42069 fra.me.REG[0] = p0;
42070 fra.me.REG[1] = p1;
42071 fra.me.REG[2] = p2;
42072 fra.me.REG[3] = p3;
42073 /* ./parser//parser_prod.nit:7824 */
42074 fra.me.REG[4] = fra.me.REG[0];
42075 /* ./parser//parser_prod.nit:7830 */
42076 CALL_parser___parser_prod___AAsNullableExternCall___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
42077 /* ./parser//parser_prod.nit:7831 */
42078 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
42079 if (UNTAG_Bool(REGB0)) {
42080 } else {
42081 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7831);
42082 }
42083 ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[4]) = fra.me.REG[1];
42084 /* ./parser//parser_prod.nit:7832 */
42085 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
42086 if (UNTAG_Bool(REGB0)) {
42087 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7832);
42088 }
42089 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
42090 /* ./parser//parser_prod.nit:7833 */
42091 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
42092 if (UNTAG_Bool(REGB0)) {
42093 } else {
42094 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7833);
42095 }
42096 ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[4]) = fra.me.REG[2];
42097 /* ./parser//parser_prod.nit:7834 */
42098 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42099 if (UNTAG_Bool(REGB0)) {
42100 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7834);
42101 }
42102 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
42103 /* ./parser//parser_prod.nit:7835 */
42104 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
42105 if (UNTAG_Bool(REGB0)) {
42106 } else {
42107 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7835);
42108 }
42109 ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[4]) = fra.me.REG[3];
42110 /* ./parser//parser_prod.nit:7836 */
42111 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42112 if (UNTAG_Bool(REGB0)) {
42113 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7836);
42114 }
42115 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
42116 stack_frame_head = fra.me.prev;
42117 init_table[itpos282] = 1;
42118 return;
42119 }
42120 void parser___parser_prod___AAsNullableExternCall___replace_child(val_t p0, val_t p1, val_t p2){
42121 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
42122 val_t REGB0;
42123 val_t REGB1;
42124 val_t tmp;
42125 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42126 fra.me.file = LOCATE_parser___parser_prod;
42127 fra.me.line = 7839;
42128 fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___replace_child;
42129 fra.me.has_broke = 0;
42130 fra.me.REG_size = 4;
42131 fra.me.REG[0] = NIT_NULL;
42132 fra.me.REG[1] = NIT_NULL;
42133 fra.me.REG[2] = NIT_NULL;
42134 fra.me.REG[3] = NIT_NULL;
42135 fra.me.REG[0] = p0;
42136 fra.me.REG[1] = p1;
42137 fra.me.REG[2] = p2;
42138 /* ./parser//parser_prod.nit:7841 */
42139 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
42140 if (UNTAG_Bool(REGB0)) {
42141 } else {
42142 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7841);
42143 }
42144 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]);
42145 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42146 if (UNTAG_Bool(REGB0)) {
42147 } else {
42148 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42149 REGB0 = REGB1;
42150 }
42151 if (UNTAG_Bool(REGB0)) {
42152 /* ./parser//parser_prod.nit:7842 */
42153 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42154 if (UNTAG_Bool(REGB0)) {
42155 } else {
42156 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42157 if (UNTAG_Bool(REGB1)) {
42158 REGB1 = TAG_Bool(false);
42159 REGB0 = REGB1;
42160 } else {
42161 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42162 REGB0 = REGB1;
42163 }
42164 }
42165 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42166 if (UNTAG_Bool(REGB0)) {
42167 /* ./parser//parser_prod.nit:7843 */
42168 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42169 if (UNTAG_Bool(REGB0)) {
42170 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7843);
42171 }
42172 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42173 /* ./parser//parser_prod.nit:7844 */
42174 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*/;
42175 if (UNTAG_Bool(REGB0)) {
42176 } else {
42177 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7844);
42178 }
42179 /* ./parser//parser_prod.nit:7845 */
42180 ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]) = fra.me.REG[2];
42181 } else {
42182 /* ./parser//parser_prod.nit:7847 */
42183 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7847);
42184 }
42185 /* ./parser//parser_prod.nit:7849 */
42186 goto label1;
42187 }
42188 /* ./parser//parser_prod.nit:7851 */
42189 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
42190 if (UNTAG_Bool(REGB0)) {
42191 } else {
42192 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7851);
42193 }
42194 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]);
42195 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42196 if (UNTAG_Bool(REGB0)) {
42197 } else {
42198 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42199 REGB0 = REGB1;
42200 }
42201 if (UNTAG_Bool(REGB0)) {
42202 /* ./parser//parser_prod.nit:7852 */
42203 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42204 if (UNTAG_Bool(REGB0)) {
42205 } else {
42206 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42207 if (UNTAG_Bool(REGB1)) {
42208 REGB1 = TAG_Bool(false);
42209 REGB0 = REGB1;
42210 } else {
42211 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42212 REGB0 = REGB1;
42213 }
42214 }
42215 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42216 if (UNTAG_Bool(REGB0)) {
42217 /* ./parser//parser_prod.nit:7853 */
42218 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42219 if (UNTAG_Bool(REGB0)) {
42220 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7853);
42221 }
42222 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42223 /* ./parser//parser_prod.nit:7854 */
42224 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*/;
42225 if (UNTAG_Bool(REGB0)) {
42226 } else {
42227 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7854);
42228 }
42229 /* ./parser//parser_prod.nit:7855 */
42230 ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
42231 } else {
42232 /* ./parser//parser_prod.nit:7857 */
42233 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7857);
42234 }
42235 /* ./parser//parser_prod.nit:7859 */
42236 goto label1;
42237 }
42238 /* ./parser//parser_prod.nit:7861 */
42239 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
42240 if (UNTAG_Bool(REGB0)) {
42241 } else {
42242 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 7861);
42243 }
42244 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]);
42245 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42246 if (UNTAG_Bool(REGB0)) {
42247 } else {
42248 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42249 REGB0 = REGB1;
42250 }
42251 if (UNTAG_Bool(REGB0)) {
42252 /* ./parser//parser_prod.nit:7862 */
42253 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42254 if (UNTAG_Bool(REGB0)) {
42255 } else {
42256 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42257 if (UNTAG_Bool(REGB1)) {
42258 REGB1 = TAG_Bool(false);
42259 REGB0 = REGB1;
42260 } else {
42261 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42262 REGB0 = REGB1;
42263 }
42264 }
42265 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42266 if (UNTAG_Bool(REGB0)) {
42267 /* ./parser//parser_prod.nit:7863 */
42268 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42269 if (UNTAG_Bool(REGB0)) {
42270 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7863);
42271 }
42272 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42273 /* ./parser//parser_prod.nit:7864 */
42274 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*/;
42275 if (UNTAG_Bool(REGB0)) {
42276 } else {
42277 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7864);
42278 }
42279 /* ./parser//parser_prod.nit:7865 */
42280 ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
42281 } else {
42282 /* ./parser//parser_prod.nit:7867 */
42283 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7867);
42284 }
42285 /* ./parser//parser_prod.nit:7869 */
42286 goto label1;
42287 }
42288 label1: while(0);
42289 stack_frame_head = fra.me.prev;
42290 return;
42291 }
42292 void parser___parser_prod___AAsNullableExternCall___visit_all(val_t p0, val_t p1){
42293 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
42294 val_t REGB0;
42295 val_t tmp;
42296 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42297 fra.me.file = LOCATE_parser___parser_prod;
42298 fra.me.line = 7873;
42299 fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___visit_all;
42300 fra.me.has_broke = 0;
42301 fra.me.REG_size = 3;
42302 fra.me.REG[0] = NIT_NULL;
42303 fra.me.REG[1] = NIT_NULL;
42304 fra.me.REG[2] = NIT_NULL;
42305 fra.me.REG[0] = p0;
42306 fra.me.REG[1] = p1;
42307 /* ./parser//parser_prod.nit:7875 */
42308 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
42309 if (UNTAG_Bool(REGB0)) {
42310 } else {
42311 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7875);
42312 }
42313 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]);
42314 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42315 /* ./parser//parser_prod.nit:7876 */
42316 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
42317 if (UNTAG_Bool(REGB0)) {
42318 } else {
42319 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7876);
42320 }
42321 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]);
42322 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42323 /* ./parser//parser_prod.nit:7877 */
42324 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
42325 if (UNTAG_Bool(REGB0)) {
42326 } else {
42327 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 7877);
42328 }
42329 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]);
42330 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
42331 stack_frame_head = fra.me.prev;
42332 return;
42333 }
42334 void parser___parser_prod___AAsNotNullableExternCall___empty_init(val_t p0, int* init_table){
42335 int itpos283 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotNullableExternCall].i;
42336 struct {struct stack_frame_t me;} fra;
42337 val_t tmp;
42338 if (init_table[itpos283]) return;
42339 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42340 fra.me.file = LOCATE_parser___parser_prod;
42341 fra.me.line = 7881;
42342 fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___empty_init;
42343 fra.me.has_broke = 0;
42344 fra.me.REG_size = 1;
42345 fra.me.REG[0] = NIT_NULL;
42346 fra.me.REG[0] = p0;
42347 stack_frame_head = fra.me.prev;
42348 init_table[itpos283] = 1;
42349 return;
42350 }
42351 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){
42352 int itpos284 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotNullableExternCall].i;
42353 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
42354 val_t REGB0;
42355 val_t tmp;
42356 if (init_table[itpos284]) return;
42357 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42358 fra.me.file = LOCATE_parser___parser_prod;
42359 fra.me.line = 7883;
42360 fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall;
42361 fra.me.has_broke = 0;
42362 fra.me.REG_size = 6;
42363 fra.me.REG[0] = NIT_NULL;
42364 fra.me.REG[1] = NIT_NULL;
42365 fra.me.REG[2] = NIT_NULL;
42366 fra.me.REG[3] = NIT_NULL;
42367 fra.me.REG[4] = NIT_NULL;
42368 fra.me.REG[5] = NIT_NULL;
42369 fra.me.REG[0] = p0;
42370 fra.me.REG[1] = p1;
42371 fra.me.REG[2] = p2;
42372 fra.me.REG[3] = p3;
42373 fra.me.REG[4] = p4;
42374 /* ./parser//parser_prod.nit:7883 */
42375 fra.me.REG[5] = fra.me.REG[0];
42376 /* ./parser//parser_prod.nit:7890 */
42377 CALL_parser___parser_prod___AAsNotNullableExternCall___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
42378 /* ./parser//parser_prod.nit:7891 */
42379 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
42380 if (UNTAG_Bool(REGB0)) {
42381 } else {
42382 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7891);
42383 }
42384 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[5]) = fra.me.REG[1];
42385 /* ./parser//parser_prod.nit:7892 */
42386 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
42387 if (UNTAG_Bool(REGB0)) {
42388 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7892);
42389 }
42390 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
42391 /* ./parser//parser_prod.nit:7893 */
42392 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
42393 if (UNTAG_Bool(REGB0)) {
42394 } else {
42395 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7893);
42396 }
42397 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[5]) = fra.me.REG[2];
42398 /* ./parser//parser_prod.nit:7894 */
42399 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42400 if (UNTAG_Bool(REGB0)) {
42401 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7894);
42402 }
42403 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
42404 /* ./parser//parser_prod.nit:7895 */
42405 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
42406 if (UNTAG_Bool(REGB0)) {
42407 } else {
42408 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7895);
42409 }
42410 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[5]) = fra.me.REG[3];
42411 /* ./parser//parser_prod.nit:7896 */
42412 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42413 if (UNTAG_Bool(REGB0)) {
42414 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7896);
42415 }
42416 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
42417 /* ./parser//parser_prod.nit:7897 */
42418 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
42419 if (UNTAG_Bool(REGB0)) {
42420 } else {
42421 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7897);
42422 }
42423 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[5]) = fra.me.REG[4];
42424 /* ./parser//parser_prod.nit:7898 */
42425 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
42426 if (UNTAG_Bool(REGB0)) {
42427 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7898);
42428 }
42429 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
42430 stack_frame_head = fra.me.prev;
42431 init_table[itpos284] = 1;
42432 return;
42433 }
42434 void parser___parser_prod___AAsNotNullableExternCall___replace_child(val_t p0, val_t p1, val_t p2){
42435 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
42436 val_t REGB0;
42437 val_t REGB1;
42438 val_t tmp;
42439 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42440 fra.me.file = LOCATE_parser___parser_prod;
42441 fra.me.line = 7901;
42442 fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___replace_child;
42443 fra.me.has_broke = 0;
42444 fra.me.REG_size = 4;
42445 fra.me.REG[0] = NIT_NULL;
42446 fra.me.REG[1] = NIT_NULL;
42447 fra.me.REG[2] = NIT_NULL;
42448 fra.me.REG[3] = NIT_NULL;
42449 fra.me.REG[0] = p0;
42450 fra.me.REG[1] = p1;
42451 fra.me.REG[2] = p2;
42452 /* ./parser//parser_prod.nit:7903 */
42453 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
42454 if (UNTAG_Bool(REGB0)) {
42455 } else {
42456 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7903);
42457 }
42458 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]);
42459 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42460 if (UNTAG_Bool(REGB0)) {
42461 } else {
42462 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42463 REGB0 = REGB1;
42464 }
42465 if (UNTAG_Bool(REGB0)) {
42466 /* ./parser//parser_prod.nit:7904 */
42467 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42468 if (UNTAG_Bool(REGB0)) {
42469 } else {
42470 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42471 if (UNTAG_Bool(REGB1)) {
42472 REGB1 = TAG_Bool(false);
42473 REGB0 = REGB1;
42474 } else {
42475 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42476 REGB0 = REGB1;
42477 }
42478 }
42479 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42480 if (UNTAG_Bool(REGB0)) {
42481 /* ./parser//parser_prod.nit:7905 */
42482 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42483 if (UNTAG_Bool(REGB0)) {
42484 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7905);
42485 }
42486 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42487 /* ./parser//parser_prod.nit:7906 */
42488 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*/;
42489 if (UNTAG_Bool(REGB0)) {
42490 } else {
42491 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7906);
42492 }
42493 /* ./parser//parser_prod.nit:7907 */
42494 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]) = fra.me.REG[2];
42495 } else {
42496 /* ./parser//parser_prod.nit:7909 */
42497 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7909);
42498 }
42499 /* ./parser//parser_prod.nit:7911 */
42500 goto label1;
42501 }
42502 /* ./parser//parser_prod.nit:7913 */
42503 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
42504 if (UNTAG_Bool(REGB0)) {
42505 } else {
42506 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7913);
42507 }
42508 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]);
42509 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42510 if (UNTAG_Bool(REGB0)) {
42511 } else {
42512 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42513 REGB0 = REGB1;
42514 }
42515 if (UNTAG_Bool(REGB0)) {
42516 /* ./parser//parser_prod.nit:7914 */
42517 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42518 if (UNTAG_Bool(REGB0)) {
42519 } else {
42520 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42521 if (UNTAG_Bool(REGB1)) {
42522 REGB1 = TAG_Bool(false);
42523 REGB0 = REGB1;
42524 } else {
42525 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42526 REGB0 = REGB1;
42527 }
42528 }
42529 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42530 if (UNTAG_Bool(REGB0)) {
42531 /* ./parser//parser_prod.nit:7915 */
42532 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42533 if (UNTAG_Bool(REGB0)) {
42534 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7915);
42535 }
42536 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42537 /* ./parser//parser_prod.nit:7916 */
42538 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*/;
42539 if (UNTAG_Bool(REGB0)) {
42540 } else {
42541 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7916);
42542 }
42543 /* ./parser//parser_prod.nit:7917 */
42544 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
42545 } else {
42546 /* ./parser//parser_prod.nit:7919 */
42547 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7919);
42548 }
42549 /* ./parser//parser_prod.nit:7921 */
42550 goto label1;
42551 }
42552 /* ./parser//parser_prod.nit:7923 */
42553 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0])!=NIT_NULL);
42554 if (UNTAG_Bool(REGB0)) {
42555 } else {
42556 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 7923);
42557 }
42558 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]);
42559 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42560 if (UNTAG_Bool(REGB0)) {
42561 } else {
42562 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42563 REGB0 = REGB1;
42564 }
42565 if (UNTAG_Bool(REGB0)) {
42566 /* ./parser//parser_prod.nit:7924 */
42567 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42568 if (UNTAG_Bool(REGB0)) {
42569 } else {
42570 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42571 if (UNTAG_Bool(REGB1)) {
42572 REGB1 = TAG_Bool(false);
42573 REGB0 = REGB1;
42574 } else {
42575 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42576 REGB0 = REGB1;
42577 }
42578 }
42579 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42580 if (UNTAG_Bool(REGB0)) {
42581 /* ./parser//parser_prod.nit:7925 */
42582 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42583 if (UNTAG_Bool(REGB0)) {
42584 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7925);
42585 }
42586 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42587 /* ./parser//parser_prod.nit:7926 */
42588 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*/;
42589 if (UNTAG_Bool(REGB0)) {
42590 } else {
42591 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7926);
42592 }
42593 /* ./parser//parser_prod.nit:7927 */
42594 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
42595 } else {
42596 /* ./parser//parser_prod.nit:7929 */
42597 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7929);
42598 }
42599 /* ./parser//parser_prod.nit:7931 */
42600 goto label1;
42601 }
42602 /* ./parser//parser_prod.nit:7933 */
42603 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
42604 if (UNTAG_Bool(REGB0)) {
42605 } else {
42606 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 7933);
42607 }
42608 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]);
42609 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42610 if (UNTAG_Bool(REGB0)) {
42611 } else {
42612 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42613 REGB0 = REGB1;
42614 }
42615 if (UNTAG_Bool(REGB0)) {
42616 /* ./parser//parser_prod.nit:7934 */
42617 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42618 if (UNTAG_Bool(REGB0)) {
42619 } else {
42620 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42621 if (UNTAG_Bool(REGB1)) {
42622 REGB1 = TAG_Bool(false);
42623 REGB0 = REGB1;
42624 } else {
42625 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42626 REGB0 = REGB1;
42627 }
42628 }
42629 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42630 if (UNTAG_Bool(REGB0)) {
42631 /* ./parser//parser_prod.nit:7935 */
42632 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42633 if (UNTAG_Bool(REGB0)) {
42634 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7935);
42635 }
42636 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42637 /* ./parser//parser_prod.nit:7936 */
42638 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*/;
42639 if (UNTAG_Bool(REGB0)) {
42640 } else {
42641 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7936);
42642 }
42643 /* ./parser//parser_prod.nit:7937 */
42644 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
42645 } else {
42646 /* ./parser//parser_prod.nit:7939 */
42647 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7939);
42648 }
42649 /* ./parser//parser_prod.nit:7941 */
42650 goto label1;
42651 }
42652 label1: while(0);
42653 stack_frame_head = fra.me.prev;
42654 return;
42655 }
42656 void parser___parser_prod___AAsNotNullableExternCall___visit_all(val_t p0, val_t p1){
42657 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
42658 val_t REGB0;
42659 val_t tmp;
42660 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42661 fra.me.file = LOCATE_parser___parser_prod;
42662 fra.me.line = 7945;
42663 fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___visit_all;
42664 fra.me.has_broke = 0;
42665 fra.me.REG_size = 3;
42666 fra.me.REG[0] = NIT_NULL;
42667 fra.me.REG[1] = NIT_NULL;
42668 fra.me.REG[2] = NIT_NULL;
42669 fra.me.REG[0] = p0;
42670 fra.me.REG[1] = p1;
42671 /* ./parser//parser_prod.nit:7947 */
42672 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
42673 if (UNTAG_Bool(REGB0)) {
42674 } else {
42675 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7947);
42676 }
42677 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]);
42678 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42679 /* ./parser//parser_prod.nit:7948 */
42680 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
42681 if (UNTAG_Bool(REGB0)) {
42682 } else {
42683 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7948);
42684 }
42685 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]);
42686 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42687 /* ./parser//parser_prod.nit:7949 */
42688 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0])!=NIT_NULL);
42689 if (UNTAG_Bool(REGB0)) {
42690 } else {
42691 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 7949);
42692 }
42693 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]);
42694 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42695 /* ./parser//parser_prod.nit:7950 */
42696 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
42697 if (UNTAG_Bool(REGB0)) {
42698 } else {
42699 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 7950);
42700 }
42701 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]);
42702 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
42703 stack_frame_head = fra.me.prev;
42704 return;
42705 }
42706 void parser___parser_prod___AQualified___empty_init(val_t p0, int* init_table){
42707 int itpos285 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AQualified].i;
42708 struct {struct stack_frame_t me;} fra;
42709 val_t tmp;
42710 if (init_table[itpos285]) return;
42711 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42712 fra.me.file = LOCATE_parser___parser_prod;
42713 fra.me.line = 7954;
42714 fra.me.meth = LOCATE_parser___parser_prod___AQualified___empty_init;
42715 fra.me.has_broke = 0;
42716 fra.me.REG_size = 1;
42717 fra.me.REG[0] = NIT_NULL;
42718 fra.me.REG[0] = p0;
42719 stack_frame_head = fra.me.prev;
42720 init_table[itpos285] = 1;
42721 return;
42722 }
42723 void parser___parser_prod___AQualified___init_aqualified(val_t p0, val_t p1, val_t p2, int* init_table){
42724 int itpos286 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AQualified].i;
42725 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
42726 val_t REGB0;
42727 val_t REGB1;
42728 val_t tmp;
42729 if (init_table[itpos286]) return;
42730 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42731 fra.me.file = LOCATE_parser___parser_prod;
42732 fra.me.line = 7956;
42733 fra.me.meth = LOCATE_parser___parser_prod___AQualified___init_aqualified;
42734 fra.me.has_broke = 0;
42735 fra.me.REG_size = 3;
42736 fra.me.REG[0] = NIT_NULL;
42737 fra.me.REG[1] = NIT_NULL;
42738 fra.me.REG[2] = NIT_NULL;
42739 fra.me.REG[0] = p0;
42740 fra.me.REG[1] = p1;
42741 fra.me.REG[2] = p2;
42742 /* ./parser//parser_prod.nit:7961 */
42743 CALL_parser___parser_prod___AQualified___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
42744 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));
42745 /* ./parser//parser_prod.nit:7967 */
42746 ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = fra.me.REG[2];
42747 /* ./parser//parser_prod.nit:7968 */
42748 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42749 if (UNTAG_Bool(REGB0)) {
42750 } else {
42751 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42752 if (UNTAG_Bool(REGB1)) {
42753 REGB1 = TAG_Bool(false);
42754 REGB0 = REGB1;
42755 } else {
42756 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42757 REGB0 = REGB1;
42758 }
42759 }
42760 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42761 if (UNTAG_Bool(REGB0)) {
42762 /* ./parser//parser_prod.nit:7969 */
42763 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42764 if (UNTAG_Bool(REGB0)) {
42765 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7969);
42766 }
42767 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42768 }
42769 stack_frame_head = fra.me.prev;
42770 init_table[itpos286] = 1;
42771 return;
42772 }
42773 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){
42774 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
42775 val_t REGB0;
42776 fun_t CREG[1];
42777 val_t tmp;
42778 /* ./parser//parser_prod.nit:7962 */
42779 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42780 fra.me.file = LOCATE_parser___parser_prod;
42781 fra.me.line = 0;
42782 fra.me.meth = LOCATE_parser___parser_prod___AQualified___init_aqualified;
42783 fra.me.has_broke = 0;
42784 fra.me.REG_size = 2;
42785 fra.me.REG[0] = NIT_NULL;
42786 fra.me.REG[1] = NIT_NULL;
42787 fra.me.closure_ctx = closctx_param;
42788 fra.me.closure_funs = CREG;
42789 fra.me.REG[0] = p0;
42790 CREG[0] = clos_fun0;
42791 /* ./parser//parser_prod.nit:7963 */
42792 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
42793 if (UNTAG_Bool(REGB0)) {
42794 } else {
42795 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7963);
42796 }
42797 /* ./parser//parser_prod.nit:7964 */
42798 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(closctx->REG[0])!=NIT_NULL);
42799 if (UNTAG_Bool(REGB0)) {
42800 } else {
42801 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7964);
42802 }
42803 fra.me.REG[1] = ATTR_parser___parser_nodes___AQualified____n_id(closctx->REG[0]);
42804 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
42805 /* ./parser//parser_prod.nit:7965 */
42806 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
42807 stack_frame_head = fra.me.prev;
42808 return;
42809 }
42810 void parser___parser_prod___AQualified___replace_child(val_t p0, val_t p1, val_t p2){
42811 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
42812 val_t REGB0;
42813 val_t REGB1;
42814 val_t REGB2;
42815 val_t REGB3;
42816 val_t REGB4;
42817 val_t tmp;
42818 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42819 fra.me.file = LOCATE_parser___parser_prod;
42820 fra.me.line = 7973;
42821 fra.me.meth = LOCATE_parser___parser_prod___AQualified___replace_child;
42822 fra.me.has_broke = 0;
42823 fra.me.REG_size = 4;
42824 fra.me.REG[0] = NIT_NULL;
42825 fra.me.REG[1] = NIT_NULL;
42826 fra.me.REG[2] = NIT_NULL;
42827 fra.me.REG[3] = NIT_NULL;
42828 fra.me.REG[0] = p0;
42829 fra.me.REG[1] = p1;
42830 fra.me.REG[2] = p2;
42831 /* ./parser//parser_prod.nit:7975 */
42832 REGB0 = TAG_Int(0);
42833 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
42834 if (UNTAG_Bool(REGB1)) {
42835 } else {
42836 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7975);
42837 }
42838 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
42839 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
42840 /* ./../lib/standard//kernel.nit:352 */
42841 while(1) {
42842 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
42843 if (UNTAG_Bool(REGB2)) {
42844 } else {
42845 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
42846 }
42847 /* ./../lib/standard//kernel.nit:232 */
42848 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
42849 /* ./../lib/standard//kernel.nit:352 */
42850 if (UNTAG_Bool(REGB2)) {
42851 /* ./parser//parser_prod.nit:7975 */
42852 REGB2 = REGB0;
42853 /* ./parser//parser_prod.nit:7976 */
42854 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
42855 if (UNTAG_Bool(REGB3)) {
42856 } else {
42857 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7976);
42858 }
42859 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
42860 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
42861 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
42862 if (UNTAG_Bool(REGB3)) {
42863 } else {
42864 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42865 if (UNTAG_Bool(REGB4)) {
42866 REGB4 = TAG_Bool(false);
42867 REGB3 = REGB4;
42868 } else {
42869 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42870 REGB3 = REGB4;
42871 }
42872 }
42873 if (UNTAG_Bool(REGB3)) {
42874 /* ./parser//parser_prod.nit:7977 */
42875 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42876 if (UNTAG_Bool(REGB3)) {
42877 } else {
42878 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42879 if (UNTAG_Bool(REGB4)) {
42880 REGB4 = TAG_Bool(false);
42881 REGB3 = REGB4;
42882 } else {
42883 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42884 REGB3 = REGB4;
42885 }
42886 }
42887 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
42888 if (UNTAG_Bool(REGB3)) {
42889 /* ./parser//parser_prod.nit:7978 */
42890 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*/;
42891 if (UNTAG_Bool(REGB3)) {
42892 } else {
42893 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7978);
42894 }
42895 /* ./parser//parser_prod.nit:7979 */
42896 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
42897 if (UNTAG_Bool(REGB3)) {
42898 } else {
42899 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7979);
42900 }
42901 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
42902 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
42903 /* ./parser//parser_prod.nit:7980 */
42904 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42905 if (UNTAG_Bool(REGB3)) {
42906 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7980);
42907 }
42908 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42909 } else {
42910 /* ./parser//parser_prod.nit:7982 */
42911 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
42912 if (UNTAG_Bool(REGB3)) {
42913 } else {
42914 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7982);
42915 }
42916 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
42917 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
42918 }
42919 /* ./parser//parser_prod.nit:7984 */
42920 goto label1;
42921 }
42922 /* ./../lib/standard//kernel.nit:354 */
42923 REGB2 = TAG_Int(1);
42924 /* ./../lib/standard//kernel.nit:235 */
42925 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
42926 /* ./../lib/standard//kernel.nit:354 */
42927 REGB0 = REGB2;
42928 } else {
42929 /* ./../lib/standard//kernel.nit:352 */
42930 goto label2;
42931 }
42932 }
42933 label2: while(0);
42934 /* ./parser//parser_prod.nit:7987 */
42935 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]);
42936 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
42937 if (UNTAG_Bool(REGB0)) {
42938 } else {
42939 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42940 if (UNTAG_Bool(REGB1)) {
42941 REGB1 = TAG_Bool(false);
42942 REGB0 = REGB1;
42943 } else {
42944 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42945 REGB0 = REGB1;
42946 }
42947 }
42948 if (UNTAG_Bool(REGB0)) {
42949 /* ./parser//parser_prod.nit:7988 */
42950 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42951 if (UNTAG_Bool(REGB0)) {
42952 } else {
42953 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42954 if (UNTAG_Bool(REGB1)) {
42955 REGB1 = TAG_Bool(false);
42956 REGB0 = REGB1;
42957 } else {
42958 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42959 REGB0 = REGB1;
42960 }
42961 }
42962 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42963 if (UNTAG_Bool(REGB0)) {
42964 /* ./parser//parser_prod.nit:7989 */
42965 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42966 if (UNTAG_Bool(REGB0)) {
42967 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7989);
42968 }
42969 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42970 /* ./parser//parser_prod.nit:7990 */
42971 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*/;
42972 if (UNTAG_Bool(REGB0)) {
42973 } else {
42974 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7990);
42975 }
42976 /* ./parser//parser_prod.nit:7991 */
42977 ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = fra.me.REG[2];
42978 } else {
42979 /* ./parser//parser_prod.nit:7993 */
42980 ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = NIT_NULL;
42981 }
42982 /* ./parser//parser_prod.nit:7995 */
42983 goto label1;
42984 }
42985 label1: while(0);
42986 stack_frame_head = fra.me.prev;
42987 return;
42988 }
42989 void parser___parser_prod___AQualified___visit_all(val_t p0, val_t p1){
42990 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
42991 val_t REGB0;
42992 val_t REGB1;
42993 val_t tmp;
42994 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42995 fra.me.file = LOCATE_parser___parser_prod;
42996 fra.me.line = 7999;
42997 fra.me.meth = LOCATE_parser___parser_prod___AQualified___visit_all;
42998 fra.me.has_broke = 0;
42999 fra.me.REG_size = 4;
43000 fra.me.REG[0] = NIT_NULL;
43001 fra.me.REG[1] = NIT_NULL;
43002 fra.me.REG[2] = NIT_NULL;
43003 fra.me.REG[3] = NIT_NULL;
43004 fra.me.REG[0] = p0;
43005 fra.me.REG[1] = p1;
43006 /* ./parser//parser_prod.nit:7999 */
43007 fra.me.REG[2] = fra.me.REG[0];
43008 /* ./parser//parser_prod.nit:8001 */
43009 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[2])!=NIT_NULL);
43010 if (UNTAG_Bool(REGB0)) {
43011 } else {
43012 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8001);
43013 }
43014 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[2]);
43015 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));
43016 /* ./parser//parser_prod.nit:8004 */
43017 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[2]);
43018 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43019 if (UNTAG_Bool(REGB0)) {
43020 } else {
43021 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43022 if (UNTAG_Bool(REGB1)) {
43023 REGB1 = TAG_Bool(false);
43024 REGB0 = REGB1;
43025 } else {
43026 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
43027 REGB0 = REGB1;
43028 }
43029 }
43030 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43031 if (UNTAG_Bool(REGB0)) {
43032 /* ./parser//parser_prod.nit:8005 */
43033 fra.me.REG[2] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[2]);
43034 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*/;
43035 if (UNTAG_Bool(REGB0)) {
43036 } else {
43037 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8005);
43038 }
43039 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
43040 }
43041 stack_frame_head = fra.me.prev;
43042 return;
43043 }
43044 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){
43045 struct {struct stack_frame_t me;} fra;
43046 fun_t CREG[1];
43047 val_t tmp;
43048 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43049 fra.me.file = LOCATE_parser___parser_prod;
43050 fra.me.line = 0;
43051 fra.me.meth = LOCATE_parser___parser_prod___AQualified___visit_all;
43052 fra.me.has_broke = 0;
43053 fra.me.REG_size = 1;
43054 fra.me.REG[0] = NIT_NULL;
43055 fra.me.closure_ctx = closctx_param;
43056 fra.me.closure_funs = CREG;
43057 fra.me.REG[0] = p0;
43058 CREG[0] = clos_fun0;
43059 /* ./parser//parser_prod.nit:8002 */
43060 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
43061 stack_frame_head = fra.me.prev;
43062 return;
43063 }
43064 void parser___parser_prod___ADoc___empty_init(val_t p0, int* init_table){
43065 int itpos287 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoc].i;
43066 struct {struct stack_frame_t me;} fra;
43067 val_t tmp;
43068 if (init_table[itpos287]) return;
43069 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43070 fra.me.file = LOCATE_parser___parser_prod;
43071 fra.me.line = 8010;
43072 fra.me.meth = LOCATE_parser___parser_prod___ADoc___empty_init;
43073 fra.me.has_broke = 0;
43074 fra.me.REG_size = 1;
43075 fra.me.REG[0] = NIT_NULL;
43076 fra.me.REG[0] = p0;
43077 stack_frame_head = fra.me.prev;
43078 init_table[itpos287] = 1;
43079 return;
43080 }
43081 void parser___parser_prod___ADoc___init_adoc(val_t p0, val_t p1, int* init_table){
43082 int itpos288 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoc].i;
43083 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
43084 val_t tmp;
43085 if (init_table[itpos288]) return;
43086 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43087 fra.me.file = LOCATE_parser___parser_prod;
43088 fra.me.line = 8012;
43089 fra.me.meth = LOCATE_parser___parser_prod___ADoc___init_adoc;
43090 fra.me.has_broke = 0;
43091 fra.me.REG_size = 2;
43092 fra.me.REG[0] = NIT_NULL;
43093 fra.me.REG[1] = NIT_NULL;
43094 fra.me.REG[0] = p0;
43095 fra.me.REG[1] = p1;
43096 /* ./parser//parser_prod.nit:8016 */
43097 CALL_parser___parser_prod___ADoc___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
43098 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));
43099 stack_frame_head = fra.me.prev;
43100 init_table[itpos288] = 1;
43101 return;
43102 }
43103 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){
43104 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
43105 val_t REGB0;
43106 fun_t CREG[1];
43107 val_t tmp;
43108 /* ./parser//parser_prod.nit:8017 */
43109 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43110 fra.me.file = LOCATE_parser___parser_prod;
43111 fra.me.line = 0;
43112 fra.me.meth = LOCATE_parser___parser_prod___ADoc___init_adoc;
43113 fra.me.has_broke = 0;
43114 fra.me.REG_size = 2;
43115 fra.me.REG[0] = NIT_NULL;
43116 fra.me.REG[1] = NIT_NULL;
43117 fra.me.closure_ctx = closctx_param;
43118 fra.me.closure_funs = CREG;
43119 fra.me.REG[0] = p0;
43120 CREG[0] = clos_fun0;
43121 /* ./parser//parser_prod.nit:8018 */
43122 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TComment, ID_parser___parser_nodes___TComment)) /*cast TComment*/;
43123 if (UNTAG_Bool(REGB0)) {
43124 } else {
43125 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8018);
43126 }
43127 /* ./parser//parser_prod.nit:8019 */
43128 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(closctx->REG[0])!=NIT_NULL);
43129 if (UNTAG_Bool(REGB0)) {
43130 } else {
43131 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8019);
43132 }
43133 fra.me.REG[1] = ATTR_parser___parser_nodes___ADoc____n_comment(closctx->REG[0]);
43134 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
43135 /* ./parser//parser_prod.nit:8020 */
43136 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
43137 stack_frame_head = fra.me.prev;
43138 return;
43139 }
43140 void parser___parser_prod___ADoc___replace_child(val_t p0, val_t p1, val_t p2){
43141 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43142 val_t REGB0;
43143 val_t REGB1;
43144 val_t REGB2;
43145 val_t REGB3;
43146 val_t REGB4;
43147 val_t tmp;
43148 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43149 fra.me.file = LOCATE_parser___parser_prod;
43150 fra.me.line = 8024;
43151 fra.me.meth = LOCATE_parser___parser_prod___ADoc___replace_child;
43152 fra.me.has_broke = 0;
43153 fra.me.REG_size = 4;
43154 fra.me.REG[0] = NIT_NULL;
43155 fra.me.REG[1] = NIT_NULL;
43156 fra.me.REG[2] = NIT_NULL;
43157 fra.me.REG[3] = NIT_NULL;
43158 fra.me.REG[0] = p0;
43159 fra.me.REG[1] = p1;
43160 fra.me.REG[2] = p2;
43161 /* ./parser//parser_prod.nit:8026 */
43162 REGB0 = TAG_Int(0);
43163 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
43164 if (UNTAG_Bool(REGB1)) {
43165 } else {
43166 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8026);
43167 }
43168 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
43169 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
43170 /* ./../lib/standard//kernel.nit:352 */
43171 while(1) {
43172 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
43173 if (UNTAG_Bool(REGB2)) {
43174 } else {
43175 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
43176 }
43177 /* ./../lib/standard//kernel.nit:232 */
43178 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
43179 /* ./../lib/standard//kernel.nit:352 */
43180 if (UNTAG_Bool(REGB2)) {
43181 /* ./parser//parser_prod.nit:8026 */
43182 REGB2 = REGB0;
43183 /* ./parser//parser_prod.nit:8027 */
43184 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
43185 if (UNTAG_Bool(REGB3)) {
43186 } else {
43187 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8027);
43188 }
43189 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
43190 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
43191 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
43192 if (UNTAG_Bool(REGB3)) {
43193 } else {
43194 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43195 if (UNTAG_Bool(REGB4)) {
43196 REGB4 = TAG_Bool(false);
43197 REGB3 = REGB4;
43198 } else {
43199 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43200 REGB3 = REGB4;
43201 }
43202 }
43203 if (UNTAG_Bool(REGB3)) {
43204 /* ./parser//parser_prod.nit:8028 */
43205 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43206 if (UNTAG_Bool(REGB3)) {
43207 } else {
43208 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43209 if (UNTAG_Bool(REGB4)) {
43210 REGB4 = TAG_Bool(false);
43211 REGB3 = REGB4;
43212 } else {
43213 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43214 REGB3 = REGB4;
43215 }
43216 }
43217 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
43218 if (UNTAG_Bool(REGB3)) {
43219 /* ./parser//parser_prod.nit:8029 */
43220 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*/;
43221 if (UNTAG_Bool(REGB3)) {
43222 } else {
43223 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8029);
43224 }
43225 /* ./parser//parser_prod.nit:8030 */
43226 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
43227 if (UNTAG_Bool(REGB3)) {
43228 } else {
43229 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8030);
43230 }
43231 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
43232 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
43233 /* ./parser//parser_prod.nit:8031 */
43234 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43235 if (UNTAG_Bool(REGB3)) {
43236 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8031);
43237 }
43238 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43239 } else {
43240 /* ./parser//parser_prod.nit:8033 */
43241 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
43242 if (UNTAG_Bool(REGB3)) {
43243 } else {
43244 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8033);
43245 }
43246 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
43247 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
43248 }
43249 /* ./parser//parser_prod.nit:8035 */
43250 goto label1;
43251 }
43252 /* ./../lib/standard//kernel.nit:354 */
43253 REGB2 = TAG_Int(1);
43254 /* ./../lib/standard//kernel.nit:235 */
43255 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
43256 /* ./../lib/standard//kernel.nit:354 */
43257 REGB0 = REGB2;
43258 } else {
43259 /* ./../lib/standard//kernel.nit:352 */
43260 goto label2;
43261 }
43262 }
43263 label2: while(0);
43264 label1: while(0);
43265 stack_frame_head = fra.me.prev;
43266 return;
43267 }
43268 void parser___parser_prod___ADoc___visit_all(val_t p0, val_t p1){
43269 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
43270 val_t REGB0;
43271 val_t tmp;
43272 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43273 fra.me.file = LOCATE_parser___parser_prod;
43274 fra.me.line = 8040;
43275 fra.me.meth = LOCATE_parser___parser_prod___ADoc___visit_all;
43276 fra.me.has_broke = 0;
43277 fra.me.REG_size = 2;
43278 fra.me.REG[0] = NIT_NULL;
43279 fra.me.REG[1] = NIT_NULL;
43280 fra.me.REG[0] = p0;
43281 fra.me.REG[1] = p1;
43282 /* ./parser//parser_prod.nit:8042 */
43283 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
43284 if (UNTAG_Bool(REGB0)) {
43285 } else {
43286 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8042);
43287 }
43288 fra.me.REG[0] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
43289 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));
43290 stack_frame_head = fra.me.prev;
43291 return;
43292 }
43293 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){
43294 struct {struct stack_frame_t me;} fra;
43295 fun_t CREG[1];
43296 val_t tmp;
43297 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43298 fra.me.file = LOCATE_parser___parser_prod;
43299 fra.me.line = 0;
43300 fra.me.meth = LOCATE_parser___parser_prod___ADoc___visit_all;
43301 fra.me.has_broke = 0;
43302 fra.me.REG_size = 1;
43303 fra.me.REG[0] = NIT_NULL;
43304 fra.me.closure_ctx = closctx_param;
43305 fra.me.closure_funs = CREG;
43306 fra.me.REG[0] = p0;
43307 CREG[0] = clos_fun0;
43308 /* ./parser//parser_prod.nit:8043 */
43309 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
43310 stack_frame_head = fra.me.prev;
43311 return;
43312 }
43313 void parser___parser_prod___Start___init(val_t p0, val_t p1, val_t p2, int* init_table){
43314 int itpos289 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___Start].i;
43315 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
43316 val_t tmp;
43317 if (init_table[itpos289]) return;
43318 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43319 fra.me.file = LOCATE_parser___parser_prod;
43320 fra.me.line = 8049;
43321 fra.me.meth = LOCATE_parser___parser_prod___Start___init;
43322 fra.me.has_broke = 0;
43323 fra.me.REG_size = 3;
43324 fra.me.REG[0] = NIT_NULL;
43325 fra.me.REG[1] = NIT_NULL;
43326 fra.me.REG[2] = NIT_NULL;
43327 fra.me.REG[0] = p0;
43328 fra.me.REG[1] = p1;
43329 fra.me.REG[2] = p2;
43330 /* ./parser//parser_prod.nit:8053 */
43331 ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]) = fra.me.REG[1];
43332 /* ./parser//parser_prod.nit:8054 */
43333 ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[0]) = fra.me.REG[2];
43334 stack_frame_head = fra.me.prev;
43335 init_table[itpos289] = 1;
43336 return;
43337 }
43338 void parser___parser_prod___Start___replace_child(val_t p0, val_t p1, val_t p2){
43339 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43340 val_t REGB0;
43341 val_t REGB1;
43342 val_t tmp;
43343 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43344 fra.me.file = LOCATE_parser___parser_prod;
43345 fra.me.line = 8057;
43346 fra.me.meth = LOCATE_parser___parser_prod___Start___replace_child;
43347 fra.me.has_broke = 0;
43348 fra.me.REG_size = 4;
43349 fra.me.REG[0] = NIT_NULL;
43350 fra.me.REG[1] = NIT_NULL;
43351 fra.me.REG[2] = NIT_NULL;
43352 fra.me.REG[3] = NIT_NULL;
43353 fra.me.REG[0] = p0;
43354 fra.me.REG[1] = p1;
43355 fra.me.REG[2] = p2;
43356 /* ./parser//parser_prod.nit:8059 */
43357 fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]);
43358 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
43359 if (UNTAG_Bool(REGB0)) {
43360 } else {
43361 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43362 if (UNTAG_Bool(REGB1)) {
43363 REGB1 = TAG_Bool(false);
43364 REGB0 = REGB1;
43365 } else {
43366 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43367 REGB0 = REGB1;
43368 }
43369 }
43370 if (UNTAG_Bool(REGB0)) {
43371 /* ./parser//parser_prod.nit:8060 */
43372 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43373 if (UNTAG_Bool(REGB0)) {
43374 } else {
43375 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43376 if (UNTAG_Bool(REGB1)) {
43377 REGB1 = TAG_Bool(false);
43378 REGB0 = REGB1;
43379 } else {
43380 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43381 REGB0 = REGB1;
43382 }
43383 }
43384 if (UNTAG_Bool(REGB0)) {
43385 } else {
43386 /* ./parser//parser_prod.nit:8062 */
43387 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43388 if (UNTAG_Bool(REGB0)) {
43389 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8062);
43390 }
43391 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43392 /* ./parser//parser_prod.nit:8063 */
43393 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*/;
43394 if (UNTAG_Bool(REGB0)) {
43395 } else {
43396 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8063);
43397 }
43398 /* ./parser//parser_prod.nit:8064 */
43399 ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]) = fra.me.REG[2];
43400 }
43401 /* ./parser//parser_prod.nit:8066 */
43402 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
43403 /* ./parser//parser_prod.nit:8067 */
43404 goto label1;
43405 }
43406 label1: while(0);
43407 stack_frame_head = fra.me.prev;
43408 return;
43409 }
43410 void parser___parser_prod___Start___visit_all(val_t p0, val_t p1){
43411 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43412 val_t REGB0;
43413 val_t REGB1;
43414 val_t tmp;
43415 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43416 fra.me.file = LOCATE_parser___parser_prod;
43417 fra.me.line = 8071;
43418 fra.me.meth = LOCATE_parser___parser_prod___Start___visit_all;
43419 fra.me.has_broke = 0;
43420 fra.me.REG_size = 4;
43421 fra.me.REG[0] = NIT_NULL;
43422 fra.me.REG[1] = NIT_NULL;
43423 fra.me.REG[2] = NIT_NULL;
43424 fra.me.REG[3] = NIT_NULL;
43425 fra.me.REG[0] = p0;
43426 fra.me.REG[1] = p1;
43427 /* ./parser//parser_prod.nit:8071 */
43428 fra.me.REG[2] = fra.me.REG[0];
43429 /* ./parser//parser_prod.nit:8073 */
43430 fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[2]);
43431 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43432 if (UNTAG_Bool(REGB0)) {
43433 } else {
43434 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43435 if (UNTAG_Bool(REGB1)) {
43436 REGB1 = TAG_Bool(false);
43437 REGB0 = REGB1;
43438 } else {
43439 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
43440 REGB0 = REGB1;
43441 }
43442 }
43443 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43444 if (UNTAG_Bool(REGB0)) {
43445 /* ./parser//parser_prod.nit:8074 */
43446 fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[2]);
43447 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*/;
43448 if (UNTAG_Bool(REGB0)) {
43449 } else {
43450 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8074);
43451 }
43452 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
43453 }
43454 /* ./parser//parser_prod.nit:8076 */
43455 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[2])!=NIT_NULL);
43456 if (UNTAG_Bool(REGB0)) {
43457 } else {
43458 nit_abort("Uninitialized attribute %s", "_n_eof", LOCATE_parser___parser_prod, 8076);
43459 }
43460 fra.me.REG[2] = ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[2]);
43461 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
43462 stack_frame_head = fra.me.prev;
43463 return;
43464 }