Merge branch 'nitdoc2' into wip
[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:335 */
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:215 */
496 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
497 /* ./../lib/standard//kernel.nit:335 */
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:337 */
571 REGB2 = TAG_Int(1);
572 /* ./../lib/standard//kernel.nit:218 */
573 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
574 /* ./../lib/standard//kernel.nit:337 */
575 REGB0 = REGB2;
576 } else {
577 /* ./../lib/standard//kernel.nit:335 */
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:335 */
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:215 */
599 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
600 /* ./../lib/standard//kernel.nit:335 */
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:337 */
674 REGB2 = TAG_Int(1);
675 /* ./../lib/standard//kernel.nit:218 */
676 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
677 /* ./../lib/standard//kernel.nit:337 */
678 REGB0 = REGB2;
679 } else {
680 /* ./../lib/standard//kernel.nit:335 */
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:335 */
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:215 */
2809 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2810 /* ./../lib/standard//kernel.nit:335 */
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:337 */
2884 REGB2 = TAG_Int(1);
2885 /* ./../lib/standard//kernel.nit:218 */
2886 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2887 /* ./../lib/standard//kernel.nit:337 */
2888 REGB0 = REGB2;
2889 } else {
2890 /* ./../lib/standard//kernel.nit:335 */
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:335 */
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:215 */
2912 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2913 /* ./../lib/standard//kernel.nit:335 */
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:337 */
2987 REGB2 = TAG_Int(1);
2988 /* ./../lib/standard//kernel.nit:218 */
2989 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2990 /* ./../lib/standard//kernel.nit:337 */
2991 REGB0 = REGB2;
2992 } else {
2993 /* ./../lib/standard//kernel.nit:335 */
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:335 */
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:215 */
3015 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3016 /* ./../lib/standard//kernel.nit:335 */
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:337 */
3090 REGB2 = TAG_Int(1);
3091 /* ./../lib/standard//kernel.nit:218 */
3092 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3093 /* ./../lib/standard//kernel.nit:337 */
3094 REGB0 = REGB2;
3095 } else {
3096 /* ./../lib/standard//kernel.nit:335 */
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:335 */
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:215 */
3416 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3417 /* ./../lib/standard//kernel.nit:335 */
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:337 */
3491 REGB2 = TAG_Int(1);
3492 /* ./../lib/standard//kernel.nit:218 */
3493 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3494 /* ./../lib/standard//kernel.nit:337 */
3495 REGB0 = REGB2;
3496 } else {
3497 /* ./../lib/standard//kernel.nit:335 */
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:335 */
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:215 */
3665 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3666 /* ./../lib/standard//kernel.nit:335 */
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:337 */
3740 REGB2 = TAG_Int(1);
3741 /* ./../lib/standard//kernel.nit:218 */
3742 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3743 /* ./../lib/standard//kernel.nit:337 */
3744 REGB0 = REGB2;
3745 } else {
3746 /* ./../lib/standard//kernel.nit:335 */
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___AFormaldef___empty_init(val_t p0, int* init_table){
4483 int itpos31 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFormaldef].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___AFormaldef___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___AFormaldef___init_aformaldef(val_t p0, val_t p1, val_t p2, int* init_table){
4500 int itpos32 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFormaldef].i;
4501 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4502 val_t REGB0;
4503 val_t REGB1;
4504 val_t tmp;
4505 if (init_table[itpos32]) return;
4506 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4507 fra.me.file = LOCATE_parser___parser_prod;
4508 fra.me.line = 816;
4509 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___init_aformaldef;
4510 fra.me.has_broke = 0;
4511 fra.me.REG_size = 4;
4512 fra.me.REG[0] = NIT_NULL;
4513 fra.me.REG[1] = NIT_NULL;
4514 fra.me.REG[2] = NIT_NULL;
4515 fra.me.REG[3] = NIT_NULL;
4516 fra.me.REG[0] = p0;
4517 fra.me.REG[1] = p1;
4518 fra.me.REG[2] = p2;
4519 /* ./parser//parser_prod.nit:816 */
4520 fra.me.REG[3] = fra.me.REG[0];
4521 /* ./parser//parser_prod.nit:821 */
4522 CALL_parser___parser_prod___AFormaldef___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
4523 /* ./parser//parser_prod.nit:822 */
4524 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4525 if (UNTAG_Bool(REGB0)) {
4526 } else {
4527 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 822);
4528 }
4529 ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[3]) = fra.me.REG[1];
4530 /* ./parser//parser_prod.nit:823 */
4531 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4532 if (UNTAG_Bool(REGB0)) {
4533 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 823);
4534 }
4535 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4536 /* ./parser//parser_prod.nit:824 */
4537 ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[3]) = fra.me.REG[2];
4538 /* ./parser//parser_prod.nit:825 */
4539 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4540 if (UNTAG_Bool(REGB0)) {
4541 } else {
4542 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4543 if (UNTAG_Bool(REGB1)) {
4544 REGB1 = TAG_Bool(false);
4545 REGB0 = REGB1;
4546 } else {
4547 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4548 REGB0 = REGB1;
4549 }
4550 }
4551 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4552 if (UNTAG_Bool(REGB0)) {
4553 /* ./parser//parser_prod.nit:826 */
4554 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4555 if (UNTAG_Bool(REGB0)) {
4556 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 826);
4557 }
4558 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4559 }
4560 stack_frame_head = fra.me.prev;
4561 init_table[itpos32] = 1;
4562 return;
4563 }
4564 void parser___parser_prod___AFormaldef___replace_child(val_t p0, val_t p1, val_t p2){
4565 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4566 val_t REGB0;
4567 val_t REGB1;
4568 val_t tmp;
4569 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4570 fra.me.file = LOCATE_parser___parser_prod;
4571 fra.me.line = 830;
4572 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___replace_child;
4573 fra.me.has_broke = 0;
4574 fra.me.REG_size = 4;
4575 fra.me.REG[0] = NIT_NULL;
4576 fra.me.REG[1] = NIT_NULL;
4577 fra.me.REG[2] = NIT_NULL;
4578 fra.me.REG[3] = NIT_NULL;
4579 fra.me.REG[0] = p0;
4580 fra.me.REG[1] = p1;
4581 fra.me.REG[2] = p2;
4582 /* ./parser//parser_prod.nit:832 */
4583 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0])!=NIT_NULL);
4584 if (UNTAG_Bool(REGB0)) {
4585 } else {
4586 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 832);
4587 }
4588 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0]);
4589 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4590 if (UNTAG_Bool(REGB0)) {
4591 } else {
4592 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4593 REGB0 = REGB1;
4594 }
4595 if (UNTAG_Bool(REGB0)) {
4596 /* ./parser//parser_prod.nit:833 */
4597 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4598 if (UNTAG_Bool(REGB0)) {
4599 } else {
4600 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4601 if (UNTAG_Bool(REGB1)) {
4602 REGB1 = TAG_Bool(false);
4603 REGB0 = REGB1;
4604 } else {
4605 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4606 REGB0 = REGB1;
4607 }
4608 }
4609 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4610 if (UNTAG_Bool(REGB0)) {
4611 /* ./parser//parser_prod.nit:834 */
4612 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4613 if (UNTAG_Bool(REGB0)) {
4614 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 834);
4615 }
4616 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4617 /* ./parser//parser_prod.nit:835 */
4618 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*/;
4619 if (UNTAG_Bool(REGB0)) {
4620 } else {
4621 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 835);
4622 }
4623 /* ./parser//parser_prod.nit:836 */
4624 ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0]) = fra.me.REG[2];
4625 } else {
4626 /* ./parser//parser_prod.nit:838 */
4627 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 838);
4628 }
4629 /* ./parser//parser_prod.nit:840 */
4630 goto label1;
4631 }
4632 /* ./parser//parser_prod.nit:842 */
4633 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]);
4634 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
4635 if (UNTAG_Bool(REGB0)) {
4636 } else {
4637 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4638 if (UNTAG_Bool(REGB1)) {
4639 REGB1 = TAG_Bool(false);
4640 REGB0 = REGB1;
4641 } else {
4642 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4643 REGB0 = REGB1;
4644 }
4645 }
4646 if (UNTAG_Bool(REGB0)) {
4647 /* ./parser//parser_prod.nit:843 */
4648 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4649 if (UNTAG_Bool(REGB0)) {
4650 } else {
4651 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4652 if (UNTAG_Bool(REGB1)) {
4653 REGB1 = TAG_Bool(false);
4654 REGB0 = REGB1;
4655 } else {
4656 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4657 REGB0 = REGB1;
4658 }
4659 }
4660 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4661 if (UNTAG_Bool(REGB0)) {
4662 /* ./parser//parser_prod.nit:844 */
4663 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4664 if (UNTAG_Bool(REGB0)) {
4665 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 844);
4666 }
4667 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4668 /* ./parser//parser_prod.nit:845 */
4669 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*/;
4670 if (UNTAG_Bool(REGB0)) {
4671 } else {
4672 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 845);
4673 }
4674 /* ./parser//parser_prod.nit:846 */
4675 ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]) = fra.me.REG[2];
4676 } else {
4677 /* ./parser//parser_prod.nit:848 */
4678 ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]) = NIT_NULL;
4679 }
4680 /* ./parser//parser_prod.nit:850 */
4681 goto label1;
4682 }
4683 label1: while(0);
4684 stack_frame_head = fra.me.prev;
4685 return;
4686 }
4687 void parser___parser_prod___AFormaldef___visit_all(val_t p0, val_t p1){
4688 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4689 val_t REGB0;
4690 val_t REGB1;
4691 val_t tmp;
4692 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4693 fra.me.file = LOCATE_parser___parser_prod;
4694 fra.me.line = 854;
4695 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___visit_all;
4696 fra.me.has_broke = 0;
4697 fra.me.REG_size = 4;
4698 fra.me.REG[0] = NIT_NULL;
4699 fra.me.REG[1] = NIT_NULL;
4700 fra.me.REG[2] = NIT_NULL;
4701 fra.me.REG[3] = NIT_NULL;
4702 fra.me.REG[0] = p0;
4703 fra.me.REG[1] = p1;
4704 /* ./parser//parser_prod.nit:854 */
4705 fra.me.REG[2] = fra.me.REG[0];
4706 /* ./parser//parser_prod.nit:856 */
4707 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[2])!=NIT_NULL);
4708 if (UNTAG_Bool(REGB0)) {
4709 } else {
4710 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 856);
4711 }
4712 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[2]);
4713 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4714 /* ./parser//parser_prod.nit:857 */
4715 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[2]);
4716 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4717 if (UNTAG_Bool(REGB0)) {
4718 } else {
4719 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4720 if (UNTAG_Bool(REGB1)) {
4721 REGB1 = TAG_Bool(false);
4722 REGB0 = REGB1;
4723 } else {
4724 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
4725 REGB0 = REGB1;
4726 }
4727 }
4728 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4729 if (UNTAG_Bool(REGB0)) {
4730 /* ./parser//parser_prod.nit:858 */
4731 fra.me.REG[2] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[2]);
4732 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*/;
4733 if (UNTAG_Bool(REGB0)) {
4734 } else {
4735 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 858);
4736 }
4737 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4738 }
4739 stack_frame_head = fra.me.prev;
4740 return;
4741 }
4742 void parser___parser_prod___ASuperclass___empty_init(val_t p0, int* init_table){
4743 int itpos33 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperclass].i;
4744 struct {struct stack_frame_t me;} fra;
4745 val_t tmp;
4746 if (init_table[itpos33]) return;
4747 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4748 fra.me.file = LOCATE_parser___parser_prod;
4749 fra.me.line = 863;
4750 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___empty_init;
4751 fra.me.has_broke = 0;
4752 fra.me.REG_size = 1;
4753 fra.me.REG[0] = NIT_NULL;
4754 fra.me.REG[0] = p0;
4755 stack_frame_head = fra.me.prev;
4756 init_table[itpos33] = 1;
4757 return;
4758 }
4759 void parser___parser_prod___ASuperclass___init_asuperclass(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
4760 int itpos34 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperclass].i;
4761 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
4762 val_t REGB0;
4763 val_t REGB1;
4764 val_t tmp;
4765 if (init_table[itpos34]) return;
4766 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4767 fra.me.file = LOCATE_parser___parser_prod;
4768 fra.me.line = 865;
4769 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___init_asuperclass;
4770 fra.me.has_broke = 0;
4771 fra.me.REG_size = 5;
4772 fra.me.REG[0] = NIT_NULL;
4773 fra.me.REG[1] = NIT_NULL;
4774 fra.me.REG[2] = NIT_NULL;
4775 fra.me.REG[3] = NIT_NULL;
4776 fra.me.REG[4] = NIT_NULL;
4777 fra.me.REG[0] = p0;
4778 fra.me.REG[1] = p1;
4779 fra.me.REG[2] = p2;
4780 fra.me.REG[3] = p3;
4781 /* ./parser//parser_prod.nit:865 */
4782 fra.me.REG[4] = fra.me.REG[0];
4783 /* ./parser//parser_prod.nit:871 */
4784 CALL_parser___parser_prod___ASuperclass___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
4785 /* ./parser//parser_prod.nit:872 */
4786 ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[4]) = fra.me.REG[1];
4787 /* ./parser//parser_prod.nit:873 */
4788 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4789 if (UNTAG_Bool(REGB0)) {
4790 } else {
4791 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4792 if (UNTAG_Bool(REGB1)) {
4793 REGB1 = TAG_Bool(false);
4794 REGB0 = REGB1;
4795 } else {
4796 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
4797 REGB0 = REGB1;
4798 }
4799 }
4800 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4801 if (UNTAG_Bool(REGB0)) {
4802 /* ./parser//parser_prod.nit:874 */
4803 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4804 if (UNTAG_Bool(REGB0)) {
4805 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 874);
4806 }
4807 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
4808 }
4809 /* ./parser//parser_prod.nit:876 */
4810 ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[4]) = fra.me.REG[2];
4811 /* ./parser//parser_prod.nit:877 */
4812 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4813 if (UNTAG_Bool(REGB0)) {
4814 } else {
4815 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4816 if (UNTAG_Bool(REGB1)) {
4817 REGB1 = TAG_Bool(false);
4818 REGB0 = REGB1;
4819 } else {
4820 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4821 REGB0 = REGB1;
4822 }
4823 }
4824 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4825 if (UNTAG_Bool(REGB0)) {
4826 /* ./parser//parser_prod.nit:878 */
4827 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4828 if (UNTAG_Bool(REGB0)) {
4829 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 878);
4830 }
4831 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
4832 }
4833 /* ./parser//parser_prod.nit:880 */
4834 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
4835 if (UNTAG_Bool(REGB0)) {
4836 } else {
4837 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 880);
4838 }
4839 ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[4]) = fra.me.REG[3];
4840 /* ./parser//parser_prod.nit:881 */
4841 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4842 if (UNTAG_Bool(REGB0)) {
4843 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 881);
4844 }
4845 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
4846 stack_frame_head = fra.me.prev;
4847 init_table[itpos34] = 1;
4848 return;
4849 }
4850 void parser___parser_prod___ASuperclass___replace_child(val_t p0, val_t p1, val_t p2){
4851 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4852 val_t REGB0;
4853 val_t REGB1;
4854 val_t tmp;
4855 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4856 fra.me.file = LOCATE_parser___parser_prod;
4857 fra.me.line = 884;
4858 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___replace_child;
4859 fra.me.has_broke = 0;
4860 fra.me.REG_size = 4;
4861 fra.me.REG[0] = NIT_NULL;
4862 fra.me.REG[1] = NIT_NULL;
4863 fra.me.REG[2] = NIT_NULL;
4864 fra.me.REG[3] = NIT_NULL;
4865 fra.me.REG[0] = p0;
4866 fra.me.REG[1] = p1;
4867 fra.me.REG[2] = p2;
4868 /* ./parser//parser_prod.nit:886 */
4869 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]);
4870 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
4871 if (UNTAG_Bool(REGB0)) {
4872 } else {
4873 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4874 if (UNTAG_Bool(REGB1)) {
4875 REGB1 = TAG_Bool(false);
4876 REGB0 = REGB1;
4877 } else {
4878 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4879 REGB0 = REGB1;
4880 }
4881 }
4882 if (UNTAG_Bool(REGB0)) {
4883 /* ./parser//parser_prod.nit:887 */
4884 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4885 if (UNTAG_Bool(REGB0)) {
4886 } else {
4887 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4888 if (UNTAG_Bool(REGB1)) {
4889 REGB1 = TAG_Bool(false);
4890 REGB0 = REGB1;
4891 } else {
4892 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4893 REGB0 = REGB1;
4894 }
4895 }
4896 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4897 if (UNTAG_Bool(REGB0)) {
4898 /* ./parser//parser_prod.nit:888 */
4899 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4900 if (UNTAG_Bool(REGB0)) {
4901 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 888);
4902 }
4903 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4904 /* ./parser//parser_prod.nit:889 */
4905 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*/;
4906 if (UNTAG_Bool(REGB0)) {
4907 } else {
4908 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 889);
4909 }
4910 /* ./parser//parser_prod.nit:890 */
4911 ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]) = fra.me.REG[2];
4912 } else {
4913 /* ./parser//parser_prod.nit:892 */
4914 ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]) = NIT_NULL;
4915 }
4916 /* ./parser//parser_prod.nit:894 */
4917 goto label1;
4918 }
4919 /* ./parser//parser_prod.nit:896 */
4920 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]);
4921 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
4922 if (UNTAG_Bool(REGB0)) {
4923 } else {
4924 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4925 if (UNTAG_Bool(REGB1)) {
4926 REGB1 = TAG_Bool(false);
4927 REGB0 = REGB1;
4928 } else {
4929 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4930 REGB0 = REGB1;
4931 }
4932 }
4933 if (UNTAG_Bool(REGB0)) {
4934 /* ./parser//parser_prod.nit:897 */
4935 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4936 if (UNTAG_Bool(REGB0)) {
4937 } else {
4938 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4939 if (UNTAG_Bool(REGB1)) {
4940 REGB1 = TAG_Bool(false);
4941 REGB0 = REGB1;
4942 } else {
4943 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4944 REGB0 = REGB1;
4945 }
4946 }
4947 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4948 if (UNTAG_Bool(REGB0)) {
4949 /* ./parser//parser_prod.nit:898 */
4950 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4951 if (UNTAG_Bool(REGB0)) {
4952 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 898);
4953 }
4954 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4955 /* ./parser//parser_prod.nit:899 */
4956 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*/;
4957 if (UNTAG_Bool(REGB0)) {
4958 } else {
4959 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 899);
4960 }
4961 /* ./parser//parser_prod.nit:900 */
4962 ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
4963 } else {
4964 /* ./parser//parser_prod.nit:902 */
4965 ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]) = NIT_NULL;
4966 }
4967 /* ./parser//parser_prod.nit:904 */
4968 goto label1;
4969 }
4970 /* ./parser//parser_prod.nit:906 */
4971 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0])!=NIT_NULL);
4972 if (UNTAG_Bool(REGB0)) {
4973 } else {
4974 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 906);
4975 }
4976 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0]);
4977 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4978 if (UNTAG_Bool(REGB0)) {
4979 } else {
4980 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4981 REGB0 = REGB1;
4982 }
4983 if (UNTAG_Bool(REGB0)) {
4984 /* ./parser//parser_prod.nit:907 */
4985 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4986 if (UNTAG_Bool(REGB0)) {
4987 } else {
4988 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4989 if (UNTAG_Bool(REGB1)) {
4990 REGB1 = TAG_Bool(false);
4991 REGB0 = REGB1;
4992 } else {
4993 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4994 REGB0 = REGB1;
4995 }
4996 }
4997 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4998 if (UNTAG_Bool(REGB0)) {
4999 /* ./parser//parser_prod.nit:908 */
5000 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5001 if (UNTAG_Bool(REGB0)) {
5002 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 908);
5003 }
5004 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5005 /* ./parser//parser_prod.nit:909 */
5006 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*/;
5007 if (UNTAG_Bool(REGB0)) {
5008 } else {
5009 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 909);
5010 }
5011 /* ./parser//parser_prod.nit:910 */
5012 ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0]) = fra.me.REG[2];
5013 } else {
5014 /* ./parser//parser_prod.nit:912 */
5015 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 912);
5016 }
5017 /* ./parser//parser_prod.nit:914 */
5018 goto label1;
5019 }
5020 label1: while(0);
5021 stack_frame_head = fra.me.prev;
5022 return;
5023 }
5024 void parser___parser_prod___ASuperclass___visit_all(val_t p0, val_t p1){
5025 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5026 val_t REGB0;
5027 val_t REGB1;
5028 val_t tmp;
5029 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5030 fra.me.file = LOCATE_parser___parser_prod;
5031 fra.me.line = 918;
5032 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___visit_all;
5033 fra.me.has_broke = 0;
5034 fra.me.REG_size = 4;
5035 fra.me.REG[0] = NIT_NULL;
5036 fra.me.REG[1] = NIT_NULL;
5037 fra.me.REG[2] = NIT_NULL;
5038 fra.me.REG[3] = NIT_NULL;
5039 fra.me.REG[0] = p0;
5040 fra.me.REG[1] = p1;
5041 /* ./parser//parser_prod.nit:918 */
5042 fra.me.REG[2] = fra.me.REG[0];
5043 /* ./parser//parser_prod.nit:920 */
5044 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[2]);
5045 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5046 if (UNTAG_Bool(REGB0)) {
5047 } else {
5048 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5049 if (UNTAG_Bool(REGB1)) {
5050 REGB1 = TAG_Bool(false);
5051 REGB0 = REGB1;
5052 } else {
5053 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5054 REGB0 = REGB1;
5055 }
5056 }
5057 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5058 if (UNTAG_Bool(REGB0)) {
5059 /* ./parser//parser_prod.nit:921 */
5060 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[2]);
5061 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*/;
5062 if (UNTAG_Bool(REGB0)) {
5063 } else {
5064 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 921);
5065 }
5066 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5067 }
5068 /* ./parser//parser_prod.nit:923 */
5069 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[2]);
5070 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5071 if (UNTAG_Bool(REGB0)) {
5072 } else {
5073 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5074 if (UNTAG_Bool(REGB1)) {
5075 REGB1 = TAG_Bool(false);
5076 REGB0 = REGB1;
5077 } else {
5078 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5079 REGB0 = REGB1;
5080 }
5081 }
5082 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5083 if (UNTAG_Bool(REGB0)) {
5084 /* ./parser//parser_prod.nit:924 */
5085 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[2]);
5086 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*/;
5087 if (UNTAG_Bool(REGB0)) {
5088 } else {
5089 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 924);
5090 }
5091 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5092 }
5093 /* ./parser//parser_prod.nit:926 */
5094 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[2])!=NIT_NULL);
5095 if (UNTAG_Bool(REGB0)) {
5096 } else {
5097 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 926);
5098 }
5099 fra.me.REG[2] = ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[2]);
5100 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5101 stack_frame_head = fra.me.prev;
5102 return;
5103 }
5104 void parser___parser_prod___AAttrPropdef___empty_init(val_t p0, int* init_table){
5105 int itpos35 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrPropdef].i;
5106 struct {struct stack_frame_t me;} fra;
5107 val_t tmp;
5108 if (init_table[itpos35]) return;
5109 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5110 fra.me.file = LOCATE_parser___parser_prod;
5111 fra.me.line = 930;
5112 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___empty_init;
5113 fra.me.has_broke = 0;
5114 fra.me.REG_size = 1;
5115 fra.me.REG[0] = NIT_NULL;
5116 fra.me.REG[0] = p0;
5117 stack_frame_head = fra.me.prev;
5118 init_table[itpos35] = 1;
5119 return;
5120 }
5121 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){
5122 int itpos36 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrPropdef].i;
5123 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
5124 val_t REGB0;
5125 val_t REGB1;
5126 val_t tmp;
5127 if (init_table[itpos36]) return;
5128 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5129 fra.me.file = LOCATE_parser___parser_prod;
5130 fra.me.line = 932;
5131 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___init_aattrpropdef;
5132 fra.me.has_broke = 0;
5133 fra.me.REG_size = 12;
5134 fra.me.REG[0] = NIT_NULL;
5135 fra.me.REG[1] = NIT_NULL;
5136 fra.me.REG[2] = NIT_NULL;
5137 fra.me.REG[3] = NIT_NULL;
5138 fra.me.REG[4] = NIT_NULL;
5139 fra.me.REG[5] = NIT_NULL;
5140 fra.me.REG[6] = NIT_NULL;
5141 fra.me.REG[7] = NIT_NULL;
5142 fra.me.REG[8] = NIT_NULL;
5143 fra.me.REG[9] = NIT_NULL;
5144 fra.me.REG[10] = NIT_NULL;
5145 fra.me.REG[11] = NIT_NULL;
5146 fra.me.REG[0] = p0;
5147 fra.me.REG[1] = p1;
5148 fra.me.REG[2] = p2;
5149 fra.me.REG[3] = p3;
5150 fra.me.REG[4] = p4;
5151 fra.me.REG[5] = p5;
5152 fra.me.REG[6] = p6;
5153 fra.me.REG[7] = p7;
5154 fra.me.REG[8] = p8;
5155 fra.me.REG[9] = p9;
5156 fra.me.REG[10] = p10;
5157 /* ./parser//parser_prod.nit:932 */
5158 fra.me.REG[11] = fra.me.REG[0];
5159 /* ./parser//parser_prod.nit:945 */
5160 CALL_parser___parser_prod___AAttrPropdef___empty_init(fra.me.REG[11])(fra.me.REG[11], init_table);
5161 /* ./parser//parser_prod.nit:946 */
5162 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[11]) = fra.me.REG[1];
5163 /* ./parser//parser_prod.nit:947 */
5164 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5165 if (UNTAG_Bool(REGB0)) {
5166 } else {
5167 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5168 if (UNTAG_Bool(REGB1)) {
5169 REGB1 = TAG_Bool(false);
5170 REGB0 = REGB1;
5171 } else {
5172 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
5173 REGB0 = REGB1;
5174 }
5175 }
5176 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5177 if (UNTAG_Bool(REGB0)) {
5178 /* ./parser//parser_prod.nit:948 */
5179 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5180 if (UNTAG_Bool(REGB0)) {
5181 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 948);
5182 }
5183 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[11]);
5184 }
5185 /* ./parser//parser_prod.nit:950 */
5186 ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[11]) = fra.me.REG[2];
5187 /* ./parser//parser_prod.nit:951 */
5188 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5189 if (UNTAG_Bool(REGB0)) {
5190 } else {
5191 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5192 if (UNTAG_Bool(REGB1)) {
5193 REGB1 = TAG_Bool(false);
5194 REGB0 = REGB1;
5195 } else {
5196 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5197 REGB0 = REGB1;
5198 }
5199 }
5200 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5201 if (UNTAG_Bool(REGB0)) {
5202 /* ./parser//parser_prod.nit:952 */
5203 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5204 if (UNTAG_Bool(REGB0)) {
5205 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 952);
5206 }
5207 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[11]);
5208 }
5209 /* ./parser//parser_prod.nit:954 */
5210 ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[11]) = fra.me.REG[3];
5211 /* ./parser//parser_prod.nit:955 */
5212 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5213 if (UNTAG_Bool(REGB0)) {
5214 } else {
5215 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5216 if (UNTAG_Bool(REGB1)) {
5217 REGB1 = TAG_Bool(false);
5218 REGB0 = REGB1;
5219 } else {
5220 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5221 REGB0 = REGB1;
5222 }
5223 }
5224 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5225 if (UNTAG_Bool(REGB0)) {
5226 /* ./parser//parser_prod.nit:956 */
5227 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5228 if (UNTAG_Bool(REGB0)) {
5229 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 956);
5230 }
5231 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[11]);
5232 }
5233 /* ./parser//parser_prod.nit:958 */
5234 ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[11]) = fra.me.REG[4];
5235 /* ./parser//parser_prod.nit:959 */
5236 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5237 if (UNTAG_Bool(REGB0)) {
5238 } else {
5239 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5240 if (UNTAG_Bool(REGB1)) {
5241 REGB1 = TAG_Bool(false);
5242 REGB0 = REGB1;
5243 } else {
5244 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5245 REGB0 = REGB1;
5246 }
5247 }
5248 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5249 if (UNTAG_Bool(REGB0)) {
5250 /* ./parser//parser_prod.nit:960 */
5251 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5252 if (UNTAG_Bool(REGB0)) {
5253 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 960);
5254 }
5255 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[11]);
5256 }
5257 /* ./parser//parser_prod.nit:962 */
5258 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
5259 if (UNTAG_Bool(REGB0)) {
5260 } else {
5261 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 962);
5262 }
5263 ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[11]) = fra.me.REG[5];
5264 /* ./parser//parser_prod.nit:963 */
5265 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5266 if (UNTAG_Bool(REGB0)) {
5267 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 963);
5268 }
5269 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[11]);
5270 /* ./parser//parser_prod.nit:964 */
5271 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
5272 if (UNTAG_Bool(REGB0)) {
5273 } else {
5274 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 964);
5275 }
5276 ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[11]) = fra.me.REG[6];
5277 /* ./parser//parser_prod.nit:965 */
5278 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5279 if (UNTAG_Bool(REGB0)) {
5280 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 965);
5281 }
5282 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[11]);
5283 /* ./parser//parser_prod.nit:966 */
5284 ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[11]) = fra.me.REG[7];
5285 /* ./parser//parser_prod.nit:967 */
5286 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5287 if (UNTAG_Bool(REGB0)) {
5288 } else {
5289 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5290 if (UNTAG_Bool(REGB1)) {
5291 REGB1 = TAG_Bool(false);
5292 REGB0 = REGB1;
5293 } else {
5294 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
5295 REGB0 = REGB1;
5296 }
5297 }
5298 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5299 if (UNTAG_Bool(REGB0)) {
5300 /* ./parser//parser_prod.nit:968 */
5301 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5302 if (UNTAG_Bool(REGB0)) {
5303 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 968);
5304 }
5305 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
5306 }
5307 /* ./parser//parser_prod.nit:970 */
5308 ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[11]) = fra.me.REG[8];
5309 /* ./parser//parser_prod.nit:971 */
5310 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
5311 if (UNTAG_Bool(REGB0)) {
5312 } else {
5313 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
5314 if (UNTAG_Bool(REGB1)) {
5315 REGB1 = TAG_Bool(false);
5316 REGB0 = REGB1;
5317 } else {
5318 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
5319 REGB0 = REGB1;
5320 }
5321 }
5322 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5323 if (UNTAG_Bool(REGB0)) {
5324 /* ./parser//parser_prod.nit:972 */
5325 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
5326 if (UNTAG_Bool(REGB0)) {
5327 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 972);
5328 }
5329 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[11]);
5330 }
5331 /* ./parser//parser_prod.nit:974 */
5332 ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[11]) = fra.me.REG[9];
5333 /* ./parser//parser_prod.nit:975 */
5334 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5335 if (UNTAG_Bool(REGB0)) {
5336 } else {
5337 REGB1 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5338 if (UNTAG_Bool(REGB1)) {
5339 REGB1 = TAG_Bool(false);
5340 REGB0 = REGB1;
5341 } else {
5342 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL);
5343 REGB0 = REGB1;
5344 }
5345 }
5346 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5347 if (UNTAG_Bool(REGB0)) {
5348 /* ./parser//parser_prod.nit:976 */
5349 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5350 if (UNTAG_Bool(REGB0)) {
5351 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 976);
5352 }
5353 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[11]);
5354 }
5355 /* ./parser//parser_prod.nit:978 */
5356 ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[11]) = fra.me.REG[10];
5357 /* ./parser//parser_prod.nit:979 */
5358 REGB0 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5359 if (UNTAG_Bool(REGB0)) {
5360 } else {
5361 REGB1 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5362 if (UNTAG_Bool(REGB1)) {
5363 REGB1 = TAG_Bool(false);
5364 REGB0 = REGB1;
5365 } else {
5366 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
5367 REGB0 = REGB1;
5368 }
5369 }
5370 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5371 if (UNTAG_Bool(REGB0)) {
5372 /* ./parser//parser_prod.nit:980 */
5373 REGB0 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5374 if (UNTAG_Bool(REGB0)) {
5375 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 980);
5376 }
5377 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
5378 }
5379 stack_frame_head = fra.me.prev;
5380 init_table[itpos36] = 1;
5381 return;
5382 }
5383 void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val_t p2){
5384 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5385 val_t REGB0;
5386 val_t REGB1;
5387 val_t tmp;
5388 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5389 fra.me.file = LOCATE_parser___parser_prod;
5390 fra.me.line = 984;
5391 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___replace_child;
5392 fra.me.has_broke = 0;
5393 fra.me.REG_size = 4;
5394 fra.me.REG[0] = NIT_NULL;
5395 fra.me.REG[1] = NIT_NULL;
5396 fra.me.REG[2] = NIT_NULL;
5397 fra.me.REG[3] = NIT_NULL;
5398 fra.me.REG[0] = p0;
5399 fra.me.REG[1] = p1;
5400 fra.me.REG[2] = p2;
5401 /* ./parser//parser_prod.nit:986 */
5402 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
5403 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5404 if (UNTAG_Bool(REGB0)) {
5405 } else {
5406 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5407 if (UNTAG_Bool(REGB1)) {
5408 REGB1 = TAG_Bool(false);
5409 REGB0 = REGB1;
5410 } else {
5411 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5412 REGB0 = REGB1;
5413 }
5414 }
5415 if (UNTAG_Bool(REGB0)) {
5416 /* ./parser//parser_prod.nit:987 */
5417 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5418 if (UNTAG_Bool(REGB0)) {
5419 } else {
5420 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5421 if (UNTAG_Bool(REGB1)) {
5422 REGB1 = TAG_Bool(false);
5423 REGB0 = REGB1;
5424 } else {
5425 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5426 REGB0 = REGB1;
5427 }
5428 }
5429 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5430 if (UNTAG_Bool(REGB0)) {
5431 /* ./parser//parser_prod.nit:988 */
5432 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5433 if (UNTAG_Bool(REGB0)) {
5434 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 988);
5435 }
5436 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5437 /* ./parser//parser_prod.nit:989 */
5438 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*/;
5439 if (UNTAG_Bool(REGB0)) {
5440 } else {
5441 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 989);
5442 }
5443 /* ./parser//parser_prod.nit:990 */
5444 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
5445 } else {
5446 /* ./parser//parser_prod.nit:992 */
5447 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
5448 }
5449 /* ./parser//parser_prod.nit:994 */
5450 goto label1;
5451 }
5452 /* ./parser//parser_prod.nit:996 */
5453 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]);
5454 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5455 if (UNTAG_Bool(REGB0)) {
5456 } else {
5457 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5458 if (UNTAG_Bool(REGB1)) {
5459 REGB1 = TAG_Bool(false);
5460 REGB0 = REGB1;
5461 } else {
5462 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5463 REGB0 = REGB1;
5464 }
5465 }
5466 if (UNTAG_Bool(REGB0)) {
5467 /* ./parser//parser_prod.nit:997 */
5468 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5469 if (UNTAG_Bool(REGB0)) {
5470 } else {
5471 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5472 if (UNTAG_Bool(REGB1)) {
5473 REGB1 = TAG_Bool(false);
5474 REGB0 = REGB1;
5475 } else {
5476 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5477 REGB0 = REGB1;
5478 }
5479 }
5480 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5481 if (UNTAG_Bool(REGB0)) {
5482 /* ./parser//parser_prod.nit:998 */
5483 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5484 if (UNTAG_Bool(REGB0)) {
5485 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 998);
5486 }
5487 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5488 /* ./parser//parser_prod.nit:999 */
5489 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*/;
5490 if (UNTAG_Bool(REGB0)) {
5491 } else {
5492 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 999);
5493 }
5494 /* ./parser//parser_prod.nit:1000 */
5495 ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]) = fra.me.REG[2];
5496 } else {
5497 /* ./parser//parser_prod.nit:1002 */
5498 ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]) = NIT_NULL;
5499 }
5500 /* ./parser//parser_prod.nit:1004 */
5501 goto label1;
5502 }
5503 /* ./parser//parser_prod.nit:1006 */
5504 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]);
5505 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5506 if (UNTAG_Bool(REGB0)) {
5507 } else {
5508 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5509 if (UNTAG_Bool(REGB1)) {
5510 REGB1 = TAG_Bool(false);
5511 REGB0 = REGB1;
5512 } else {
5513 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5514 REGB0 = REGB1;
5515 }
5516 }
5517 if (UNTAG_Bool(REGB0)) {
5518 /* ./parser//parser_prod.nit:1007 */
5519 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5520 if (UNTAG_Bool(REGB0)) {
5521 } else {
5522 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5523 if (UNTAG_Bool(REGB1)) {
5524 REGB1 = TAG_Bool(false);
5525 REGB0 = REGB1;
5526 } else {
5527 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5528 REGB0 = REGB1;
5529 }
5530 }
5531 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5532 if (UNTAG_Bool(REGB0)) {
5533 /* ./parser//parser_prod.nit:1008 */
5534 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5535 if (UNTAG_Bool(REGB0)) {
5536 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1008);
5537 }
5538 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5539 /* ./parser//parser_prod.nit:1009 */
5540 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*/;
5541 if (UNTAG_Bool(REGB0)) {
5542 } else {
5543 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1009);
5544 }
5545 /* ./parser//parser_prod.nit:1010 */
5546 ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]) = fra.me.REG[2];
5547 } else {
5548 /* ./parser//parser_prod.nit:1012 */
5549 ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]) = NIT_NULL;
5550 }
5551 /* ./parser//parser_prod.nit:1014 */
5552 goto label1;
5553 }
5554 /* ./parser//parser_prod.nit:1016 */
5555 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]);
5556 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5557 if (UNTAG_Bool(REGB0)) {
5558 } else {
5559 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5560 if (UNTAG_Bool(REGB1)) {
5561 REGB1 = TAG_Bool(false);
5562 REGB0 = REGB1;
5563 } else {
5564 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5565 REGB0 = REGB1;
5566 }
5567 }
5568 if (UNTAG_Bool(REGB0)) {
5569 /* ./parser//parser_prod.nit:1017 */
5570 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5571 if (UNTAG_Bool(REGB0)) {
5572 } else {
5573 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5574 if (UNTAG_Bool(REGB1)) {
5575 REGB1 = TAG_Bool(false);
5576 REGB0 = REGB1;
5577 } else {
5578 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5579 REGB0 = REGB1;
5580 }
5581 }
5582 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5583 if (UNTAG_Bool(REGB0)) {
5584 /* ./parser//parser_prod.nit:1018 */
5585 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5586 if (UNTAG_Bool(REGB0)) {
5587 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1018);
5588 }
5589 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5590 /* ./parser//parser_prod.nit:1019 */
5591 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*/;
5592 if (UNTAG_Bool(REGB0)) {
5593 } else {
5594 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1019);
5595 }
5596 /* ./parser//parser_prod.nit:1020 */
5597 ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
5598 } else {
5599 /* ./parser//parser_prod.nit:1022 */
5600 ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
5601 }
5602 /* ./parser//parser_prod.nit:1024 */
5603 goto label1;
5604 }
5605 /* ./parser//parser_prod.nit:1026 */
5606 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
5607 if (UNTAG_Bool(REGB0)) {
5608 } else {
5609 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 1026);
5610 }
5611 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0]);
5612 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
5613 if (UNTAG_Bool(REGB0)) {
5614 } else {
5615 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5616 REGB0 = REGB1;
5617 }
5618 if (UNTAG_Bool(REGB0)) {
5619 /* ./parser//parser_prod.nit:1027 */
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:1028 */
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, 1028);
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:1029 */
5641 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*/;
5642 if (UNTAG_Bool(REGB0)) {
5643 } else {
5644 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1029);
5645 }
5646 /* ./parser//parser_prod.nit:1030 */
5647 ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
5648 } else {
5649 /* ./parser//parser_prod.nit:1032 */
5650 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1032);
5651 }
5652 /* ./parser//parser_prod.nit:1034 */
5653 goto label1;
5654 }
5655 /* ./parser//parser_prod.nit:1036 */
5656 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0])!=NIT_NULL);
5657 if (UNTAG_Bool(REGB0)) {
5658 } else {
5659 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 1036);
5660 }
5661 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0]);
5662 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
5663 if (UNTAG_Bool(REGB0)) {
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 if (UNTAG_Bool(REGB0)) {
5669 /* ./parser//parser_prod.nit:1037 */
5670 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5671 if (UNTAG_Bool(REGB0)) {
5672 } else {
5673 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5674 if (UNTAG_Bool(REGB1)) {
5675 REGB1 = TAG_Bool(false);
5676 REGB0 = REGB1;
5677 } else {
5678 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5679 REGB0 = REGB1;
5680 }
5681 }
5682 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5683 if (UNTAG_Bool(REGB0)) {
5684 /* ./parser//parser_prod.nit:1038 */
5685 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5686 if (UNTAG_Bool(REGB0)) {
5687 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1038);
5688 }
5689 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5690 /* ./parser//parser_prod.nit:1039 */
5691 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*/;
5692 if (UNTAG_Bool(REGB0)) {
5693 } else {
5694 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1039);
5695 }
5696 /* ./parser//parser_prod.nit:1040 */
5697 ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0]) = fra.me.REG[2];
5698 } else {
5699 /* ./parser//parser_prod.nit:1042 */
5700 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1042);
5701 }
5702 /* ./parser//parser_prod.nit:1044 */
5703 goto label1;
5704 }
5705 /* ./parser//parser_prod.nit:1046 */
5706 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]);
5707 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5708 if (UNTAG_Bool(REGB0)) {
5709 } else {
5710 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5711 if (UNTAG_Bool(REGB1)) {
5712 REGB1 = TAG_Bool(false);
5713 REGB0 = REGB1;
5714 } else {
5715 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5716 REGB0 = REGB1;
5717 }
5718 }
5719 if (UNTAG_Bool(REGB0)) {
5720 /* ./parser//parser_prod.nit:1047 */
5721 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5722 if (UNTAG_Bool(REGB0)) {
5723 } else {
5724 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5725 if (UNTAG_Bool(REGB1)) {
5726 REGB1 = TAG_Bool(false);
5727 REGB0 = REGB1;
5728 } else {
5729 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5730 REGB0 = REGB1;
5731 }
5732 }
5733 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5734 if (UNTAG_Bool(REGB0)) {
5735 /* ./parser//parser_prod.nit:1048 */
5736 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5737 if (UNTAG_Bool(REGB0)) {
5738 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1048);
5739 }
5740 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5741 /* ./parser//parser_prod.nit:1049 */
5742 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*/;
5743 if (UNTAG_Bool(REGB0)) {
5744 } else {
5745 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1049);
5746 }
5747 /* ./parser//parser_prod.nit:1050 */
5748 ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
5749 } else {
5750 /* ./parser//parser_prod.nit:1052 */
5751 ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]) = NIT_NULL;
5752 }
5753 /* ./parser//parser_prod.nit:1054 */
5754 goto label1;
5755 }
5756 /* ./parser//parser_prod.nit:1056 */
5757 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]);
5758 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5759 if (UNTAG_Bool(REGB0)) {
5760 } else {
5761 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5762 if (UNTAG_Bool(REGB1)) {
5763 REGB1 = TAG_Bool(false);
5764 REGB0 = REGB1;
5765 } else {
5766 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5767 REGB0 = REGB1;
5768 }
5769 }
5770 if (UNTAG_Bool(REGB0)) {
5771 /* ./parser//parser_prod.nit:1057 */
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:1058 */
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, 1058);
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:1059 */
5793 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*/;
5794 if (UNTAG_Bool(REGB0)) {
5795 } else {
5796 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1059);
5797 }
5798 /* ./parser//parser_prod.nit:1060 */
5799 ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]) = fra.me.REG[2];
5800 } else {
5801 /* ./parser//parser_prod.nit:1062 */
5802 ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]) = NIT_NULL;
5803 }
5804 /* ./parser//parser_prod.nit:1064 */
5805 goto label1;
5806 }
5807 /* ./parser//parser_prod.nit:1066 */
5808 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]);
5809 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5810 if (UNTAG_Bool(REGB0)) {
5811 } else {
5812 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5813 if (UNTAG_Bool(REGB1)) {
5814 REGB1 = TAG_Bool(false);
5815 REGB0 = REGB1;
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 }
5821 if (UNTAG_Bool(REGB0)) {
5822 /* ./parser//parser_prod.nit:1067 */
5823 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5824 if (UNTAG_Bool(REGB0)) {
5825 } else {
5826 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5827 if (UNTAG_Bool(REGB1)) {
5828 REGB1 = TAG_Bool(false);
5829 REGB0 = REGB1;
5830 } else {
5831 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5832 REGB0 = REGB1;
5833 }
5834 }
5835 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5836 if (UNTAG_Bool(REGB0)) {
5837 /* ./parser//parser_prod.nit:1068 */
5838 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5839 if (UNTAG_Bool(REGB0)) {
5840 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1068);
5841 }
5842 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5843 /* ./parser//parser_prod.nit:1069 */
5844 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*/;
5845 if (UNTAG_Bool(REGB0)) {
5846 } else {
5847 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1069);
5848 }
5849 /* ./parser//parser_prod.nit:1070 */
5850 ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]) = fra.me.REG[2];
5851 } else {
5852 /* ./parser//parser_prod.nit:1072 */
5853 ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]) = NIT_NULL;
5854 }
5855 /* ./parser//parser_prod.nit:1074 */
5856 goto label1;
5857 }
5858 /* ./parser//parser_prod.nit:1076 */
5859 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]);
5860 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5861 if (UNTAG_Bool(REGB0)) {
5862 } else {
5863 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5864 if (UNTAG_Bool(REGB1)) {
5865 REGB1 = TAG_Bool(false);
5866 REGB0 = REGB1;
5867 } else {
5868 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5869 REGB0 = REGB1;
5870 }
5871 }
5872 if (UNTAG_Bool(REGB0)) {
5873 /* ./parser//parser_prod.nit:1077 */
5874 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5875 if (UNTAG_Bool(REGB0)) {
5876 } else {
5877 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5878 if (UNTAG_Bool(REGB1)) {
5879 REGB1 = TAG_Bool(false);
5880 REGB0 = REGB1;
5881 } else {
5882 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5883 REGB0 = REGB1;
5884 }
5885 }
5886 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5887 if (UNTAG_Bool(REGB0)) {
5888 /* ./parser//parser_prod.nit:1078 */
5889 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5890 if (UNTAG_Bool(REGB0)) {
5891 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1078);
5892 }
5893 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5894 /* ./parser//parser_prod.nit:1079 */
5895 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
5896 if (UNTAG_Bool(REGB0)) {
5897 } else {
5898 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1079);
5899 }
5900 /* ./parser//parser_prod.nit:1080 */
5901 ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]) = fra.me.REG[2];
5902 } else {
5903 /* ./parser//parser_prod.nit:1082 */
5904 ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]) = NIT_NULL;
5905 }
5906 /* ./parser//parser_prod.nit:1084 */
5907 goto label1;
5908 }
5909 label1: while(0);
5910 stack_frame_head = fra.me.prev;
5911 return;
5912 }
5913 void parser___parser_prod___AAttrPropdef___visit_all(val_t p0, val_t p1){
5914 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5915 val_t REGB0;
5916 val_t REGB1;
5917 val_t tmp;
5918 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5919 fra.me.file = LOCATE_parser___parser_prod;
5920 fra.me.line = 1088;
5921 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___visit_all;
5922 fra.me.has_broke = 0;
5923 fra.me.REG_size = 4;
5924 fra.me.REG[0] = NIT_NULL;
5925 fra.me.REG[1] = NIT_NULL;
5926 fra.me.REG[2] = NIT_NULL;
5927 fra.me.REG[3] = NIT_NULL;
5928 fra.me.REG[0] = p0;
5929 fra.me.REG[1] = p1;
5930 /* ./parser//parser_prod.nit:1088 */
5931 fra.me.REG[2] = fra.me.REG[0];
5932 /* ./parser//parser_prod.nit:1090 */
5933 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
5934 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5935 if (UNTAG_Bool(REGB0)) {
5936 } else {
5937 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5938 if (UNTAG_Bool(REGB1)) {
5939 REGB1 = TAG_Bool(false);
5940 REGB0 = REGB1;
5941 } else {
5942 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5943 REGB0 = REGB1;
5944 }
5945 }
5946 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5947 if (UNTAG_Bool(REGB0)) {
5948 /* ./parser//parser_prod.nit:1091 */
5949 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
5950 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*/;
5951 if (UNTAG_Bool(REGB0)) {
5952 } else {
5953 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1091);
5954 }
5955 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5956 }
5957 /* ./parser//parser_prod.nit:1093 */
5958 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[2]);
5959 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5960 if (UNTAG_Bool(REGB0)) {
5961 } else {
5962 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5963 if (UNTAG_Bool(REGB1)) {
5964 REGB1 = TAG_Bool(false);
5965 REGB0 = REGB1;
5966 } else {
5967 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5968 REGB0 = REGB1;
5969 }
5970 }
5971 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5972 if (UNTAG_Bool(REGB0)) {
5973 /* ./parser//parser_prod.nit:1094 */
5974 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[2]);
5975 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*/;
5976 if (UNTAG_Bool(REGB0)) {
5977 } else {
5978 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1094);
5979 }
5980 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5981 }
5982 /* ./parser//parser_prod.nit:1096 */
5983 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[2]);
5984 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5985 if (UNTAG_Bool(REGB0)) {
5986 } else {
5987 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5988 if (UNTAG_Bool(REGB1)) {
5989 REGB1 = TAG_Bool(false);
5990 REGB0 = REGB1;
5991 } else {
5992 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5993 REGB0 = REGB1;
5994 }
5995 }
5996 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5997 if (UNTAG_Bool(REGB0)) {
5998 /* ./parser//parser_prod.nit:1097 */
5999 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[2]);
6000 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*/;
6001 if (UNTAG_Bool(REGB0)) {
6002 } else {
6003 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1097);
6004 }
6005 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6006 }
6007 /* ./parser//parser_prod.nit:1099 */
6008 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[2]);
6009 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6010 if (UNTAG_Bool(REGB0)) {
6011 } else {
6012 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6013 if (UNTAG_Bool(REGB1)) {
6014 REGB1 = TAG_Bool(false);
6015 REGB0 = REGB1;
6016 } else {
6017 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6018 REGB0 = REGB1;
6019 }
6020 }
6021 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6022 if (UNTAG_Bool(REGB0)) {
6023 /* ./parser//parser_prod.nit:1100 */
6024 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[2]);
6025 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*/;
6026 if (UNTAG_Bool(REGB0)) {
6027 } else {
6028 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1100);
6029 }
6030 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6031 }
6032 /* ./parser//parser_prod.nit:1102 */
6033 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[2])!=NIT_NULL);
6034 if (UNTAG_Bool(REGB0)) {
6035 } else {
6036 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 1102);
6037 }
6038 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[2]);
6039 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6040 /* ./parser//parser_prod.nit:1103 */
6041 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[2])!=NIT_NULL);
6042 if (UNTAG_Bool(REGB0)) {
6043 } else {
6044 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 1103);
6045 }
6046 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[2]);
6047 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6048 /* ./parser//parser_prod.nit:1104 */
6049 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[2]);
6050 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6051 if (UNTAG_Bool(REGB0)) {
6052 } else {
6053 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6054 if (UNTAG_Bool(REGB1)) {
6055 REGB1 = TAG_Bool(false);
6056 REGB0 = REGB1;
6057 } else {
6058 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6059 REGB0 = REGB1;
6060 }
6061 }
6062 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6063 if (UNTAG_Bool(REGB0)) {
6064 /* ./parser//parser_prod.nit:1105 */
6065 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[2]);
6066 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*/;
6067 if (UNTAG_Bool(REGB0)) {
6068 } else {
6069 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1105);
6070 }
6071 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6072 }
6073 /* ./parser//parser_prod.nit:1107 */
6074 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[2]);
6075 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6076 if (UNTAG_Bool(REGB0)) {
6077 } else {
6078 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6079 if (UNTAG_Bool(REGB1)) {
6080 REGB1 = TAG_Bool(false);
6081 REGB0 = REGB1;
6082 } else {
6083 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6084 REGB0 = REGB1;
6085 }
6086 }
6087 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6088 if (UNTAG_Bool(REGB0)) {
6089 /* ./parser//parser_prod.nit:1108 */
6090 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[2]);
6091 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*/;
6092 if (UNTAG_Bool(REGB0)) {
6093 } else {
6094 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1108);
6095 }
6096 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6097 }
6098 /* ./parser//parser_prod.nit:1110 */
6099 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[2]);
6100 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6101 if (UNTAG_Bool(REGB0)) {
6102 } else {
6103 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6104 if (UNTAG_Bool(REGB1)) {
6105 REGB1 = TAG_Bool(false);
6106 REGB0 = REGB1;
6107 } else {
6108 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6109 REGB0 = REGB1;
6110 }
6111 }
6112 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6113 if (UNTAG_Bool(REGB0)) {
6114 /* ./parser//parser_prod.nit:1111 */
6115 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[2]);
6116 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*/;
6117 if (UNTAG_Bool(REGB0)) {
6118 } else {
6119 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1111);
6120 }
6121 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6122 }
6123 /* ./parser//parser_prod.nit:1113 */
6124 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[2]);
6125 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6126 if (UNTAG_Bool(REGB0)) {
6127 } else {
6128 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6129 if (UNTAG_Bool(REGB1)) {
6130 REGB1 = TAG_Bool(false);
6131 REGB0 = REGB1;
6132 } else {
6133 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6134 REGB0 = REGB1;
6135 }
6136 }
6137 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6138 if (UNTAG_Bool(REGB0)) {
6139 /* ./parser//parser_prod.nit:1114 */
6140 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[2]);
6141 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
6142 if (UNTAG_Bool(REGB0)) {
6143 } else {
6144 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1114);
6145 }
6146 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
6147 }
6148 stack_frame_head = fra.me.prev;
6149 return;
6150 }
6151 void parser___parser_prod___AMethPropdef___empty_init(val_t p0, int* init_table){
6152 int itpos37 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMethPropdef].i;
6153 struct {struct stack_frame_t me;} fra;
6154 val_t tmp;
6155 if (init_table[itpos37]) return;
6156 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6157 fra.me.file = LOCATE_parser___parser_prod;
6158 fra.me.line = 1119;
6159 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___empty_init;
6160 fra.me.has_broke = 0;
6161 fra.me.REG_size = 1;
6162 fra.me.REG[0] = NIT_NULL;
6163 fra.me.REG[0] = p0;
6164 stack_frame_head = fra.me.prev;
6165 init_table[itpos37] = 1;
6166 return;
6167 }
6168 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){
6169 int itpos38 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMethPropdef].i;
6170 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
6171 val_t REGB0;
6172 val_t REGB1;
6173 val_t tmp;
6174 if (init_table[itpos38]) return;
6175 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6176 fra.me.file = LOCATE_parser___parser_prod;
6177 fra.me.line = 1121;
6178 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___init_amethpropdef;
6179 fra.me.has_broke = 0;
6180 fra.me.REG_size = 7;
6181 fra.me.REG[0] = NIT_NULL;
6182 fra.me.REG[1] = NIT_NULL;
6183 fra.me.REG[2] = NIT_NULL;
6184 fra.me.REG[3] = NIT_NULL;
6185 fra.me.REG[4] = NIT_NULL;
6186 fra.me.REG[5] = NIT_NULL;
6187 fra.me.REG[6] = NIT_NULL;
6188 fra.me.REG[0] = p0;
6189 fra.me.REG[1] = p1;
6190 fra.me.REG[2] = p2;
6191 fra.me.REG[3] = p3;
6192 fra.me.REG[4] = p4;
6193 fra.me.REG[5] = p5;
6194 /* ./parser//parser_prod.nit:1121 */
6195 fra.me.REG[6] = fra.me.REG[0];
6196 /* ./parser//parser_prod.nit:1129 */
6197 CALL_parser___parser_prod___AMethPropdef___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
6198 /* ./parser//parser_prod.nit:1130 */
6199 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[6]) = fra.me.REG[1];
6200 /* ./parser//parser_prod.nit:1131 */
6201 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6202 if (UNTAG_Bool(REGB0)) {
6203 } else {
6204 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6205 if (UNTAG_Bool(REGB1)) {
6206 REGB1 = TAG_Bool(false);
6207 REGB0 = REGB1;
6208 } else {
6209 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6210 REGB0 = REGB1;
6211 }
6212 }
6213 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6214 if (UNTAG_Bool(REGB0)) {
6215 /* ./parser//parser_prod.nit:1132 */
6216 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6217 if (UNTAG_Bool(REGB0)) {
6218 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1132);
6219 }
6220 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
6221 }
6222 /* ./parser//parser_prod.nit:1134 */
6223 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[6]) = fra.me.REG[2];
6224 /* ./parser//parser_prod.nit:1135 */
6225 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6226 if (UNTAG_Bool(REGB0)) {
6227 } else {
6228 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6229 if (UNTAG_Bool(REGB1)) {
6230 REGB1 = TAG_Bool(false);
6231 REGB0 = REGB1;
6232 } else {
6233 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6234 REGB0 = REGB1;
6235 }
6236 }
6237 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6238 if (UNTAG_Bool(REGB0)) {
6239 /* ./parser//parser_prod.nit:1136 */
6240 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6241 if (UNTAG_Bool(REGB0)) {
6242 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1136);
6243 }
6244 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
6245 }
6246 /* ./parser//parser_prod.nit:1138 */
6247 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
6248 if (UNTAG_Bool(REGB0)) {
6249 } else {
6250 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1138);
6251 }
6252 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[6]) = fra.me.REG[3];
6253 /* ./parser//parser_prod.nit:1139 */
6254 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6255 if (UNTAG_Bool(REGB0)) {
6256 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1139);
6257 }
6258 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
6259 /* ./parser//parser_prod.nit:1140 */
6260 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
6261 if (UNTAG_Bool(REGB0)) {
6262 } else {
6263 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1140);
6264 }
6265 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[6]) = fra.me.REG[4];
6266 /* ./parser//parser_prod.nit:1141 */
6267 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6268 if (UNTAG_Bool(REGB0)) {
6269 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1141);
6270 }
6271 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
6272 /* ./parser//parser_prod.nit:1142 */
6273 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
6274 if (UNTAG_Bool(REGB0)) {
6275 } else {
6276 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1142);
6277 }
6278 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[6]) = fra.me.REG[5];
6279 /* ./parser//parser_prod.nit:1143 */
6280 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6281 if (UNTAG_Bool(REGB0)) {
6282 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1143);
6283 }
6284 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
6285 stack_frame_head = fra.me.prev;
6286 init_table[itpos38] = 1;
6287 return;
6288 }
6289 void parser___parser_prod___AMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
6290 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6291 val_t REGB0;
6292 val_t REGB1;
6293 val_t tmp;
6294 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6295 fra.me.file = LOCATE_parser___parser_prod;
6296 fra.me.line = 1146;
6297 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___replace_child;
6298 fra.me.has_broke = 0;
6299 fra.me.REG_size = 4;
6300 fra.me.REG[0] = NIT_NULL;
6301 fra.me.REG[1] = NIT_NULL;
6302 fra.me.REG[2] = NIT_NULL;
6303 fra.me.REG[3] = NIT_NULL;
6304 fra.me.REG[0] = p0;
6305 fra.me.REG[1] = p1;
6306 fra.me.REG[2] = p2;
6307 /* ./parser//parser_prod.nit:1148 */
6308 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
6309 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6310 if (UNTAG_Bool(REGB0)) {
6311 } else {
6312 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6313 if (UNTAG_Bool(REGB1)) {
6314 REGB1 = TAG_Bool(false);
6315 REGB0 = REGB1;
6316 } else {
6317 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6318 REGB0 = REGB1;
6319 }
6320 }
6321 if (UNTAG_Bool(REGB0)) {
6322 /* ./parser//parser_prod.nit:1149 */
6323 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6324 if (UNTAG_Bool(REGB0)) {
6325 } else {
6326 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6327 if (UNTAG_Bool(REGB1)) {
6328 REGB1 = TAG_Bool(false);
6329 REGB0 = REGB1;
6330 } else {
6331 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6332 REGB0 = REGB1;
6333 }
6334 }
6335 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6336 if (UNTAG_Bool(REGB0)) {
6337 /* ./parser//parser_prod.nit:1150 */
6338 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6339 if (UNTAG_Bool(REGB0)) {
6340 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1150);
6341 }
6342 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6343 /* ./parser//parser_prod.nit:1151 */
6344 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*/;
6345 if (UNTAG_Bool(REGB0)) {
6346 } else {
6347 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1151);
6348 }
6349 /* ./parser//parser_prod.nit:1152 */
6350 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
6351 } else {
6352 /* ./parser//parser_prod.nit:1154 */
6353 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
6354 }
6355 /* ./parser//parser_prod.nit:1156 */
6356 goto label1;
6357 }
6358 /* ./parser//parser_prod.nit:1158 */
6359 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
6360 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6361 if (UNTAG_Bool(REGB0)) {
6362 } else {
6363 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6364 if (UNTAG_Bool(REGB1)) {
6365 REGB1 = TAG_Bool(false);
6366 REGB0 = REGB1;
6367 } else {
6368 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6369 REGB0 = REGB1;
6370 }
6371 }
6372 if (UNTAG_Bool(REGB0)) {
6373 /* ./parser//parser_prod.nit:1159 */
6374 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6375 if (UNTAG_Bool(REGB0)) {
6376 } else {
6377 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6378 if (UNTAG_Bool(REGB1)) {
6379 REGB1 = TAG_Bool(false);
6380 REGB0 = REGB1;
6381 } else {
6382 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6383 REGB0 = REGB1;
6384 }
6385 }
6386 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6387 if (UNTAG_Bool(REGB0)) {
6388 /* ./parser//parser_prod.nit:1160 */
6389 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6390 if (UNTAG_Bool(REGB0)) {
6391 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1160);
6392 }
6393 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6394 /* ./parser//parser_prod.nit:1161 */
6395 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*/;
6396 if (UNTAG_Bool(REGB0)) {
6397 } else {
6398 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1161);
6399 }
6400 /* ./parser//parser_prod.nit:1162 */
6401 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
6402 } else {
6403 /* ./parser//parser_prod.nit:1164 */
6404 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
6405 }
6406 /* ./parser//parser_prod.nit:1166 */
6407 goto label1;
6408 }
6409 /* ./parser//parser_prod.nit:1168 */
6410 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
6411 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6412 if (UNTAG_Bool(REGB0)) {
6413 } else {
6414 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6415 if (UNTAG_Bool(REGB1)) {
6416 REGB1 = TAG_Bool(false);
6417 REGB0 = REGB1;
6418 } else {
6419 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6420 REGB0 = REGB1;
6421 }
6422 }
6423 if (UNTAG_Bool(REGB0)) {
6424 /* ./parser//parser_prod.nit:1169 */
6425 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6426 if (UNTAG_Bool(REGB0)) {
6427 } else {
6428 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6429 if (UNTAG_Bool(REGB1)) {
6430 REGB1 = TAG_Bool(false);
6431 REGB0 = REGB1;
6432 } else {
6433 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6434 REGB0 = REGB1;
6435 }
6436 }
6437 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6438 if (UNTAG_Bool(REGB0)) {
6439 /* ./parser//parser_prod.nit:1170 */
6440 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6441 if (UNTAG_Bool(REGB0)) {
6442 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1170);
6443 }
6444 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6445 /* ./parser//parser_prod.nit:1171 */
6446 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*/;
6447 if (UNTAG_Bool(REGB0)) {
6448 } else {
6449 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1171);
6450 }
6451 /* ./parser//parser_prod.nit:1172 */
6452 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
6453 } else {
6454 /* ./parser//parser_prod.nit:1174 */
6455 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1174);
6456 }
6457 /* ./parser//parser_prod.nit:1176 */
6458 goto label1;
6459 }
6460 /* ./parser//parser_prod.nit:1178 */
6461 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
6462 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6463 if (UNTAG_Bool(REGB0)) {
6464 } else {
6465 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6466 if (UNTAG_Bool(REGB1)) {
6467 REGB1 = TAG_Bool(false);
6468 REGB0 = REGB1;
6469 } else {
6470 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6471 REGB0 = REGB1;
6472 }
6473 }
6474 if (UNTAG_Bool(REGB0)) {
6475 /* ./parser//parser_prod.nit:1179 */
6476 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6477 if (UNTAG_Bool(REGB0)) {
6478 } else {
6479 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6480 if (UNTAG_Bool(REGB1)) {
6481 REGB1 = TAG_Bool(false);
6482 REGB0 = REGB1;
6483 } else {
6484 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6485 REGB0 = REGB1;
6486 }
6487 }
6488 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6489 if (UNTAG_Bool(REGB0)) {
6490 /* ./parser//parser_prod.nit:1180 */
6491 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6492 if (UNTAG_Bool(REGB0)) {
6493 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1180);
6494 }
6495 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6496 /* ./parser//parser_prod.nit:1181 */
6497 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*/;
6498 if (UNTAG_Bool(REGB0)) {
6499 } else {
6500 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1181);
6501 }
6502 /* ./parser//parser_prod.nit:1182 */
6503 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
6504 } else {
6505 /* ./parser//parser_prod.nit:1184 */
6506 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1184);
6507 }
6508 /* ./parser//parser_prod.nit:1186 */
6509 goto label1;
6510 }
6511 /* ./parser//parser_prod.nit:1188 */
6512 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
6513 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6514 if (UNTAG_Bool(REGB0)) {
6515 } else {
6516 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6517 if (UNTAG_Bool(REGB1)) {
6518 REGB1 = TAG_Bool(false);
6519 REGB0 = REGB1;
6520 } else {
6521 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6522 REGB0 = REGB1;
6523 }
6524 }
6525 if (UNTAG_Bool(REGB0)) {
6526 /* ./parser//parser_prod.nit:1189 */
6527 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6528 if (UNTAG_Bool(REGB0)) {
6529 } else {
6530 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6531 if (UNTAG_Bool(REGB1)) {
6532 REGB1 = TAG_Bool(false);
6533 REGB0 = REGB1;
6534 } else {
6535 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6536 REGB0 = REGB1;
6537 }
6538 }
6539 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6540 if (UNTAG_Bool(REGB0)) {
6541 /* ./parser//parser_prod.nit:1190 */
6542 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6543 if (UNTAG_Bool(REGB0)) {
6544 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1190);
6545 }
6546 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6547 /* ./parser//parser_prod.nit:1191 */
6548 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*/;
6549 if (UNTAG_Bool(REGB0)) {
6550 } else {
6551 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1191);
6552 }
6553 /* ./parser//parser_prod.nit:1192 */
6554 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
6555 } else {
6556 /* ./parser//parser_prod.nit:1194 */
6557 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1194);
6558 }
6559 /* ./parser//parser_prod.nit:1196 */
6560 goto label1;
6561 }
6562 label1: while(0);
6563 stack_frame_head = fra.me.prev;
6564 return;
6565 }
6566 void parser___parser_prod___AMethPropdef___visit_all(val_t p0, val_t p1){
6567 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6568 val_t REGB0;
6569 val_t REGB1;
6570 val_t tmp;
6571 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6572 fra.me.file = LOCATE_parser___parser_prod;
6573 fra.me.line = 1200;
6574 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___visit_all;
6575 fra.me.has_broke = 0;
6576 fra.me.REG_size = 4;
6577 fra.me.REG[0] = NIT_NULL;
6578 fra.me.REG[1] = NIT_NULL;
6579 fra.me.REG[2] = NIT_NULL;
6580 fra.me.REG[3] = NIT_NULL;
6581 fra.me.REG[0] = p0;
6582 fra.me.REG[1] = p1;
6583 /* ./parser//parser_prod.nit:1200 */
6584 fra.me.REG[2] = fra.me.REG[0];
6585 /* ./parser//parser_prod.nit:1202 */
6586 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
6587 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6588 if (UNTAG_Bool(REGB0)) {
6589 } else {
6590 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6591 if (UNTAG_Bool(REGB1)) {
6592 REGB1 = TAG_Bool(false);
6593 REGB0 = REGB1;
6594 } else {
6595 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6596 REGB0 = REGB1;
6597 }
6598 }
6599 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6600 if (UNTAG_Bool(REGB0)) {
6601 /* ./parser//parser_prod.nit:1203 */
6602 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
6603 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*/;
6604 if (UNTAG_Bool(REGB0)) {
6605 } else {
6606 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1203);
6607 }
6608 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6609 }
6610 /* ./parser//parser_prod.nit:1205 */
6611 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
6612 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6613 if (UNTAG_Bool(REGB0)) {
6614 } else {
6615 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6616 if (UNTAG_Bool(REGB1)) {
6617 REGB1 = TAG_Bool(false);
6618 REGB0 = REGB1;
6619 } else {
6620 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6621 REGB0 = REGB1;
6622 }
6623 }
6624 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6625 if (UNTAG_Bool(REGB0)) {
6626 /* ./parser//parser_prod.nit:1206 */
6627 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
6628 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*/;
6629 if (UNTAG_Bool(REGB0)) {
6630 } else {
6631 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1206);
6632 }
6633 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6634 }
6635 /* ./parser//parser_prod.nit:1208 */
6636 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
6637 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6638 /* ./parser//parser_prod.nit:1209 */
6639 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
6640 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6641 /* ./parser//parser_prod.nit:1210 */
6642 fra.me.REG[2] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
6643 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
6644 stack_frame_head = fra.me.prev;
6645 return;
6646 }
6647 void parser___parser_prod___ADeferredMethPropdef___empty_init(val_t p0, int* init_table){
6648 int itpos39 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADeferredMethPropdef].i;
6649 struct {struct stack_frame_t me;} fra;
6650 val_t tmp;
6651 if (init_table[itpos39]) return;
6652 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6653 fra.me.file = LOCATE_parser___parser_prod;
6654 fra.me.line = 1214;
6655 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___empty_init;
6656 fra.me.has_broke = 0;
6657 fra.me.REG_size = 1;
6658 fra.me.REG[0] = NIT_NULL;
6659 fra.me.REG[0] = p0;
6660 stack_frame_head = fra.me.prev;
6661 init_table[itpos39] = 1;
6662 return;
6663 }
6664 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){
6665 int itpos40 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADeferredMethPropdef].i;
6666 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
6667 val_t REGB0;
6668 val_t REGB1;
6669 val_t tmp;
6670 if (init_table[itpos40]) return;
6671 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6672 fra.me.file = LOCATE_parser___parser_prod;
6673 fra.me.line = 1216;
6674 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef;
6675 fra.me.has_broke = 0;
6676 fra.me.REG_size = 8;
6677 fra.me.REG[0] = NIT_NULL;
6678 fra.me.REG[1] = NIT_NULL;
6679 fra.me.REG[2] = NIT_NULL;
6680 fra.me.REG[3] = NIT_NULL;
6681 fra.me.REG[4] = NIT_NULL;
6682 fra.me.REG[5] = NIT_NULL;
6683 fra.me.REG[6] = NIT_NULL;
6684 fra.me.REG[7] = NIT_NULL;
6685 fra.me.REG[0] = p0;
6686 fra.me.REG[1] = p1;
6687 fra.me.REG[2] = p2;
6688 fra.me.REG[3] = p3;
6689 fra.me.REG[4] = p4;
6690 fra.me.REG[5] = p5;
6691 fra.me.REG[6] = p6;
6692 /* ./parser//parser_prod.nit:1216 */
6693 fra.me.REG[7] = fra.me.REG[0];
6694 /* ./parser//parser_prod.nit:1225 */
6695 CALL_parser___parser_prod___ADeferredMethPropdef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
6696 /* ./parser//parser_prod.nit:1226 */
6697 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[7]) = fra.me.REG[1];
6698 /* ./parser//parser_prod.nit:1227 */
6699 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6700 if (UNTAG_Bool(REGB0)) {
6701 } else {
6702 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6703 if (UNTAG_Bool(REGB1)) {
6704 REGB1 = TAG_Bool(false);
6705 REGB0 = REGB1;
6706 } else {
6707 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6708 REGB0 = REGB1;
6709 }
6710 }
6711 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6712 if (UNTAG_Bool(REGB0)) {
6713 /* ./parser//parser_prod.nit:1228 */
6714 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6715 if (UNTAG_Bool(REGB0)) {
6716 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1228);
6717 }
6718 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
6719 }
6720 /* ./parser//parser_prod.nit:1230 */
6721 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[7]) = fra.me.REG[2];
6722 /* ./parser//parser_prod.nit:1231 */
6723 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6724 if (UNTAG_Bool(REGB0)) {
6725 } else {
6726 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6727 if (UNTAG_Bool(REGB1)) {
6728 REGB1 = TAG_Bool(false);
6729 REGB0 = REGB1;
6730 } else {
6731 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6732 REGB0 = REGB1;
6733 }
6734 }
6735 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6736 if (UNTAG_Bool(REGB0)) {
6737 /* ./parser//parser_prod.nit:1232 */
6738 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6739 if (UNTAG_Bool(REGB0)) {
6740 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1232);
6741 }
6742 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
6743 }
6744 /* ./parser//parser_prod.nit:1234 */
6745 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
6746 if (UNTAG_Bool(REGB0)) {
6747 } else {
6748 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1234);
6749 }
6750 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[7]) = fra.me.REG[3];
6751 /* ./parser//parser_prod.nit:1235 */
6752 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6753 if (UNTAG_Bool(REGB0)) {
6754 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1235);
6755 }
6756 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
6757 /* ./parser//parser_prod.nit:1236 */
6758 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
6759 if (UNTAG_Bool(REGB0)) {
6760 } else {
6761 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1236);
6762 }
6763 ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[7]) = fra.me.REG[4];
6764 /* ./parser//parser_prod.nit:1237 */
6765 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6766 if (UNTAG_Bool(REGB0)) {
6767 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1237);
6768 }
6769 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
6770 /* ./parser//parser_prod.nit:1238 */
6771 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
6772 if (UNTAG_Bool(REGB0)) {
6773 } else {
6774 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1238);
6775 }
6776 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[7]) = fra.me.REG[5];
6777 /* ./parser//parser_prod.nit:1239 */
6778 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6779 if (UNTAG_Bool(REGB0)) {
6780 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1239);
6781 }
6782 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
6783 /* ./parser//parser_prod.nit:1240 */
6784 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
6785 if (UNTAG_Bool(REGB0)) {
6786 } else {
6787 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1240);
6788 }
6789 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[7]) = fra.me.REG[6];
6790 /* ./parser//parser_prod.nit:1241 */
6791 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
6792 if (UNTAG_Bool(REGB0)) {
6793 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1241);
6794 }
6795 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
6796 stack_frame_head = fra.me.prev;
6797 init_table[itpos40] = 1;
6798 return;
6799 }
6800 void parser___parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
6801 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6802 val_t REGB0;
6803 val_t REGB1;
6804 val_t tmp;
6805 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6806 fra.me.file = LOCATE_parser___parser_prod;
6807 fra.me.line = 1244;
6808 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___replace_child;
6809 fra.me.has_broke = 0;
6810 fra.me.REG_size = 4;
6811 fra.me.REG[0] = NIT_NULL;
6812 fra.me.REG[1] = NIT_NULL;
6813 fra.me.REG[2] = NIT_NULL;
6814 fra.me.REG[3] = NIT_NULL;
6815 fra.me.REG[0] = p0;
6816 fra.me.REG[1] = p1;
6817 fra.me.REG[2] = p2;
6818 /* ./parser//parser_prod.nit:1246 */
6819 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
6820 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6821 if (UNTAG_Bool(REGB0)) {
6822 } else {
6823 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6824 if (UNTAG_Bool(REGB1)) {
6825 REGB1 = TAG_Bool(false);
6826 REGB0 = REGB1;
6827 } else {
6828 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6829 REGB0 = REGB1;
6830 }
6831 }
6832 if (UNTAG_Bool(REGB0)) {
6833 /* ./parser//parser_prod.nit:1247 */
6834 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6835 if (UNTAG_Bool(REGB0)) {
6836 } else {
6837 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6838 if (UNTAG_Bool(REGB1)) {
6839 REGB1 = TAG_Bool(false);
6840 REGB0 = REGB1;
6841 } else {
6842 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6843 REGB0 = REGB1;
6844 }
6845 }
6846 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6847 if (UNTAG_Bool(REGB0)) {
6848 /* ./parser//parser_prod.nit:1248 */
6849 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6850 if (UNTAG_Bool(REGB0)) {
6851 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1248);
6852 }
6853 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6854 /* ./parser//parser_prod.nit:1249 */
6855 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*/;
6856 if (UNTAG_Bool(REGB0)) {
6857 } else {
6858 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1249);
6859 }
6860 /* ./parser//parser_prod.nit:1250 */
6861 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
6862 } else {
6863 /* ./parser//parser_prod.nit:1252 */
6864 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
6865 }
6866 /* ./parser//parser_prod.nit:1254 */
6867 goto label1;
6868 }
6869 /* ./parser//parser_prod.nit:1256 */
6870 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
6871 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6872 if (UNTAG_Bool(REGB0)) {
6873 } else {
6874 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6875 if (UNTAG_Bool(REGB1)) {
6876 REGB1 = TAG_Bool(false);
6877 REGB0 = REGB1;
6878 } else {
6879 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6880 REGB0 = REGB1;
6881 }
6882 }
6883 if (UNTAG_Bool(REGB0)) {
6884 /* ./parser//parser_prod.nit:1257 */
6885 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6886 if (UNTAG_Bool(REGB0)) {
6887 } else {
6888 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6889 if (UNTAG_Bool(REGB1)) {
6890 REGB1 = TAG_Bool(false);
6891 REGB0 = REGB1;
6892 } else {
6893 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6894 REGB0 = REGB1;
6895 }
6896 }
6897 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6898 if (UNTAG_Bool(REGB0)) {
6899 /* ./parser//parser_prod.nit:1258 */
6900 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6901 if (UNTAG_Bool(REGB0)) {
6902 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1258);
6903 }
6904 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6905 /* ./parser//parser_prod.nit:1259 */
6906 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*/;
6907 if (UNTAG_Bool(REGB0)) {
6908 } else {
6909 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1259);
6910 }
6911 /* ./parser//parser_prod.nit:1260 */
6912 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
6913 } else {
6914 /* ./parser//parser_prod.nit:1262 */
6915 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
6916 }
6917 /* ./parser//parser_prod.nit:1264 */
6918 goto label1;
6919 }
6920 /* ./parser//parser_prod.nit:1266 */
6921 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
6922 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6923 if (UNTAG_Bool(REGB0)) {
6924 } else {
6925 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6926 if (UNTAG_Bool(REGB1)) {
6927 REGB1 = TAG_Bool(false);
6928 REGB0 = REGB1;
6929 } else {
6930 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6931 REGB0 = REGB1;
6932 }
6933 }
6934 if (UNTAG_Bool(REGB0)) {
6935 /* ./parser//parser_prod.nit:1267 */
6936 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6937 if (UNTAG_Bool(REGB0)) {
6938 } else {
6939 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6940 if (UNTAG_Bool(REGB1)) {
6941 REGB1 = TAG_Bool(false);
6942 REGB0 = REGB1;
6943 } else {
6944 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6945 REGB0 = REGB1;
6946 }
6947 }
6948 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6949 if (UNTAG_Bool(REGB0)) {
6950 /* ./parser//parser_prod.nit:1268 */
6951 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6952 if (UNTAG_Bool(REGB0)) {
6953 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1268);
6954 }
6955 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6956 /* ./parser//parser_prod.nit:1269 */
6957 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*/;
6958 if (UNTAG_Bool(REGB0)) {
6959 } else {
6960 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1269);
6961 }
6962 /* ./parser//parser_prod.nit:1270 */
6963 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
6964 } else {
6965 /* ./parser//parser_prod.nit:1272 */
6966 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1272);
6967 }
6968 /* ./parser//parser_prod.nit:1274 */
6969 goto label1;
6970 }
6971 /* ./parser//parser_prod.nit:1276 */
6972 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
6973 if (UNTAG_Bool(REGB0)) {
6974 } else {
6975 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1276);
6976 }
6977 fra.me.REG[3] = ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0]);
6978 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
6979 if (UNTAG_Bool(REGB0)) {
6980 } else {
6981 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6982 REGB0 = REGB1;
6983 }
6984 if (UNTAG_Bool(REGB0)) {
6985 /* ./parser//parser_prod.nit:1277 */
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:1278 */
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, 1278);
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:1279 */
7007 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*/;
7008 if (UNTAG_Bool(REGB0)) {
7009 } else {
7010 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1279);
7011 }
7012 /* ./parser//parser_prod.nit:1280 */
7013 ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
7014 } else {
7015 /* ./parser//parser_prod.nit:1282 */
7016 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1282);
7017 }
7018 /* ./parser//parser_prod.nit:1284 */
7019 goto label1;
7020 }
7021 /* ./parser//parser_prod.nit:1286 */
7022 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(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:1287 */
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:1288 */
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, 1288);
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:1289 */
7058 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*/;
7059 if (UNTAG_Bool(REGB0)) {
7060 } else {
7061 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1289);
7062 }
7063 /* ./parser//parser_prod.nit:1290 */
7064 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
7065 } else {
7066 /* ./parser//parser_prod.nit:1292 */
7067 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1292);
7068 }
7069 /* ./parser//parser_prod.nit:1294 */
7070 goto label1;
7071 }
7072 /* ./parser//parser_prod.nit:1296 */
7073 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(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:1297 */
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:1298 */
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, 1298);
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:1299 */
7109 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*/;
7110 if (UNTAG_Bool(REGB0)) {
7111 } else {
7112 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1299);
7113 }
7114 /* ./parser//parser_prod.nit:1300 */
7115 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
7116 } else {
7117 /* ./parser//parser_prod.nit:1302 */
7118 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1302);
7119 }
7120 /* ./parser//parser_prod.nit:1304 */
7121 goto label1;
7122 }
7123 label1: while(0);
7124 stack_frame_head = fra.me.prev;
7125 return;
7126 }
7127 void parser___parser_prod___ADeferredMethPropdef___visit_all(val_t p0, val_t p1){
7128 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7129 val_t REGB0;
7130 val_t REGB1;
7131 val_t tmp;
7132 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7133 fra.me.file = LOCATE_parser___parser_prod;
7134 fra.me.line = 1308;
7135 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___visit_all;
7136 fra.me.has_broke = 0;
7137 fra.me.REG_size = 4;
7138 fra.me.REG[0] = NIT_NULL;
7139 fra.me.REG[1] = NIT_NULL;
7140 fra.me.REG[2] = NIT_NULL;
7141 fra.me.REG[3] = NIT_NULL;
7142 fra.me.REG[0] = p0;
7143 fra.me.REG[1] = p1;
7144 /* ./parser//parser_prod.nit:1308 */
7145 fra.me.REG[2] = fra.me.REG[0];
7146 /* ./parser//parser_prod.nit:1310 */
7147 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7148 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7149 if (UNTAG_Bool(REGB0)) {
7150 } else {
7151 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7152 if (UNTAG_Bool(REGB1)) {
7153 REGB1 = TAG_Bool(false);
7154 REGB0 = REGB1;
7155 } else {
7156 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7157 REGB0 = REGB1;
7158 }
7159 }
7160 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7161 if (UNTAG_Bool(REGB0)) {
7162 /* ./parser//parser_prod.nit:1311 */
7163 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7164 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*/;
7165 if (UNTAG_Bool(REGB0)) {
7166 } else {
7167 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1311);
7168 }
7169 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7170 }
7171 /* ./parser//parser_prod.nit:1313 */
7172 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
7173 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7174 if (UNTAG_Bool(REGB0)) {
7175 } else {
7176 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7177 if (UNTAG_Bool(REGB1)) {
7178 REGB1 = TAG_Bool(false);
7179 REGB0 = REGB1;
7180 } else {
7181 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7182 REGB0 = REGB1;
7183 }
7184 }
7185 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7186 if (UNTAG_Bool(REGB0)) {
7187 /* ./parser//parser_prod.nit:1314 */
7188 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
7189 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*/;
7190 if (UNTAG_Bool(REGB0)) {
7191 } else {
7192 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1314);
7193 }
7194 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7195 }
7196 /* ./parser//parser_prod.nit:1316 */
7197 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
7198 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7199 /* ./parser//parser_prod.nit:1317 */
7200 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
7201 if (UNTAG_Bool(REGB0)) {
7202 } else {
7203 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1317);
7204 }
7205 fra.me.REG[3] = ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[2]);
7206 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7207 /* ./parser//parser_prod.nit:1318 */
7208 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
7209 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7210 /* ./parser//parser_prod.nit:1319 */
7211 fra.me.REG[2] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
7212 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
7213 stack_frame_head = fra.me.prev;
7214 return;
7215 }
7216 void parser___parser_prod___AInternMethPropdef___empty_init(val_t p0, int* init_table){
7217 int itpos41 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInternMethPropdef].i;
7218 struct {struct stack_frame_t me;} fra;
7219 val_t tmp;
7220 if (init_table[itpos41]) return;
7221 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7222 fra.me.file = LOCATE_parser___parser_prod;
7223 fra.me.line = 1323;
7224 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___empty_init;
7225 fra.me.has_broke = 0;
7226 fra.me.REG_size = 1;
7227 fra.me.REG[0] = NIT_NULL;
7228 fra.me.REG[0] = p0;
7229 stack_frame_head = fra.me.prev;
7230 init_table[itpos41] = 1;
7231 return;
7232 }
7233 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){
7234 int itpos42 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInternMethPropdef].i;
7235 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
7236 val_t REGB0;
7237 val_t REGB1;
7238 val_t tmp;
7239 if (init_table[itpos42]) return;
7240 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7241 fra.me.file = LOCATE_parser___parser_prod;
7242 fra.me.line = 1325;
7243 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef;
7244 fra.me.has_broke = 0;
7245 fra.me.REG_size = 8;
7246 fra.me.REG[0] = NIT_NULL;
7247 fra.me.REG[1] = NIT_NULL;
7248 fra.me.REG[2] = NIT_NULL;
7249 fra.me.REG[3] = NIT_NULL;
7250 fra.me.REG[4] = NIT_NULL;
7251 fra.me.REG[5] = NIT_NULL;
7252 fra.me.REG[6] = NIT_NULL;
7253 fra.me.REG[7] = NIT_NULL;
7254 fra.me.REG[0] = p0;
7255 fra.me.REG[1] = p1;
7256 fra.me.REG[2] = p2;
7257 fra.me.REG[3] = p3;
7258 fra.me.REG[4] = p4;
7259 fra.me.REG[5] = p5;
7260 fra.me.REG[6] = p6;
7261 /* ./parser//parser_prod.nit:1325 */
7262 fra.me.REG[7] = fra.me.REG[0];
7263 /* ./parser//parser_prod.nit:1334 */
7264 CALL_parser___parser_prod___AInternMethPropdef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
7265 /* ./parser//parser_prod.nit:1335 */
7266 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[7]) = fra.me.REG[1];
7267 /* ./parser//parser_prod.nit:1336 */
7268 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7269 if (UNTAG_Bool(REGB0)) {
7270 } else {
7271 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7272 if (UNTAG_Bool(REGB1)) {
7273 REGB1 = TAG_Bool(false);
7274 REGB0 = REGB1;
7275 } else {
7276 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7277 REGB0 = REGB1;
7278 }
7279 }
7280 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7281 if (UNTAG_Bool(REGB0)) {
7282 /* ./parser//parser_prod.nit:1337 */
7283 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7284 if (UNTAG_Bool(REGB0)) {
7285 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1337);
7286 }
7287 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
7288 }
7289 /* ./parser//parser_prod.nit:1339 */
7290 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[7]) = fra.me.REG[2];
7291 /* ./parser//parser_prod.nit:1340 */
7292 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7293 if (UNTAG_Bool(REGB0)) {
7294 } else {
7295 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7296 if (UNTAG_Bool(REGB1)) {
7297 REGB1 = TAG_Bool(false);
7298 REGB0 = REGB1;
7299 } else {
7300 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7301 REGB0 = REGB1;
7302 }
7303 }
7304 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7305 if (UNTAG_Bool(REGB0)) {
7306 /* ./parser//parser_prod.nit:1341 */
7307 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7308 if (UNTAG_Bool(REGB0)) {
7309 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1341);
7310 }
7311 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
7312 }
7313 /* ./parser//parser_prod.nit:1343 */
7314 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
7315 if (UNTAG_Bool(REGB0)) {
7316 } else {
7317 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1343);
7318 }
7319 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[7]) = fra.me.REG[3];
7320 /* ./parser//parser_prod.nit:1344 */
7321 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7322 if (UNTAG_Bool(REGB0)) {
7323 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1344);
7324 }
7325 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
7326 /* ./parser//parser_prod.nit:1345 */
7327 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
7328 if (UNTAG_Bool(REGB0)) {
7329 } else {
7330 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1345);
7331 }
7332 ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[7]) = fra.me.REG[4];
7333 /* ./parser//parser_prod.nit:1346 */
7334 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7335 if (UNTAG_Bool(REGB0)) {
7336 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1346);
7337 }
7338 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
7339 /* ./parser//parser_prod.nit:1347 */
7340 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
7341 if (UNTAG_Bool(REGB0)) {
7342 } else {
7343 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1347);
7344 }
7345 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[7]) = fra.me.REG[5];
7346 /* ./parser//parser_prod.nit:1348 */
7347 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7348 if (UNTAG_Bool(REGB0)) {
7349 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1348);
7350 }
7351 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
7352 /* ./parser//parser_prod.nit:1349 */
7353 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
7354 if (UNTAG_Bool(REGB0)) {
7355 } else {
7356 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1349);
7357 }
7358 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[7]) = fra.me.REG[6];
7359 /* ./parser//parser_prod.nit:1350 */
7360 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
7361 if (UNTAG_Bool(REGB0)) {
7362 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1350);
7363 }
7364 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
7365 stack_frame_head = fra.me.prev;
7366 init_table[itpos42] = 1;
7367 return;
7368 }
7369 void parser___parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
7370 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7371 val_t REGB0;
7372 val_t REGB1;
7373 val_t tmp;
7374 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7375 fra.me.file = LOCATE_parser___parser_prod;
7376 fra.me.line = 1353;
7377 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___replace_child;
7378 fra.me.has_broke = 0;
7379 fra.me.REG_size = 4;
7380 fra.me.REG[0] = NIT_NULL;
7381 fra.me.REG[1] = NIT_NULL;
7382 fra.me.REG[2] = NIT_NULL;
7383 fra.me.REG[3] = NIT_NULL;
7384 fra.me.REG[0] = p0;
7385 fra.me.REG[1] = p1;
7386 fra.me.REG[2] = p2;
7387 /* ./parser//parser_prod.nit:1355 */
7388 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
7389 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7390 if (UNTAG_Bool(REGB0)) {
7391 } else {
7392 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7393 if (UNTAG_Bool(REGB1)) {
7394 REGB1 = TAG_Bool(false);
7395 REGB0 = REGB1;
7396 } else {
7397 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7398 REGB0 = REGB1;
7399 }
7400 }
7401 if (UNTAG_Bool(REGB0)) {
7402 /* ./parser//parser_prod.nit:1356 */
7403 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7404 if (UNTAG_Bool(REGB0)) {
7405 } else {
7406 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7407 if (UNTAG_Bool(REGB1)) {
7408 REGB1 = TAG_Bool(false);
7409 REGB0 = REGB1;
7410 } else {
7411 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7412 REGB0 = REGB1;
7413 }
7414 }
7415 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7416 if (UNTAG_Bool(REGB0)) {
7417 /* ./parser//parser_prod.nit:1357 */
7418 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7419 if (UNTAG_Bool(REGB0)) {
7420 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1357);
7421 }
7422 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7423 /* ./parser//parser_prod.nit:1358 */
7424 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*/;
7425 if (UNTAG_Bool(REGB0)) {
7426 } else {
7427 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1358);
7428 }
7429 /* ./parser//parser_prod.nit:1359 */
7430 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
7431 } else {
7432 /* ./parser//parser_prod.nit:1361 */
7433 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
7434 }
7435 /* ./parser//parser_prod.nit:1363 */
7436 goto label1;
7437 }
7438 /* ./parser//parser_prod.nit:1365 */
7439 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
7440 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7441 if (UNTAG_Bool(REGB0)) {
7442 } else {
7443 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7444 if (UNTAG_Bool(REGB1)) {
7445 REGB1 = TAG_Bool(false);
7446 REGB0 = REGB1;
7447 } else {
7448 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7449 REGB0 = REGB1;
7450 }
7451 }
7452 if (UNTAG_Bool(REGB0)) {
7453 /* ./parser//parser_prod.nit:1366 */
7454 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7455 if (UNTAG_Bool(REGB0)) {
7456 } else {
7457 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7458 if (UNTAG_Bool(REGB1)) {
7459 REGB1 = TAG_Bool(false);
7460 REGB0 = REGB1;
7461 } else {
7462 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7463 REGB0 = REGB1;
7464 }
7465 }
7466 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7467 if (UNTAG_Bool(REGB0)) {
7468 /* ./parser//parser_prod.nit:1367 */
7469 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7470 if (UNTAG_Bool(REGB0)) {
7471 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1367);
7472 }
7473 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7474 /* ./parser//parser_prod.nit:1368 */
7475 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*/;
7476 if (UNTAG_Bool(REGB0)) {
7477 } else {
7478 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1368);
7479 }
7480 /* ./parser//parser_prod.nit:1369 */
7481 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
7482 } else {
7483 /* ./parser//parser_prod.nit:1371 */
7484 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
7485 }
7486 /* ./parser//parser_prod.nit:1373 */
7487 goto label1;
7488 }
7489 /* ./parser//parser_prod.nit:1375 */
7490 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
7491 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7492 if (UNTAG_Bool(REGB0)) {
7493 } else {
7494 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7495 if (UNTAG_Bool(REGB1)) {
7496 REGB1 = TAG_Bool(false);
7497 REGB0 = REGB1;
7498 } else {
7499 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7500 REGB0 = REGB1;
7501 }
7502 }
7503 if (UNTAG_Bool(REGB0)) {
7504 /* ./parser//parser_prod.nit:1376 */
7505 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7506 if (UNTAG_Bool(REGB0)) {
7507 } else {
7508 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7509 if (UNTAG_Bool(REGB1)) {
7510 REGB1 = TAG_Bool(false);
7511 REGB0 = REGB1;
7512 } else {
7513 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7514 REGB0 = REGB1;
7515 }
7516 }
7517 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7518 if (UNTAG_Bool(REGB0)) {
7519 /* ./parser//parser_prod.nit:1377 */
7520 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7521 if (UNTAG_Bool(REGB0)) {
7522 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1377);
7523 }
7524 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7525 /* ./parser//parser_prod.nit:1378 */
7526 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*/;
7527 if (UNTAG_Bool(REGB0)) {
7528 } else {
7529 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1378);
7530 }
7531 /* ./parser//parser_prod.nit:1379 */
7532 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
7533 } else {
7534 /* ./parser//parser_prod.nit:1381 */
7535 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1381);
7536 }
7537 /* ./parser//parser_prod.nit:1383 */
7538 goto label1;
7539 }
7540 /* ./parser//parser_prod.nit:1385 */
7541 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
7542 if (UNTAG_Bool(REGB0)) {
7543 } else {
7544 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1385);
7545 }
7546 fra.me.REG[3] = ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0]);
7547 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
7548 if (UNTAG_Bool(REGB0)) {
7549 } else {
7550 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7551 REGB0 = REGB1;
7552 }
7553 if (UNTAG_Bool(REGB0)) {
7554 /* ./parser//parser_prod.nit:1386 */
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:1387 */
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, 1387);
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:1388 */
7576 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*/;
7577 if (UNTAG_Bool(REGB0)) {
7578 } else {
7579 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1388);
7580 }
7581 /* ./parser//parser_prod.nit:1389 */
7582 ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
7583 } else {
7584 /* ./parser//parser_prod.nit:1391 */
7585 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1391);
7586 }
7587 /* ./parser//parser_prod.nit:1393 */
7588 goto label1;
7589 }
7590 /* ./parser//parser_prod.nit:1395 */
7591 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(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:1396 */
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:1397 */
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, 1397);
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:1398 */
7627 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*/;
7628 if (UNTAG_Bool(REGB0)) {
7629 } else {
7630 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1398);
7631 }
7632 /* ./parser//parser_prod.nit:1399 */
7633 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
7634 } else {
7635 /* ./parser//parser_prod.nit:1401 */
7636 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1401);
7637 }
7638 /* ./parser//parser_prod.nit:1403 */
7639 goto label1;
7640 }
7641 /* ./parser//parser_prod.nit:1405 */
7642 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(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:1406 */
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:1407 */
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, 1407);
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:1408 */
7678 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*/;
7679 if (UNTAG_Bool(REGB0)) {
7680 } else {
7681 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1408);
7682 }
7683 /* ./parser//parser_prod.nit:1409 */
7684 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
7685 } else {
7686 /* ./parser//parser_prod.nit:1411 */
7687 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1411);
7688 }
7689 /* ./parser//parser_prod.nit:1413 */
7690 goto label1;
7691 }
7692 label1: while(0);
7693 stack_frame_head = fra.me.prev;
7694 return;
7695 }
7696 void parser___parser_prod___AInternMethPropdef___visit_all(val_t p0, val_t p1){
7697 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7698 val_t REGB0;
7699 val_t REGB1;
7700 val_t tmp;
7701 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7702 fra.me.file = LOCATE_parser___parser_prod;
7703 fra.me.line = 1417;
7704 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___visit_all;
7705 fra.me.has_broke = 0;
7706 fra.me.REG_size = 4;
7707 fra.me.REG[0] = NIT_NULL;
7708 fra.me.REG[1] = NIT_NULL;
7709 fra.me.REG[2] = NIT_NULL;
7710 fra.me.REG[3] = NIT_NULL;
7711 fra.me.REG[0] = p0;
7712 fra.me.REG[1] = p1;
7713 /* ./parser//parser_prod.nit:1417 */
7714 fra.me.REG[2] = fra.me.REG[0];
7715 /* ./parser//parser_prod.nit:1419 */
7716 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7717 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7718 if (UNTAG_Bool(REGB0)) {
7719 } else {
7720 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7721 if (UNTAG_Bool(REGB1)) {
7722 REGB1 = TAG_Bool(false);
7723 REGB0 = REGB1;
7724 } else {
7725 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7726 REGB0 = REGB1;
7727 }
7728 }
7729 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7730 if (UNTAG_Bool(REGB0)) {
7731 /* ./parser//parser_prod.nit:1420 */
7732 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7733 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*/;
7734 if (UNTAG_Bool(REGB0)) {
7735 } else {
7736 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1420);
7737 }
7738 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7739 }
7740 /* ./parser//parser_prod.nit:1422 */
7741 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
7742 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7743 if (UNTAG_Bool(REGB0)) {
7744 } else {
7745 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7746 if (UNTAG_Bool(REGB1)) {
7747 REGB1 = TAG_Bool(false);
7748 REGB0 = REGB1;
7749 } else {
7750 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7751 REGB0 = REGB1;
7752 }
7753 }
7754 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7755 if (UNTAG_Bool(REGB0)) {
7756 /* ./parser//parser_prod.nit:1423 */
7757 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
7758 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*/;
7759 if (UNTAG_Bool(REGB0)) {
7760 } else {
7761 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1423);
7762 }
7763 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7764 }
7765 /* ./parser//parser_prod.nit:1425 */
7766 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
7767 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7768 /* ./parser//parser_prod.nit:1426 */
7769 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
7770 if (UNTAG_Bool(REGB0)) {
7771 } else {
7772 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1426);
7773 }
7774 fra.me.REG[3] = ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[2]);
7775 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7776 /* ./parser//parser_prod.nit:1427 */
7777 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
7778 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7779 /* ./parser//parser_prod.nit:1428 */
7780 fra.me.REG[2] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
7781 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
7782 stack_frame_head = fra.me.prev;
7783 return;
7784 }
7785 void parser___parser_prod___AExternMethPropdef___empty_init(val_t p0, int* init_table){
7786 int itpos43 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternMethPropdef].i;
7787 struct {struct stack_frame_t me;} fra;
7788 val_t tmp;
7789 if (init_table[itpos43]) return;
7790 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7791 fra.me.file = LOCATE_parser___parser_prod;
7792 fra.me.line = 1432;
7793 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___empty_init;
7794 fra.me.has_broke = 0;
7795 fra.me.REG_size = 1;
7796 fra.me.REG[0] = NIT_NULL;
7797 fra.me.REG[0] = p0;
7798 stack_frame_head = fra.me.prev;
7799 init_table[itpos43] = 1;
7800 return;
7801 }
7802 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, int* init_table){
7803 int itpos44 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternMethPropdef].i;
7804 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
7805 val_t REGB0;
7806 val_t REGB1;
7807 val_t tmp;
7808 if (init_table[itpos44]) return;
7809 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7810 fra.me.file = LOCATE_parser___parser_prod;
7811 fra.me.line = 1434;
7812 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef;
7813 fra.me.has_broke = 0;
7814 fra.me.REG_size = 9;
7815 fra.me.REG[0] = NIT_NULL;
7816 fra.me.REG[1] = NIT_NULL;
7817 fra.me.REG[2] = NIT_NULL;
7818 fra.me.REG[3] = NIT_NULL;
7819 fra.me.REG[4] = NIT_NULL;
7820 fra.me.REG[5] = NIT_NULL;
7821 fra.me.REG[6] = NIT_NULL;
7822 fra.me.REG[7] = NIT_NULL;
7823 fra.me.REG[8] = NIT_NULL;
7824 fra.me.REG[0] = p0;
7825 fra.me.REG[1] = p1;
7826 fra.me.REG[2] = p2;
7827 fra.me.REG[3] = p3;
7828 fra.me.REG[4] = p4;
7829 fra.me.REG[5] = p5;
7830 fra.me.REG[6] = p6;
7831 fra.me.REG[7] = p7;
7832 /* ./parser//parser_prod.nit:1434 */
7833 fra.me.REG[8] = fra.me.REG[0];
7834 /* ./parser//parser_prod.nit:1444 */
7835 CALL_parser___parser_prod___AExternMethPropdef___empty_init(fra.me.REG[8])(fra.me.REG[8], init_table);
7836 /* ./parser//parser_prod.nit:1445 */
7837 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[8]) = fra.me.REG[1];
7838 /* ./parser//parser_prod.nit:1446 */
7839 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7840 if (UNTAG_Bool(REGB0)) {
7841 } else {
7842 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7843 if (UNTAG_Bool(REGB1)) {
7844 REGB1 = TAG_Bool(false);
7845 REGB0 = REGB1;
7846 } else {
7847 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7848 REGB0 = REGB1;
7849 }
7850 }
7851 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7852 if (UNTAG_Bool(REGB0)) {
7853 /* ./parser//parser_prod.nit:1447 */
7854 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7855 if (UNTAG_Bool(REGB0)) {
7856 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1447);
7857 }
7858 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
7859 }
7860 /* ./parser//parser_prod.nit:1449 */
7861 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[8]) = fra.me.REG[2];
7862 /* ./parser//parser_prod.nit:1450 */
7863 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7864 if (UNTAG_Bool(REGB0)) {
7865 } else {
7866 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7867 if (UNTAG_Bool(REGB1)) {
7868 REGB1 = TAG_Bool(false);
7869 REGB0 = REGB1;
7870 } else {
7871 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7872 REGB0 = REGB1;
7873 }
7874 }
7875 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7876 if (UNTAG_Bool(REGB0)) {
7877 /* ./parser//parser_prod.nit:1451 */
7878 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7879 if (UNTAG_Bool(REGB0)) {
7880 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1451);
7881 }
7882 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
7883 }
7884 /* ./parser//parser_prod.nit:1453 */
7885 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
7886 if (UNTAG_Bool(REGB0)) {
7887 } else {
7888 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1453);
7889 }
7890 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[8]) = fra.me.REG[3];
7891 /* ./parser//parser_prod.nit:1454 */
7892 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7893 if (UNTAG_Bool(REGB0)) {
7894 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1454);
7895 }
7896 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
7897 /* ./parser//parser_prod.nit:1455 */
7898 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
7899 if (UNTAG_Bool(REGB0)) {
7900 } else {
7901 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1455);
7902 }
7903 ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[8]) = fra.me.REG[4];
7904 /* ./parser//parser_prod.nit:1456 */
7905 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7906 if (UNTAG_Bool(REGB0)) {
7907 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1456);
7908 }
7909 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
7910 /* ./parser//parser_prod.nit:1457 */
7911 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
7912 if (UNTAG_Bool(REGB0)) {
7913 } else {
7914 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1457);
7915 }
7916 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[8]) = fra.me.REG[5];
7917 /* ./parser//parser_prod.nit:1458 */
7918 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7919 if (UNTAG_Bool(REGB0)) {
7920 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1458);
7921 }
7922 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
7923 /* ./parser//parser_prod.nit:1459 */
7924 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
7925 if (UNTAG_Bool(REGB0)) {
7926 } else {
7927 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1459);
7928 }
7929 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[8]) = fra.me.REG[6];
7930 /* ./parser//parser_prod.nit:1460 */
7931 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
7932 if (UNTAG_Bool(REGB0)) {
7933 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1460);
7934 }
7935 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
7936 /* ./parser//parser_prod.nit:1461 */
7937 ATTR_parser___parser_nodes___AExternMethPropdef____n_extern(fra.me.REG[8]) = fra.me.REG[7];
7938 /* ./parser//parser_prod.nit:1462 */
7939 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7940 if (UNTAG_Bool(REGB0)) {
7941 } else {
7942 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7943 if (UNTAG_Bool(REGB1)) {
7944 REGB1 = TAG_Bool(false);
7945 REGB0 = REGB1;
7946 } else {
7947 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
7948 REGB0 = REGB1;
7949 }
7950 }
7951 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7952 if (UNTAG_Bool(REGB0)) {
7953 /* ./parser//parser_prod.nit:1463 */
7954 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7955 if (UNTAG_Bool(REGB0)) {
7956 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1463);
7957 }
7958 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
7959 }
7960 stack_frame_head = fra.me.prev;
7961 init_table[itpos44] = 1;
7962 return;
7963 }
7964 void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
7965 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7966 val_t REGB0;
7967 val_t REGB1;
7968 val_t tmp;
7969 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7970 fra.me.file = LOCATE_parser___parser_prod;
7971 fra.me.line = 1467;
7972 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___replace_child;
7973 fra.me.has_broke = 0;
7974 fra.me.REG_size = 4;
7975 fra.me.REG[0] = NIT_NULL;
7976 fra.me.REG[1] = NIT_NULL;
7977 fra.me.REG[2] = NIT_NULL;
7978 fra.me.REG[3] = NIT_NULL;
7979 fra.me.REG[0] = p0;
7980 fra.me.REG[1] = p1;
7981 fra.me.REG[2] = p2;
7982 /* ./parser//parser_prod.nit:1469 */
7983 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
7984 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7985 if (UNTAG_Bool(REGB0)) {
7986 } else {
7987 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7988 if (UNTAG_Bool(REGB1)) {
7989 REGB1 = TAG_Bool(false);
7990 REGB0 = REGB1;
7991 } else {
7992 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7993 REGB0 = REGB1;
7994 }
7995 }
7996 if (UNTAG_Bool(REGB0)) {
7997 /* ./parser//parser_prod.nit:1470 */
7998 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7999 if (UNTAG_Bool(REGB0)) {
8000 } else {
8001 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8002 if (UNTAG_Bool(REGB1)) {
8003 REGB1 = TAG_Bool(false);
8004 REGB0 = REGB1;
8005 } else {
8006 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8007 REGB0 = REGB1;
8008 }
8009 }
8010 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8011 if (UNTAG_Bool(REGB0)) {
8012 /* ./parser//parser_prod.nit:1471 */
8013 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8014 if (UNTAG_Bool(REGB0)) {
8015 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1471);
8016 }
8017 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8018 /* ./parser//parser_prod.nit:1472 */
8019 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*/;
8020 if (UNTAG_Bool(REGB0)) {
8021 } else {
8022 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1472);
8023 }
8024 /* ./parser//parser_prod.nit:1473 */
8025 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
8026 } else {
8027 /* ./parser//parser_prod.nit:1475 */
8028 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
8029 }
8030 /* ./parser//parser_prod.nit:1477 */
8031 goto label1;
8032 }
8033 /* ./parser//parser_prod.nit:1479 */
8034 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
8035 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8036 if (UNTAG_Bool(REGB0)) {
8037 } else {
8038 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8039 if (UNTAG_Bool(REGB1)) {
8040 REGB1 = TAG_Bool(false);
8041 REGB0 = REGB1;
8042 } else {
8043 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8044 REGB0 = REGB1;
8045 }
8046 }
8047 if (UNTAG_Bool(REGB0)) {
8048 /* ./parser//parser_prod.nit:1480 */
8049 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8050 if (UNTAG_Bool(REGB0)) {
8051 } else {
8052 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8053 if (UNTAG_Bool(REGB1)) {
8054 REGB1 = TAG_Bool(false);
8055 REGB0 = REGB1;
8056 } else {
8057 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8058 REGB0 = REGB1;
8059 }
8060 }
8061 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8062 if (UNTAG_Bool(REGB0)) {
8063 /* ./parser//parser_prod.nit:1481 */
8064 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8065 if (UNTAG_Bool(REGB0)) {
8066 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1481);
8067 }
8068 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8069 /* ./parser//parser_prod.nit:1482 */
8070 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*/;
8071 if (UNTAG_Bool(REGB0)) {
8072 } else {
8073 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1482);
8074 }
8075 /* ./parser//parser_prod.nit:1483 */
8076 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
8077 } else {
8078 /* ./parser//parser_prod.nit:1485 */
8079 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
8080 }
8081 /* ./parser//parser_prod.nit:1487 */
8082 goto label1;
8083 }
8084 /* ./parser//parser_prod.nit:1489 */
8085 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
8086 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8087 if (UNTAG_Bool(REGB0)) {
8088 } else {
8089 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8090 if (UNTAG_Bool(REGB1)) {
8091 REGB1 = TAG_Bool(false);
8092 REGB0 = REGB1;
8093 } else {
8094 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8095 REGB0 = REGB1;
8096 }
8097 }
8098 if (UNTAG_Bool(REGB0)) {
8099 /* ./parser//parser_prod.nit:1490 */
8100 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8101 if (UNTAG_Bool(REGB0)) {
8102 } else {
8103 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8104 if (UNTAG_Bool(REGB1)) {
8105 REGB1 = TAG_Bool(false);
8106 REGB0 = REGB1;
8107 } else {
8108 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8109 REGB0 = REGB1;
8110 }
8111 }
8112 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8113 if (UNTAG_Bool(REGB0)) {
8114 /* ./parser//parser_prod.nit:1491 */
8115 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8116 if (UNTAG_Bool(REGB0)) {
8117 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1491);
8118 }
8119 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8120 /* ./parser//parser_prod.nit:1492 */
8121 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*/;
8122 if (UNTAG_Bool(REGB0)) {
8123 } else {
8124 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1492);
8125 }
8126 /* ./parser//parser_prod.nit:1493 */
8127 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
8128 } else {
8129 /* ./parser//parser_prod.nit:1495 */
8130 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1495);
8131 }
8132 /* ./parser//parser_prod.nit:1497 */
8133 goto label1;
8134 }
8135 /* ./parser//parser_prod.nit:1499 */
8136 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
8137 if (UNTAG_Bool(REGB0)) {
8138 } else {
8139 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1499);
8140 }
8141 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]);
8142 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
8143 if (UNTAG_Bool(REGB0)) {
8144 } else {
8145 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8146 REGB0 = REGB1;
8147 }
8148 if (UNTAG_Bool(REGB0)) {
8149 /* ./parser//parser_prod.nit:1500 */
8150 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8151 if (UNTAG_Bool(REGB0)) {
8152 } else {
8153 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8154 if (UNTAG_Bool(REGB1)) {
8155 REGB1 = TAG_Bool(false);
8156 REGB0 = REGB1;
8157 } else {
8158 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8159 REGB0 = REGB1;
8160 }
8161 }
8162 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8163 if (UNTAG_Bool(REGB0)) {
8164 /* ./parser//parser_prod.nit:1501 */
8165 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8166 if (UNTAG_Bool(REGB0)) {
8167 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1501);
8168 }
8169 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8170 /* ./parser//parser_prod.nit:1502 */
8171 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*/;
8172 if (UNTAG_Bool(REGB0)) {
8173 } else {
8174 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1502);
8175 }
8176 /* ./parser//parser_prod.nit:1503 */
8177 ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
8178 } else {
8179 /* ./parser//parser_prod.nit:1505 */
8180 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1505);
8181 }
8182 /* ./parser//parser_prod.nit:1507 */
8183 goto label1;
8184 }
8185 /* ./parser//parser_prod.nit:1509 */
8186 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
8187 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8188 if (UNTAG_Bool(REGB0)) {
8189 } else {
8190 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8191 if (UNTAG_Bool(REGB1)) {
8192 REGB1 = TAG_Bool(false);
8193 REGB0 = REGB1;
8194 } else {
8195 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8196 REGB0 = REGB1;
8197 }
8198 }
8199 if (UNTAG_Bool(REGB0)) {
8200 /* ./parser//parser_prod.nit:1510 */
8201 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8202 if (UNTAG_Bool(REGB0)) {
8203 } else {
8204 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8205 if (UNTAG_Bool(REGB1)) {
8206 REGB1 = TAG_Bool(false);
8207 REGB0 = REGB1;
8208 } else {
8209 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8210 REGB0 = REGB1;
8211 }
8212 }
8213 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8214 if (UNTAG_Bool(REGB0)) {
8215 /* ./parser//parser_prod.nit:1511 */
8216 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8217 if (UNTAG_Bool(REGB0)) {
8218 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1511);
8219 }
8220 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8221 /* ./parser//parser_prod.nit:1512 */
8222 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*/;
8223 if (UNTAG_Bool(REGB0)) {
8224 } else {
8225 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1512);
8226 }
8227 /* ./parser//parser_prod.nit:1513 */
8228 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
8229 } else {
8230 /* ./parser//parser_prod.nit:1515 */
8231 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1515);
8232 }
8233 /* ./parser//parser_prod.nit:1517 */
8234 goto label1;
8235 }
8236 /* ./parser//parser_prod.nit:1519 */
8237 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
8238 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8239 if (UNTAG_Bool(REGB0)) {
8240 } else {
8241 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8242 if (UNTAG_Bool(REGB1)) {
8243 REGB1 = TAG_Bool(false);
8244 REGB0 = REGB1;
8245 } else {
8246 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8247 REGB0 = REGB1;
8248 }
8249 }
8250 if (UNTAG_Bool(REGB0)) {
8251 /* ./parser//parser_prod.nit:1520 */
8252 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8253 if (UNTAG_Bool(REGB0)) {
8254 } else {
8255 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8256 if (UNTAG_Bool(REGB1)) {
8257 REGB1 = TAG_Bool(false);
8258 REGB0 = REGB1;
8259 } else {
8260 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8261 REGB0 = REGB1;
8262 }
8263 }
8264 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8265 if (UNTAG_Bool(REGB0)) {
8266 /* ./parser//parser_prod.nit:1521 */
8267 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8268 if (UNTAG_Bool(REGB0)) {
8269 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1521);
8270 }
8271 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8272 /* ./parser//parser_prod.nit:1522 */
8273 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*/;
8274 if (UNTAG_Bool(REGB0)) {
8275 } else {
8276 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1522);
8277 }
8278 /* ./parser//parser_prod.nit:1523 */
8279 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
8280 } else {
8281 /* ./parser//parser_prod.nit:1525 */
8282 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1525);
8283 }
8284 /* ./parser//parser_prod.nit:1527 */
8285 goto label1;
8286 }
8287 /* ./parser//parser_prod.nit:1529 */
8288 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternMethPropdef____n_extern(fra.me.REG[0]);
8289 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8290 if (UNTAG_Bool(REGB0)) {
8291 } else {
8292 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8293 if (UNTAG_Bool(REGB1)) {
8294 REGB1 = TAG_Bool(false);
8295 REGB0 = REGB1;
8296 } else {
8297 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8298 REGB0 = REGB1;
8299 }
8300 }
8301 if (UNTAG_Bool(REGB0)) {
8302 /* ./parser//parser_prod.nit:1530 */
8303 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8304 if (UNTAG_Bool(REGB0)) {
8305 } else {
8306 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8307 if (UNTAG_Bool(REGB1)) {
8308 REGB1 = TAG_Bool(false);
8309 REGB0 = REGB1;
8310 } else {
8311 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8312 REGB0 = REGB1;
8313 }
8314 }
8315 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8316 if (UNTAG_Bool(REGB0)) {
8317 /* ./parser//parser_prod.nit:1531 */
8318 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8319 if (UNTAG_Bool(REGB0)) {
8320 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1531);
8321 }
8322 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8323 /* ./parser//parser_prod.nit:1532 */
8324 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*/;
8325 if (UNTAG_Bool(REGB0)) {
8326 } else {
8327 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1532);
8328 }
8329 /* ./parser//parser_prod.nit:1533 */
8330 ATTR_parser___parser_nodes___AExternMethPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[2];
8331 } else {
8332 /* ./parser//parser_prod.nit:1535 */
8333 ATTR_parser___parser_nodes___AExternMethPropdef____n_extern(fra.me.REG[0]) = NIT_NULL;
8334 }
8335 /* ./parser//parser_prod.nit:1537 */
8336 goto label1;
8337 }
8338 label1: while(0);
8339 stack_frame_head = fra.me.prev;
8340 return;
8341 }
8342 void parser___parser_prod___AExternMethPropdef___visit_all(val_t p0, val_t p1){
8343 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8344 val_t REGB0;
8345 val_t REGB1;
8346 val_t tmp;
8347 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8348 fra.me.file = LOCATE_parser___parser_prod;
8349 fra.me.line = 1541;
8350 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___visit_all;
8351 fra.me.has_broke = 0;
8352 fra.me.REG_size = 4;
8353 fra.me.REG[0] = NIT_NULL;
8354 fra.me.REG[1] = NIT_NULL;
8355 fra.me.REG[2] = NIT_NULL;
8356 fra.me.REG[3] = NIT_NULL;
8357 fra.me.REG[0] = p0;
8358 fra.me.REG[1] = p1;
8359 /* ./parser//parser_prod.nit:1541 */
8360 fra.me.REG[2] = fra.me.REG[0];
8361 /* ./parser//parser_prod.nit:1543 */
8362 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
8363 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8364 if (UNTAG_Bool(REGB0)) {
8365 } else {
8366 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8367 if (UNTAG_Bool(REGB1)) {
8368 REGB1 = TAG_Bool(false);
8369 REGB0 = REGB1;
8370 } else {
8371 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8372 REGB0 = REGB1;
8373 }
8374 }
8375 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8376 if (UNTAG_Bool(REGB0)) {
8377 /* ./parser//parser_prod.nit:1544 */
8378 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
8379 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*/;
8380 if (UNTAG_Bool(REGB0)) {
8381 } else {
8382 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1544);
8383 }
8384 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8385 }
8386 /* ./parser//parser_prod.nit:1546 */
8387 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
8388 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8389 if (UNTAG_Bool(REGB0)) {
8390 } else {
8391 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8392 if (UNTAG_Bool(REGB1)) {
8393 REGB1 = TAG_Bool(false);
8394 REGB0 = REGB1;
8395 } else {
8396 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8397 REGB0 = REGB1;
8398 }
8399 }
8400 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8401 if (UNTAG_Bool(REGB0)) {
8402 /* ./parser//parser_prod.nit:1547 */
8403 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
8404 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*/;
8405 if (UNTAG_Bool(REGB0)) {
8406 } else {
8407 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1547);
8408 }
8409 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8410 }
8411 /* ./parser//parser_prod.nit:1549 */
8412 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
8413 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8414 /* ./parser//parser_prod.nit:1550 */
8415 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
8416 if (UNTAG_Bool(REGB0)) {
8417 } else {
8418 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1550);
8419 }
8420 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[2]);
8421 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8422 /* ./parser//parser_prod.nit:1551 */
8423 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
8424 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8425 /* ./parser//parser_prod.nit:1552 */
8426 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
8427 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8428 /* ./parser//parser_prod.nit:1553 */
8429 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternMethPropdef____n_extern(fra.me.REG[2]);
8430 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8431 if (UNTAG_Bool(REGB0)) {
8432 } else {
8433 REGB1 = TAG_Bool(fra.me.REG[3]==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[3])(fra.me.REG[3], NIT_NULL);
8439 REGB0 = REGB1;
8440 }
8441 }
8442 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8443 if (UNTAG_Bool(REGB0)) {
8444 /* ./parser//parser_prod.nit:1554 */
8445 fra.me.REG[2] = ATTR_parser___parser_nodes___AExternMethPropdef____n_extern(fra.me.REG[2]);
8446 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*/;
8447 if (UNTAG_Bool(REGB0)) {
8448 } else {
8449 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1554);
8450 }
8451 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8452 }
8453 stack_frame_head = fra.me.prev;
8454 return;
8455 }
8456 void parser___parser_prod___AConcreteMethPropdef___empty_init(val_t p0, int* init_table){
8457 int itpos45 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteMethPropdef].i;
8458 struct {struct stack_frame_t me;} fra;
8459 val_t tmp;
8460 if (init_table[itpos45]) return;
8461 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8462 fra.me.file = LOCATE_parser___parser_prod;
8463 fra.me.line = 1559;
8464 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___empty_init;
8465 fra.me.has_broke = 0;
8466 fra.me.REG_size = 1;
8467 fra.me.REG[0] = NIT_NULL;
8468 fra.me.REG[0] = p0;
8469 stack_frame_head = fra.me.prev;
8470 init_table[itpos45] = 1;
8471 return;
8472 }
8473 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){
8474 int itpos46 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteMethPropdef].i;
8475 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
8476 val_t REGB0;
8477 val_t REGB1;
8478 val_t tmp;
8479 if (init_table[itpos46]) return;
8480 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8481 fra.me.file = LOCATE_parser___parser_prod;
8482 fra.me.line = 1561;
8483 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef;
8484 fra.me.has_broke = 0;
8485 fra.me.REG_size = 9;
8486 fra.me.REG[0] = NIT_NULL;
8487 fra.me.REG[1] = NIT_NULL;
8488 fra.me.REG[2] = NIT_NULL;
8489 fra.me.REG[3] = NIT_NULL;
8490 fra.me.REG[4] = NIT_NULL;
8491 fra.me.REG[5] = NIT_NULL;
8492 fra.me.REG[6] = NIT_NULL;
8493 fra.me.REG[7] = NIT_NULL;
8494 fra.me.REG[8] = NIT_NULL;
8495 fra.me.REG[0] = p0;
8496 fra.me.REG[1] = p1;
8497 fra.me.REG[2] = p2;
8498 fra.me.REG[3] = p3;
8499 fra.me.REG[4] = p4;
8500 fra.me.REG[5] = p5;
8501 fra.me.REG[6] = p6;
8502 fra.me.REG[7] = p7;
8503 /* ./parser//parser_prod.nit:1561 */
8504 fra.me.REG[8] = fra.me.REG[0];
8505 /* ./parser//parser_prod.nit:1571 */
8506 CALL_parser___parser_prod___AConcreteMethPropdef___empty_init(fra.me.REG[8])(fra.me.REG[8], init_table);
8507 /* ./parser//parser_prod.nit:1572 */
8508 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[8]) = fra.me.REG[1];
8509 /* ./parser//parser_prod.nit:1573 */
8510 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8511 if (UNTAG_Bool(REGB0)) {
8512 } else {
8513 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8514 if (UNTAG_Bool(REGB1)) {
8515 REGB1 = TAG_Bool(false);
8516 REGB0 = REGB1;
8517 } else {
8518 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8519 REGB0 = REGB1;
8520 }
8521 }
8522 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8523 if (UNTAG_Bool(REGB0)) {
8524 /* ./parser//parser_prod.nit:1574 */
8525 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8526 if (UNTAG_Bool(REGB0)) {
8527 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1574);
8528 }
8529 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
8530 }
8531 /* ./parser//parser_prod.nit:1576 */
8532 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[8]) = fra.me.REG[2];
8533 /* ./parser//parser_prod.nit:1577 */
8534 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8535 if (UNTAG_Bool(REGB0)) {
8536 } else {
8537 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8538 if (UNTAG_Bool(REGB1)) {
8539 REGB1 = TAG_Bool(false);
8540 REGB0 = REGB1;
8541 } else {
8542 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8543 REGB0 = REGB1;
8544 }
8545 }
8546 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8547 if (UNTAG_Bool(REGB0)) {
8548 /* ./parser//parser_prod.nit:1578 */
8549 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8550 if (UNTAG_Bool(REGB0)) {
8551 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1578);
8552 }
8553 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
8554 }
8555 /* ./parser//parser_prod.nit:1580 */
8556 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
8557 if (UNTAG_Bool(REGB0)) {
8558 } else {
8559 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1580);
8560 }
8561 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[8]) = fra.me.REG[3];
8562 /* ./parser//parser_prod.nit:1581 */
8563 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8564 if (UNTAG_Bool(REGB0)) {
8565 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1581);
8566 }
8567 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
8568 /* ./parser//parser_prod.nit:1582 */
8569 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8570 if (UNTAG_Bool(REGB0)) {
8571 } else {
8572 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1582);
8573 }
8574 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[8]) = fra.me.REG[4];
8575 /* ./parser//parser_prod.nit:1583 */
8576 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8577 if (UNTAG_Bool(REGB0)) {
8578 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1583);
8579 }
8580 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
8581 /* ./parser//parser_prod.nit:1584 */
8582 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
8583 if (UNTAG_Bool(REGB0)) {
8584 } else {
8585 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1584);
8586 }
8587 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[8]) = fra.me.REG[5];
8588 /* ./parser//parser_prod.nit:1585 */
8589 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8590 if (UNTAG_Bool(REGB0)) {
8591 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1585);
8592 }
8593 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
8594 /* ./parser//parser_prod.nit:1586 */
8595 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
8596 if (UNTAG_Bool(REGB0)) {
8597 } else {
8598 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1586);
8599 }
8600 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[8]) = fra.me.REG[6];
8601 /* ./parser//parser_prod.nit:1587 */
8602 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8603 if (UNTAG_Bool(REGB0)) {
8604 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1587);
8605 }
8606 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
8607 /* ./parser//parser_prod.nit:1588 */
8608 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[8]) = fra.me.REG[7];
8609 /* ./parser//parser_prod.nit:1589 */
8610 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8611 if (UNTAG_Bool(REGB0)) {
8612 } else {
8613 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8614 if (UNTAG_Bool(REGB1)) {
8615 REGB1 = TAG_Bool(false);
8616 REGB0 = REGB1;
8617 } else {
8618 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
8619 REGB0 = REGB1;
8620 }
8621 }
8622 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8623 if (UNTAG_Bool(REGB0)) {
8624 /* ./parser//parser_prod.nit:1590 */
8625 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8626 if (UNTAG_Bool(REGB0)) {
8627 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1590);
8628 }
8629 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
8630 }
8631 stack_frame_head = fra.me.prev;
8632 init_table[itpos46] = 1;
8633 return;
8634 }
8635 void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
8636 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8637 val_t REGB0;
8638 val_t REGB1;
8639 val_t tmp;
8640 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8641 fra.me.file = LOCATE_parser___parser_prod;
8642 fra.me.line = 1594;
8643 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___replace_child;
8644 fra.me.has_broke = 0;
8645 fra.me.REG_size = 4;
8646 fra.me.REG[0] = NIT_NULL;
8647 fra.me.REG[1] = NIT_NULL;
8648 fra.me.REG[2] = NIT_NULL;
8649 fra.me.REG[3] = NIT_NULL;
8650 fra.me.REG[0] = p0;
8651 fra.me.REG[1] = p1;
8652 fra.me.REG[2] = p2;
8653 /* ./parser//parser_prod.nit:1596 */
8654 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
8655 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8656 if (UNTAG_Bool(REGB0)) {
8657 } else {
8658 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8659 if (UNTAG_Bool(REGB1)) {
8660 REGB1 = TAG_Bool(false);
8661 REGB0 = REGB1;
8662 } else {
8663 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8664 REGB0 = REGB1;
8665 }
8666 }
8667 if (UNTAG_Bool(REGB0)) {
8668 /* ./parser//parser_prod.nit:1597 */
8669 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8670 if (UNTAG_Bool(REGB0)) {
8671 } else {
8672 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8673 if (UNTAG_Bool(REGB1)) {
8674 REGB1 = TAG_Bool(false);
8675 REGB0 = REGB1;
8676 } else {
8677 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8678 REGB0 = REGB1;
8679 }
8680 }
8681 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8682 if (UNTAG_Bool(REGB0)) {
8683 /* ./parser//parser_prod.nit:1598 */
8684 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8685 if (UNTAG_Bool(REGB0)) {
8686 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1598);
8687 }
8688 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8689 /* ./parser//parser_prod.nit:1599 */
8690 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*/;
8691 if (UNTAG_Bool(REGB0)) {
8692 } else {
8693 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1599);
8694 }
8695 /* ./parser//parser_prod.nit:1600 */
8696 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
8697 } else {
8698 /* ./parser//parser_prod.nit:1602 */
8699 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
8700 }
8701 /* ./parser//parser_prod.nit:1604 */
8702 goto label1;
8703 }
8704 /* ./parser//parser_prod.nit:1606 */
8705 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
8706 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8707 if (UNTAG_Bool(REGB0)) {
8708 } else {
8709 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8710 if (UNTAG_Bool(REGB1)) {
8711 REGB1 = TAG_Bool(false);
8712 REGB0 = REGB1;
8713 } else {
8714 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8715 REGB0 = REGB1;
8716 }
8717 }
8718 if (UNTAG_Bool(REGB0)) {
8719 /* ./parser//parser_prod.nit:1607 */
8720 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8721 if (UNTAG_Bool(REGB0)) {
8722 } else {
8723 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8724 if (UNTAG_Bool(REGB1)) {
8725 REGB1 = TAG_Bool(false);
8726 REGB0 = REGB1;
8727 } else {
8728 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8729 REGB0 = REGB1;
8730 }
8731 }
8732 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8733 if (UNTAG_Bool(REGB0)) {
8734 /* ./parser//parser_prod.nit:1608 */
8735 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8736 if (UNTAG_Bool(REGB0)) {
8737 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1608);
8738 }
8739 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8740 /* ./parser//parser_prod.nit:1609 */
8741 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*/;
8742 if (UNTAG_Bool(REGB0)) {
8743 } else {
8744 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1609);
8745 }
8746 /* ./parser//parser_prod.nit:1610 */
8747 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
8748 } else {
8749 /* ./parser//parser_prod.nit:1612 */
8750 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
8751 }
8752 /* ./parser//parser_prod.nit:1614 */
8753 goto label1;
8754 }
8755 /* ./parser//parser_prod.nit:1616 */
8756 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
8757 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8758 if (UNTAG_Bool(REGB0)) {
8759 } else {
8760 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8761 if (UNTAG_Bool(REGB1)) {
8762 REGB1 = TAG_Bool(false);
8763 REGB0 = REGB1;
8764 } else {
8765 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8766 REGB0 = REGB1;
8767 }
8768 }
8769 if (UNTAG_Bool(REGB0)) {
8770 /* ./parser//parser_prod.nit:1617 */
8771 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8772 if (UNTAG_Bool(REGB0)) {
8773 } else {
8774 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8775 if (UNTAG_Bool(REGB1)) {
8776 REGB1 = TAG_Bool(false);
8777 REGB0 = REGB1;
8778 } else {
8779 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8780 REGB0 = REGB1;
8781 }
8782 }
8783 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8784 if (UNTAG_Bool(REGB0)) {
8785 /* ./parser//parser_prod.nit:1618 */
8786 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8787 if (UNTAG_Bool(REGB0)) {
8788 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1618);
8789 }
8790 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8791 /* ./parser//parser_prod.nit:1619 */
8792 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*/;
8793 if (UNTAG_Bool(REGB0)) {
8794 } else {
8795 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1619);
8796 }
8797 /* ./parser//parser_prod.nit:1620 */
8798 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
8799 } else {
8800 /* ./parser//parser_prod.nit:1622 */
8801 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1622);
8802 }
8803 /* ./parser//parser_prod.nit:1624 */
8804 goto label1;
8805 }
8806 /* ./parser//parser_prod.nit:1626 */
8807 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]);
8808 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8809 if (UNTAG_Bool(REGB0)) {
8810 } else {
8811 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8812 if (UNTAG_Bool(REGB1)) {
8813 REGB1 = TAG_Bool(false);
8814 REGB0 = REGB1;
8815 } else {
8816 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8817 REGB0 = REGB1;
8818 }
8819 }
8820 if (UNTAG_Bool(REGB0)) {
8821 /* ./parser//parser_prod.nit:1627 */
8822 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8823 if (UNTAG_Bool(REGB0)) {
8824 } else {
8825 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8826 if (UNTAG_Bool(REGB1)) {
8827 REGB1 = TAG_Bool(false);
8828 REGB0 = REGB1;
8829 } else {
8830 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8831 REGB0 = REGB1;
8832 }
8833 }
8834 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8835 if (UNTAG_Bool(REGB0)) {
8836 /* ./parser//parser_prod.nit:1628 */
8837 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8838 if (UNTAG_Bool(REGB0)) {
8839 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1628);
8840 }
8841 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8842 /* ./parser//parser_prod.nit:1629 */
8843 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*/;
8844 if (UNTAG_Bool(REGB0)) {
8845 } else {
8846 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1629);
8847 }
8848 /* ./parser//parser_prod.nit:1630 */
8849 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
8850 } else {
8851 /* ./parser//parser_prod.nit:1632 */
8852 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1632);
8853 }
8854 /* ./parser//parser_prod.nit:1634 */
8855 goto label1;
8856 }
8857 /* ./parser//parser_prod.nit:1636 */
8858 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
8859 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8860 if (UNTAG_Bool(REGB0)) {
8861 } else {
8862 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8863 if (UNTAG_Bool(REGB1)) {
8864 REGB1 = TAG_Bool(false);
8865 REGB0 = REGB1;
8866 } else {
8867 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8868 REGB0 = REGB1;
8869 }
8870 }
8871 if (UNTAG_Bool(REGB0)) {
8872 /* ./parser//parser_prod.nit:1637 */
8873 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8874 if (UNTAG_Bool(REGB0)) {
8875 } else {
8876 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8877 if (UNTAG_Bool(REGB1)) {
8878 REGB1 = TAG_Bool(false);
8879 REGB0 = REGB1;
8880 } else {
8881 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8882 REGB0 = REGB1;
8883 }
8884 }
8885 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8886 if (UNTAG_Bool(REGB0)) {
8887 /* ./parser//parser_prod.nit:1638 */
8888 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8889 if (UNTAG_Bool(REGB0)) {
8890 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1638);
8891 }
8892 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8893 /* ./parser//parser_prod.nit:1639 */
8894 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*/;
8895 if (UNTAG_Bool(REGB0)) {
8896 } else {
8897 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1639);
8898 }
8899 /* ./parser//parser_prod.nit:1640 */
8900 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
8901 } else {
8902 /* ./parser//parser_prod.nit:1642 */
8903 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1642);
8904 }
8905 /* ./parser//parser_prod.nit:1644 */
8906 goto label1;
8907 }
8908 /* ./parser//parser_prod.nit:1646 */
8909 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
8910 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8911 if (UNTAG_Bool(REGB0)) {
8912 } else {
8913 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8914 if (UNTAG_Bool(REGB1)) {
8915 REGB1 = TAG_Bool(false);
8916 REGB0 = REGB1;
8917 } else {
8918 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8919 REGB0 = REGB1;
8920 }
8921 }
8922 if (UNTAG_Bool(REGB0)) {
8923 /* ./parser//parser_prod.nit:1647 */
8924 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8925 if (UNTAG_Bool(REGB0)) {
8926 } else {
8927 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8928 if (UNTAG_Bool(REGB1)) {
8929 REGB1 = TAG_Bool(false);
8930 REGB0 = REGB1;
8931 } else {
8932 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8933 REGB0 = REGB1;
8934 }
8935 }
8936 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8937 if (UNTAG_Bool(REGB0)) {
8938 /* ./parser//parser_prod.nit:1648 */
8939 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8940 if (UNTAG_Bool(REGB0)) {
8941 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1648);
8942 }
8943 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8944 /* ./parser//parser_prod.nit:1649 */
8945 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*/;
8946 if (UNTAG_Bool(REGB0)) {
8947 } else {
8948 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1649);
8949 }
8950 /* ./parser//parser_prod.nit:1650 */
8951 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
8952 } else {
8953 /* ./parser//parser_prod.nit:1652 */
8954 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1652);
8955 }
8956 /* ./parser//parser_prod.nit:1654 */
8957 goto label1;
8958 }
8959 /* ./parser//parser_prod.nit:1656 */
8960 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
8961 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8962 if (UNTAG_Bool(REGB0)) {
8963 } else {
8964 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8965 if (UNTAG_Bool(REGB1)) {
8966 REGB1 = TAG_Bool(false);
8967 REGB0 = REGB1;
8968 } else {
8969 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8970 REGB0 = REGB1;
8971 }
8972 }
8973 if (UNTAG_Bool(REGB0)) {
8974 /* ./parser//parser_prod.nit:1657 */
8975 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8976 if (UNTAG_Bool(REGB0)) {
8977 } else {
8978 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8979 if (UNTAG_Bool(REGB1)) {
8980 REGB1 = TAG_Bool(false);
8981 REGB0 = REGB1;
8982 } else {
8983 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8984 REGB0 = REGB1;
8985 }
8986 }
8987 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8988 if (UNTAG_Bool(REGB0)) {
8989 /* ./parser//parser_prod.nit:1658 */
8990 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8991 if (UNTAG_Bool(REGB0)) {
8992 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1658);
8993 }
8994 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8995 /* ./parser//parser_prod.nit:1659 */
8996 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
8997 if (UNTAG_Bool(REGB0)) {
8998 } else {
8999 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1659);
9000 }
9001 /* ./parser//parser_prod.nit:1660 */
9002 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
9003 } else {
9004 /* ./parser//parser_prod.nit:1662 */
9005 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
9006 }
9007 /* ./parser//parser_prod.nit:1664 */
9008 goto label1;
9009 }
9010 label1: while(0);
9011 stack_frame_head = fra.me.prev;
9012 return;
9013 }
9014 void parser___parser_prod___AConcreteMethPropdef___visit_all(val_t p0, val_t p1){
9015 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9016 val_t REGB0;
9017 val_t REGB1;
9018 val_t tmp;
9019 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9020 fra.me.file = LOCATE_parser___parser_prod;
9021 fra.me.line = 1668;
9022 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___visit_all;
9023 fra.me.has_broke = 0;
9024 fra.me.REG_size = 4;
9025 fra.me.REG[0] = NIT_NULL;
9026 fra.me.REG[1] = NIT_NULL;
9027 fra.me.REG[2] = NIT_NULL;
9028 fra.me.REG[3] = NIT_NULL;
9029 fra.me.REG[0] = p0;
9030 fra.me.REG[1] = p1;
9031 /* ./parser//parser_prod.nit:1668 */
9032 fra.me.REG[2] = fra.me.REG[0];
9033 /* ./parser//parser_prod.nit:1670 */
9034 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
9035 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9036 if (UNTAG_Bool(REGB0)) {
9037 } else {
9038 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9039 if (UNTAG_Bool(REGB1)) {
9040 REGB1 = TAG_Bool(false);
9041 REGB0 = REGB1;
9042 } else {
9043 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9044 REGB0 = REGB1;
9045 }
9046 }
9047 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9048 if (UNTAG_Bool(REGB0)) {
9049 /* ./parser//parser_prod.nit:1671 */
9050 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
9051 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*/;
9052 if (UNTAG_Bool(REGB0)) {
9053 } else {
9054 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1671);
9055 }
9056 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9057 }
9058 /* ./parser//parser_prod.nit:1673 */
9059 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
9060 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9061 if (UNTAG_Bool(REGB0)) {
9062 } else {
9063 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9064 if (UNTAG_Bool(REGB1)) {
9065 REGB1 = TAG_Bool(false);
9066 REGB0 = REGB1;
9067 } else {
9068 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9069 REGB0 = REGB1;
9070 }
9071 }
9072 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9073 if (UNTAG_Bool(REGB0)) {
9074 /* ./parser//parser_prod.nit:1674 */
9075 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
9076 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*/;
9077 if (UNTAG_Bool(REGB0)) {
9078 } else {
9079 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1674);
9080 }
9081 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9082 }
9083 /* ./parser//parser_prod.nit:1676 */
9084 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
9085 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9086 /* ./parser//parser_prod.nit:1677 */
9087 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[2]);
9088 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9089 /* ./parser//parser_prod.nit:1678 */
9090 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
9091 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9092 /* ./parser//parser_prod.nit:1679 */
9093 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
9094 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9095 /* ./parser//parser_prod.nit:1680 */
9096 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
9097 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9098 if (UNTAG_Bool(REGB0)) {
9099 } else {
9100 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9101 if (UNTAG_Bool(REGB1)) {
9102 REGB1 = TAG_Bool(false);
9103 REGB0 = REGB1;
9104 } else {
9105 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9106 REGB0 = REGB1;
9107 }
9108 }
9109 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9110 if (UNTAG_Bool(REGB0)) {
9111 /* ./parser//parser_prod.nit:1681 */
9112 fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
9113 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
9114 if (UNTAG_Bool(REGB0)) {
9115 } else {
9116 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1681);
9117 }
9118 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9119 }
9120 stack_frame_head = fra.me.prev;
9121 return;
9122 }
9123 void parser___parser_prod___AConcreteInitPropdef___empty_init(val_t p0, int* init_table){
9124 int itpos47 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteInitPropdef].i;
9125 struct {struct stack_frame_t me;} fra;
9126 val_t tmp;
9127 if (init_table[itpos47]) return;
9128 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9129 fra.me.file = LOCATE_parser___parser_prod;
9130 fra.me.line = 1686;
9131 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___empty_init;
9132 fra.me.has_broke = 0;
9133 fra.me.REG_size = 1;
9134 fra.me.REG[0] = NIT_NULL;
9135 fra.me.REG[0] = p0;
9136 stack_frame_head = fra.me.prev;
9137 init_table[itpos47] = 1;
9138 return;
9139 }
9140 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){
9141 int itpos48 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteInitPropdef].i;
9142 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
9143 val_t REGB0;
9144 val_t REGB1;
9145 val_t tmp;
9146 if (init_table[itpos48]) return;
9147 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9148 fra.me.file = LOCATE_parser___parser_prod;
9149 fra.me.line = 1688;
9150 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef;
9151 fra.me.has_broke = 0;
9152 fra.me.REG_size = 9;
9153 fra.me.REG[0] = NIT_NULL;
9154 fra.me.REG[1] = NIT_NULL;
9155 fra.me.REG[2] = NIT_NULL;
9156 fra.me.REG[3] = NIT_NULL;
9157 fra.me.REG[4] = NIT_NULL;
9158 fra.me.REG[5] = NIT_NULL;
9159 fra.me.REG[6] = NIT_NULL;
9160 fra.me.REG[7] = NIT_NULL;
9161 fra.me.REG[8] = NIT_NULL;
9162 fra.me.REG[0] = p0;
9163 fra.me.REG[1] = p1;
9164 fra.me.REG[2] = p2;
9165 fra.me.REG[3] = p3;
9166 fra.me.REG[4] = p4;
9167 fra.me.REG[5] = p5;
9168 fra.me.REG[6] = p6;
9169 fra.me.REG[7] = p7;
9170 /* ./parser//parser_prod.nit:1688 */
9171 fra.me.REG[8] = fra.me.REG[0];
9172 /* ./parser//parser_prod.nit:1698 */
9173 CALL_parser___parser_prod___AConcreteInitPropdef___empty_init(fra.me.REG[8])(fra.me.REG[8], init_table);
9174 /* ./parser//parser_prod.nit:1699 */
9175 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[8]) = fra.me.REG[1];
9176 /* ./parser//parser_prod.nit:1700 */
9177 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9178 if (UNTAG_Bool(REGB0)) {
9179 } else {
9180 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9181 if (UNTAG_Bool(REGB1)) {
9182 REGB1 = TAG_Bool(false);
9183 REGB0 = REGB1;
9184 } else {
9185 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9186 REGB0 = REGB1;
9187 }
9188 }
9189 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9190 if (UNTAG_Bool(REGB0)) {
9191 /* ./parser//parser_prod.nit:1701 */
9192 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9193 if (UNTAG_Bool(REGB0)) {
9194 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1701);
9195 }
9196 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
9197 }
9198 /* ./parser//parser_prod.nit:1703 */
9199 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[8]) = fra.me.REG[2];
9200 /* ./parser//parser_prod.nit:1704 */
9201 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9202 if (UNTAG_Bool(REGB0)) {
9203 } else {
9204 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9205 if (UNTAG_Bool(REGB1)) {
9206 REGB1 = TAG_Bool(false);
9207 REGB0 = REGB1;
9208 } else {
9209 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9210 REGB0 = REGB1;
9211 }
9212 }
9213 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9214 if (UNTAG_Bool(REGB0)) {
9215 /* ./parser//parser_prod.nit:1705 */
9216 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9217 if (UNTAG_Bool(REGB0)) {
9218 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1705);
9219 }
9220 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
9221 }
9222 /* ./parser//parser_prod.nit:1707 */
9223 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
9224 if (UNTAG_Bool(REGB0)) {
9225 } else {
9226 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1707);
9227 }
9228 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[8]) = fra.me.REG[3];
9229 /* ./parser//parser_prod.nit:1708 */
9230 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9231 if (UNTAG_Bool(REGB0)) {
9232 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1708);
9233 }
9234 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
9235 /* ./parser//parser_prod.nit:1709 */
9236 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
9237 if (UNTAG_Bool(REGB0)) {
9238 } else {
9239 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1709);
9240 }
9241 ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[8]) = fra.me.REG[4];
9242 /* ./parser//parser_prod.nit:1710 */
9243 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9244 if (UNTAG_Bool(REGB0)) {
9245 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1710);
9246 }
9247 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
9248 /* ./parser//parser_prod.nit:1711 */
9249 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[8]) = fra.me.REG[5];
9250 /* ./parser//parser_prod.nit:1712 */
9251 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9252 if (UNTAG_Bool(REGB0)) {
9253 } else {
9254 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9255 if (UNTAG_Bool(REGB1)) {
9256 REGB1 = TAG_Bool(false);
9257 REGB0 = REGB1;
9258 } else {
9259 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
9260 REGB0 = REGB1;
9261 }
9262 }
9263 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9264 if (UNTAG_Bool(REGB0)) {
9265 /* ./parser//parser_prod.nit:1713 */
9266 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9267 if (UNTAG_Bool(REGB0)) {
9268 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1713);
9269 }
9270 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
9271 }
9272 /* ./parser//parser_prod.nit:1715 */
9273 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
9274 if (UNTAG_Bool(REGB0)) {
9275 } else {
9276 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1715);
9277 }
9278 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[8]) = fra.me.REG[6];
9279 /* ./parser//parser_prod.nit:1716 */
9280 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
9281 if (UNTAG_Bool(REGB0)) {
9282 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1716);
9283 }
9284 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
9285 /* ./parser//parser_prod.nit:1717 */
9286 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[8]) = fra.me.REG[7];
9287 /* ./parser//parser_prod.nit:1718 */
9288 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9289 if (UNTAG_Bool(REGB0)) {
9290 } else {
9291 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9292 if (UNTAG_Bool(REGB1)) {
9293 REGB1 = TAG_Bool(false);
9294 REGB0 = REGB1;
9295 } else {
9296 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
9297 REGB0 = REGB1;
9298 }
9299 }
9300 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9301 if (UNTAG_Bool(REGB0)) {
9302 /* ./parser//parser_prod.nit:1719 */
9303 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9304 if (UNTAG_Bool(REGB0)) {
9305 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1719);
9306 }
9307 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
9308 }
9309 stack_frame_head = fra.me.prev;
9310 init_table[itpos48] = 1;
9311 return;
9312 }
9313 void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t p1, val_t p2){
9314 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9315 val_t REGB0;
9316 val_t REGB1;
9317 val_t tmp;
9318 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9319 fra.me.file = LOCATE_parser___parser_prod;
9320 fra.me.line = 1723;
9321 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___replace_child;
9322 fra.me.has_broke = 0;
9323 fra.me.REG_size = 4;
9324 fra.me.REG[0] = NIT_NULL;
9325 fra.me.REG[1] = NIT_NULL;
9326 fra.me.REG[2] = NIT_NULL;
9327 fra.me.REG[3] = NIT_NULL;
9328 fra.me.REG[0] = p0;
9329 fra.me.REG[1] = p1;
9330 fra.me.REG[2] = p2;
9331 /* ./parser//parser_prod.nit:1725 */
9332 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
9333 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9334 if (UNTAG_Bool(REGB0)) {
9335 } else {
9336 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9337 if (UNTAG_Bool(REGB1)) {
9338 REGB1 = TAG_Bool(false);
9339 REGB0 = REGB1;
9340 } else {
9341 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9342 REGB0 = REGB1;
9343 }
9344 }
9345 if (UNTAG_Bool(REGB0)) {
9346 /* ./parser//parser_prod.nit:1726 */
9347 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9348 if (UNTAG_Bool(REGB0)) {
9349 } else {
9350 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9351 if (UNTAG_Bool(REGB1)) {
9352 REGB1 = TAG_Bool(false);
9353 REGB0 = REGB1;
9354 } else {
9355 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9356 REGB0 = REGB1;
9357 }
9358 }
9359 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9360 if (UNTAG_Bool(REGB0)) {
9361 /* ./parser//parser_prod.nit:1727 */
9362 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9363 if (UNTAG_Bool(REGB0)) {
9364 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1727);
9365 }
9366 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9367 /* ./parser//parser_prod.nit:1728 */
9368 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*/;
9369 if (UNTAG_Bool(REGB0)) {
9370 } else {
9371 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1728);
9372 }
9373 /* ./parser//parser_prod.nit:1729 */
9374 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
9375 } else {
9376 /* ./parser//parser_prod.nit:1731 */
9377 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
9378 }
9379 /* ./parser//parser_prod.nit:1733 */
9380 goto label1;
9381 }
9382 /* ./parser//parser_prod.nit:1735 */
9383 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9384 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9385 if (UNTAG_Bool(REGB0)) {
9386 } else {
9387 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9388 if (UNTAG_Bool(REGB1)) {
9389 REGB1 = TAG_Bool(false);
9390 REGB0 = REGB1;
9391 } else {
9392 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9393 REGB0 = REGB1;
9394 }
9395 }
9396 if (UNTAG_Bool(REGB0)) {
9397 /* ./parser//parser_prod.nit:1736 */
9398 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9399 if (UNTAG_Bool(REGB0)) {
9400 } else {
9401 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9402 if (UNTAG_Bool(REGB1)) {
9403 REGB1 = TAG_Bool(false);
9404 REGB0 = REGB1;
9405 } else {
9406 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9407 REGB0 = REGB1;
9408 }
9409 }
9410 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9411 if (UNTAG_Bool(REGB0)) {
9412 /* ./parser//parser_prod.nit:1737 */
9413 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9414 if (UNTAG_Bool(REGB0)) {
9415 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1737);
9416 }
9417 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9418 /* ./parser//parser_prod.nit:1738 */
9419 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*/;
9420 if (UNTAG_Bool(REGB0)) {
9421 } else {
9422 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1738);
9423 }
9424 /* ./parser//parser_prod.nit:1739 */
9425 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
9426 } else {
9427 /* ./parser//parser_prod.nit:1741 */
9428 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
9429 }
9430 /* ./parser//parser_prod.nit:1743 */
9431 goto label1;
9432 }
9433 /* ./parser//parser_prod.nit:1745 */
9434 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
9435 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9436 if (UNTAG_Bool(REGB0)) {
9437 } else {
9438 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9439 if (UNTAG_Bool(REGB1)) {
9440 REGB1 = TAG_Bool(false);
9441 REGB0 = REGB1;
9442 } else {
9443 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9444 REGB0 = REGB1;
9445 }
9446 }
9447 if (UNTAG_Bool(REGB0)) {
9448 /* ./parser//parser_prod.nit:1746 */
9449 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9450 if (UNTAG_Bool(REGB0)) {
9451 } else {
9452 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9453 if (UNTAG_Bool(REGB1)) {
9454 REGB1 = TAG_Bool(false);
9455 REGB0 = REGB1;
9456 } else {
9457 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9458 REGB0 = REGB1;
9459 }
9460 }
9461 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9462 if (UNTAG_Bool(REGB0)) {
9463 /* ./parser//parser_prod.nit:1747 */
9464 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9465 if (UNTAG_Bool(REGB0)) {
9466 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1747);
9467 }
9468 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9469 /* ./parser//parser_prod.nit:1748 */
9470 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*/;
9471 if (UNTAG_Bool(REGB0)) {
9472 } else {
9473 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1748);
9474 }
9475 /* ./parser//parser_prod.nit:1749 */
9476 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
9477 } else {
9478 /* ./parser//parser_prod.nit:1751 */
9479 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1751);
9480 }
9481 /* ./parser//parser_prod.nit:1753 */
9482 goto label1;
9483 }
9484 /* ./parser//parser_prod.nit:1755 */
9485 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0])!=NIT_NULL);
9486 if (UNTAG_Bool(REGB0)) {
9487 } else {
9488 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 1755);
9489 }
9490 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]);
9491 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
9492 if (UNTAG_Bool(REGB0)) {
9493 } else {
9494 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9495 REGB0 = REGB1;
9496 }
9497 if (UNTAG_Bool(REGB0)) {
9498 /* ./parser//parser_prod.nit:1756 */
9499 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9500 if (UNTAG_Bool(REGB0)) {
9501 } else {
9502 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9503 if (UNTAG_Bool(REGB1)) {
9504 REGB1 = TAG_Bool(false);
9505 REGB0 = REGB1;
9506 } else {
9507 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9508 REGB0 = REGB1;
9509 }
9510 }
9511 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9512 if (UNTAG_Bool(REGB0)) {
9513 /* ./parser//parser_prod.nit:1757 */
9514 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9515 if (UNTAG_Bool(REGB0)) {
9516 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1757);
9517 }
9518 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9519 /* ./parser//parser_prod.nit:1758 */
9520 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*/;
9521 if (UNTAG_Bool(REGB0)) {
9522 } else {
9523 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1758);
9524 }
9525 /* ./parser//parser_prod.nit:1759 */
9526 ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]) = fra.me.REG[2];
9527 } else {
9528 /* ./parser//parser_prod.nit:1761 */
9529 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1761);
9530 }
9531 /* ./parser//parser_prod.nit:1763 */
9532 goto label1;
9533 }
9534 /* ./parser//parser_prod.nit:1765 */
9535 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
9536 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9537 if (UNTAG_Bool(REGB0)) {
9538 } else {
9539 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9540 if (UNTAG_Bool(REGB1)) {
9541 REGB1 = TAG_Bool(false);
9542 REGB0 = REGB1;
9543 } else {
9544 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9545 REGB0 = REGB1;
9546 }
9547 }
9548 if (UNTAG_Bool(REGB0)) {
9549 /* ./parser//parser_prod.nit:1766 */
9550 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9551 if (UNTAG_Bool(REGB0)) {
9552 } else {
9553 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9554 if (UNTAG_Bool(REGB1)) {
9555 REGB1 = TAG_Bool(false);
9556 REGB0 = REGB1;
9557 } else {
9558 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9559 REGB0 = REGB1;
9560 }
9561 }
9562 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9563 if (UNTAG_Bool(REGB0)) {
9564 /* ./parser//parser_prod.nit:1767 */
9565 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9566 if (UNTAG_Bool(REGB0)) {
9567 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1767);
9568 }
9569 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9570 /* ./parser//parser_prod.nit:1768 */
9571 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*/;
9572 if (UNTAG_Bool(REGB0)) {
9573 } else {
9574 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1768);
9575 }
9576 /* ./parser//parser_prod.nit:1769 */
9577 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
9578 } else {
9579 /* ./parser//parser_prod.nit:1771 */
9580 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = NIT_NULL;
9581 }
9582 /* ./parser//parser_prod.nit:1773 */
9583 goto label1;
9584 }
9585 /* ./parser//parser_prod.nit:1775 */
9586 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
9587 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9588 if (UNTAG_Bool(REGB0)) {
9589 } else {
9590 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9591 if (UNTAG_Bool(REGB1)) {
9592 REGB1 = TAG_Bool(false);
9593 REGB0 = REGB1;
9594 } else {
9595 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9596 REGB0 = REGB1;
9597 }
9598 }
9599 if (UNTAG_Bool(REGB0)) {
9600 /* ./parser//parser_prod.nit:1776 */
9601 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9602 if (UNTAG_Bool(REGB0)) {
9603 } else {
9604 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9605 if (UNTAG_Bool(REGB1)) {
9606 REGB1 = TAG_Bool(false);
9607 REGB0 = REGB1;
9608 } else {
9609 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9610 REGB0 = REGB1;
9611 }
9612 }
9613 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9614 if (UNTAG_Bool(REGB0)) {
9615 /* ./parser//parser_prod.nit:1777 */
9616 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9617 if (UNTAG_Bool(REGB0)) {
9618 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1777);
9619 }
9620 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9621 /* ./parser//parser_prod.nit:1778 */
9622 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*/;
9623 if (UNTAG_Bool(REGB0)) {
9624 } else {
9625 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1778);
9626 }
9627 /* ./parser//parser_prod.nit:1779 */
9628 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
9629 } else {
9630 /* ./parser//parser_prod.nit:1781 */
9631 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1781);
9632 }
9633 /* ./parser//parser_prod.nit:1783 */
9634 goto label1;
9635 }
9636 /* ./parser//parser_prod.nit:1785 */
9637 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
9638 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9639 if (UNTAG_Bool(REGB0)) {
9640 } else {
9641 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9642 if (UNTAG_Bool(REGB1)) {
9643 REGB1 = TAG_Bool(false);
9644 REGB0 = REGB1;
9645 } else {
9646 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9647 REGB0 = REGB1;
9648 }
9649 }
9650 if (UNTAG_Bool(REGB0)) {
9651 /* ./parser//parser_prod.nit:1786 */
9652 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9653 if (UNTAG_Bool(REGB0)) {
9654 } else {
9655 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9656 if (UNTAG_Bool(REGB1)) {
9657 REGB1 = TAG_Bool(false);
9658 REGB0 = REGB1;
9659 } else {
9660 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9661 REGB0 = REGB1;
9662 }
9663 }
9664 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9665 if (UNTAG_Bool(REGB0)) {
9666 /* ./parser//parser_prod.nit:1787 */
9667 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9668 if (UNTAG_Bool(REGB0)) {
9669 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1787);
9670 }
9671 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9672 /* ./parser//parser_prod.nit:1788 */
9673 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
9674 if (UNTAG_Bool(REGB0)) {
9675 } else {
9676 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1788);
9677 }
9678 /* ./parser//parser_prod.nit:1789 */
9679 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
9680 } else {
9681 /* ./parser//parser_prod.nit:1791 */
9682 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
9683 }
9684 /* ./parser//parser_prod.nit:1793 */
9685 goto label1;
9686 }
9687 label1: while(0);
9688 stack_frame_head = fra.me.prev;
9689 return;
9690 }
9691 void parser___parser_prod___AConcreteInitPropdef___visit_all(val_t p0, val_t p1){
9692 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9693 val_t REGB0;
9694 val_t REGB1;
9695 val_t tmp;
9696 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9697 fra.me.file = LOCATE_parser___parser_prod;
9698 fra.me.line = 1797;
9699 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___visit_all;
9700 fra.me.has_broke = 0;
9701 fra.me.REG_size = 4;
9702 fra.me.REG[0] = NIT_NULL;
9703 fra.me.REG[1] = NIT_NULL;
9704 fra.me.REG[2] = NIT_NULL;
9705 fra.me.REG[3] = NIT_NULL;
9706 fra.me.REG[0] = p0;
9707 fra.me.REG[1] = p1;
9708 /* ./parser//parser_prod.nit:1797 */
9709 fra.me.REG[2] = fra.me.REG[0];
9710 /* ./parser//parser_prod.nit:1799 */
9711 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
9712 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9713 if (UNTAG_Bool(REGB0)) {
9714 } else {
9715 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9716 if (UNTAG_Bool(REGB1)) {
9717 REGB1 = TAG_Bool(false);
9718 REGB0 = REGB1;
9719 } else {
9720 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9721 REGB0 = REGB1;
9722 }
9723 }
9724 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9725 if (UNTAG_Bool(REGB0)) {
9726 /* ./parser//parser_prod.nit:1800 */
9727 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
9728 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*/;
9729 if (UNTAG_Bool(REGB0)) {
9730 } else {
9731 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1800);
9732 }
9733 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9734 }
9735 /* ./parser//parser_prod.nit:1802 */
9736 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
9737 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9738 if (UNTAG_Bool(REGB0)) {
9739 } else {
9740 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9741 if (UNTAG_Bool(REGB1)) {
9742 REGB1 = TAG_Bool(false);
9743 REGB0 = REGB1;
9744 } else {
9745 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9746 REGB0 = REGB1;
9747 }
9748 }
9749 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9750 if (UNTAG_Bool(REGB0)) {
9751 /* ./parser//parser_prod.nit:1803 */
9752 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
9753 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*/;
9754 if (UNTAG_Bool(REGB0)) {
9755 } else {
9756 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1803);
9757 }
9758 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9759 }
9760 /* ./parser//parser_prod.nit:1805 */
9761 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
9762 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9763 /* ./parser//parser_prod.nit:1806 */
9764 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[2])!=NIT_NULL);
9765 if (UNTAG_Bool(REGB0)) {
9766 } else {
9767 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 1806);
9768 }
9769 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[2]);
9770 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9771 /* ./parser//parser_prod.nit:1807 */
9772 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
9773 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9774 if (UNTAG_Bool(REGB0)) {
9775 } else {
9776 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9777 if (UNTAG_Bool(REGB1)) {
9778 REGB1 = TAG_Bool(false);
9779 REGB0 = REGB1;
9780 } else {
9781 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9782 REGB0 = REGB1;
9783 }
9784 }
9785 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9786 if (UNTAG_Bool(REGB0)) {
9787 /* ./parser//parser_prod.nit:1808 */
9788 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
9789 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*/;
9790 if (UNTAG_Bool(REGB0)) {
9791 } else {
9792 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1808);
9793 }
9794 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9795 }
9796 /* ./parser//parser_prod.nit:1810 */
9797 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
9798 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9799 /* ./parser//parser_prod.nit:1811 */
9800 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
9801 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9802 if (UNTAG_Bool(REGB0)) {
9803 } else {
9804 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9805 if (UNTAG_Bool(REGB1)) {
9806 REGB1 = TAG_Bool(false);
9807 REGB0 = REGB1;
9808 } else {
9809 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9810 REGB0 = REGB1;
9811 }
9812 }
9813 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9814 if (UNTAG_Bool(REGB0)) {
9815 /* ./parser//parser_prod.nit:1812 */
9816 fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
9817 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
9818 if (UNTAG_Bool(REGB0)) {
9819 } else {
9820 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1812);
9821 }
9822 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9823 }
9824 stack_frame_head = fra.me.prev;
9825 return;
9826 }
9827 void parser___parser_prod___AMainMethPropdef___empty_init(val_t p0, int* init_table){
9828 int itpos49 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainMethPropdef].i;
9829 struct {struct stack_frame_t me;} fra;
9830 val_t tmp;
9831 if (init_table[itpos49]) return;
9832 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9833 fra.me.file = LOCATE_parser___parser_prod;
9834 fra.me.line = 1817;
9835 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___empty_init;
9836 fra.me.has_broke = 0;
9837 fra.me.REG_size = 1;
9838 fra.me.REG[0] = NIT_NULL;
9839 fra.me.REG[0] = p0;
9840 stack_frame_head = fra.me.prev;
9841 init_table[itpos49] = 1;
9842 return;
9843 }
9844 void parser___parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t p0, val_t p1, val_t p2, int* init_table){
9845 int itpos50 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainMethPropdef].i;
9846 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
9847 val_t REGB0;
9848 val_t REGB1;
9849 val_t tmp;
9850 if (init_table[itpos50]) return;
9851 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9852 fra.me.file = LOCATE_parser___parser_prod;
9853 fra.me.line = 1819;
9854 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___init_amainmethpropdef;
9855 fra.me.has_broke = 0;
9856 fra.me.REG_size = 3;
9857 fra.me.REG[0] = NIT_NULL;
9858 fra.me.REG[1] = NIT_NULL;
9859 fra.me.REG[2] = NIT_NULL;
9860 fra.me.REG[0] = p0;
9861 fra.me.REG[1] = p1;
9862 fra.me.REG[2] = p2;
9863 /* ./parser//parser_prod.nit:1824 */
9864 CALL_parser___parser_prod___AMainMethPropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
9865 /* ./parser//parser_prod.nit:1825 */
9866 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
9867 /* ./parser//parser_prod.nit:1826 */
9868 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9869 if (UNTAG_Bool(REGB0)) {
9870 } else {
9871 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9872 if (UNTAG_Bool(REGB1)) {
9873 REGB1 = TAG_Bool(false);
9874 REGB0 = REGB1;
9875 } else {
9876 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9877 REGB0 = REGB1;
9878 }
9879 }
9880 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9881 if (UNTAG_Bool(REGB0)) {
9882 /* ./parser//parser_prod.nit:1827 */
9883 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9884 if (UNTAG_Bool(REGB0)) {
9885 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1827);
9886 }
9887 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
9888 }
9889 /* ./parser//parser_prod.nit:1829 */
9890 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
9891 /* ./parser//parser_prod.nit:1830 */
9892 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9893 if (UNTAG_Bool(REGB0)) {
9894 } else {
9895 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9896 if (UNTAG_Bool(REGB1)) {
9897 REGB1 = TAG_Bool(false);
9898 REGB0 = REGB1;
9899 } else {
9900 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9901 REGB0 = REGB1;
9902 }
9903 }
9904 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9905 if (UNTAG_Bool(REGB0)) {
9906 /* ./parser//parser_prod.nit:1831 */
9907 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9908 if (UNTAG_Bool(REGB0)) {
9909 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1831);
9910 }
9911 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9912 }
9913 stack_frame_head = fra.me.prev;
9914 init_table[itpos50] = 1;
9915 return;
9916 }
9917 void parser___parser_prod___AMainMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
9918 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9919 val_t REGB0;
9920 val_t REGB1;
9921 val_t tmp;
9922 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9923 fra.me.file = LOCATE_parser___parser_prod;
9924 fra.me.line = 1835;
9925 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___replace_child;
9926 fra.me.has_broke = 0;
9927 fra.me.REG_size = 4;
9928 fra.me.REG[0] = NIT_NULL;
9929 fra.me.REG[1] = NIT_NULL;
9930 fra.me.REG[2] = NIT_NULL;
9931 fra.me.REG[3] = NIT_NULL;
9932 fra.me.REG[0] = p0;
9933 fra.me.REG[1] = p1;
9934 fra.me.REG[2] = p2;
9935 /* ./parser//parser_prod.nit:1837 */
9936 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9937 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9938 if (UNTAG_Bool(REGB0)) {
9939 } else {
9940 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9941 if (UNTAG_Bool(REGB1)) {
9942 REGB1 = TAG_Bool(false);
9943 REGB0 = REGB1;
9944 } else {
9945 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9946 REGB0 = REGB1;
9947 }
9948 }
9949 if (UNTAG_Bool(REGB0)) {
9950 /* ./parser//parser_prod.nit:1838 */
9951 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9952 if (UNTAG_Bool(REGB0)) {
9953 } else {
9954 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9955 if (UNTAG_Bool(REGB1)) {
9956 REGB1 = TAG_Bool(false);
9957 REGB0 = REGB1;
9958 } else {
9959 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9960 REGB0 = REGB1;
9961 }
9962 }
9963 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9964 if (UNTAG_Bool(REGB0)) {
9965 /* ./parser//parser_prod.nit:1839 */
9966 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9967 if (UNTAG_Bool(REGB0)) {
9968 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1839);
9969 }
9970 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9971 /* ./parser//parser_prod.nit:1840 */
9972 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*/;
9973 if (UNTAG_Bool(REGB0)) {
9974 } else {
9975 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1840);
9976 }
9977 /* ./parser//parser_prod.nit:1841 */
9978 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
9979 } else {
9980 /* ./parser//parser_prod.nit:1843 */
9981 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
9982 }
9983 /* ./parser//parser_prod.nit:1845 */
9984 goto label1;
9985 }
9986 /* ./parser//parser_prod.nit:1847 */
9987 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
9988 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9989 if (UNTAG_Bool(REGB0)) {
9990 } else {
9991 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9992 if (UNTAG_Bool(REGB1)) {
9993 REGB1 = TAG_Bool(false);
9994 REGB0 = REGB1;
9995 } else {
9996 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9997 REGB0 = REGB1;
9998 }
9999 }
10000 if (UNTAG_Bool(REGB0)) {
10001 /* ./parser//parser_prod.nit:1848 */
10002 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10003 if (UNTAG_Bool(REGB0)) {
10004 } else {
10005 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10006 if (UNTAG_Bool(REGB1)) {
10007 REGB1 = TAG_Bool(false);
10008 REGB0 = REGB1;
10009 } else {
10010 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10011 REGB0 = REGB1;
10012 }
10013 }
10014 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10015 if (UNTAG_Bool(REGB0)) {
10016 /* ./parser//parser_prod.nit:1849 */
10017 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10018 if (UNTAG_Bool(REGB0)) {
10019 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1849);
10020 }
10021 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10022 /* ./parser//parser_prod.nit:1850 */
10023 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
10024 if (UNTAG_Bool(REGB0)) {
10025 } else {
10026 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1850);
10027 }
10028 /* ./parser//parser_prod.nit:1851 */
10029 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
10030 } else {
10031 /* ./parser//parser_prod.nit:1853 */
10032 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
10033 }
10034 /* ./parser//parser_prod.nit:1855 */
10035 goto label1;
10036 }
10037 label1: while(0);
10038 stack_frame_head = fra.me.prev;
10039 return;
10040 }
10041 void parser___parser_prod___AMainMethPropdef___visit_all(val_t p0, val_t p1){
10042 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10043 val_t REGB0;
10044 val_t REGB1;
10045 val_t tmp;
10046 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10047 fra.me.file = LOCATE_parser___parser_prod;
10048 fra.me.line = 1859;
10049 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___visit_all;
10050 fra.me.has_broke = 0;
10051 fra.me.REG_size = 4;
10052 fra.me.REG[0] = NIT_NULL;
10053 fra.me.REG[1] = NIT_NULL;
10054 fra.me.REG[2] = NIT_NULL;
10055 fra.me.REG[3] = NIT_NULL;
10056 fra.me.REG[0] = p0;
10057 fra.me.REG[1] = p1;
10058 /* ./parser//parser_prod.nit:1859 */
10059 fra.me.REG[2] = fra.me.REG[0];
10060 /* ./parser//parser_prod.nit:1861 */
10061 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
10062 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10063 if (UNTAG_Bool(REGB0)) {
10064 } else {
10065 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10066 if (UNTAG_Bool(REGB1)) {
10067 REGB1 = TAG_Bool(false);
10068 REGB0 = REGB1;
10069 } else {
10070 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10071 REGB0 = REGB1;
10072 }
10073 }
10074 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10075 if (UNTAG_Bool(REGB0)) {
10076 /* ./parser//parser_prod.nit:1862 */
10077 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
10078 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*/;
10079 if (UNTAG_Bool(REGB0)) {
10080 } else {
10081 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1862);
10082 }
10083 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10084 }
10085 /* ./parser//parser_prod.nit:1864 */
10086 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
10087 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10088 if (UNTAG_Bool(REGB0)) {
10089 } else {
10090 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10091 if (UNTAG_Bool(REGB1)) {
10092 REGB1 = TAG_Bool(false);
10093 REGB0 = REGB1;
10094 } else {
10095 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10096 REGB0 = REGB1;
10097 }
10098 }
10099 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10100 if (UNTAG_Bool(REGB0)) {
10101 /* ./parser//parser_prod.nit:1865 */
10102 fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
10103 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
10104 if (UNTAG_Bool(REGB0)) {
10105 } else {
10106 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1865);
10107 }
10108 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10109 }
10110 stack_frame_head = fra.me.prev;
10111 return;
10112 }
10113 void parser___parser_prod___ATypePropdef___empty_init(val_t p0, int* init_table){
10114 int itpos51 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATypePropdef].i;
10115 struct {struct stack_frame_t me;} fra;
10116 val_t tmp;
10117 if (init_table[itpos51]) return;
10118 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10119 fra.me.file = LOCATE_parser___parser_prod;
10120 fra.me.line = 1870;
10121 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___empty_init;
10122 fra.me.has_broke = 0;
10123 fra.me.REG_size = 1;
10124 fra.me.REG[0] = NIT_NULL;
10125 fra.me.REG[0] = p0;
10126 stack_frame_head = fra.me.prev;
10127 init_table[itpos51] = 1;
10128 return;
10129 }
10130 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){
10131 int itpos52 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATypePropdef].i;
10132 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
10133 val_t REGB0;
10134 val_t REGB1;
10135 val_t tmp;
10136 if (init_table[itpos52]) return;
10137 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10138 fra.me.file = LOCATE_parser___parser_prod;
10139 fra.me.line = 1872;
10140 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___init_atypepropdef;
10141 fra.me.has_broke = 0;
10142 fra.me.REG_size = 8;
10143 fra.me.REG[0] = NIT_NULL;
10144 fra.me.REG[1] = NIT_NULL;
10145 fra.me.REG[2] = NIT_NULL;
10146 fra.me.REG[3] = NIT_NULL;
10147 fra.me.REG[4] = NIT_NULL;
10148 fra.me.REG[5] = NIT_NULL;
10149 fra.me.REG[6] = NIT_NULL;
10150 fra.me.REG[7] = NIT_NULL;
10151 fra.me.REG[0] = p0;
10152 fra.me.REG[1] = p1;
10153 fra.me.REG[2] = p2;
10154 fra.me.REG[3] = p3;
10155 fra.me.REG[4] = p4;
10156 fra.me.REG[5] = p5;
10157 fra.me.REG[6] = p6;
10158 /* ./parser//parser_prod.nit:1872 */
10159 fra.me.REG[7] = fra.me.REG[0];
10160 /* ./parser//parser_prod.nit:1881 */
10161 CALL_parser___parser_prod___ATypePropdef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
10162 /* ./parser//parser_prod.nit:1882 */
10163 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[7]) = fra.me.REG[1];
10164 /* ./parser//parser_prod.nit:1883 */
10165 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10166 if (UNTAG_Bool(REGB0)) {
10167 } else {
10168 REGB1 = TAG_Bool(fra.me.REG[1]==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[1])(fra.me.REG[1], NIT_NULL);
10174 REGB0 = REGB1;
10175 }
10176 }
10177 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10178 if (UNTAG_Bool(REGB0)) {
10179 /* ./parser//parser_prod.nit:1884 */
10180 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10181 if (UNTAG_Bool(REGB0)) {
10182 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1884);
10183 }
10184 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
10185 }
10186 /* ./parser//parser_prod.nit:1886 */
10187 ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[7]) = fra.me.REG[2];
10188 /* ./parser//parser_prod.nit:1887 */
10189 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10190 if (UNTAG_Bool(REGB0)) {
10191 } else {
10192 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10193 if (UNTAG_Bool(REGB1)) {
10194 REGB1 = TAG_Bool(false);
10195 REGB0 = REGB1;
10196 } else {
10197 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10198 REGB0 = REGB1;
10199 }
10200 }
10201 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10202 if (UNTAG_Bool(REGB0)) {
10203 /* ./parser//parser_prod.nit:1888 */
10204 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10205 if (UNTAG_Bool(REGB0)) {
10206 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1888);
10207 }
10208 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
10209 }
10210 /* ./parser//parser_prod.nit:1890 */
10211 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
10212 if (UNTAG_Bool(REGB0)) {
10213 } else {
10214 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1890);
10215 }
10216 ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[7]) = fra.me.REG[3];
10217 /* ./parser//parser_prod.nit:1891 */
10218 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10219 if (UNTAG_Bool(REGB0)) {
10220 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1891);
10221 }
10222 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
10223 /* ./parser//parser_prod.nit:1892 */
10224 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
10225 if (UNTAG_Bool(REGB0)) {
10226 } else {
10227 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1892);
10228 }
10229 ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[7]) = fra.me.REG[4];
10230 /* ./parser//parser_prod.nit:1893 */
10231 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
10232 if (UNTAG_Bool(REGB0)) {
10233 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1893);
10234 }
10235 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
10236 /* ./parser//parser_prod.nit:1894 */
10237 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
10238 if (UNTAG_Bool(REGB0)) {
10239 } else {
10240 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1894);
10241 }
10242 ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[7]) = fra.me.REG[5];
10243 /* ./parser//parser_prod.nit:1895 */
10244 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10245 if (UNTAG_Bool(REGB0)) {
10246 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1895);
10247 }
10248 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
10249 /* ./parser//parser_prod.nit:1896 */
10250 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
10251 if (UNTAG_Bool(REGB0)) {
10252 } else {
10253 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1896);
10254 }
10255 ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[7]) = fra.me.REG[6];
10256 /* ./parser//parser_prod.nit:1897 */
10257 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
10258 if (UNTAG_Bool(REGB0)) {
10259 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1897);
10260 }
10261 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
10262 stack_frame_head = fra.me.prev;
10263 init_table[itpos52] = 1;
10264 return;
10265 }
10266 void parser___parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val_t p2){
10267 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10268 val_t REGB0;
10269 val_t REGB1;
10270 val_t tmp;
10271 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10272 fra.me.file = LOCATE_parser___parser_prod;
10273 fra.me.line = 1900;
10274 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___replace_child;
10275 fra.me.has_broke = 0;
10276 fra.me.REG_size = 4;
10277 fra.me.REG[0] = NIT_NULL;
10278 fra.me.REG[1] = NIT_NULL;
10279 fra.me.REG[2] = NIT_NULL;
10280 fra.me.REG[3] = NIT_NULL;
10281 fra.me.REG[0] = p0;
10282 fra.me.REG[1] = p1;
10283 fra.me.REG[2] = p2;
10284 /* ./parser//parser_prod.nit:1902 */
10285 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
10286 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10287 if (UNTAG_Bool(REGB0)) {
10288 } else {
10289 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10290 if (UNTAG_Bool(REGB1)) {
10291 REGB1 = TAG_Bool(false);
10292 REGB0 = REGB1;
10293 } else {
10294 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10295 REGB0 = REGB1;
10296 }
10297 }
10298 if (UNTAG_Bool(REGB0)) {
10299 /* ./parser//parser_prod.nit:1903 */
10300 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10301 if (UNTAG_Bool(REGB0)) {
10302 } else {
10303 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10304 if (UNTAG_Bool(REGB1)) {
10305 REGB1 = TAG_Bool(false);
10306 REGB0 = REGB1;
10307 } else {
10308 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10309 REGB0 = REGB1;
10310 }
10311 }
10312 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10313 if (UNTAG_Bool(REGB0)) {
10314 /* ./parser//parser_prod.nit:1904 */
10315 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10316 if (UNTAG_Bool(REGB0)) {
10317 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1904);
10318 }
10319 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10320 /* ./parser//parser_prod.nit:1905 */
10321 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*/;
10322 if (UNTAG_Bool(REGB0)) {
10323 } else {
10324 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1905);
10325 }
10326 /* ./parser//parser_prod.nit:1906 */
10327 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
10328 } else {
10329 /* ./parser//parser_prod.nit:1908 */
10330 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
10331 }
10332 /* ./parser//parser_prod.nit:1910 */
10333 goto label1;
10334 }
10335 /* ./parser//parser_prod.nit:1912 */
10336 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]);
10337 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10338 if (UNTAG_Bool(REGB0)) {
10339 } else {
10340 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10341 if (UNTAG_Bool(REGB1)) {
10342 REGB1 = TAG_Bool(false);
10343 REGB0 = REGB1;
10344 } else {
10345 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10346 REGB0 = REGB1;
10347 }
10348 }
10349 if (UNTAG_Bool(REGB0)) {
10350 /* ./parser//parser_prod.nit:1913 */
10351 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10352 if (UNTAG_Bool(REGB0)) {
10353 } else {
10354 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10355 if (UNTAG_Bool(REGB1)) {
10356 REGB1 = TAG_Bool(false);
10357 REGB0 = REGB1;
10358 } else {
10359 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10360 REGB0 = REGB1;
10361 }
10362 }
10363 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10364 if (UNTAG_Bool(REGB0)) {
10365 /* ./parser//parser_prod.nit:1914 */
10366 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10367 if (UNTAG_Bool(REGB0)) {
10368 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1914);
10369 }
10370 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10371 /* ./parser//parser_prod.nit:1915 */
10372 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*/;
10373 if (UNTAG_Bool(REGB0)) {
10374 } else {
10375 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1915);
10376 }
10377 /* ./parser//parser_prod.nit:1916 */
10378 ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
10379 } else {
10380 /* ./parser//parser_prod.nit:1918 */
10381 ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
10382 }
10383 /* ./parser//parser_prod.nit:1920 */
10384 goto label1;
10385 }
10386 /* ./parser//parser_prod.nit:1922 */
10387 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
10388 if (UNTAG_Bool(REGB0)) {
10389 } else {
10390 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 1922);
10391 }
10392 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]);
10393 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
10394 if (UNTAG_Bool(REGB0)) {
10395 } else {
10396 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10397 REGB0 = REGB1;
10398 }
10399 if (UNTAG_Bool(REGB0)) {
10400 /* ./parser//parser_prod.nit:1923 */
10401 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10402 if (UNTAG_Bool(REGB0)) {
10403 } else {
10404 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10405 if (UNTAG_Bool(REGB1)) {
10406 REGB1 = TAG_Bool(false);
10407 REGB0 = REGB1;
10408 } else {
10409 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10410 REGB0 = REGB1;
10411 }
10412 }
10413 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10414 if (UNTAG_Bool(REGB0)) {
10415 /* ./parser//parser_prod.nit:1924 */
10416 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10417 if (UNTAG_Bool(REGB0)) {
10418 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1924);
10419 }
10420 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10421 /* ./parser//parser_prod.nit:1925 */
10422 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*/;
10423 if (UNTAG_Bool(REGB0)) {
10424 } else {
10425 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1925);
10426 }
10427 /* ./parser//parser_prod.nit:1926 */
10428 ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
10429 } else {
10430 /* ./parser//parser_prod.nit:1928 */
10431 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1928);
10432 }
10433 /* ./parser//parser_prod.nit:1930 */
10434 goto label1;
10435 }
10436 /* ./parser//parser_prod.nit:1932 */
10437 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0])!=NIT_NULL);
10438 if (UNTAG_Bool(REGB0)) {
10439 } else {
10440 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 1932);
10441 }
10442 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]);
10443 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
10444 if (UNTAG_Bool(REGB0)) {
10445 } else {
10446 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10447 REGB0 = REGB1;
10448 }
10449 if (UNTAG_Bool(REGB0)) {
10450 /* ./parser//parser_prod.nit:1933 */
10451 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10452 if (UNTAG_Bool(REGB0)) {
10453 } else {
10454 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10455 if (UNTAG_Bool(REGB1)) {
10456 REGB1 = TAG_Bool(false);
10457 REGB0 = REGB1;
10458 } else {
10459 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10460 REGB0 = REGB1;
10461 }
10462 }
10463 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10464 if (UNTAG_Bool(REGB0)) {
10465 /* ./parser//parser_prod.nit:1934 */
10466 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10467 if (UNTAG_Bool(REGB0)) {
10468 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1934);
10469 }
10470 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10471 /* ./parser//parser_prod.nit:1935 */
10472 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*/;
10473 if (UNTAG_Bool(REGB0)) {
10474 } else {
10475 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1935);
10476 }
10477 /* ./parser//parser_prod.nit:1936 */
10478 ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]) = fra.me.REG[2];
10479 } else {
10480 /* ./parser//parser_prod.nit:1938 */
10481 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1938);
10482 }
10483 /* ./parser//parser_prod.nit:1940 */
10484 goto label1;
10485 }
10486 /* ./parser//parser_prod.nit:1942 */
10487 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0])!=NIT_NULL);
10488 if (UNTAG_Bool(REGB0)) {
10489 } else {
10490 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 1942);
10491 }
10492 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0]);
10493 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
10494 if (UNTAG_Bool(REGB0)) {
10495 } else {
10496 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10497 REGB0 = REGB1;
10498 }
10499 if (UNTAG_Bool(REGB0)) {
10500 /* ./parser//parser_prod.nit:1943 */
10501 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10502 if (UNTAG_Bool(REGB0)) {
10503 } else {
10504 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10505 if (UNTAG_Bool(REGB1)) {
10506 REGB1 = TAG_Bool(false);
10507 REGB0 = REGB1;
10508 } else {
10509 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10510 REGB0 = REGB1;
10511 }
10512 }
10513 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10514 if (UNTAG_Bool(REGB0)) {
10515 /* ./parser//parser_prod.nit:1944 */
10516 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10517 if (UNTAG_Bool(REGB0)) {
10518 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1944);
10519 }
10520 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10521 /* ./parser//parser_prod.nit:1945 */
10522 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*/;
10523 if (UNTAG_Bool(REGB0)) {
10524 } else {
10525 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1945);
10526 }
10527 /* ./parser//parser_prod.nit:1946 */
10528 ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
10529 } else {
10530 /* ./parser//parser_prod.nit:1948 */
10531 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1948);
10532 }
10533 /* ./parser//parser_prod.nit:1950 */
10534 goto label1;
10535 }
10536 /* ./parser//parser_prod.nit:1952 */
10537 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0])!=NIT_NULL);
10538 if (UNTAG_Bool(REGB0)) {
10539 } else {
10540 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 1952);
10541 }
10542 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0]);
10543 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
10544 if (UNTAG_Bool(REGB0)) {
10545 } else {
10546 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10547 REGB0 = REGB1;
10548 }
10549 if (UNTAG_Bool(REGB0)) {
10550 /* ./parser//parser_prod.nit:1953 */
10551 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10552 if (UNTAG_Bool(REGB0)) {
10553 } else {
10554 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10555 if (UNTAG_Bool(REGB1)) {
10556 REGB1 = TAG_Bool(false);
10557 REGB0 = REGB1;
10558 } else {
10559 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10560 REGB0 = REGB1;
10561 }
10562 }
10563 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10564 if (UNTAG_Bool(REGB0)) {
10565 /* ./parser//parser_prod.nit:1954 */
10566 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10567 if (UNTAG_Bool(REGB0)) {
10568 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1954);
10569 }
10570 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10571 /* ./parser//parser_prod.nit:1955 */
10572 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*/;
10573 if (UNTAG_Bool(REGB0)) {
10574 } else {
10575 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1955);
10576 }
10577 /* ./parser//parser_prod.nit:1956 */
10578 ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0]) = fra.me.REG[2];
10579 } else {
10580 /* ./parser//parser_prod.nit:1958 */
10581 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1958);
10582 }
10583 /* ./parser//parser_prod.nit:1960 */
10584 goto label1;
10585 }
10586 label1: while(0);
10587 stack_frame_head = fra.me.prev;
10588 return;
10589 }
10590 void parser___parser_prod___ATypePropdef___visit_all(val_t p0, val_t p1){
10591 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10592 val_t REGB0;
10593 val_t REGB1;
10594 val_t tmp;
10595 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10596 fra.me.file = LOCATE_parser___parser_prod;
10597 fra.me.line = 1964;
10598 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___visit_all;
10599 fra.me.has_broke = 0;
10600 fra.me.REG_size = 4;
10601 fra.me.REG[0] = NIT_NULL;
10602 fra.me.REG[1] = NIT_NULL;
10603 fra.me.REG[2] = NIT_NULL;
10604 fra.me.REG[3] = NIT_NULL;
10605 fra.me.REG[0] = p0;
10606 fra.me.REG[1] = p1;
10607 /* ./parser//parser_prod.nit:1964 */
10608 fra.me.REG[2] = fra.me.REG[0];
10609 /* ./parser//parser_prod.nit:1966 */
10610 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
10611 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10612 if (UNTAG_Bool(REGB0)) {
10613 } else {
10614 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10615 if (UNTAG_Bool(REGB1)) {
10616 REGB1 = TAG_Bool(false);
10617 REGB0 = REGB1;
10618 } else {
10619 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10620 REGB0 = REGB1;
10621 }
10622 }
10623 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10624 if (UNTAG_Bool(REGB0)) {
10625 /* ./parser//parser_prod.nit:1967 */
10626 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
10627 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*/;
10628 if (UNTAG_Bool(REGB0)) {
10629 } else {
10630 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1967);
10631 }
10632 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10633 }
10634 /* ./parser//parser_prod.nit:1969 */
10635 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[2]);
10636 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10637 if (UNTAG_Bool(REGB0)) {
10638 } else {
10639 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10640 if (UNTAG_Bool(REGB1)) {
10641 REGB1 = TAG_Bool(false);
10642 REGB0 = REGB1;
10643 } else {
10644 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10645 REGB0 = REGB1;
10646 }
10647 }
10648 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10649 if (UNTAG_Bool(REGB0)) {
10650 /* ./parser//parser_prod.nit:1970 */
10651 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[2]);
10652 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*/;
10653 if (UNTAG_Bool(REGB0)) {
10654 } else {
10655 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1970);
10656 }
10657 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10658 }
10659 /* ./parser//parser_prod.nit:1972 */
10660 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[2])!=NIT_NULL);
10661 if (UNTAG_Bool(REGB0)) {
10662 } else {
10663 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 1972);
10664 }
10665 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[2]);
10666 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10667 /* ./parser//parser_prod.nit:1973 */
10668 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[2])!=NIT_NULL);
10669 if (UNTAG_Bool(REGB0)) {
10670 } else {
10671 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 1973);
10672 }
10673 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[2]);
10674 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10675 /* ./parser//parser_prod.nit:1974 */
10676 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[2])!=NIT_NULL);
10677 if (UNTAG_Bool(REGB0)) {
10678 } else {
10679 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 1974);
10680 }
10681 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[2]);
10682 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10683 /* ./parser//parser_prod.nit:1975 */
10684 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[2])!=NIT_NULL);
10685 if (UNTAG_Bool(REGB0)) {
10686 } else {
10687 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 1975);
10688 }
10689 fra.me.REG[2] = ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[2]);
10690 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10691 stack_frame_head = fra.me.prev;
10692 return;
10693 }
10694 void parser___parser_prod___AReadAble___empty_init(val_t p0, int* init_table){
10695 int itpos53 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReadAble].i;
10696 struct {struct stack_frame_t me;} fra;
10697 val_t tmp;
10698 if (init_table[itpos53]) return;
10699 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10700 fra.me.file = LOCATE_parser___parser_prod;
10701 fra.me.line = 1979;
10702 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___empty_init;
10703 fra.me.has_broke = 0;
10704 fra.me.REG_size = 1;
10705 fra.me.REG[0] = NIT_NULL;
10706 fra.me.REG[0] = p0;
10707 stack_frame_head = fra.me.prev;
10708 init_table[itpos53] = 1;
10709 return;
10710 }
10711 void parser___parser_prod___AReadAble___init_areadable(val_t p0, val_t p1, val_t p2, int* init_table){
10712 int itpos54 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReadAble].i;
10713 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10714 val_t REGB0;
10715 val_t REGB1;
10716 val_t tmp;
10717 if (init_table[itpos54]) return;
10718 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10719 fra.me.file = LOCATE_parser___parser_prod;
10720 fra.me.line = 1981;
10721 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___init_areadable;
10722 fra.me.has_broke = 0;
10723 fra.me.REG_size = 4;
10724 fra.me.REG[0] = NIT_NULL;
10725 fra.me.REG[1] = NIT_NULL;
10726 fra.me.REG[2] = NIT_NULL;
10727 fra.me.REG[3] = NIT_NULL;
10728 fra.me.REG[0] = p0;
10729 fra.me.REG[1] = p1;
10730 fra.me.REG[2] = p2;
10731 /* ./parser//parser_prod.nit:1981 */
10732 fra.me.REG[3] = fra.me.REG[0];
10733 /* ./parser//parser_prod.nit:1986 */
10734 CALL_parser___parser_prod___AReadAble___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
10735 /* ./parser//parser_prod.nit:1987 */
10736 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[3]) = fra.me.REG[1];
10737 /* ./parser//parser_prod.nit:1988 */
10738 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10739 if (UNTAG_Bool(REGB0)) {
10740 } else {
10741 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10742 if (UNTAG_Bool(REGB1)) {
10743 REGB1 = TAG_Bool(false);
10744 REGB0 = REGB1;
10745 } else {
10746 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10747 REGB0 = REGB1;
10748 }
10749 }
10750 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10751 if (UNTAG_Bool(REGB0)) {
10752 /* ./parser//parser_prod.nit:1989 */
10753 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10754 if (UNTAG_Bool(REGB0)) {
10755 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1989);
10756 }
10757 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10758 }
10759 /* ./parser//parser_prod.nit:1991 */
10760 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
10761 if (UNTAG_Bool(REGB0)) {
10762 } else {
10763 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1991);
10764 }
10765 ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[3]) = fra.me.REG[2];
10766 /* ./parser//parser_prod.nit:1992 */
10767 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10768 if (UNTAG_Bool(REGB0)) {
10769 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1992);
10770 }
10771 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
10772 stack_frame_head = fra.me.prev;
10773 init_table[itpos54] = 1;
10774 return;
10775 }
10776 void parser___parser_prod___AReadAble___replace_child(val_t p0, val_t p1, val_t p2){
10777 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10778 val_t REGB0;
10779 val_t REGB1;
10780 val_t tmp;
10781 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10782 fra.me.file = LOCATE_parser___parser_prod;
10783 fra.me.line = 1995;
10784 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___replace_child;
10785 fra.me.has_broke = 0;
10786 fra.me.REG_size = 4;
10787 fra.me.REG[0] = NIT_NULL;
10788 fra.me.REG[1] = NIT_NULL;
10789 fra.me.REG[2] = NIT_NULL;
10790 fra.me.REG[3] = NIT_NULL;
10791 fra.me.REG[0] = p0;
10792 fra.me.REG[1] = p1;
10793 fra.me.REG[2] = p2;
10794 /* ./parser//parser_prod.nit:1997 */
10795 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
10796 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10797 if (UNTAG_Bool(REGB0)) {
10798 } else {
10799 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10800 if (UNTAG_Bool(REGB1)) {
10801 REGB1 = TAG_Bool(false);
10802 REGB0 = REGB1;
10803 } else {
10804 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10805 REGB0 = REGB1;
10806 }
10807 }
10808 if (UNTAG_Bool(REGB0)) {
10809 /* ./parser//parser_prod.nit:1998 */
10810 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10811 if (UNTAG_Bool(REGB0)) {
10812 } else {
10813 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10814 if (UNTAG_Bool(REGB1)) {
10815 REGB1 = TAG_Bool(false);
10816 REGB0 = REGB1;
10817 } else {
10818 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10819 REGB0 = REGB1;
10820 }
10821 }
10822 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10823 if (UNTAG_Bool(REGB0)) {
10824 /* ./parser//parser_prod.nit:1999 */
10825 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10826 if (UNTAG_Bool(REGB0)) {
10827 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1999);
10828 }
10829 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10830 /* ./parser//parser_prod.nit:2000 */
10831 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*/;
10832 if (UNTAG_Bool(REGB0)) {
10833 } else {
10834 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2000);
10835 }
10836 /* ./parser//parser_prod.nit:2001 */
10837 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
10838 } else {
10839 /* ./parser//parser_prod.nit:2003 */
10840 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = NIT_NULL;
10841 }
10842 /* ./parser//parser_prod.nit:2005 */
10843 goto label1;
10844 }
10845 /* ./parser//parser_prod.nit:2007 */
10846 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0])!=NIT_NULL);
10847 if (UNTAG_Bool(REGB0)) {
10848 } else {
10849 nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser___parser_prod, 2007);
10850 }
10851 fra.me.REG[3] = ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]);
10852 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
10853 if (UNTAG_Bool(REGB0)) {
10854 } else {
10855 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10856 REGB0 = REGB1;
10857 }
10858 if (UNTAG_Bool(REGB0)) {
10859 /* ./parser//parser_prod.nit:2008 */
10860 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10861 if (UNTAG_Bool(REGB0)) {
10862 } else {
10863 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10864 if (UNTAG_Bool(REGB1)) {
10865 REGB1 = TAG_Bool(false);
10866 REGB0 = REGB1;
10867 } else {
10868 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10869 REGB0 = REGB1;
10870 }
10871 }
10872 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10873 if (UNTAG_Bool(REGB0)) {
10874 /* ./parser//parser_prod.nit:2009 */
10875 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10876 if (UNTAG_Bool(REGB0)) {
10877 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2009);
10878 }
10879 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10880 /* ./parser//parser_prod.nit:2010 */
10881 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*/;
10882 if (UNTAG_Bool(REGB0)) {
10883 } else {
10884 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2010);
10885 }
10886 /* ./parser//parser_prod.nit:2011 */
10887 ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]) = fra.me.REG[2];
10888 } else {
10889 /* ./parser//parser_prod.nit:2013 */
10890 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2013);
10891 }
10892 /* ./parser//parser_prod.nit:2015 */
10893 goto label1;
10894 }
10895 label1: while(0);
10896 stack_frame_head = fra.me.prev;
10897 return;
10898 }
10899 void parser___parser_prod___AReadAble___visit_all(val_t p0, val_t p1){
10900 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10901 val_t REGB0;
10902 val_t REGB1;
10903 val_t tmp;
10904 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10905 fra.me.file = LOCATE_parser___parser_prod;
10906 fra.me.line = 2019;
10907 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___visit_all;
10908 fra.me.has_broke = 0;
10909 fra.me.REG_size = 4;
10910 fra.me.REG[0] = NIT_NULL;
10911 fra.me.REG[1] = NIT_NULL;
10912 fra.me.REG[2] = NIT_NULL;
10913 fra.me.REG[3] = NIT_NULL;
10914 fra.me.REG[0] = p0;
10915 fra.me.REG[1] = p1;
10916 /* ./parser//parser_prod.nit:2019 */
10917 fra.me.REG[2] = fra.me.REG[0];
10918 /* ./parser//parser_prod.nit:2021 */
10919 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
10920 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10921 if (UNTAG_Bool(REGB0)) {
10922 } else {
10923 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10924 if (UNTAG_Bool(REGB1)) {
10925 REGB1 = TAG_Bool(false);
10926 REGB0 = REGB1;
10927 } else {
10928 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10929 REGB0 = REGB1;
10930 }
10931 }
10932 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10933 if (UNTAG_Bool(REGB0)) {
10934 /* ./parser//parser_prod.nit:2022 */
10935 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
10936 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*/;
10937 if (UNTAG_Bool(REGB0)) {
10938 } else {
10939 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2022);
10940 }
10941 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10942 }
10943 /* ./parser//parser_prod.nit:2024 */
10944 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[2])!=NIT_NULL);
10945 if (UNTAG_Bool(REGB0)) {
10946 } else {
10947 nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser___parser_prod, 2024);
10948 }
10949 fra.me.REG[2] = ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[2]);
10950 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10951 stack_frame_head = fra.me.prev;
10952 return;
10953 }
10954 void parser___parser_prod___AWriteAble___empty_init(val_t p0, int* init_table){
10955 int itpos55 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWriteAble].i;
10956 struct {struct stack_frame_t me;} fra;
10957 val_t tmp;
10958 if (init_table[itpos55]) return;
10959 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10960 fra.me.file = LOCATE_parser___parser_prod;
10961 fra.me.line = 2028;
10962 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___empty_init;
10963 fra.me.has_broke = 0;
10964 fra.me.REG_size = 1;
10965 fra.me.REG[0] = NIT_NULL;
10966 fra.me.REG[0] = p0;
10967 stack_frame_head = fra.me.prev;
10968 init_table[itpos55] = 1;
10969 return;
10970 }
10971 void parser___parser_prod___AWriteAble___init_awriteable(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
10972 int itpos56 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWriteAble].i;
10973 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
10974 val_t REGB0;
10975 val_t REGB1;
10976 val_t tmp;
10977 if (init_table[itpos56]) return;
10978 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10979 fra.me.file = LOCATE_parser___parser_prod;
10980 fra.me.line = 2030;
10981 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___init_awriteable;
10982 fra.me.has_broke = 0;
10983 fra.me.REG_size = 5;
10984 fra.me.REG[0] = NIT_NULL;
10985 fra.me.REG[1] = NIT_NULL;
10986 fra.me.REG[2] = NIT_NULL;
10987 fra.me.REG[3] = NIT_NULL;
10988 fra.me.REG[4] = NIT_NULL;
10989 fra.me.REG[0] = p0;
10990 fra.me.REG[1] = p1;
10991 fra.me.REG[2] = p2;
10992 fra.me.REG[3] = p3;
10993 /* ./parser//parser_prod.nit:2030 */
10994 fra.me.REG[4] = fra.me.REG[0];
10995 /* ./parser//parser_prod.nit:2036 */
10996 CALL_parser___parser_prod___AWriteAble___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
10997 /* ./parser//parser_prod.nit:2037 */
10998 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[4]) = fra.me.REG[1];
10999 /* ./parser//parser_prod.nit:2038 */
11000 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11001 if (UNTAG_Bool(REGB0)) {
11002 } else {
11003 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11004 if (UNTAG_Bool(REGB1)) {
11005 REGB1 = TAG_Bool(false);
11006 REGB0 = REGB1;
11007 } else {
11008 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
11009 REGB0 = REGB1;
11010 }
11011 }
11012 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11013 if (UNTAG_Bool(REGB0)) {
11014 /* ./parser//parser_prod.nit:2039 */
11015 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11016 if (UNTAG_Bool(REGB0)) {
11017 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2039);
11018 }
11019 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
11020 }
11021 /* ./parser//parser_prod.nit:2041 */
11022 ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[4]) = fra.me.REG[2];
11023 /* ./parser//parser_prod.nit:2042 */
11024 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11025 if (UNTAG_Bool(REGB0)) {
11026 } else {
11027 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11028 if (UNTAG_Bool(REGB1)) {
11029 REGB1 = TAG_Bool(false);
11030 REGB0 = REGB1;
11031 } else {
11032 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11033 REGB0 = REGB1;
11034 }
11035 }
11036 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11037 if (UNTAG_Bool(REGB0)) {
11038 /* ./parser//parser_prod.nit:2043 */
11039 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11040 if (UNTAG_Bool(REGB0)) {
11041 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2043);
11042 }
11043 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
11044 }
11045 /* ./parser//parser_prod.nit:2045 */
11046 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
11047 if (UNTAG_Bool(REGB0)) {
11048 } else {
11049 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2045);
11050 }
11051 ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[4]) = fra.me.REG[3];
11052 /* ./parser//parser_prod.nit:2046 */
11053 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11054 if (UNTAG_Bool(REGB0)) {
11055 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2046);
11056 }
11057 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
11058 stack_frame_head = fra.me.prev;
11059 init_table[itpos56] = 1;
11060 return;
11061 }
11062 void parser___parser_prod___AWriteAble___replace_child(val_t p0, val_t p1, val_t p2){
11063 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11064 val_t REGB0;
11065 val_t REGB1;
11066 val_t tmp;
11067 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11068 fra.me.file = LOCATE_parser___parser_prod;
11069 fra.me.line = 2049;
11070 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___replace_child;
11071 fra.me.has_broke = 0;
11072 fra.me.REG_size = 4;
11073 fra.me.REG[0] = NIT_NULL;
11074 fra.me.REG[1] = NIT_NULL;
11075 fra.me.REG[2] = NIT_NULL;
11076 fra.me.REG[3] = NIT_NULL;
11077 fra.me.REG[0] = p0;
11078 fra.me.REG[1] = p1;
11079 fra.me.REG[2] = p2;
11080 /* ./parser//parser_prod.nit:2051 */
11081 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
11082 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11083 if (UNTAG_Bool(REGB0)) {
11084 } else {
11085 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11086 if (UNTAG_Bool(REGB1)) {
11087 REGB1 = TAG_Bool(false);
11088 REGB0 = REGB1;
11089 } else {
11090 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11091 REGB0 = REGB1;
11092 }
11093 }
11094 if (UNTAG_Bool(REGB0)) {
11095 /* ./parser//parser_prod.nit:2052 */
11096 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11097 if (UNTAG_Bool(REGB0)) {
11098 } else {
11099 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11100 if (UNTAG_Bool(REGB1)) {
11101 REGB1 = TAG_Bool(false);
11102 REGB0 = REGB1;
11103 } else {
11104 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11105 REGB0 = REGB1;
11106 }
11107 }
11108 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11109 if (UNTAG_Bool(REGB0)) {
11110 /* ./parser//parser_prod.nit:2053 */
11111 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11112 if (UNTAG_Bool(REGB0)) {
11113 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2053);
11114 }
11115 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11116 /* ./parser//parser_prod.nit:2054 */
11117 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*/;
11118 if (UNTAG_Bool(REGB0)) {
11119 } else {
11120 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2054);
11121 }
11122 /* ./parser//parser_prod.nit:2055 */
11123 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
11124 } else {
11125 /* ./parser//parser_prod.nit:2057 */
11126 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = NIT_NULL;
11127 }
11128 /* ./parser//parser_prod.nit:2059 */
11129 goto label1;
11130 }
11131 /* ./parser//parser_prod.nit:2061 */
11132 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]);
11133 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11134 if (UNTAG_Bool(REGB0)) {
11135 } else {
11136 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11137 if (UNTAG_Bool(REGB1)) {
11138 REGB1 = TAG_Bool(false);
11139 REGB0 = REGB1;
11140 } else {
11141 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11142 REGB0 = REGB1;
11143 }
11144 }
11145 if (UNTAG_Bool(REGB0)) {
11146 /* ./parser//parser_prod.nit:2062 */
11147 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11148 if (UNTAG_Bool(REGB0)) {
11149 } else {
11150 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11151 if (UNTAG_Bool(REGB1)) {
11152 REGB1 = TAG_Bool(false);
11153 REGB0 = REGB1;
11154 } else {
11155 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11156 REGB0 = REGB1;
11157 }
11158 }
11159 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11160 if (UNTAG_Bool(REGB0)) {
11161 /* ./parser//parser_prod.nit:2063 */
11162 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11163 if (UNTAG_Bool(REGB0)) {
11164 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2063);
11165 }
11166 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11167 /* ./parser//parser_prod.nit:2064 */
11168 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*/;
11169 if (UNTAG_Bool(REGB0)) {
11170 } else {
11171 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2064);
11172 }
11173 /* ./parser//parser_prod.nit:2065 */
11174 ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
11175 } else {
11176 /* ./parser//parser_prod.nit:2067 */
11177 ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]) = NIT_NULL;
11178 }
11179 /* ./parser//parser_prod.nit:2069 */
11180 goto label1;
11181 }
11182 /* ./parser//parser_prod.nit:2071 */
11183 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0])!=NIT_NULL);
11184 if (UNTAG_Bool(REGB0)) {
11185 } else {
11186 nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser___parser_prod, 2071);
11187 }
11188 fra.me.REG[3] = ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]);
11189 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11190 if (UNTAG_Bool(REGB0)) {
11191 } else {
11192 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11193 REGB0 = REGB1;
11194 }
11195 if (UNTAG_Bool(REGB0)) {
11196 /* ./parser//parser_prod.nit:2072 */
11197 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11198 if (UNTAG_Bool(REGB0)) {
11199 } else {
11200 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11201 if (UNTAG_Bool(REGB1)) {
11202 REGB1 = TAG_Bool(false);
11203 REGB0 = REGB1;
11204 } else {
11205 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11206 REGB0 = REGB1;
11207 }
11208 }
11209 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11210 if (UNTAG_Bool(REGB0)) {
11211 /* ./parser//parser_prod.nit:2073 */
11212 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11213 if (UNTAG_Bool(REGB0)) {
11214 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2073);
11215 }
11216 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11217 /* ./parser//parser_prod.nit:2074 */
11218 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*/;
11219 if (UNTAG_Bool(REGB0)) {
11220 } else {
11221 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2074);
11222 }
11223 /* ./parser//parser_prod.nit:2075 */
11224 ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]) = fra.me.REG[2];
11225 } else {
11226 /* ./parser//parser_prod.nit:2077 */
11227 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2077);
11228 }
11229 /* ./parser//parser_prod.nit:2079 */
11230 goto label1;
11231 }
11232 label1: while(0);
11233 stack_frame_head = fra.me.prev;
11234 return;
11235 }
11236 void parser___parser_prod___AWriteAble___visit_all(val_t p0, val_t p1){
11237 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11238 val_t REGB0;
11239 val_t REGB1;
11240 val_t tmp;
11241 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11242 fra.me.file = LOCATE_parser___parser_prod;
11243 fra.me.line = 2083;
11244 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___visit_all;
11245 fra.me.has_broke = 0;
11246 fra.me.REG_size = 4;
11247 fra.me.REG[0] = NIT_NULL;
11248 fra.me.REG[1] = NIT_NULL;
11249 fra.me.REG[2] = NIT_NULL;
11250 fra.me.REG[3] = NIT_NULL;
11251 fra.me.REG[0] = p0;
11252 fra.me.REG[1] = p1;
11253 /* ./parser//parser_prod.nit:2083 */
11254 fra.me.REG[2] = fra.me.REG[0];
11255 /* ./parser//parser_prod.nit:2085 */
11256 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
11257 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11258 if (UNTAG_Bool(REGB0)) {
11259 } else {
11260 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11261 if (UNTAG_Bool(REGB1)) {
11262 REGB1 = TAG_Bool(false);
11263 REGB0 = REGB1;
11264 } else {
11265 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11266 REGB0 = REGB1;
11267 }
11268 }
11269 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11270 if (UNTAG_Bool(REGB0)) {
11271 /* ./parser//parser_prod.nit:2086 */
11272 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
11273 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*/;
11274 if (UNTAG_Bool(REGB0)) {
11275 } else {
11276 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2086);
11277 }
11278 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11279 }
11280 /* ./parser//parser_prod.nit:2088 */
11281 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[2]);
11282 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11283 if (UNTAG_Bool(REGB0)) {
11284 } else {
11285 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11286 if (UNTAG_Bool(REGB1)) {
11287 REGB1 = TAG_Bool(false);
11288 REGB0 = REGB1;
11289 } else {
11290 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11291 REGB0 = REGB1;
11292 }
11293 }
11294 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11295 if (UNTAG_Bool(REGB0)) {
11296 /* ./parser//parser_prod.nit:2089 */
11297 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[2]);
11298 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*/;
11299 if (UNTAG_Bool(REGB0)) {
11300 } else {
11301 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2089);
11302 }
11303 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11304 }
11305 /* ./parser//parser_prod.nit:2091 */
11306 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[2])!=NIT_NULL);
11307 if (UNTAG_Bool(REGB0)) {
11308 } else {
11309 nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser___parser_prod, 2091);
11310 }
11311 fra.me.REG[2] = ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[2]);
11312 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11313 stack_frame_head = fra.me.prev;
11314 return;
11315 }
11316 void parser___parser_prod___AIdMethid___empty_init(val_t p0, int* init_table){
11317 int itpos57 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIdMethid].i;
11318 struct {struct stack_frame_t me;} fra;
11319 val_t tmp;
11320 if (init_table[itpos57]) return;
11321 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11322 fra.me.file = LOCATE_parser___parser_prod;
11323 fra.me.line = 2095;
11324 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___empty_init;
11325 fra.me.has_broke = 0;
11326 fra.me.REG_size = 1;
11327 fra.me.REG[0] = NIT_NULL;
11328 fra.me.REG[0] = p0;
11329 stack_frame_head = fra.me.prev;
11330 init_table[itpos57] = 1;
11331 return;
11332 }
11333 void parser___parser_prod___AIdMethid___init_aidmethid(val_t p0, val_t p1, int* init_table){
11334 int itpos58 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIdMethid].i;
11335 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
11336 val_t REGB0;
11337 val_t tmp;
11338 if (init_table[itpos58]) return;
11339 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11340 fra.me.file = LOCATE_parser___parser_prod;
11341 fra.me.line = 2097;
11342 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___init_aidmethid;
11343 fra.me.has_broke = 0;
11344 fra.me.REG_size = 3;
11345 fra.me.REG[0] = NIT_NULL;
11346 fra.me.REG[1] = NIT_NULL;
11347 fra.me.REG[2] = NIT_NULL;
11348 fra.me.REG[0] = p0;
11349 fra.me.REG[1] = p1;
11350 /* ./parser//parser_prod.nit:2097 */
11351 fra.me.REG[2] = fra.me.REG[0];
11352 /* ./parser//parser_prod.nit:2101 */
11353 CALL_parser___parser_prod___AIdMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
11354 /* ./parser//parser_prod.nit:2102 */
11355 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
11356 if (UNTAG_Bool(REGB0)) {
11357 } else {
11358 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2102);
11359 }
11360 ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[2]) = fra.me.REG[1];
11361 /* ./parser//parser_prod.nit:2103 */
11362 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11363 if (UNTAG_Bool(REGB0)) {
11364 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2103);
11365 }
11366 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11367 stack_frame_head = fra.me.prev;
11368 init_table[itpos58] = 1;
11369 return;
11370 }
11371 void parser___parser_prod___AIdMethid___replace_child(val_t p0, val_t p1, val_t p2){
11372 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11373 val_t REGB0;
11374 val_t REGB1;
11375 val_t tmp;
11376 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11377 fra.me.file = LOCATE_parser___parser_prod;
11378 fra.me.line = 2106;
11379 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___replace_child;
11380 fra.me.has_broke = 0;
11381 fra.me.REG_size = 4;
11382 fra.me.REG[0] = NIT_NULL;
11383 fra.me.REG[1] = NIT_NULL;
11384 fra.me.REG[2] = NIT_NULL;
11385 fra.me.REG[3] = NIT_NULL;
11386 fra.me.REG[0] = p0;
11387 fra.me.REG[1] = p1;
11388 fra.me.REG[2] = p2;
11389 /* ./parser//parser_prod.nit:2108 */
11390 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0])!=NIT_NULL);
11391 if (UNTAG_Bool(REGB0)) {
11392 } else {
11393 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2108);
11394 }
11395 fra.me.REG[3] = ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]);
11396 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11397 if (UNTAG_Bool(REGB0)) {
11398 } else {
11399 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11400 REGB0 = REGB1;
11401 }
11402 if (UNTAG_Bool(REGB0)) {
11403 /* ./parser//parser_prod.nit:2109 */
11404 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11405 if (UNTAG_Bool(REGB0)) {
11406 } else {
11407 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11408 if (UNTAG_Bool(REGB1)) {
11409 REGB1 = TAG_Bool(false);
11410 REGB0 = REGB1;
11411 } else {
11412 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11413 REGB0 = REGB1;
11414 }
11415 }
11416 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11417 if (UNTAG_Bool(REGB0)) {
11418 /* ./parser//parser_prod.nit:2110 */
11419 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11420 if (UNTAG_Bool(REGB0)) {
11421 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2110);
11422 }
11423 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11424 /* ./parser//parser_prod.nit:2111 */
11425 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*/;
11426 if (UNTAG_Bool(REGB0)) {
11427 } else {
11428 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2111);
11429 }
11430 /* ./parser//parser_prod.nit:2112 */
11431 ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]) = fra.me.REG[2];
11432 } else {
11433 /* ./parser//parser_prod.nit:2114 */
11434 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2114);
11435 }
11436 /* ./parser//parser_prod.nit:2116 */
11437 goto label1;
11438 }
11439 label1: while(0);
11440 stack_frame_head = fra.me.prev;
11441 return;
11442 }
11443 void parser___parser_prod___AIdMethid___visit_all(val_t p0, val_t p1){
11444 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11445 val_t REGB0;
11446 val_t tmp;
11447 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11448 fra.me.file = LOCATE_parser___parser_prod;
11449 fra.me.line = 2120;
11450 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___visit_all;
11451 fra.me.has_broke = 0;
11452 fra.me.REG_size = 2;
11453 fra.me.REG[0] = NIT_NULL;
11454 fra.me.REG[1] = NIT_NULL;
11455 fra.me.REG[0] = p0;
11456 fra.me.REG[1] = p1;
11457 /* ./parser//parser_prod.nit:2122 */
11458 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0])!=NIT_NULL);
11459 if (UNTAG_Bool(REGB0)) {
11460 } else {
11461 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2122);
11462 }
11463 fra.me.REG[0] = ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]);
11464 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11465 stack_frame_head = fra.me.prev;
11466 return;
11467 }
11468 void parser___parser_prod___APlusMethid___empty_init(val_t p0, int* init_table){
11469 int itpos59 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusMethid].i;
11470 struct {struct stack_frame_t me;} fra;
11471 val_t tmp;
11472 if (init_table[itpos59]) return;
11473 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11474 fra.me.file = LOCATE_parser___parser_prod;
11475 fra.me.line = 2126;
11476 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___empty_init;
11477 fra.me.has_broke = 0;
11478 fra.me.REG_size = 1;
11479 fra.me.REG[0] = NIT_NULL;
11480 fra.me.REG[0] = p0;
11481 stack_frame_head = fra.me.prev;
11482 init_table[itpos59] = 1;
11483 return;
11484 }
11485 void parser___parser_prod___APlusMethid___init_aplusmethid(val_t p0, val_t p1, int* init_table){
11486 int itpos60 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusMethid].i;
11487 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
11488 val_t REGB0;
11489 val_t tmp;
11490 if (init_table[itpos60]) return;
11491 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11492 fra.me.file = LOCATE_parser___parser_prod;
11493 fra.me.line = 2128;
11494 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___init_aplusmethid;
11495 fra.me.has_broke = 0;
11496 fra.me.REG_size = 3;
11497 fra.me.REG[0] = NIT_NULL;
11498 fra.me.REG[1] = NIT_NULL;
11499 fra.me.REG[2] = NIT_NULL;
11500 fra.me.REG[0] = p0;
11501 fra.me.REG[1] = p1;
11502 /* ./parser//parser_prod.nit:2128 */
11503 fra.me.REG[2] = fra.me.REG[0];
11504 /* ./parser//parser_prod.nit:2132 */
11505 CALL_parser___parser_prod___APlusMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
11506 /* ./parser//parser_prod.nit:2133 */
11507 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
11508 if (UNTAG_Bool(REGB0)) {
11509 } else {
11510 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2133);
11511 }
11512 ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[2]) = fra.me.REG[1];
11513 /* ./parser//parser_prod.nit:2134 */
11514 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11515 if (UNTAG_Bool(REGB0)) {
11516 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2134);
11517 }
11518 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11519 stack_frame_head = fra.me.prev;
11520 init_table[itpos60] = 1;
11521 return;
11522 }
11523 void parser___parser_prod___APlusMethid___replace_child(val_t p0, val_t p1, val_t p2){
11524 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11525 val_t REGB0;
11526 val_t REGB1;
11527 val_t tmp;
11528 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11529 fra.me.file = LOCATE_parser___parser_prod;
11530 fra.me.line = 2137;
11531 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___replace_child;
11532 fra.me.has_broke = 0;
11533 fra.me.REG_size = 4;
11534 fra.me.REG[0] = NIT_NULL;
11535 fra.me.REG[1] = NIT_NULL;
11536 fra.me.REG[2] = NIT_NULL;
11537 fra.me.REG[3] = NIT_NULL;
11538 fra.me.REG[0] = p0;
11539 fra.me.REG[1] = p1;
11540 fra.me.REG[2] = p2;
11541 /* ./parser//parser_prod.nit:2139 */
11542 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0])!=NIT_NULL);
11543 if (UNTAG_Bool(REGB0)) {
11544 } else {
11545 nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser___parser_prod, 2139);
11546 }
11547 fra.me.REG[3] = ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]);
11548 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11549 if (UNTAG_Bool(REGB0)) {
11550 } else {
11551 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11552 REGB0 = REGB1;
11553 }
11554 if (UNTAG_Bool(REGB0)) {
11555 /* ./parser//parser_prod.nit:2140 */
11556 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11557 if (UNTAG_Bool(REGB0)) {
11558 } else {
11559 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11560 if (UNTAG_Bool(REGB1)) {
11561 REGB1 = TAG_Bool(false);
11562 REGB0 = REGB1;
11563 } else {
11564 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11565 REGB0 = REGB1;
11566 }
11567 }
11568 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11569 if (UNTAG_Bool(REGB0)) {
11570 /* ./parser//parser_prod.nit:2141 */
11571 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11572 if (UNTAG_Bool(REGB0)) {
11573 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2141);
11574 }
11575 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11576 /* ./parser//parser_prod.nit:2142 */
11577 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*/;
11578 if (UNTAG_Bool(REGB0)) {
11579 } else {
11580 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2142);
11581 }
11582 /* ./parser//parser_prod.nit:2143 */
11583 ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]) = fra.me.REG[2];
11584 } else {
11585 /* ./parser//parser_prod.nit:2145 */
11586 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2145);
11587 }
11588 /* ./parser//parser_prod.nit:2147 */
11589 goto label1;
11590 }
11591 label1: while(0);
11592 stack_frame_head = fra.me.prev;
11593 return;
11594 }
11595 void parser___parser_prod___APlusMethid___visit_all(val_t p0, val_t p1){
11596 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11597 val_t REGB0;
11598 val_t tmp;
11599 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11600 fra.me.file = LOCATE_parser___parser_prod;
11601 fra.me.line = 2151;
11602 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___visit_all;
11603 fra.me.has_broke = 0;
11604 fra.me.REG_size = 2;
11605 fra.me.REG[0] = NIT_NULL;
11606 fra.me.REG[1] = NIT_NULL;
11607 fra.me.REG[0] = p0;
11608 fra.me.REG[1] = p1;
11609 /* ./parser//parser_prod.nit:2153 */
11610 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0])!=NIT_NULL);
11611 if (UNTAG_Bool(REGB0)) {
11612 } else {
11613 nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser___parser_prod, 2153);
11614 }
11615 fra.me.REG[0] = ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]);
11616 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11617 stack_frame_head = fra.me.prev;
11618 return;
11619 }
11620 void parser___parser_prod___AMinusMethid___empty_init(val_t p0, int* init_table){
11621 int itpos61 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusMethid].i;
11622 struct {struct stack_frame_t me;} fra;
11623 val_t tmp;
11624 if (init_table[itpos61]) return;
11625 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11626 fra.me.file = LOCATE_parser___parser_prod;
11627 fra.me.line = 2157;
11628 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___empty_init;
11629 fra.me.has_broke = 0;
11630 fra.me.REG_size = 1;
11631 fra.me.REG[0] = NIT_NULL;
11632 fra.me.REG[0] = p0;
11633 stack_frame_head = fra.me.prev;
11634 init_table[itpos61] = 1;
11635 return;
11636 }
11637 void parser___parser_prod___AMinusMethid___init_aminusmethid(val_t p0, val_t p1, int* init_table){
11638 int itpos62 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusMethid].i;
11639 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
11640 val_t REGB0;
11641 val_t tmp;
11642 if (init_table[itpos62]) return;
11643 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11644 fra.me.file = LOCATE_parser___parser_prod;
11645 fra.me.line = 2159;
11646 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___init_aminusmethid;
11647 fra.me.has_broke = 0;
11648 fra.me.REG_size = 3;
11649 fra.me.REG[0] = NIT_NULL;
11650 fra.me.REG[1] = NIT_NULL;
11651 fra.me.REG[2] = NIT_NULL;
11652 fra.me.REG[0] = p0;
11653 fra.me.REG[1] = p1;
11654 /* ./parser//parser_prod.nit:2159 */
11655 fra.me.REG[2] = fra.me.REG[0];
11656 /* ./parser//parser_prod.nit:2163 */
11657 CALL_parser___parser_prod___AMinusMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
11658 /* ./parser//parser_prod.nit:2164 */
11659 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
11660 if (UNTAG_Bool(REGB0)) {
11661 } else {
11662 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2164);
11663 }
11664 ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[2]) = fra.me.REG[1];
11665 /* ./parser//parser_prod.nit:2165 */
11666 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11667 if (UNTAG_Bool(REGB0)) {
11668 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2165);
11669 }
11670 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11671 stack_frame_head = fra.me.prev;
11672 init_table[itpos62] = 1;
11673 return;
11674 }
11675 void parser___parser_prod___AMinusMethid___replace_child(val_t p0, val_t p1, val_t p2){
11676 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11677 val_t REGB0;
11678 val_t REGB1;
11679 val_t tmp;
11680 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11681 fra.me.file = LOCATE_parser___parser_prod;
11682 fra.me.line = 2168;
11683 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___replace_child;
11684 fra.me.has_broke = 0;
11685 fra.me.REG_size = 4;
11686 fra.me.REG[0] = NIT_NULL;
11687 fra.me.REG[1] = NIT_NULL;
11688 fra.me.REG[2] = NIT_NULL;
11689 fra.me.REG[3] = NIT_NULL;
11690 fra.me.REG[0] = p0;
11691 fra.me.REG[1] = p1;
11692 fra.me.REG[2] = p2;
11693 /* ./parser//parser_prod.nit:2170 */
11694 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0])!=NIT_NULL);
11695 if (UNTAG_Bool(REGB0)) {
11696 } else {
11697 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 2170);
11698 }
11699 fra.me.REG[3] = ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]);
11700 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11701 if (UNTAG_Bool(REGB0)) {
11702 } else {
11703 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11704 REGB0 = REGB1;
11705 }
11706 if (UNTAG_Bool(REGB0)) {
11707 /* ./parser//parser_prod.nit:2171 */
11708 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11709 if (UNTAG_Bool(REGB0)) {
11710 } else {
11711 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11712 if (UNTAG_Bool(REGB1)) {
11713 REGB1 = TAG_Bool(false);
11714 REGB0 = REGB1;
11715 } else {
11716 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11717 REGB0 = REGB1;
11718 }
11719 }
11720 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11721 if (UNTAG_Bool(REGB0)) {
11722 /* ./parser//parser_prod.nit:2172 */
11723 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11724 if (UNTAG_Bool(REGB0)) {
11725 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2172);
11726 }
11727 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11728 /* ./parser//parser_prod.nit:2173 */
11729 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*/;
11730 if (UNTAG_Bool(REGB0)) {
11731 } else {
11732 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2173);
11733 }
11734 /* ./parser//parser_prod.nit:2174 */
11735 ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]) = fra.me.REG[2];
11736 } else {
11737 /* ./parser//parser_prod.nit:2176 */
11738 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2176);
11739 }
11740 /* ./parser//parser_prod.nit:2178 */
11741 goto label1;
11742 }
11743 label1: while(0);
11744 stack_frame_head = fra.me.prev;
11745 return;
11746 }
11747 void parser___parser_prod___AMinusMethid___visit_all(val_t p0, val_t p1){
11748 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11749 val_t REGB0;
11750 val_t tmp;
11751 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11752 fra.me.file = LOCATE_parser___parser_prod;
11753 fra.me.line = 2182;
11754 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___visit_all;
11755 fra.me.has_broke = 0;
11756 fra.me.REG_size = 2;
11757 fra.me.REG[0] = NIT_NULL;
11758 fra.me.REG[1] = NIT_NULL;
11759 fra.me.REG[0] = p0;
11760 fra.me.REG[1] = p1;
11761 /* ./parser//parser_prod.nit:2184 */
11762 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0])!=NIT_NULL);
11763 if (UNTAG_Bool(REGB0)) {
11764 } else {
11765 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 2184);
11766 }
11767 fra.me.REG[0] = ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]);
11768 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11769 stack_frame_head = fra.me.prev;
11770 return;
11771 }
11772 void parser___parser_prod___AStarMethid___empty_init(val_t p0, int* init_table){
11773 int itpos63 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarMethid].i;
11774 struct {struct stack_frame_t me;} fra;
11775 val_t tmp;
11776 if (init_table[itpos63]) return;
11777 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11778 fra.me.file = LOCATE_parser___parser_prod;
11779 fra.me.line = 2188;
11780 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___empty_init;
11781 fra.me.has_broke = 0;
11782 fra.me.REG_size = 1;
11783 fra.me.REG[0] = NIT_NULL;
11784 fra.me.REG[0] = p0;
11785 stack_frame_head = fra.me.prev;
11786 init_table[itpos63] = 1;
11787 return;
11788 }
11789 void parser___parser_prod___AStarMethid___init_astarmethid(val_t p0, val_t p1, int* init_table){
11790 int itpos64 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarMethid].i;
11791 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
11792 val_t REGB0;
11793 val_t tmp;
11794 if (init_table[itpos64]) return;
11795 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11796 fra.me.file = LOCATE_parser___parser_prod;
11797 fra.me.line = 2190;
11798 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___init_astarmethid;
11799 fra.me.has_broke = 0;
11800 fra.me.REG_size = 3;
11801 fra.me.REG[0] = NIT_NULL;
11802 fra.me.REG[1] = NIT_NULL;
11803 fra.me.REG[2] = NIT_NULL;
11804 fra.me.REG[0] = p0;
11805 fra.me.REG[1] = p1;
11806 /* ./parser//parser_prod.nit:2190 */
11807 fra.me.REG[2] = fra.me.REG[0];
11808 /* ./parser//parser_prod.nit:2194 */
11809 CALL_parser___parser_prod___AStarMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
11810 /* ./parser//parser_prod.nit:2195 */
11811 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
11812 if (UNTAG_Bool(REGB0)) {
11813 } else {
11814 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2195);
11815 }
11816 ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[2]) = fra.me.REG[1];
11817 /* ./parser//parser_prod.nit:2196 */
11818 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11819 if (UNTAG_Bool(REGB0)) {
11820 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2196);
11821 }
11822 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11823 stack_frame_head = fra.me.prev;
11824 init_table[itpos64] = 1;
11825 return;
11826 }
11827 void parser___parser_prod___AStarMethid___replace_child(val_t p0, val_t p1, val_t p2){
11828 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11829 val_t REGB0;
11830 val_t REGB1;
11831 val_t tmp;
11832 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11833 fra.me.file = LOCATE_parser___parser_prod;
11834 fra.me.line = 2199;
11835 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___replace_child;
11836 fra.me.has_broke = 0;
11837 fra.me.REG_size = 4;
11838 fra.me.REG[0] = NIT_NULL;
11839 fra.me.REG[1] = NIT_NULL;
11840 fra.me.REG[2] = NIT_NULL;
11841 fra.me.REG[3] = NIT_NULL;
11842 fra.me.REG[0] = p0;
11843 fra.me.REG[1] = p1;
11844 fra.me.REG[2] = p2;
11845 /* ./parser//parser_prod.nit:2201 */
11846 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0])!=NIT_NULL);
11847 if (UNTAG_Bool(REGB0)) {
11848 } else {
11849 nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser___parser_prod, 2201);
11850 }
11851 fra.me.REG[3] = ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]);
11852 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11853 if (UNTAG_Bool(REGB0)) {
11854 } else {
11855 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11856 REGB0 = REGB1;
11857 }
11858 if (UNTAG_Bool(REGB0)) {
11859 /* ./parser//parser_prod.nit:2202 */
11860 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11861 if (UNTAG_Bool(REGB0)) {
11862 } else {
11863 REGB1 = TAG_Bool(fra.me.REG[2]==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[2])(fra.me.REG[2], NIT_NULL);
11869 REGB0 = REGB1;
11870 }
11871 }
11872 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11873 if (UNTAG_Bool(REGB0)) {
11874 /* ./parser//parser_prod.nit:2203 */
11875 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11876 if (UNTAG_Bool(REGB0)) {
11877 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2203);
11878 }
11879 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11880 /* ./parser//parser_prod.nit:2204 */
11881 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*/;
11882 if (UNTAG_Bool(REGB0)) {
11883 } else {
11884 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2204);
11885 }
11886 /* ./parser//parser_prod.nit:2205 */
11887 ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]) = fra.me.REG[2];
11888 } else {
11889 /* ./parser//parser_prod.nit:2207 */
11890 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2207);
11891 }
11892 /* ./parser//parser_prod.nit:2209 */
11893 goto label1;
11894 }
11895 label1: while(0);
11896 stack_frame_head = fra.me.prev;
11897 return;
11898 }
11899 void parser___parser_prod___AStarMethid___visit_all(val_t p0, val_t p1){
11900 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11901 val_t REGB0;
11902 val_t tmp;
11903 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11904 fra.me.file = LOCATE_parser___parser_prod;
11905 fra.me.line = 2213;
11906 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___visit_all;
11907 fra.me.has_broke = 0;
11908 fra.me.REG_size = 2;
11909 fra.me.REG[0] = NIT_NULL;
11910 fra.me.REG[1] = NIT_NULL;
11911 fra.me.REG[0] = p0;
11912 fra.me.REG[1] = p1;
11913 /* ./parser//parser_prod.nit:2215 */
11914 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0])!=NIT_NULL);
11915 if (UNTAG_Bool(REGB0)) {
11916 } else {
11917 nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser___parser_prod, 2215);
11918 }
11919 fra.me.REG[0] = ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]);
11920 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11921 stack_frame_head = fra.me.prev;
11922 return;
11923 }
11924 void parser___parser_prod___ASlashMethid___empty_init(val_t p0, int* init_table){
11925 int itpos65 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashMethid].i;
11926 struct {struct stack_frame_t me;} fra;
11927 val_t tmp;
11928 if (init_table[itpos65]) return;
11929 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11930 fra.me.file = LOCATE_parser___parser_prod;
11931 fra.me.line = 2219;
11932 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___empty_init;
11933 fra.me.has_broke = 0;
11934 fra.me.REG_size = 1;
11935 fra.me.REG[0] = NIT_NULL;
11936 fra.me.REG[0] = p0;
11937 stack_frame_head = fra.me.prev;
11938 init_table[itpos65] = 1;
11939 return;
11940 }
11941 void parser___parser_prod___ASlashMethid___init_aslashmethid(val_t p0, val_t p1, int* init_table){
11942 int itpos66 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashMethid].i;
11943 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
11944 val_t REGB0;
11945 val_t tmp;
11946 if (init_table[itpos66]) return;
11947 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11948 fra.me.file = LOCATE_parser___parser_prod;
11949 fra.me.line = 2221;
11950 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___init_aslashmethid;
11951 fra.me.has_broke = 0;
11952 fra.me.REG_size = 3;
11953 fra.me.REG[0] = NIT_NULL;
11954 fra.me.REG[1] = NIT_NULL;
11955 fra.me.REG[2] = NIT_NULL;
11956 fra.me.REG[0] = p0;
11957 fra.me.REG[1] = p1;
11958 /* ./parser//parser_prod.nit:2221 */
11959 fra.me.REG[2] = fra.me.REG[0];
11960 /* ./parser//parser_prod.nit:2225 */
11961 CALL_parser___parser_prod___ASlashMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
11962 /* ./parser//parser_prod.nit:2226 */
11963 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
11964 if (UNTAG_Bool(REGB0)) {
11965 } else {
11966 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2226);
11967 }
11968 ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[2]) = fra.me.REG[1];
11969 /* ./parser//parser_prod.nit:2227 */
11970 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11971 if (UNTAG_Bool(REGB0)) {
11972 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2227);
11973 }
11974 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11975 stack_frame_head = fra.me.prev;
11976 init_table[itpos66] = 1;
11977 return;
11978 }
11979 void parser___parser_prod___ASlashMethid___replace_child(val_t p0, val_t p1, val_t p2){
11980 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11981 val_t REGB0;
11982 val_t REGB1;
11983 val_t tmp;
11984 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11985 fra.me.file = LOCATE_parser___parser_prod;
11986 fra.me.line = 2230;
11987 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___replace_child;
11988 fra.me.has_broke = 0;
11989 fra.me.REG_size = 4;
11990 fra.me.REG[0] = NIT_NULL;
11991 fra.me.REG[1] = NIT_NULL;
11992 fra.me.REG[2] = NIT_NULL;
11993 fra.me.REG[3] = NIT_NULL;
11994 fra.me.REG[0] = p0;
11995 fra.me.REG[1] = p1;
11996 fra.me.REG[2] = p2;
11997 /* ./parser//parser_prod.nit:2232 */
11998 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0])!=NIT_NULL);
11999 if (UNTAG_Bool(REGB0)) {
12000 } else {
12001 nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser___parser_prod, 2232);
12002 }
12003 fra.me.REG[3] = ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]);
12004 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12005 if (UNTAG_Bool(REGB0)) {
12006 } else {
12007 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12008 REGB0 = REGB1;
12009 }
12010 if (UNTAG_Bool(REGB0)) {
12011 /* ./parser//parser_prod.nit:2233 */
12012 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12013 if (UNTAG_Bool(REGB0)) {
12014 } else {
12015 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12016 if (UNTAG_Bool(REGB1)) {
12017 REGB1 = TAG_Bool(false);
12018 REGB0 = REGB1;
12019 } else {
12020 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12021 REGB0 = REGB1;
12022 }
12023 }
12024 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12025 if (UNTAG_Bool(REGB0)) {
12026 /* ./parser//parser_prod.nit:2234 */
12027 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12028 if (UNTAG_Bool(REGB0)) {
12029 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2234);
12030 }
12031 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12032 /* ./parser//parser_prod.nit:2235 */
12033 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*/;
12034 if (UNTAG_Bool(REGB0)) {
12035 } else {
12036 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2235);
12037 }
12038 /* ./parser//parser_prod.nit:2236 */
12039 ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]) = fra.me.REG[2];
12040 } else {
12041 /* ./parser//parser_prod.nit:2238 */
12042 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2238);
12043 }
12044 /* ./parser//parser_prod.nit:2240 */
12045 goto label1;
12046 }
12047 label1: while(0);
12048 stack_frame_head = fra.me.prev;
12049 return;
12050 }
12051 void parser___parser_prod___ASlashMethid___visit_all(val_t p0, val_t p1){
12052 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12053 val_t REGB0;
12054 val_t tmp;
12055 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12056 fra.me.file = LOCATE_parser___parser_prod;
12057 fra.me.line = 2244;
12058 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___visit_all;
12059 fra.me.has_broke = 0;
12060 fra.me.REG_size = 2;
12061 fra.me.REG[0] = NIT_NULL;
12062 fra.me.REG[1] = NIT_NULL;
12063 fra.me.REG[0] = p0;
12064 fra.me.REG[1] = p1;
12065 /* ./parser//parser_prod.nit:2246 */
12066 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0])!=NIT_NULL);
12067 if (UNTAG_Bool(REGB0)) {
12068 } else {
12069 nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser___parser_prod, 2246);
12070 }
12071 fra.me.REG[0] = ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]);
12072 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12073 stack_frame_head = fra.me.prev;
12074 return;
12075 }
12076 void parser___parser_prod___APercentMethid___empty_init(val_t p0, int* init_table){
12077 int itpos67 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentMethid].i;
12078 struct {struct stack_frame_t me;} fra;
12079 val_t tmp;
12080 if (init_table[itpos67]) return;
12081 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12082 fra.me.file = LOCATE_parser___parser_prod;
12083 fra.me.line = 2250;
12084 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___empty_init;
12085 fra.me.has_broke = 0;
12086 fra.me.REG_size = 1;
12087 fra.me.REG[0] = NIT_NULL;
12088 fra.me.REG[0] = p0;
12089 stack_frame_head = fra.me.prev;
12090 init_table[itpos67] = 1;
12091 return;
12092 }
12093 void parser___parser_prod___APercentMethid___init_apercentmethid(val_t p0, val_t p1, int* init_table){
12094 int itpos68 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentMethid].i;
12095 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
12096 val_t REGB0;
12097 val_t tmp;
12098 if (init_table[itpos68]) return;
12099 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12100 fra.me.file = LOCATE_parser___parser_prod;
12101 fra.me.line = 2252;
12102 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___init_apercentmethid;
12103 fra.me.has_broke = 0;
12104 fra.me.REG_size = 3;
12105 fra.me.REG[0] = NIT_NULL;
12106 fra.me.REG[1] = NIT_NULL;
12107 fra.me.REG[2] = NIT_NULL;
12108 fra.me.REG[0] = p0;
12109 fra.me.REG[1] = p1;
12110 /* ./parser//parser_prod.nit:2252 */
12111 fra.me.REG[2] = fra.me.REG[0];
12112 /* ./parser//parser_prod.nit:2256 */
12113 CALL_parser___parser_prod___APercentMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
12114 /* ./parser//parser_prod.nit:2257 */
12115 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12116 if (UNTAG_Bool(REGB0)) {
12117 } else {
12118 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2257);
12119 }
12120 ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[2]) = fra.me.REG[1];
12121 /* ./parser//parser_prod.nit:2258 */
12122 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12123 if (UNTAG_Bool(REGB0)) {
12124 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2258);
12125 }
12126 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12127 stack_frame_head = fra.me.prev;
12128 init_table[itpos68] = 1;
12129 return;
12130 }
12131 void parser___parser_prod___APercentMethid___replace_child(val_t p0, val_t p1, val_t p2){
12132 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12133 val_t REGB0;
12134 val_t REGB1;
12135 val_t tmp;
12136 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12137 fra.me.file = LOCATE_parser___parser_prod;
12138 fra.me.line = 2261;
12139 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___replace_child;
12140 fra.me.has_broke = 0;
12141 fra.me.REG_size = 4;
12142 fra.me.REG[0] = NIT_NULL;
12143 fra.me.REG[1] = NIT_NULL;
12144 fra.me.REG[2] = NIT_NULL;
12145 fra.me.REG[3] = NIT_NULL;
12146 fra.me.REG[0] = p0;
12147 fra.me.REG[1] = p1;
12148 fra.me.REG[2] = p2;
12149 /* ./parser//parser_prod.nit:2263 */
12150 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0])!=NIT_NULL);
12151 if (UNTAG_Bool(REGB0)) {
12152 } else {
12153 nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser___parser_prod, 2263);
12154 }
12155 fra.me.REG[3] = ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]);
12156 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12157 if (UNTAG_Bool(REGB0)) {
12158 } else {
12159 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12160 REGB0 = REGB1;
12161 }
12162 if (UNTAG_Bool(REGB0)) {
12163 /* ./parser//parser_prod.nit:2264 */
12164 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12165 if (UNTAG_Bool(REGB0)) {
12166 } else {
12167 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12168 if (UNTAG_Bool(REGB1)) {
12169 REGB1 = TAG_Bool(false);
12170 REGB0 = REGB1;
12171 } else {
12172 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12173 REGB0 = REGB1;
12174 }
12175 }
12176 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12177 if (UNTAG_Bool(REGB0)) {
12178 /* ./parser//parser_prod.nit:2265 */
12179 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12180 if (UNTAG_Bool(REGB0)) {
12181 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2265);
12182 }
12183 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12184 /* ./parser//parser_prod.nit:2266 */
12185 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*/;
12186 if (UNTAG_Bool(REGB0)) {
12187 } else {
12188 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2266);
12189 }
12190 /* ./parser//parser_prod.nit:2267 */
12191 ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]) = fra.me.REG[2];
12192 } else {
12193 /* ./parser//parser_prod.nit:2269 */
12194 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2269);
12195 }
12196 /* ./parser//parser_prod.nit:2271 */
12197 goto label1;
12198 }
12199 label1: while(0);
12200 stack_frame_head = fra.me.prev;
12201 return;
12202 }
12203 void parser___parser_prod___APercentMethid___visit_all(val_t p0, val_t p1){
12204 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12205 val_t REGB0;
12206 val_t tmp;
12207 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12208 fra.me.file = LOCATE_parser___parser_prod;
12209 fra.me.line = 2275;
12210 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___visit_all;
12211 fra.me.has_broke = 0;
12212 fra.me.REG_size = 2;
12213 fra.me.REG[0] = NIT_NULL;
12214 fra.me.REG[1] = NIT_NULL;
12215 fra.me.REG[0] = p0;
12216 fra.me.REG[1] = p1;
12217 /* ./parser//parser_prod.nit:2277 */
12218 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0])!=NIT_NULL);
12219 if (UNTAG_Bool(REGB0)) {
12220 } else {
12221 nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser___parser_prod, 2277);
12222 }
12223 fra.me.REG[0] = ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]);
12224 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12225 stack_frame_head = fra.me.prev;
12226 return;
12227 }
12228 void parser___parser_prod___AEqMethid___empty_init(val_t p0, int* init_table){
12229 int itpos69 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqMethid].i;
12230 struct {struct stack_frame_t me;} fra;
12231 val_t tmp;
12232 if (init_table[itpos69]) return;
12233 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12234 fra.me.file = LOCATE_parser___parser_prod;
12235 fra.me.line = 2281;
12236 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___empty_init;
12237 fra.me.has_broke = 0;
12238 fra.me.REG_size = 1;
12239 fra.me.REG[0] = NIT_NULL;
12240 fra.me.REG[0] = p0;
12241 stack_frame_head = fra.me.prev;
12242 init_table[itpos69] = 1;
12243 return;
12244 }
12245 void parser___parser_prod___AEqMethid___init_aeqmethid(val_t p0, val_t p1, int* init_table){
12246 int itpos70 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqMethid].i;
12247 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
12248 val_t REGB0;
12249 val_t tmp;
12250 if (init_table[itpos70]) return;
12251 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12252 fra.me.file = LOCATE_parser___parser_prod;
12253 fra.me.line = 2283;
12254 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___init_aeqmethid;
12255 fra.me.has_broke = 0;
12256 fra.me.REG_size = 3;
12257 fra.me.REG[0] = NIT_NULL;
12258 fra.me.REG[1] = NIT_NULL;
12259 fra.me.REG[2] = NIT_NULL;
12260 fra.me.REG[0] = p0;
12261 fra.me.REG[1] = p1;
12262 /* ./parser//parser_prod.nit:2283 */
12263 fra.me.REG[2] = fra.me.REG[0];
12264 /* ./parser//parser_prod.nit:2287 */
12265 CALL_parser___parser_prod___AEqMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
12266 /* ./parser//parser_prod.nit:2288 */
12267 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12268 if (UNTAG_Bool(REGB0)) {
12269 } else {
12270 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2288);
12271 }
12272 ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[2]) = fra.me.REG[1];
12273 /* ./parser//parser_prod.nit:2289 */
12274 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12275 if (UNTAG_Bool(REGB0)) {
12276 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2289);
12277 }
12278 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12279 stack_frame_head = fra.me.prev;
12280 init_table[itpos70] = 1;
12281 return;
12282 }
12283 void parser___parser_prod___AEqMethid___replace_child(val_t p0, val_t p1, val_t p2){
12284 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12285 val_t REGB0;
12286 val_t REGB1;
12287 val_t tmp;
12288 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12289 fra.me.file = LOCATE_parser___parser_prod;
12290 fra.me.line = 2292;
12291 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___replace_child;
12292 fra.me.has_broke = 0;
12293 fra.me.REG_size = 4;
12294 fra.me.REG[0] = NIT_NULL;
12295 fra.me.REG[1] = NIT_NULL;
12296 fra.me.REG[2] = NIT_NULL;
12297 fra.me.REG[3] = NIT_NULL;
12298 fra.me.REG[0] = p0;
12299 fra.me.REG[1] = p1;
12300 fra.me.REG[2] = p2;
12301 /* ./parser//parser_prod.nit:2294 */
12302 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0])!=NIT_NULL);
12303 if (UNTAG_Bool(REGB0)) {
12304 } else {
12305 nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser___parser_prod, 2294);
12306 }
12307 fra.me.REG[3] = ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]);
12308 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12309 if (UNTAG_Bool(REGB0)) {
12310 } else {
12311 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12312 REGB0 = REGB1;
12313 }
12314 if (UNTAG_Bool(REGB0)) {
12315 /* ./parser//parser_prod.nit:2295 */
12316 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12317 if (UNTAG_Bool(REGB0)) {
12318 } else {
12319 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12320 if (UNTAG_Bool(REGB1)) {
12321 REGB1 = TAG_Bool(false);
12322 REGB0 = REGB1;
12323 } else {
12324 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12325 REGB0 = REGB1;
12326 }
12327 }
12328 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12329 if (UNTAG_Bool(REGB0)) {
12330 /* ./parser//parser_prod.nit:2296 */
12331 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12332 if (UNTAG_Bool(REGB0)) {
12333 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2296);
12334 }
12335 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12336 /* ./parser//parser_prod.nit:2297 */
12337 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*/;
12338 if (UNTAG_Bool(REGB0)) {
12339 } else {
12340 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2297);
12341 }
12342 /* ./parser//parser_prod.nit:2298 */
12343 ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]) = fra.me.REG[2];
12344 } else {
12345 /* ./parser//parser_prod.nit:2300 */
12346 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2300);
12347 }
12348 /* ./parser//parser_prod.nit:2302 */
12349 goto label1;
12350 }
12351 label1: while(0);
12352 stack_frame_head = fra.me.prev;
12353 return;
12354 }
12355 void parser___parser_prod___AEqMethid___visit_all(val_t p0, val_t p1){
12356 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12357 val_t REGB0;
12358 val_t tmp;
12359 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12360 fra.me.file = LOCATE_parser___parser_prod;
12361 fra.me.line = 2306;
12362 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___visit_all;
12363 fra.me.has_broke = 0;
12364 fra.me.REG_size = 2;
12365 fra.me.REG[0] = NIT_NULL;
12366 fra.me.REG[1] = NIT_NULL;
12367 fra.me.REG[0] = p0;
12368 fra.me.REG[1] = p1;
12369 /* ./parser//parser_prod.nit:2308 */
12370 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0])!=NIT_NULL);
12371 if (UNTAG_Bool(REGB0)) {
12372 } else {
12373 nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser___parser_prod, 2308);
12374 }
12375 fra.me.REG[0] = ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]);
12376 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12377 stack_frame_head = fra.me.prev;
12378 return;
12379 }
12380 void parser___parser_prod___ANeMethid___empty_init(val_t p0, int* init_table){
12381 int itpos71 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeMethid].i;
12382 struct {struct stack_frame_t me;} fra;
12383 val_t tmp;
12384 if (init_table[itpos71]) 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 = 2312;
12388 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___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[itpos71] = 1;
12395 return;
12396 }
12397 void parser___parser_prod___ANeMethid___init_anemethid(val_t p0, val_t p1, int* init_table){
12398 int itpos72 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeMethid].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[itpos72]) 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 = 2314;
12406 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___init_anemethid;
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:2314 */
12415 fra.me.REG[2] = fra.me.REG[0];
12416 /* ./parser//parser_prod.nit:2318 */
12417 CALL_parser___parser_prod___ANeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
12418 /* ./parser//parser_prod.nit:2319 */
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, 2319);
12423 }
12424 ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[2]) = fra.me.REG[1];
12425 /* ./parser//parser_prod.nit:2320 */
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, 2320);
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[itpos72] = 1;
12433 return;
12434 }
12435 void parser___parser_prod___ANeMethid___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 = 2323;
12443 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___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:2325 */
12454 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0])!=NIT_NULL);
12455 if (UNTAG_Bool(REGB0)) {
12456 } else {
12457 nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser___parser_prod, 2325);
12458 }
12459 fra.me.REG[3] = ATTR_parser___parser_nodes___ANeMethid____n_ne(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:2326 */
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:2327 */
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, 2327);
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:2328 */
12489 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*/;
12490 if (UNTAG_Bool(REGB0)) {
12491 } else {
12492 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2328);
12493 }
12494 /* ./parser//parser_prod.nit:2329 */
12495 ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0]) = fra.me.REG[2];
12496 } else {
12497 /* ./parser//parser_prod.nit:2331 */
12498 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2331);
12499 }
12500 /* ./parser//parser_prod.nit:2333 */
12501 goto label1;
12502 }
12503 label1: while(0);
12504 stack_frame_head = fra.me.prev;
12505 return;
12506 }
12507 void parser___parser_prod___ANeMethid___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 = 2337;
12514 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___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:2339 */
12522 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0])!=NIT_NULL);
12523 if (UNTAG_Bool(REGB0)) {
12524 } else {
12525 nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser___parser_prod, 2339);
12526 }
12527 fra.me.REG[0] = ATTR_parser___parser_nodes___ANeMethid____n_ne(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___ALeMethid___empty_init(val_t p0, int* init_table){
12533 int itpos73 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeMethid].i;
12534 struct {struct stack_frame_t me;} fra;
12535 val_t tmp;
12536 if (init_table[itpos73]) 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 = 2343;
12540 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___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[itpos73] = 1;
12547 return;
12548 }
12549 void parser___parser_prod___ALeMethid___init_alemethid(val_t p0, val_t p1, int* init_table){
12550 int itpos74 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeMethid].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[itpos74]) 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 = 2345;
12558 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___init_alemethid;
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:2345 */
12567 fra.me.REG[2] = fra.me.REG[0];
12568 /* ./parser//parser_prod.nit:2349 */
12569 CALL_parser___parser_prod___ALeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
12570 /* ./parser//parser_prod.nit:2350 */
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, 2350);
12575 }
12576 ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[2]) = fra.me.REG[1];
12577 /* ./parser//parser_prod.nit:2351 */
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, 2351);
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[itpos74] = 1;
12585 return;
12586 }
12587 void parser___parser_prod___ALeMethid___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 = 2354;
12595 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___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:2356 */
12606 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0])!=NIT_NULL);
12607 if (UNTAG_Bool(REGB0)) {
12608 } else {
12609 nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser___parser_prod, 2356);
12610 }
12611 fra.me.REG[3] = ATTR_parser___parser_nodes___ALeMethid____n_le(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:2357 */
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:2358 */
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, 2358);
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:2359 */
12641 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*/;
12642 if (UNTAG_Bool(REGB0)) {
12643 } else {
12644 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2359);
12645 }
12646 /* ./parser//parser_prod.nit:2360 */
12647 ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0]) = fra.me.REG[2];
12648 } else {
12649 /* ./parser//parser_prod.nit:2362 */
12650 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2362);
12651 }
12652 /* ./parser//parser_prod.nit:2364 */
12653 goto label1;
12654 }
12655 label1: while(0);
12656 stack_frame_head = fra.me.prev;
12657 return;
12658 }
12659 void parser___parser_prod___ALeMethid___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 = 2368;
12666 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___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:2370 */
12674 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0])!=NIT_NULL);
12675 if (UNTAG_Bool(REGB0)) {
12676 } else {
12677 nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser___parser_prod, 2370);
12678 }
12679 fra.me.REG[0] = ATTR_parser___parser_nodes___ALeMethid____n_le(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___AGeMethid___empty_init(val_t p0, int* init_table){
12685 int itpos75 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeMethid].i;
12686 struct {struct stack_frame_t me;} fra;
12687 val_t tmp;
12688 if (init_table[itpos75]) 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 = 2374;
12692 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___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[itpos75] = 1;
12699 return;
12700 }
12701 void parser___parser_prod___AGeMethid___init_agemethid(val_t p0, val_t p1, int* init_table){
12702 int itpos76 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeMethid].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[itpos76]) 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 = 2376;
12710 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___init_agemethid;
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:2376 */
12719 fra.me.REG[2] = fra.me.REG[0];
12720 /* ./parser//parser_prod.nit:2380 */
12721 CALL_parser___parser_prod___AGeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
12722 /* ./parser//parser_prod.nit:2381 */
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, 2381);
12727 }
12728 ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[2]) = fra.me.REG[1];
12729 /* ./parser//parser_prod.nit:2382 */
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, 2382);
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[itpos76] = 1;
12737 return;
12738 }
12739 void parser___parser_prod___AGeMethid___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 = 2385;
12747 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___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:2387 */
12758 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0])!=NIT_NULL);
12759 if (UNTAG_Bool(REGB0)) {
12760 } else {
12761 nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser___parser_prod, 2387);
12762 }
12763 fra.me.REG[3] = ATTR_parser___parser_nodes___AGeMethid____n_ge(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:2388 */
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:2389 */
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, 2389);
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:2390 */
12793 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*/;
12794 if (UNTAG_Bool(REGB0)) {
12795 } else {
12796 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2390);
12797 }
12798 /* ./parser//parser_prod.nit:2391 */
12799 ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0]) = fra.me.REG[2];
12800 } else {
12801 /* ./parser//parser_prod.nit:2393 */
12802 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2393);
12803 }
12804 /* ./parser//parser_prod.nit:2395 */
12805 goto label1;
12806 }
12807 label1: while(0);
12808 stack_frame_head = fra.me.prev;
12809 return;
12810 }
12811 void parser___parser_prod___AGeMethid___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 = 2399;
12818 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___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:2401 */
12826 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0])!=NIT_NULL);
12827 if (UNTAG_Bool(REGB0)) {
12828 } else {
12829 nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser___parser_prod, 2401);
12830 }
12831 fra.me.REG[0] = ATTR_parser___parser_nodes___AGeMethid____n_ge(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___ALtMethid___empty_init(val_t p0, int* init_table){
12837 int itpos77 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtMethid].i;
12838 struct {struct stack_frame_t me;} fra;
12839 val_t tmp;
12840 if (init_table[itpos77]) 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 = 2405;
12844 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___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[itpos77] = 1;
12851 return;
12852 }
12853 void parser___parser_prod___ALtMethid___init_altmethid(val_t p0, val_t p1, int* init_table){
12854 int itpos78 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtMethid].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[itpos78]) 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 = 2407;
12862 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___init_altmethid;
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:2407 */
12871 fra.me.REG[2] = fra.me.REG[0];
12872 /* ./parser//parser_prod.nit:2411 */
12873 CALL_parser___parser_prod___ALtMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
12874 /* ./parser//parser_prod.nit:2412 */
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, 2412);
12879 }
12880 ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[2]) = fra.me.REG[1];
12881 /* ./parser//parser_prod.nit:2413 */
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, 2413);
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[itpos78] = 1;
12889 return;
12890 }
12891 void parser___parser_prod___ALtMethid___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 = 2416;
12899 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___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:2418 */
12910 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0])!=NIT_NULL);
12911 if (UNTAG_Bool(REGB0)) {
12912 } else {
12913 nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser___parser_prod, 2418);
12914 }
12915 fra.me.REG[3] = ATTR_parser___parser_nodes___ALtMethid____n_lt(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:2419 */
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:2420 */
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, 2420);
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:2421 */
12945 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*/;
12946 if (UNTAG_Bool(REGB0)) {
12947 } else {
12948 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2421);
12949 }
12950 /* ./parser//parser_prod.nit:2422 */
12951 ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0]) = fra.me.REG[2];
12952 } else {
12953 /* ./parser//parser_prod.nit:2424 */
12954 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2424);
12955 }
12956 /* ./parser//parser_prod.nit:2426 */
12957 goto label1;
12958 }
12959 label1: while(0);
12960 stack_frame_head = fra.me.prev;
12961 return;
12962 }
12963 void parser___parser_prod___ALtMethid___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 = 2430;
12970 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___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:2432 */
12978 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0])!=NIT_NULL);
12979 if (UNTAG_Bool(REGB0)) {
12980 } else {
12981 nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser___parser_prod, 2432);
12982 }
12983 fra.me.REG[0] = ATTR_parser___parser_nodes___ALtMethid____n_lt(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___AGtMethid___empty_init(val_t p0, int* init_table){
12989 int itpos79 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtMethid].i;
12990 struct {struct stack_frame_t me;} fra;
12991 val_t tmp;
12992 if (init_table[itpos79]) 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 = 2436;
12996 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___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[itpos79] = 1;
13003 return;
13004 }
13005 void parser___parser_prod___AGtMethid___init_agtmethid(val_t p0, val_t p1, int* init_table){
13006 int itpos80 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtMethid].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[itpos80]) 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 = 2438;
13014 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___init_agtmethid;
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:2438 */
13023 fra.me.REG[2] = fra.me.REG[0];
13024 /* ./parser//parser_prod.nit:2442 */
13025 CALL_parser___parser_prod___AGtMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13026 /* ./parser//parser_prod.nit:2443 */
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, 2443);
13031 }
13032 ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[2]) = fra.me.REG[1];
13033 /* ./parser//parser_prod.nit:2444 */
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, 2444);
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[itpos80] = 1;
13041 return;
13042 }
13043 void parser___parser_prod___AGtMethid___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 = 2447;
13051 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___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:2449 */
13062 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0])!=NIT_NULL);
13063 if (UNTAG_Bool(REGB0)) {
13064 } else {
13065 nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser___parser_prod, 2449);
13066 }
13067 fra.me.REG[3] = ATTR_parser___parser_nodes___AGtMethid____n_gt(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:2450 */
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:2451 */
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, 2451);
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:2452 */
13097 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*/;
13098 if (UNTAG_Bool(REGB0)) {
13099 } else {
13100 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2452);
13101 }
13102 /* ./parser//parser_prod.nit:2453 */
13103 ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0]) = fra.me.REG[2];
13104 } else {
13105 /* ./parser//parser_prod.nit:2455 */
13106 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2455);
13107 }
13108 /* ./parser//parser_prod.nit:2457 */
13109 goto label1;
13110 }
13111 label1: while(0);
13112 stack_frame_head = fra.me.prev;
13113 return;
13114 }
13115 void parser___parser_prod___AGtMethid___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 = 2461;
13122 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___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:2463 */
13130 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0])!=NIT_NULL);
13131 if (UNTAG_Bool(REGB0)) {
13132 } else {
13133 nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser___parser_prod, 2463);
13134 }
13135 fra.me.REG[0] = ATTR_parser___parser_nodes___AGtMethid____n_gt(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___ALlMethid___empty_init(val_t p0, int* init_table){
13141 int itpos81 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlMethid].i;
13142 struct {struct stack_frame_t me;} fra;
13143 val_t tmp;
13144 if (init_table[itpos81]) 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 = 2467;
13148 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___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[itpos81] = 1;
13155 return;
13156 }
13157 void parser___parser_prod___ALlMethid___init_allmethid(val_t p0, val_t p1, int* init_table){
13158 int itpos82 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlMethid].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[itpos82]) 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 = 2469;
13166 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___init_allmethid;
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:2469 */
13175 fra.me.REG[2] = fra.me.REG[0];
13176 /* ./parser//parser_prod.nit:2473 */
13177 CALL_parser___parser_prod___ALlMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13178 /* ./parser//parser_prod.nit:2474 */
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, 2474);
13183 }
13184 ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[2]) = fra.me.REG[1];
13185 /* ./parser//parser_prod.nit:2475 */
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, 2475);
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[itpos82] = 1;
13193 return;
13194 }
13195 void parser___parser_prod___ALlMethid___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 = 2478;
13203 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___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:2480 */
13214 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0])!=NIT_NULL);
13215 if (UNTAG_Bool(REGB0)) {
13216 } else {
13217 nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser___parser_prod, 2480);
13218 }
13219 fra.me.REG[3] = ATTR_parser___parser_nodes___ALlMethid____n_ll(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:2481 */
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:2482 */
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, 2482);
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:2483 */
13249 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*/;
13250 if (UNTAG_Bool(REGB0)) {
13251 } else {
13252 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2483);
13253 }
13254 /* ./parser//parser_prod.nit:2484 */
13255 ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]) = fra.me.REG[2];
13256 } else {
13257 /* ./parser//parser_prod.nit:2486 */
13258 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2486);
13259 }
13260 /* ./parser//parser_prod.nit:2488 */
13261 goto label1;
13262 }
13263 label1: while(0);
13264 stack_frame_head = fra.me.prev;
13265 return;
13266 }
13267 void parser___parser_prod___ALlMethid___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 = 2492;
13274 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___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:2494 */
13282 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0])!=NIT_NULL);
13283 if (UNTAG_Bool(REGB0)) {
13284 } else {
13285 nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser___parser_prod, 2494);
13286 }
13287 fra.me.REG[0] = ATTR_parser___parser_nodes___ALlMethid____n_ll(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___AGgMethid___empty_init(val_t p0, int* init_table){
13293 int itpos83 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgMethid].i;
13294 struct {struct stack_frame_t me;} fra;
13295 val_t tmp;
13296 if (init_table[itpos83]) 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 = 2498;
13300 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___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[itpos83] = 1;
13307 return;
13308 }
13309 void parser___parser_prod___AGgMethid___init_aggmethid(val_t p0, val_t p1, int* init_table){
13310 int itpos84 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgMethid].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[itpos84]) 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 = 2500;
13318 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___init_aggmethid;
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:2500 */
13327 fra.me.REG[2] = fra.me.REG[0];
13328 /* ./parser//parser_prod.nit:2504 */
13329 CALL_parser___parser_prod___AGgMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13330 /* ./parser//parser_prod.nit:2505 */
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, 2505);
13335 }
13336 ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[2]) = fra.me.REG[1];
13337 /* ./parser//parser_prod.nit:2506 */
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, 2506);
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[itpos84] = 1;
13345 return;
13346 }
13347 void parser___parser_prod___AGgMethid___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 = 2509;
13355 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___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:2511 */
13366 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0])!=NIT_NULL);
13367 if (UNTAG_Bool(REGB0)) {
13368 } else {
13369 nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser___parser_prod, 2511);
13370 }
13371 fra.me.REG[3] = ATTR_parser___parser_nodes___AGgMethid____n_gg(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:2512 */
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:2513 */
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, 2513);
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:2514 */
13401 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*/;
13402 if (UNTAG_Bool(REGB0)) {
13403 } else {
13404 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2514);
13405 }
13406 /* ./parser//parser_prod.nit:2515 */
13407 ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]) = fra.me.REG[2];
13408 } else {
13409 /* ./parser//parser_prod.nit:2517 */
13410 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2517);
13411 }
13412 /* ./parser//parser_prod.nit:2519 */
13413 goto label1;
13414 }
13415 label1: while(0);
13416 stack_frame_head = fra.me.prev;
13417 return;
13418 }
13419 void parser___parser_prod___AGgMethid___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 = 2523;
13426 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___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:2525 */
13434 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0])!=NIT_NULL);
13435 if (UNTAG_Bool(REGB0)) {
13436 } else {
13437 nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser___parser_prod, 2525);
13438 }
13439 fra.me.REG[0] = ATTR_parser___parser_nodes___AGgMethid____n_gg(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___ABraMethid___empty_init(val_t p0, int* init_table){
13445 int itpos85 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraMethid].i;
13446 struct {struct stack_frame_t me;} fra;
13447 val_t tmp;
13448 if (init_table[itpos85]) 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 = 2529;
13452 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___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[itpos85] = 1;
13459 return;
13460 }
13461 void parser___parser_prod___ABraMethid___init_abramethid(val_t p0, val_t p1, val_t p2, int* init_table){
13462 int itpos86 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraMethid].i;
13463 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13464 val_t REGB0;
13465 val_t tmp;
13466 if (init_table[itpos86]) 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 = 2531;
13470 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___init_abramethid;
13471 fra.me.has_broke = 0;
13472 fra.me.REG_size = 4;
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[3] = NIT_NULL;
13477 fra.me.REG[0] = p0;
13478 fra.me.REG[1] = p1;
13479 fra.me.REG[2] = p2;
13480 /* ./parser//parser_prod.nit:2531 */
13481 fra.me.REG[3] = fra.me.REG[0];
13482 /* ./parser//parser_prod.nit:2536 */
13483 CALL_parser___parser_prod___ABraMethid___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
13484 /* ./parser//parser_prod.nit:2537 */
13485 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13486 if (UNTAG_Bool(REGB0)) {
13487 } else {
13488 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2537);
13489 }
13490 ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[3]) = fra.me.REG[1];
13491 /* ./parser//parser_prod.nit:2538 */
13492 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13493 if (UNTAG_Bool(REGB0)) {
13494 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2538);
13495 }
13496 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
13497 /* ./parser//parser_prod.nit:2539 */
13498 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
13499 if (UNTAG_Bool(REGB0)) {
13500 } else {
13501 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2539);
13502 }
13503 ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[3]) = fra.me.REG[2];
13504 /* ./parser//parser_prod.nit:2540 */
13505 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13506 if (UNTAG_Bool(REGB0)) {
13507 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2540);
13508 }
13509 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
13510 stack_frame_head = fra.me.prev;
13511 init_table[itpos86] = 1;
13512 return;
13513 }
13514 void parser___parser_prod___ABraMethid___replace_child(val_t p0, val_t p1, val_t p2){
13515 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13516 val_t REGB0;
13517 val_t REGB1;
13518 val_t tmp;
13519 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13520 fra.me.file = LOCATE_parser___parser_prod;
13521 fra.me.line = 2543;
13522 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___replace_child;
13523 fra.me.has_broke = 0;
13524 fra.me.REG_size = 4;
13525 fra.me.REG[0] = NIT_NULL;
13526 fra.me.REG[1] = NIT_NULL;
13527 fra.me.REG[2] = NIT_NULL;
13528 fra.me.REG[3] = NIT_NULL;
13529 fra.me.REG[0] = p0;
13530 fra.me.REG[1] = p1;
13531 fra.me.REG[2] = p2;
13532 /* ./parser//parser_prod.nit:2545 */
13533 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
13534 if (UNTAG_Bool(REGB0)) {
13535 } else {
13536 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2545);
13537 }
13538 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]);
13539 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13540 if (UNTAG_Bool(REGB0)) {
13541 } else {
13542 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13543 REGB0 = REGB1;
13544 }
13545 if (UNTAG_Bool(REGB0)) {
13546 /* ./parser//parser_prod.nit:2546 */
13547 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13548 if (UNTAG_Bool(REGB0)) {
13549 } else {
13550 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13551 if (UNTAG_Bool(REGB1)) {
13552 REGB1 = TAG_Bool(false);
13553 REGB0 = REGB1;
13554 } else {
13555 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13556 REGB0 = REGB1;
13557 }
13558 }
13559 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13560 if (UNTAG_Bool(REGB0)) {
13561 /* ./parser//parser_prod.nit:2547 */
13562 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13563 if (UNTAG_Bool(REGB0)) {
13564 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2547);
13565 }
13566 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13567 /* ./parser//parser_prod.nit:2548 */
13568 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*/;
13569 if (UNTAG_Bool(REGB0)) {
13570 } else {
13571 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2548);
13572 }
13573 /* ./parser//parser_prod.nit:2549 */
13574 ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]) = fra.me.REG[2];
13575 } else {
13576 /* ./parser//parser_prod.nit:2551 */
13577 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2551);
13578 }
13579 /* ./parser//parser_prod.nit:2553 */
13580 goto label1;
13581 }
13582 /* ./parser//parser_prod.nit:2555 */
13583 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
13584 if (UNTAG_Bool(REGB0)) {
13585 } else {
13586 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2555);
13587 }
13588 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]);
13589 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13590 if (UNTAG_Bool(REGB0)) {
13591 } else {
13592 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13593 REGB0 = REGB1;
13594 }
13595 if (UNTAG_Bool(REGB0)) {
13596 /* ./parser//parser_prod.nit:2556 */
13597 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13598 if (UNTAG_Bool(REGB0)) {
13599 } else {
13600 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13601 if (UNTAG_Bool(REGB1)) {
13602 REGB1 = TAG_Bool(false);
13603 REGB0 = REGB1;
13604 } else {
13605 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13606 REGB0 = REGB1;
13607 }
13608 }
13609 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13610 if (UNTAG_Bool(REGB0)) {
13611 /* ./parser//parser_prod.nit:2557 */
13612 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13613 if (UNTAG_Bool(REGB0)) {
13614 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2557);
13615 }
13616 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13617 /* ./parser//parser_prod.nit:2558 */
13618 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*/;
13619 if (UNTAG_Bool(REGB0)) {
13620 } else {
13621 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2558);
13622 }
13623 /* ./parser//parser_prod.nit:2559 */
13624 ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
13625 } else {
13626 /* ./parser//parser_prod.nit:2561 */
13627 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2561);
13628 }
13629 /* ./parser//parser_prod.nit:2563 */
13630 goto label1;
13631 }
13632 label1: while(0);
13633 stack_frame_head = fra.me.prev;
13634 return;
13635 }
13636 void parser___parser_prod___ABraMethid___visit_all(val_t p0, val_t p1){
13637 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13638 val_t REGB0;
13639 val_t tmp;
13640 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13641 fra.me.file = LOCATE_parser___parser_prod;
13642 fra.me.line = 2567;
13643 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___visit_all;
13644 fra.me.has_broke = 0;
13645 fra.me.REG_size = 3;
13646 fra.me.REG[0] = NIT_NULL;
13647 fra.me.REG[1] = NIT_NULL;
13648 fra.me.REG[2] = NIT_NULL;
13649 fra.me.REG[0] = p0;
13650 fra.me.REG[1] = p1;
13651 /* ./parser//parser_prod.nit:2569 */
13652 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
13653 if (UNTAG_Bool(REGB0)) {
13654 } else {
13655 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2569);
13656 }
13657 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]);
13658 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13659 /* ./parser//parser_prod.nit:2570 */
13660 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
13661 if (UNTAG_Bool(REGB0)) {
13662 } else {
13663 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2570);
13664 }
13665 fra.me.REG[0] = ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]);
13666 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13667 stack_frame_head = fra.me.prev;
13668 return;
13669 }
13670 void parser___parser_prod___AStarshipMethid___empty_init(val_t p0, int* init_table){
13671 int itpos87 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipMethid].i;
13672 struct {struct stack_frame_t me;} fra;
13673 val_t tmp;
13674 if (init_table[itpos87]) return;
13675 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13676 fra.me.file = LOCATE_parser___parser_prod;
13677 fra.me.line = 2574;
13678 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___empty_init;
13679 fra.me.has_broke = 0;
13680 fra.me.REG_size = 1;
13681 fra.me.REG[0] = NIT_NULL;
13682 fra.me.REG[0] = p0;
13683 stack_frame_head = fra.me.prev;
13684 init_table[itpos87] = 1;
13685 return;
13686 }
13687 void parser___parser_prod___AStarshipMethid___init_astarshipmethid(val_t p0, val_t p1, int* init_table){
13688 int itpos88 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipMethid].i;
13689 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13690 val_t REGB0;
13691 val_t tmp;
13692 if (init_table[itpos88]) return;
13693 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13694 fra.me.file = LOCATE_parser___parser_prod;
13695 fra.me.line = 2576;
13696 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___init_astarshipmethid;
13697 fra.me.has_broke = 0;
13698 fra.me.REG_size = 3;
13699 fra.me.REG[0] = NIT_NULL;
13700 fra.me.REG[1] = NIT_NULL;
13701 fra.me.REG[2] = NIT_NULL;
13702 fra.me.REG[0] = p0;
13703 fra.me.REG[1] = p1;
13704 /* ./parser//parser_prod.nit:2576 */
13705 fra.me.REG[2] = fra.me.REG[0];
13706 /* ./parser//parser_prod.nit:2580 */
13707 CALL_parser___parser_prod___AStarshipMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
13708 /* ./parser//parser_prod.nit:2581 */
13709 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13710 if (UNTAG_Bool(REGB0)) {
13711 } else {
13712 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2581);
13713 }
13714 ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[2]) = fra.me.REG[1];
13715 /* ./parser//parser_prod.nit:2582 */
13716 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13717 if (UNTAG_Bool(REGB0)) {
13718 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2582);
13719 }
13720 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13721 stack_frame_head = fra.me.prev;
13722 init_table[itpos88] = 1;
13723 return;
13724 }
13725 void parser___parser_prod___AStarshipMethid___replace_child(val_t p0, val_t p1, val_t p2){
13726 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13727 val_t REGB0;
13728 val_t REGB1;
13729 val_t tmp;
13730 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13731 fra.me.file = LOCATE_parser___parser_prod;
13732 fra.me.line = 2585;
13733 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___replace_child;
13734 fra.me.has_broke = 0;
13735 fra.me.REG_size = 4;
13736 fra.me.REG[0] = NIT_NULL;
13737 fra.me.REG[1] = NIT_NULL;
13738 fra.me.REG[2] = NIT_NULL;
13739 fra.me.REG[3] = NIT_NULL;
13740 fra.me.REG[0] = p0;
13741 fra.me.REG[1] = p1;
13742 fra.me.REG[2] = p2;
13743 /* ./parser//parser_prod.nit:2587 */
13744 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0])!=NIT_NULL);
13745 if (UNTAG_Bool(REGB0)) {
13746 } else {
13747 nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser___parser_prod, 2587);
13748 }
13749 fra.me.REG[3] = ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]);
13750 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13751 if (UNTAG_Bool(REGB0)) {
13752 } else {
13753 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13754 REGB0 = REGB1;
13755 }
13756 if (UNTAG_Bool(REGB0)) {
13757 /* ./parser//parser_prod.nit:2588 */
13758 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13759 if (UNTAG_Bool(REGB0)) {
13760 } else {
13761 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13762 if (UNTAG_Bool(REGB1)) {
13763 REGB1 = TAG_Bool(false);
13764 REGB0 = REGB1;
13765 } else {
13766 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13767 REGB0 = REGB1;
13768 }
13769 }
13770 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13771 if (UNTAG_Bool(REGB0)) {
13772 /* ./parser//parser_prod.nit:2589 */
13773 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13774 if (UNTAG_Bool(REGB0)) {
13775 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2589);
13776 }
13777 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13778 /* ./parser//parser_prod.nit:2590 */
13779 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*/;
13780 if (UNTAG_Bool(REGB0)) {
13781 } else {
13782 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2590);
13783 }
13784 /* ./parser//parser_prod.nit:2591 */
13785 ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]) = fra.me.REG[2];
13786 } else {
13787 /* ./parser//parser_prod.nit:2593 */
13788 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2593);
13789 }
13790 /* ./parser//parser_prod.nit:2595 */
13791 goto label1;
13792 }
13793 label1: while(0);
13794 stack_frame_head = fra.me.prev;
13795 return;
13796 }
13797 void parser___parser_prod___AStarshipMethid___visit_all(val_t p0, val_t p1){
13798 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13799 val_t REGB0;
13800 val_t tmp;
13801 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13802 fra.me.file = LOCATE_parser___parser_prod;
13803 fra.me.line = 2599;
13804 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___visit_all;
13805 fra.me.has_broke = 0;
13806 fra.me.REG_size = 2;
13807 fra.me.REG[0] = NIT_NULL;
13808 fra.me.REG[1] = NIT_NULL;
13809 fra.me.REG[0] = p0;
13810 fra.me.REG[1] = p1;
13811 /* ./parser//parser_prod.nit:2601 */
13812 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0])!=NIT_NULL);
13813 if (UNTAG_Bool(REGB0)) {
13814 } else {
13815 nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser___parser_prod, 2601);
13816 }
13817 fra.me.REG[0] = ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]);
13818 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13819 stack_frame_head = fra.me.prev;
13820 return;
13821 }
13822 void parser___parser_prod___AAssignMethid___empty_init(val_t p0, int* init_table){
13823 int itpos89 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssignMethid].i;
13824 struct {struct stack_frame_t me;} fra;
13825 val_t tmp;
13826 if (init_table[itpos89]) return;
13827 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13828 fra.me.file = LOCATE_parser___parser_prod;
13829 fra.me.line = 2605;
13830 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___empty_init;
13831 fra.me.has_broke = 0;
13832 fra.me.REG_size = 1;
13833 fra.me.REG[0] = NIT_NULL;
13834 fra.me.REG[0] = p0;
13835 stack_frame_head = fra.me.prev;
13836 init_table[itpos89] = 1;
13837 return;
13838 }
13839 void parser___parser_prod___AAssignMethid___init_aassignmethid(val_t p0, val_t p1, val_t p2, int* init_table){
13840 int itpos90 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssignMethid].i;
13841 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13842 val_t REGB0;
13843 val_t tmp;
13844 if (init_table[itpos90]) return;
13845 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13846 fra.me.file = LOCATE_parser___parser_prod;
13847 fra.me.line = 2607;
13848 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___init_aassignmethid;
13849 fra.me.has_broke = 0;
13850 fra.me.REG_size = 4;
13851 fra.me.REG[0] = NIT_NULL;
13852 fra.me.REG[1] = NIT_NULL;
13853 fra.me.REG[2] = NIT_NULL;
13854 fra.me.REG[3] = NIT_NULL;
13855 fra.me.REG[0] = p0;
13856 fra.me.REG[1] = p1;
13857 fra.me.REG[2] = p2;
13858 /* ./parser//parser_prod.nit:2607 */
13859 fra.me.REG[3] = fra.me.REG[0];
13860 /* ./parser//parser_prod.nit:2612 */
13861 CALL_parser___parser_prod___AAssignMethid___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
13862 /* ./parser//parser_prod.nit:2613 */
13863 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13864 if (UNTAG_Bool(REGB0)) {
13865 } else {
13866 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2613);
13867 }
13868 ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[3]) = fra.me.REG[1];
13869 /* ./parser//parser_prod.nit:2614 */
13870 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13871 if (UNTAG_Bool(REGB0)) {
13872 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2614);
13873 }
13874 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
13875 /* ./parser//parser_prod.nit:2615 */
13876 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
13877 if (UNTAG_Bool(REGB0)) {
13878 } else {
13879 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2615);
13880 }
13881 ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[3]) = fra.me.REG[2];
13882 /* ./parser//parser_prod.nit:2616 */
13883 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13884 if (UNTAG_Bool(REGB0)) {
13885 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2616);
13886 }
13887 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
13888 stack_frame_head = fra.me.prev;
13889 init_table[itpos90] = 1;
13890 return;
13891 }
13892 void parser___parser_prod___AAssignMethid___replace_child(val_t p0, val_t p1, val_t p2){
13893 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13894 val_t REGB0;
13895 val_t REGB1;
13896 val_t tmp;
13897 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13898 fra.me.file = LOCATE_parser___parser_prod;
13899 fra.me.line = 2619;
13900 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___replace_child;
13901 fra.me.has_broke = 0;
13902 fra.me.REG_size = 4;
13903 fra.me.REG[0] = NIT_NULL;
13904 fra.me.REG[1] = NIT_NULL;
13905 fra.me.REG[2] = NIT_NULL;
13906 fra.me.REG[3] = NIT_NULL;
13907 fra.me.REG[0] = p0;
13908 fra.me.REG[1] = p1;
13909 fra.me.REG[2] = p2;
13910 /* ./parser//parser_prod.nit:2621 */
13911 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0])!=NIT_NULL);
13912 if (UNTAG_Bool(REGB0)) {
13913 } else {
13914 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2621);
13915 }
13916 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]);
13917 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13918 if (UNTAG_Bool(REGB0)) {
13919 } else {
13920 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13921 REGB0 = REGB1;
13922 }
13923 if (UNTAG_Bool(REGB0)) {
13924 /* ./parser//parser_prod.nit:2622 */
13925 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13926 if (UNTAG_Bool(REGB0)) {
13927 } else {
13928 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13929 if (UNTAG_Bool(REGB1)) {
13930 REGB1 = TAG_Bool(false);
13931 REGB0 = REGB1;
13932 } else {
13933 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13934 REGB0 = REGB1;
13935 }
13936 }
13937 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13938 if (UNTAG_Bool(REGB0)) {
13939 /* ./parser//parser_prod.nit:2623 */
13940 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13941 if (UNTAG_Bool(REGB0)) {
13942 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2623);
13943 }
13944 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13945 /* ./parser//parser_prod.nit:2624 */
13946 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*/;
13947 if (UNTAG_Bool(REGB0)) {
13948 } else {
13949 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2624);
13950 }
13951 /* ./parser//parser_prod.nit:2625 */
13952 ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]) = fra.me.REG[2];
13953 } else {
13954 /* ./parser//parser_prod.nit:2627 */
13955 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2627);
13956 }
13957 /* ./parser//parser_prod.nit:2629 */
13958 goto label1;
13959 }
13960 /* ./parser//parser_prod.nit:2631 */
13961 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
13962 if (UNTAG_Bool(REGB0)) {
13963 } else {
13964 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2631);
13965 }
13966 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]);
13967 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13968 if (UNTAG_Bool(REGB0)) {
13969 } else {
13970 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13971 REGB0 = REGB1;
13972 }
13973 if (UNTAG_Bool(REGB0)) {
13974 /* ./parser//parser_prod.nit:2632 */
13975 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13976 if (UNTAG_Bool(REGB0)) {
13977 } else {
13978 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13979 if (UNTAG_Bool(REGB1)) {
13980 REGB1 = TAG_Bool(false);
13981 REGB0 = REGB1;
13982 } else {
13983 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13984 REGB0 = REGB1;
13985 }
13986 }
13987 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13988 if (UNTAG_Bool(REGB0)) {
13989 /* ./parser//parser_prod.nit:2633 */
13990 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13991 if (UNTAG_Bool(REGB0)) {
13992 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2633);
13993 }
13994 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13995 /* ./parser//parser_prod.nit:2634 */
13996 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*/;
13997 if (UNTAG_Bool(REGB0)) {
13998 } else {
13999 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2634);
14000 }
14001 /* ./parser//parser_prod.nit:2635 */
14002 ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[2];
14003 } else {
14004 /* ./parser//parser_prod.nit:2637 */
14005 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2637);
14006 }
14007 /* ./parser//parser_prod.nit:2639 */
14008 goto label1;
14009 }
14010 label1: while(0);
14011 stack_frame_head = fra.me.prev;
14012 return;
14013 }
14014 void parser___parser_prod___AAssignMethid___visit_all(val_t p0, val_t p1){
14015 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14016 val_t REGB0;
14017 val_t tmp;
14018 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14019 fra.me.file = LOCATE_parser___parser_prod;
14020 fra.me.line = 2643;
14021 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___visit_all;
14022 fra.me.has_broke = 0;
14023 fra.me.REG_size = 3;
14024 fra.me.REG[0] = NIT_NULL;
14025 fra.me.REG[1] = NIT_NULL;
14026 fra.me.REG[2] = NIT_NULL;
14027 fra.me.REG[0] = p0;
14028 fra.me.REG[1] = p1;
14029 /* ./parser//parser_prod.nit:2645 */
14030 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0])!=NIT_NULL);
14031 if (UNTAG_Bool(REGB0)) {
14032 } else {
14033 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2645);
14034 }
14035 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]);
14036 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14037 /* ./parser//parser_prod.nit:2646 */
14038 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
14039 if (UNTAG_Bool(REGB0)) {
14040 } else {
14041 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2646);
14042 }
14043 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]);
14044 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14045 stack_frame_head = fra.me.prev;
14046 return;
14047 }
14048 void parser___parser_prod___ABraassignMethid___empty_init(val_t p0, int* init_table){
14049 int itpos91 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraassignMethid].i;
14050 struct {struct stack_frame_t me;} fra;
14051 val_t tmp;
14052 if (init_table[itpos91]) return;
14053 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14054 fra.me.file = LOCATE_parser___parser_prod;
14055 fra.me.line = 2650;
14056 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___empty_init;
14057 fra.me.has_broke = 0;
14058 fra.me.REG_size = 1;
14059 fra.me.REG[0] = NIT_NULL;
14060 fra.me.REG[0] = p0;
14061 stack_frame_head = fra.me.prev;
14062 init_table[itpos91] = 1;
14063 return;
14064 }
14065 void parser___parser_prod___ABraassignMethid___init_abraassignmethid(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
14066 int itpos92 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraassignMethid].i;
14067 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
14068 val_t REGB0;
14069 val_t tmp;
14070 if (init_table[itpos92]) return;
14071 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14072 fra.me.file = LOCATE_parser___parser_prod;
14073 fra.me.line = 2652;
14074 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___init_abraassignmethid;
14075 fra.me.has_broke = 0;
14076 fra.me.REG_size = 5;
14077 fra.me.REG[0] = NIT_NULL;
14078 fra.me.REG[1] = NIT_NULL;
14079 fra.me.REG[2] = NIT_NULL;
14080 fra.me.REG[3] = NIT_NULL;
14081 fra.me.REG[4] = NIT_NULL;
14082 fra.me.REG[0] = p0;
14083 fra.me.REG[1] = p1;
14084 fra.me.REG[2] = p2;
14085 fra.me.REG[3] = p3;
14086 /* ./parser//parser_prod.nit:2652 */
14087 fra.me.REG[4] = fra.me.REG[0];
14088 /* ./parser//parser_prod.nit:2658 */
14089 CALL_parser___parser_prod___ABraassignMethid___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
14090 /* ./parser//parser_prod.nit:2659 */
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, 2659);
14095 }
14096 ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[4]) = fra.me.REG[1];
14097 /* ./parser//parser_prod.nit:2660 */
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, 2660);
14101 }
14102 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
14103 /* ./parser//parser_prod.nit:2661 */
14104 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
14105 if (UNTAG_Bool(REGB0)) {
14106 } else {
14107 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2661);
14108 }
14109 ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[4]) = fra.me.REG[2];
14110 /* ./parser//parser_prod.nit:2662 */
14111 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14112 if (UNTAG_Bool(REGB0)) {
14113 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2662);
14114 }
14115 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
14116 /* ./parser//parser_prod.nit:2663 */
14117 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
14118 if (UNTAG_Bool(REGB0)) {
14119 } else {
14120 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2663);
14121 }
14122 ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[4]) = fra.me.REG[3];
14123 /* ./parser//parser_prod.nit:2664 */
14124 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14125 if (UNTAG_Bool(REGB0)) {
14126 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2664);
14127 }
14128 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
14129 stack_frame_head = fra.me.prev;
14130 init_table[itpos92] = 1;
14131 return;
14132 }
14133 void parser___parser_prod___ABraassignMethid___replace_child(val_t p0, val_t p1, val_t p2){
14134 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14135 val_t REGB0;
14136 val_t REGB1;
14137 val_t tmp;
14138 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14139 fra.me.file = LOCATE_parser___parser_prod;
14140 fra.me.line = 2667;
14141 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___replace_child;
14142 fra.me.has_broke = 0;
14143 fra.me.REG_size = 4;
14144 fra.me.REG[0] = NIT_NULL;
14145 fra.me.REG[1] = NIT_NULL;
14146 fra.me.REG[2] = NIT_NULL;
14147 fra.me.REG[3] = NIT_NULL;
14148 fra.me.REG[0] = p0;
14149 fra.me.REG[1] = p1;
14150 fra.me.REG[2] = p2;
14151 /* ./parser//parser_prod.nit:2669 */
14152 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
14153 if (UNTAG_Bool(REGB0)) {
14154 } else {
14155 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2669);
14156 }
14157 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]);
14158 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14159 if (UNTAG_Bool(REGB0)) {
14160 } else {
14161 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14162 REGB0 = REGB1;
14163 }
14164 if (UNTAG_Bool(REGB0)) {
14165 /* ./parser//parser_prod.nit:2670 */
14166 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14167 if (UNTAG_Bool(REGB0)) {
14168 } else {
14169 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14170 if (UNTAG_Bool(REGB1)) {
14171 REGB1 = TAG_Bool(false);
14172 REGB0 = REGB1;
14173 } else {
14174 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14175 REGB0 = REGB1;
14176 }
14177 }
14178 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14179 if (UNTAG_Bool(REGB0)) {
14180 /* ./parser//parser_prod.nit:2671 */
14181 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14182 if (UNTAG_Bool(REGB0)) {
14183 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2671);
14184 }
14185 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14186 /* ./parser//parser_prod.nit:2672 */
14187 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*/;
14188 if (UNTAG_Bool(REGB0)) {
14189 } else {
14190 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2672);
14191 }
14192 /* ./parser//parser_prod.nit:2673 */
14193 ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]) = fra.me.REG[2];
14194 } else {
14195 /* ./parser//parser_prod.nit:2675 */
14196 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2675);
14197 }
14198 /* ./parser//parser_prod.nit:2677 */
14199 goto label1;
14200 }
14201 /* ./parser//parser_prod.nit:2679 */
14202 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
14203 if (UNTAG_Bool(REGB0)) {
14204 } else {
14205 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2679);
14206 }
14207 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]);
14208 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14209 if (UNTAG_Bool(REGB0)) {
14210 } else {
14211 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14212 REGB0 = REGB1;
14213 }
14214 if (UNTAG_Bool(REGB0)) {
14215 /* ./parser//parser_prod.nit:2680 */
14216 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14217 if (UNTAG_Bool(REGB0)) {
14218 } else {
14219 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14220 if (UNTAG_Bool(REGB1)) {
14221 REGB1 = TAG_Bool(false);
14222 REGB0 = REGB1;
14223 } else {
14224 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14225 REGB0 = REGB1;
14226 }
14227 }
14228 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14229 if (UNTAG_Bool(REGB0)) {
14230 /* ./parser//parser_prod.nit:2681 */
14231 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14232 if (UNTAG_Bool(REGB0)) {
14233 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2681);
14234 }
14235 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14236 /* ./parser//parser_prod.nit:2682 */
14237 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*/;
14238 if (UNTAG_Bool(REGB0)) {
14239 } else {
14240 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2682);
14241 }
14242 /* ./parser//parser_prod.nit:2683 */
14243 ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
14244 } else {
14245 /* ./parser//parser_prod.nit:2685 */
14246 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2685);
14247 }
14248 /* ./parser//parser_prod.nit:2687 */
14249 goto label1;
14250 }
14251 /* ./parser//parser_prod.nit:2689 */
14252 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
14253 if (UNTAG_Bool(REGB0)) {
14254 } else {
14255 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2689);
14256 }
14257 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]);
14258 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14259 if (UNTAG_Bool(REGB0)) {
14260 } else {
14261 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14262 REGB0 = REGB1;
14263 }
14264 if (UNTAG_Bool(REGB0)) {
14265 /* ./parser//parser_prod.nit:2690 */
14266 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14267 if (UNTAG_Bool(REGB0)) {
14268 } else {
14269 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14270 if (UNTAG_Bool(REGB1)) {
14271 REGB1 = TAG_Bool(false);
14272 REGB0 = REGB1;
14273 } else {
14274 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14275 REGB0 = REGB1;
14276 }
14277 }
14278 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14279 if (UNTAG_Bool(REGB0)) {
14280 /* ./parser//parser_prod.nit:2691 */
14281 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14282 if (UNTAG_Bool(REGB0)) {
14283 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2691);
14284 }
14285 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14286 /* ./parser//parser_prod.nit:2692 */
14287 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*/;
14288 if (UNTAG_Bool(REGB0)) {
14289 } else {
14290 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2692);
14291 }
14292 /* ./parser//parser_prod.nit:2693 */
14293 ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[2];
14294 } else {
14295 /* ./parser//parser_prod.nit:2695 */
14296 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2695);
14297 }
14298 /* ./parser//parser_prod.nit:2697 */
14299 goto label1;
14300 }
14301 label1: while(0);
14302 stack_frame_head = fra.me.prev;
14303 return;
14304 }
14305 void parser___parser_prod___ABraassignMethid___visit_all(val_t p0, val_t p1){
14306 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14307 val_t REGB0;
14308 val_t tmp;
14309 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14310 fra.me.file = LOCATE_parser___parser_prod;
14311 fra.me.line = 2701;
14312 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___visit_all;
14313 fra.me.has_broke = 0;
14314 fra.me.REG_size = 3;
14315 fra.me.REG[0] = NIT_NULL;
14316 fra.me.REG[1] = NIT_NULL;
14317 fra.me.REG[2] = NIT_NULL;
14318 fra.me.REG[0] = p0;
14319 fra.me.REG[1] = p1;
14320 /* ./parser//parser_prod.nit:2703 */
14321 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
14322 if (UNTAG_Bool(REGB0)) {
14323 } else {
14324 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2703);
14325 }
14326 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]);
14327 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14328 /* ./parser//parser_prod.nit:2704 */
14329 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
14330 if (UNTAG_Bool(REGB0)) {
14331 } else {
14332 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2704);
14333 }
14334 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]);
14335 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14336 /* ./parser//parser_prod.nit:2705 */
14337 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
14338 if (UNTAG_Bool(REGB0)) {
14339 } else {
14340 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2705);
14341 }
14342 fra.me.REG[0] = ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]);
14343 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14344 stack_frame_head = fra.me.prev;
14345 return;
14346 }
14347 void parser___parser_prod___ASignature___empty_init(val_t p0, int* init_table){
14348 int itpos93 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASignature].i;
14349 struct {struct stack_frame_t me;} fra;
14350 val_t tmp;
14351 if (init_table[itpos93]) return;
14352 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14353 fra.me.file = LOCATE_parser___parser_prod;
14354 fra.me.line = 2709;
14355 fra.me.meth = LOCATE_parser___parser_prod___ASignature___empty_init;
14356 fra.me.has_broke = 0;
14357 fra.me.REG_size = 1;
14358 fra.me.REG[0] = NIT_NULL;
14359 fra.me.REG[0] = p0;
14360 stack_frame_head = fra.me.prev;
14361 init_table[itpos93] = 1;
14362 return;
14363 }
14364 void parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
14365 int itpos94 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASignature].i;
14366 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14367 val_t REGB0;
14368 val_t REGB1;
14369 val_t tmp;
14370 if (init_table[itpos94]) return;
14371 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14372 fra.me.file = LOCATE_parser___parser_prod;
14373 fra.me.line = 2711;
14374 fra.me.meth = LOCATE_parser___parser_prod___ASignature___init_asignature;
14375 fra.me.has_broke = 0;
14376 fra.me.REG_size = 4;
14377 fra.me.REG[0] = NIT_NULL;
14378 fra.me.REG[1] = NIT_NULL;
14379 fra.me.REG[2] = NIT_NULL;
14380 fra.me.REG[3] = NIT_NULL;
14381 fra.me.REG[0] = p0;
14382 fra.me.REG[1] = p1;
14383 fra.me.REG[2] = p2;
14384 fra.me.REG[3] = p3;
14385 /* ./parser//parser_prod.nit:2717 */
14386 CALL_parser___parser_prod___ASignature___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
14387 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));
14388 /* ./parser//parser_prod.nit:2723 */
14389 ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[2];
14390 /* ./parser//parser_prod.nit:2724 */
14391 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14392 if (UNTAG_Bool(REGB0)) {
14393 } else {
14394 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14395 if (UNTAG_Bool(REGB1)) {
14396 REGB1 = TAG_Bool(false);
14397 REGB0 = REGB1;
14398 } else {
14399 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14400 REGB0 = REGB1;
14401 }
14402 }
14403 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14404 if (UNTAG_Bool(REGB0)) {
14405 /* ./parser//parser_prod.nit:2725 */
14406 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14407 if (UNTAG_Bool(REGB0)) {
14408 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2725);
14409 }
14410 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14411 }
14412 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));
14413 stack_frame_head = fra.me.prev;
14414 init_table[itpos94] = 1;
14415 return;
14416 }
14417 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){
14418 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14419 val_t REGB0;
14420 fun_t CREG[1];
14421 val_t tmp;
14422 /* ./parser//parser_prod.nit:2718 */
14423 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14424 fra.me.file = LOCATE_parser___parser_prod;
14425 fra.me.line = 0;
14426 fra.me.meth = LOCATE_parser___parser_prod___ASignature___init_asignature;
14427 fra.me.has_broke = 0;
14428 fra.me.REG_size = 2;
14429 fra.me.REG[0] = NIT_NULL;
14430 fra.me.REG[1] = NIT_NULL;
14431 fra.me.closure_ctx = closctx_param;
14432 fra.me.closure_funs = CREG;
14433 fra.me.REG[0] = p0;
14434 CREG[0] = clos_fun0;
14435 /* ./parser//parser_prod.nit:2719 */
14436 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AParam, ID_parser___parser_nodes___AParam)) /*cast AParam*/;
14437 if (UNTAG_Bool(REGB0)) {
14438 } else {
14439 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2719);
14440 }
14441 /* ./parser//parser_prod.nit:2720 */
14442 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(closctx->REG[0])!=NIT_NULL);
14443 if (UNTAG_Bool(REGB0)) {
14444 } else {
14445 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2720);
14446 }
14447 fra.me.REG[1] = ATTR_parser___parser_nodes___ASignature____n_params(closctx->REG[0]);
14448 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14449 /* ./parser//parser_prod.nit:2721 */
14450 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
14451 stack_frame_head = fra.me.prev;
14452 return;
14453 }
14454 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){
14455 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14456 val_t REGB0;
14457 fun_t CREG[1];
14458 val_t tmp;
14459 /* ./parser//parser_prod.nit:2727 */
14460 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14461 fra.me.file = LOCATE_parser___parser_prod;
14462 fra.me.line = 0;
14463 fra.me.meth = LOCATE_parser___parser_prod___ASignature___init_asignature;
14464 fra.me.has_broke = 0;
14465 fra.me.REG_size = 2;
14466 fra.me.REG[0] = NIT_NULL;
14467 fra.me.REG[1] = NIT_NULL;
14468 fra.me.closure_ctx = closctx_param;
14469 fra.me.closure_funs = CREG;
14470 fra.me.REG[0] = p0;
14471 CREG[0] = clos_fun0;
14472 /* ./parser//parser_prod.nit:2728 */
14473 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDecl, ID_parser___parser_nodes___AClosureDecl)) /*cast AClosureDecl*/;
14474 if (UNTAG_Bool(REGB0)) {
14475 } else {
14476 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2728);
14477 }
14478 /* ./parser//parser_prod.nit:2729 */
14479 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(closctx->REG[0])!=NIT_NULL);
14480 if (UNTAG_Bool(REGB0)) {
14481 } else {
14482 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2729);
14483 }
14484 fra.me.REG[1] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(closctx->REG[0]);
14485 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14486 /* ./parser//parser_prod.nit:2730 */
14487 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
14488 stack_frame_head = fra.me.prev;
14489 return;
14490 }
14491 void parser___parser_prod___ASignature___replace_child(val_t p0, val_t p1, val_t p2){
14492 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14493 val_t REGB0;
14494 val_t REGB1;
14495 val_t REGB2;
14496 val_t REGB3;
14497 val_t REGB4;
14498 val_t tmp;
14499 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14500 fra.me.file = LOCATE_parser___parser_prod;
14501 fra.me.line = 2734;
14502 fra.me.meth = LOCATE_parser___parser_prod___ASignature___replace_child;
14503 fra.me.has_broke = 0;
14504 fra.me.REG_size = 4;
14505 fra.me.REG[0] = NIT_NULL;
14506 fra.me.REG[1] = NIT_NULL;
14507 fra.me.REG[2] = NIT_NULL;
14508 fra.me.REG[3] = NIT_NULL;
14509 fra.me.REG[0] = p0;
14510 fra.me.REG[1] = p1;
14511 fra.me.REG[2] = p2;
14512 /* ./parser//parser_prod.nit:2736 */
14513 REGB0 = TAG_Int(0);
14514 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
14515 if (UNTAG_Bool(REGB1)) {
14516 } else {
14517 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2736);
14518 }
14519 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
14520 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
14521 /* ./../lib/standard//kernel.nit:335 */
14522 while(1) {
14523 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
14524 if (UNTAG_Bool(REGB2)) {
14525 } else {
14526 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14527 }
14528 /* ./../lib/standard//kernel.nit:215 */
14529 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
14530 /* ./../lib/standard//kernel.nit:335 */
14531 if (UNTAG_Bool(REGB2)) {
14532 /* ./parser//parser_prod.nit:2736 */
14533 REGB2 = REGB0;
14534 /* ./parser//parser_prod.nit:2737 */
14535 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
14536 if (UNTAG_Bool(REGB3)) {
14537 } else {
14538 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2737);
14539 }
14540 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
14541 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
14542 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
14543 if (UNTAG_Bool(REGB3)) {
14544 } else {
14545 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14546 if (UNTAG_Bool(REGB4)) {
14547 REGB4 = TAG_Bool(false);
14548 REGB3 = REGB4;
14549 } else {
14550 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14551 REGB3 = REGB4;
14552 }
14553 }
14554 if (UNTAG_Bool(REGB3)) {
14555 /* ./parser//parser_prod.nit:2738 */
14556 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14557 if (UNTAG_Bool(REGB3)) {
14558 } else {
14559 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14560 if (UNTAG_Bool(REGB4)) {
14561 REGB4 = TAG_Bool(false);
14562 REGB3 = REGB4;
14563 } else {
14564 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14565 REGB3 = REGB4;
14566 }
14567 }
14568 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
14569 if (UNTAG_Bool(REGB3)) {
14570 /* ./parser//parser_prod.nit:2739 */
14571 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*/;
14572 if (UNTAG_Bool(REGB3)) {
14573 } else {
14574 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2739);
14575 }
14576 /* ./parser//parser_prod.nit:2740 */
14577 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
14578 if (UNTAG_Bool(REGB3)) {
14579 } else {
14580 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2740);
14581 }
14582 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
14583 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
14584 /* ./parser//parser_prod.nit:2741 */
14585 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14586 if (UNTAG_Bool(REGB3)) {
14587 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2741);
14588 }
14589 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14590 } else {
14591 /* ./parser//parser_prod.nit:2743 */
14592 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
14593 if (UNTAG_Bool(REGB3)) {
14594 } else {
14595 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2743);
14596 }
14597 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
14598 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
14599 }
14600 /* ./parser//parser_prod.nit:2745 */
14601 goto label1;
14602 }
14603 /* ./../lib/standard//kernel.nit:337 */
14604 REGB2 = TAG_Int(1);
14605 /* ./../lib/standard//kernel.nit:218 */
14606 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
14607 /* ./../lib/standard//kernel.nit:337 */
14608 REGB0 = REGB2;
14609 } else {
14610 /* ./../lib/standard//kernel.nit:335 */
14611 goto label2;
14612 }
14613 }
14614 label2: while(0);
14615 /* ./parser//parser_prod.nit:2748 */
14616 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]);
14617 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
14618 if (UNTAG_Bool(REGB0)) {
14619 } else {
14620 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14621 if (UNTAG_Bool(REGB1)) {
14622 REGB1 = TAG_Bool(false);
14623 REGB0 = REGB1;
14624 } else {
14625 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14626 REGB0 = REGB1;
14627 }
14628 }
14629 if (UNTAG_Bool(REGB0)) {
14630 /* ./parser//parser_prod.nit:2749 */
14631 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14632 if (UNTAG_Bool(REGB0)) {
14633 } else {
14634 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14635 if (UNTAG_Bool(REGB1)) {
14636 REGB1 = TAG_Bool(false);
14637 REGB0 = REGB1;
14638 } else {
14639 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14640 REGB0 = REGB1;
14641 }
14642 }
14643 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14644 if (UNTAG_Bool(REGB0)) {
14645 /* ./parser//parser_prod.nit:2750 */
14646 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14647 if (UNTAG_Bool(REGB0)) {
14648 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2750);
14649 }
14650 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14651 /* ./parser//parser_prod.nit:2751 */
14652 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*/;
14653 if (UNTAG_Bool(REGB0)) {
14654 } else {
14655 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2751);
14656 }
14657 /* ./parser//parser_prod.nit:2752 */
14658 ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[2];
14659 } else {
14660 /* ./parser//parser_prod.nit:2754 */
14661 ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = NIT_NULL;
14662 }
14663 /* ./parser//parser_prod.nit:2756 */
14664 goto label1;
14665 }
14666 /* ./parser//parser_prod.nit:2758 */
14667 REGB0 = TAG_Int(0);
14668 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
14669 if (UNTAG_Bool(REGB1)) {
14670 } else {
14671 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2758);
14672 }
14673 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
14674 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
14675 /* ./../lib/standard//kernel.nit:335 */
14676 while(1) {
14677 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
14678 if (UNTAG_Bool(REGB2)) {
14679 } else {
14680 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
14681 }
14682 /* ./../lib/standard//kernel.nit:215 */
14683 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
14684 /* ./../lib/standard//kernel.nit:335 */
14685 if (UNTAG_Bool(REGB2)) {
14686 /* ./parser//parser_prod.nit:2758 */
14687 REGB2 = REGB0;
14688 /* ./parser//parser_prod.nit:2759 */
14689 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
14690 if (UNTAG_Bool(REGB3)) {
14691 } else {
14692 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2759);
14693 }
14694 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
14695 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
14696 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
14697 if (UNTAG_Bool(REGB3)) {
14698 } else {
14699 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14700 if (UNTAG_Bool(REGB4)) {
14701 REGB4 = TAG_Bool(false);
14702 REGB3 = REGB4;
14703 } else {
14704 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14705 REGB3 = REGB4;
14706 }
14707 }
14708 if (UNTAG_Bool(REGB3)) {
14709 /* ./parser//parser_prod.nit:2760 */
14710 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14711 if (UNTAG_Bool(REGB3)) {
14712 } else {
14713 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14714 if (UNTAG_Bool(REGB4)) {
14715 REGB4 = TAG_Bool(false);
14716 REGB3 = REGB4;
14717 } else {
14718 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14719 REGB3 = REGB4;
14720 }
14721 }
14722 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
14723 if (UNTAG_Bool(REGB3)) {
14724 /* ./parser//parser_prod.nit:2761 */
14725 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*/;
14726 if (UNTAG_Bool(REGB3)) {
14727 } else {
14728 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2761);
14729 }
14730 /* ./parser//parser_prod.nit:2762 */
14731 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
14732 if (UNTAG_Bool(REGB3)) {
14733 } else {
14734 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2762);
14735 }
14736 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
14737 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
14738 /* ./parser//parser_prod.nit:2763 */
14739 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14740 if (UNTAG_Bool(REGB3)) {
14741 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2763);
14742 }
14743 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14744 } else {
14745 /* ./parser//parser_prod.nit:2765 */
14746 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
14747 if (UNTAG_Bool(REGB3)) {
14748 } else {
14749 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2765);
14750 }
14751 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
14752 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
14753 }
14754 /* ./parser//parser_prod.nit:2767 */
14755 goto label1;
14756 }
14757 /* ./../lib/standard//kernel.nit:337 */
14758 REGB2 = TAG_Int(1);
14759 /* ./../lib/standard//kernel.nit:218 */
14760 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
14761 /* ./../lib/standard//kernel.nit:337 */
14762 REGB0 = REGB2;
14763 } else {
14764 /* ./../lib/standard//kernel.nit:335 */
14765 goto label3;
14766 }
14767 }
14768 label3: while(0);
14769 label1: while(0);
14770 stack_frame_head = fra.me.prev;
14771 return;
14772 }
14773 void parser___parser_prod___ASignature___visit_all(val_t p0, val_t p1){
14774 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14775 val_t REGB0;
14776 val_t REGB1;
14777 val_t tmp;
14778 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14779 fra.me.file = LOCATE_parser___parser_prod;
14780 fra.me.line = 2772;
14781 fra.me.meth = LOCATE_parser___parser_prod___ASignature___visit_all;
14782 fra.me.has_broke = 0;
14783 fra.me.REG_size = 4;
14784 fra.me.REG[0] = NIT_NULL;
14785 fra.me.REG[1] = NIT_NULL;
14786 fra.me.REG[2] = NIT_NULL;
14787 fra.me.REG[3] = NIT_NULL;
14788 fra.me.REG[0] = p0;
14789 fra.me.REG[1] = p1;
14790 /* ./parser//parser_prod.nit:2772 */
14791 fra.me.REG[2] = fra.me.REG[0];
14792 /* ./parser//parser_prod.nit:2774 */
14793 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[2])!=NIT_NULL);
14794 if (UNTAG_Bool(REGB0)) {
14795 } else {
14796 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2774);
14797 }
14798 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[2]);
14799 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));
14800 /* ./parser//parser_prod.nit:2777 */
14801 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[2]);
14802 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14803 if (UNTAG_Bool(REGB0)) {
14804 } else {
14805 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14806 if (UNTAG_Bool(REGB1)) {
14807 REGB1 = TAG_Bool(false);
14808 REGB0 = REGB1;
14809 } else {
14810 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
14811 REGB0 = REGB1;
14812 }
14813 }
14814 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14815 if (UNTAG_Bool(REGB0)) {
14816 /* ./parser//parser_prod.nit:2778 */
14817 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[2]);
14818 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*/;
14819 if (UNTAG_Bool(REGB0)) {
14820 } else {
14821 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2778);
14822 }
14823 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14824 }
14825 /* ./parser//parser_prod.nit:2780 */
14826 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[2])!=NIT_NULL);
14827 if (UNTAG_Bool(REGB0)) {
14828 } else {
14829 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2780);
14830 }
14831 fra.me.REG[2] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[2]);
14832 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));
14833 stack_frame_head = fra.me.prev;
14834 return;
14835 }
14836 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){
14837 struct {struct stack_frame_t me;} fra;
14838 fun_t CREG[1];
14839 val_t tmp;
14840 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14841 fra.me.file = LOCATE_parser___parser_prod;
14842 fra.me.line = 0;
14843 fra.me.meth = LOCATE_parser___parser_prod___ASignature___visit_all;
14844 fra.me.has_broke = 0;
14845 fra.me.REG_size = 1;
14846 fra.me.REG[0] = NIT_NULL;
14847 fra.me.closure_ctx = closctx_param;
14848 fra.me.closure_funs = CREG;
14849 fra.me.REG[0] = p0;
14850 CREG[0] = clos_fun0;
14851 /* ./parser//parser_prod.nit:2775 */
14852 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
14853 stack_frame_head = fra.me.prev;
14854 return;
14855 }
14856 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){
14857 struct {struct stack_frame_t me;} fra;
14858 fun_t CREG[1];
14859 val_t tmp;
14860 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14861 fra.me.file = LOCATE_parser___parser_prod;
14862 fra.me.line = 0;
14863 fra.me.meth = LOCATE_parser___parser_prod___ASignature___visit_all;
14864 fra.me.has_broke = 0;
14865 fra.me.REG_size = 1;
14866 fra.me.REG[0] = NIT_NULL;
14867 fra.me.closure_ctx = closctx_param;
14868 fra.me.closure_funs = CREG;
14869 fra.me.REG[0] = p0;
14870 CREG[0] = clos_fun0;
14871 /* ./parser//parser_prod.nit:2781 */
14872 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
14873 stack_frame_head = fra.me.prev;
14874 return;
14875 }
14876 void parser___parser_prod___AParam___empty_init(val_t p0, int* init_table){
14877 int itpos95 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParam].i;
14878 struct {struct stack_frame_t me;} fra;
14879 val_t tmp;
14880 if (init_table[itpos95]) return;
14881 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14882 fra.me.file = LOCATE_parser___parser_prod;
14883 fra.me.line = 2786;
14884 fra.me.meth = LOCATE_parser___parser_prod___AParam___empty_init;
14885 fra.me.has_broke = 0;
14886 fra.me.REG_size = 1;
14887 fra.me.REG[0] = NIT_NULL;
14888 fra.me.REG[0] = p0;
14889 stack_frame_head = fra.me.prev;
14890 init_table[itpos95] = 1;
14891 return;
14892 }
14893 void parser___parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
14894 int itpos96 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParam].i;
14895 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
14896 val_t REGB0;
14897 val_t REGB1;
14898 val_t tmp;
14899 if (init_table[itpos96]) return;
14900 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14901 fra.me.file = LOCATE_parser___parser_prod;
14902 fra.me.line = 2788;
14903 fra.me.meth = LOCATE_parser___parser_prod___AParam___init_aparam;
14904 fra.me.has_broke = 0;
14905 fra.me.REG_size = 5;
14906 fra.me.REG[0] = NIT_NULL;
14907 fra.me.REG[1] = NIT_NULL;
14908 fra.me.REG[2] = NIT_NULL;
14909 fra.me.REG[3] = NIT_NULL;
14910 fra.me.REG[4] = NIT_NULL;
14911 fra.me.REG[0] = p0;
14912 fra.me.REG[1] = p1;
14913 fra.me.REG[2] = p2;
14914 fra.me.REG[3] = p3;
14915 /* ./parser//parser_prod.nit:2788 */
14916 fra.me.REG[4] = fra.me.REG[0];
14917 /* ./parser//parser_prod.nit:2794 */
14918 CALL_parser___parser_prod___AParam___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
14919 /* ./parser//parser_prod.nit:2795 */
14920 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14921 if (UNTAG_Bool(REGB0)) {
14922 } else {
14923 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2795);
14924 }
14925 ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[4]) = fra.me.REG[1];
14926 /* ./parser//parser_prod.nit:2796 */
14927 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14928 if (UNTAG_Bool(REGB0)) {
14929 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2796);
14930 }
14931 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
14932 /* ./parser//parser_prod.nit:2797 */
14933 ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[4]) = fra.me.REG[2];
14934 /* ./parser//parser_prod.nit:2798 */
14935 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14936 if (UNTAG_Bool(REGB0)) {
14937 } else {
14938 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14939 if (UNTAG_Bool(REGB1)) {
14940 REGB1 = TAG_Bool(false);
14941 REGB0 = REGB1;
14942 } else {
14943 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14944 REGB0 = REGB1;
14945 }
14946 }
14947 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14948 if (UNTAG_Bool(REGB0)) {
14949 /* ./parser//parser_prod.nit:2799 */
14950 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14951 if (UNTAG_Bool(REGB0)) {
14952 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2799);
14953 }
14954 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
14955 }
14956 /* ./parser//parser_prod.nit:2801 */
14957 ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[4]) = fra.me.REG[3];
14958 /* ./parser//parser_prod.nit:2802 */
14959 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14960 if (UNTAG_Bool(REGB0)) {
14961 } else {
14962 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14963 if (UNTAG_Bool(REGB1)) {
14964 REGB1 = TAG_Bool(false);
14965 REGB0 = REGB1;
14966 } else {
14967 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
14968 REGB0 = REGB1;
14969 }
14970 }
14971 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14972 if (UNTAG_Bool(REGB0)) {
14973 /* ./parser//parser_prod.nit:2803 */
14974 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14975 if (UNTAG_Bool(REGB0)) {
14976 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2803);
14977 }
14978 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
14979 }
14980 stack_frame_head = fra.me.prev;
14981 init_table[itpos96] = 1;
14982 return;
14983 }
14984 void parser___parser_prod___AParam___replace_child(val_t p0, val_t p1, val_t p2){
14985 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14986 val_t REGB0;
14987 val_t REGB1;
14988 val_t tmp;
14989 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14990 fra.me.file = LOCATE_parser___parser_prod;
14991 fra.me.line = 2807;
14992 fra.me.meth = LOCATE_parser___parser_prod___AParam___replace_child;
14993 fra.me.has_broke = 0;
14994 fra.me.REG_size = 4;
14995 fra.me.REG[0] = NIT_NULL;
14996 fra.me.REG[1] = NIT_NULL;
14997 fra.me.REG[2] = NIT_NULL;
14998 fra.me.REG[3] = NIT_NULL;
14999 fra.me.REG[0] = p0;
15000 fra.me.REG[1] = p1;
15001 fra.me.REG[2] = p2;
15002 /* ./parser//parser_prod.nit:2809 */
15003 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0])!=NIT_NULL);
15004 if (UNTAG_Bool(REGB0)) {
15005 } else {
15006 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2809);
15007 }
15008 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0]);
15009 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15010 if (UNTAG_Bool(REGB0)) {
15011 } else {
15012 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15013 REGB0 = REGB1;
15014 }
15015 if (UNTAG_Bool(REGB0)) {
15016 /* ./parser//parser_prod.nit:2810 */
15017 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15018 if (UNTAG_Bool(REGB0)) {
15019 } else {
15020 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15021 if (UNTAG_Bool(REGB1)) {
15022 REGB1 = TAG_Bool(false);
15023 REGB0 = REGB1;
15024 } else {
15025 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15026 REGB0 = REGB1;
15027 }
15028 }
15029 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15030 if (UNTAG_Bool(REGB0)) {
15031 /* ./parser//parser_prod.nit:2811 */
15032 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15033 if (UNTAG_Bool(REGB0)) {
15034 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2811);
15035 }
15036 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15037 /* ./parser//parser_prod.nit:2812 */
15038 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*/;
15039 if (UNTAG_Bool(REGB0)) {
15040 } else {
15041 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2812);
15042 }
15043 /* ./parser//parser_prod.nit:2813 */
15044 ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0]) = fra.me.REG[2];
15045 } else {
15046 /* ./parser//parser_prod.nit:2815 */
15047 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2815);
15048 }
15049 /* ./parser//parser_prod.nit:2817 */
15050 goto label1;
15051 }
15052 /* ./parser//parser_prod.nit:2819 */
15053 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]);
15054 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
15055 if (UNTAG_Bool(REGB0)) {
15056 } else {
15057 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15058 if (UNTAG_Bool(REGB1)) {
15059 REGB1 = TAG_Bool(false);
15060 REGB0 = REGB1;
15061 } else {
15062 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15063 REGB0 = REGB1;
15064 }
15065 }
15066 if (UNTAG_Bool(REGB0)) {
15067 /* ./parser//parser_prod.nit:2820 */
15068 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15069 if (UNTAG_Bool(REGB0)) {
15070 } else {
15071 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15072 if (UNTAG_Bool(REGB1)) {
15073 REGB1 = TAG_Bool(false);
15074 REGB0 = REGB1;
15075 } else {
15076 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15077 REGB0 = REGB1;
15078 }
15079 }
15080 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15081 if (UNTAG_Bool(REGB0)) {
15082 /* ./parser//parser_prod.nit:2821 */
15083 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15084 if (UNTAG_Bool(REGB0)) {
15085 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2821);
15086 }
15087 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15088 /* ./parser//parser_prod.nit:2822 */
15089 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*/;
15090 if (UNTAG_Bool(REGB0)) {
15091 } else {
15092 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2822);
15093 }
15094 /* ./parser//parser_prod.nit:2823 */
15095 ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]) = fra.me.REG[2];
15096 } else {
15097 /* ./parser//parser_prod.nit:2825 */
15098 ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]) = NIT_NULL;
15099 }
15100 /* ./parser//parser_prod.nit:2827 */
15101 goto label1;
15102 }
15103 /* ./parser//parser_prod.nit:2829 */
15104 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]);
15105 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
15106 if (UNTAG_Bool(REGB0)) {
15107 } else {
15108 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15109 if (UNTAG_Bool(REGB1)) {
15110 REGB1 = TAG_Bool(false);
15111 REGB0 = REGB1;
15112 } else {
15113 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15114 REGB0 = REGB1;
15115 }
15116 }
15117 if (UNTAG_Bool(REGB0)) {
15118 /* ./parser//parser_prod.nit:2830 */
15119 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15120 if (UNTAG_Bool(REGB0)) {
15121 } else {
15122 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15123 if (UNTAG_Bool(REGB1)) {
15124 REGB1 = TAG_Bool(false);
15125 REGB0 = REGB1;
15126 } else {
15127 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15128 REGB0 = REGB1;
15129 }
15130 }
15131 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15132 if (UNTAG_Bool(REGB0)) {
15133 /* ./parser//parser_prod.nit:2831 */
15134 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15135 if (UNTAG_Bool(REGB0)) {
15136 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2831);
15137 }
15138 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15139 /* ./parser//parser_prod.nit:2832 */
15140 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*/;
15141 if (UNTAG_Bool(REGB0)) {
15142 } else {
15143 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2832);
15144 }
15145 /* ./parser//parser_prod.nit:2833 */
15146 ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = fra.me.REG[2];
15147 } else {
15148 /* ./parser//parser_prod.nit:2835 */
15149 ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = NIT_NULL;
15150 }
15151 /* ./parser//parser_prod.nit:2837 */
15152 goto label1;
15153 }
15154 label1: while(0);
15155 stack_frame_head = fra.me.prev;
15156 return;
15157 }
15158 void parser___parser_prod___AParam___visit_all(val_t p0, val_t p1){
15159 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15160 val_t REGB0;
15161 val_t REGB1;
15162 val_t tmp;
15163 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15164 fra.me.file = LOCATE_parser___parser_prod;
15165 fra.me.line = 2841;
15166 fra.me.meth = LOCATE_parser___parser_prod___AParam___visit_all;
15167 fra.me.has_broke = 0;
15168 fra.me.REG_size = 4;
15169 fra.me.REG[0] = NIT_NULL;
15170 fra.me.REG[1] = NIT_NULL;
15171 fra.me.REG[2] = NIT_NULL;
15172 fra.me.REG[3] = NIT_NULL;
15173 fra.me.REG[0] = p0;
15174 fra.me.REG[1] = p1;
15175 /* ./parser//parser_prod.nit:2841 */
15176 fra.me.REG[2] = fra.me.REG[0];
15177 /* ./parser//parser_prod.nit:2843 */
15178 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[2])!=NIT_NULL);
15179 if (UNTAG_Bool(REGB0)) {
15180 } else {
15181 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2843);
15182 }
15183 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[2]);
15184 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15185 /* ./parser//parser_prod.nit:2844 */
15186 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[2]);
15187 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15188 if (UNTAG_Bool(REGB0)) {
15189 } else {
15190 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15191 if (UNTAG_Bool(REGB1)) {
15192 REGB1 = TAG_Bool(false);
15193 REGB0 = REGB1;
15194 } else {
15195 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
15196 REGB0 = REGB1;
15197 }
15198 }
15199 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15200 if (UNTAG_Bool(REGB0)) {
15201 /* ./parser//parser_prod.nit:2845 */
15202 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[2]);
15203 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*/;
15204 if (UNTAG_Bool(REGB0)) {
15205 } else {
15206 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2845);
15207 }
15208 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15209 }
15210 /* ./parser//parser_prod.nit:2847 */
15211 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[2]);
15212 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15213 if (UNTAG_Bool(REGB0)) {
15214 } else {
15215 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15216 if (UNTAG_Bool(REGB1)) {
15217 REGB1 = TAG_Bool(false);
15218 REGB0 = REGB1;
15219 } else {
15220 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
15221 REGB0 = REGB1;
15222 }
15223 }
15224 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15225 if (UNTAG_Bool(REGB0)) {
15226 /* ./parser//parser_prod.nit:2848 */
15227 fra.me.REG[2] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[2]);
15228 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*/;
15229 if (UNTAG_Bool(REGB0)) {
15230 } else {
15231 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2848);
15232 }
15233 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15234 }
15235 stack_frame_head = fra.me.prev;
15236 return;
15237 }
15238 void parser___parser_prod___AClosureDecl___empty_init(val_t p0, int* init_table){
15239 int itpos97 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDecl].i;
15240 struct {struct stack_frame_t me;} fra;
15241 val_t tmp;
15242 if (init_table[itpos97]) return;
15243 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15244 fra.me.file = LOCATE_parser___parser_prod;
15245 fra.me.line = 2853;
15246 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___empty_init;
15247 fra.me.has_broke = 0;
15248 fra.me.REG_size = 1;
15249 fra.me.REG[0] = NIT_NULL;
15250 fra.me.REG[0] = p0;
15251 stack_frame_head = fra.me.prev;
15252 init_table[itpos97] = 1;
15253 return;
15254 }
15255 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){
15256 int itpos98 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDecl].i;
15257 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
15258 val_t REGB0;
15259 val_t REGB1;
15260 val_t tmp;
15261 if (init_table[itpos98]) return;
15262 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15263 fra.me.file = LOCATE_parser___parser_prod;
15264 fra.me.line = 2855;
15265 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___init_aclosuredecl;
15266 fra.me.has_broke = 0;
15267 fra.me.REG_size = 7;
15268 fra.me.REG[0] = NIT_NULL;
15269 fra.me.REG[1] = NIT_NULL;
15270 fra.me.REG[2] = NIT_NULL;
15271 fra.me.REG[3] = NIT_NULL;
15272 fra.me.REG[4] = NIT_NULL;
15273 fra.me.REG[5] = NIT_NULL;
15274 fra.me.REG[6] = NIT_NULL;
15275 fra.me.REG[0] = p0;
15276 fra.me.REG[1] = p1;
15277 fra.me.REG[2] = p2;
15278 fra.me.REG[3] = p3;
15279 fra.me.REG[4] = p4;
15280 fra.me.REG[5] = p5;
15281 /* ./parser//parser_prod.nit:2855 */
15282 fra.me.REG[6] = fra.me.REG[0];
15283 /* ./parser//parser_prod.nit:2863 */
15284 CALL_parser___parser_prod___AClosureDecl___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
15285 /* ./parser//parser_prod.nit:2864 */
15286 ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[6]) = fra.me.REG[1];
15287 /* ./parser//parser_prod.nit:2865 */
15288 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15289 if (UNTAG_Bool(REGB0)) {
15290 } else {
15291 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15292 if (UNTAG_Bool(REGB1)) {
15293 REGB1 = TAG_Bool(false);
15294 REGB0 = REGB1;
15295 } else {
15296 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
15297 REGB0 = REGB1;
15298 }
15299 }
15300 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15301 if (UNTAG_Bool(REGB0)) {
15302 /* ./parser//parser_prod.nit:2866 */
15303 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15304 if (UNTAG_Bool(REGB0)) {
15305 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2866);
15306 }
15307 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
15308 }
15309 /* ./parser//parser_prod.nit:2868 */
15310 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
15311 if (UNTAG_Bool(REGB0)) {
15312 } else {
15313 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2868);
15314 }
15315 ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[6]) = fra.me.REG[2];
15316 /* ./parser//parser_prod.nit:2869 */
15317 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15318 if (UNTAG_Bool(REGB0)) {
15319 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2869);
15320 }
15321 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
15322 /* ./parser//parser_prod.nit:2870 */
15323 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
15324 if (UNTAG_Bool(REGB0)) {
15325 } else {
15326 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2870);
15327 }
15328 ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[6]) = fra.me.REG[3];
15329 /* ./parser//parser_prod.nit:2871 */
15330 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15331 if (UNTAG_Bool(REGB0)) {
15332 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2871);
15333 }
15334 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
15335 /* ./parser//parser_prod.nit:2872 */
15336 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
15337 if (UNTAG_Bool(REGB0)) {
15338 } else {
15339 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2872);
15340 }
15341 ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[6]) = fra.me.REG[4];
15342 /* ./parser//parser_prod.nit:2873 */
15343 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
15344 if (UNTAG_Bool(REGB0)) {
15345 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2873);
15346 }
15347 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
15348 /* ./parser//parser_prod.nit:2874 */
15349 ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[6]) = fra.me.REG[5];
15350 /* ./parser//parser_prod.nit:2875 */
15351 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
15352 if (UNTAG_Bool(REGB0)) {
15353 } else {
15354 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
15355 if (UNTAG_Bool(REGB1)) {
15356 REGB1 = TAG_Bool(false);
15357 REGB0 = REGB1;
15358 } else {
15359 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
15360 REGB0 = REGB1;
15361 }
15362 }
15363 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15364 if (UNTAG_Bool(REGB0)) {
15365 /* ./parser//parser_prod.nit:2876 */
15366 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
15367 if (UNTAG_Bool(REGB0)) {
15368 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2876);
15369 }
15370 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
15371 }
15372 stack_frame_head = fra.me.prev;
15373 init_table[itpos98] = 1;
15374 return;
15375 }
15376 void parser___parser_prod___AClosureDecl___replace_child(val_t p0, val_t p1, val_t p2){
15377 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15378 val_t REGB0;
15379 val_t REGB1;
15380 val_t tmp;
15381 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15382 fra.me.file = LOCATE_parser___parser_prod;
15383 fra.me.line = 2880;
15384 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___replace_child;
15385 fra.me.has_broke = 0;
15386 fra.me.REG_size = 4;
15387 fra.me.REG[0] = NIT_NULL;
15388 fra.me.REG[1] = NIT_NULL;
15389 fra.me.REG[2] = NIT_NULL;
15390 fra.me.REG[3] = NIT_NULL;
15391 fra.me.REG[0] = p0;
15392 fra.me.REG[1] = p1;
15393 fra.me.REG[2] = p2;
15394 /* ./parser//parser_prod.nit:2882 */
15395 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]);
15396 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
15397 if (UNTAG_Bool(REGB0)) {
15398 } else {
15399 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15400 if (UNTAG_Bool(REGB1)) {
15401 REGB1 = TAG_Bool(false);
15402 REGB0 = REGB1;
15403 } else {
15404 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15405 REGB0 = REGB1;
15406 }
15407 }
15408 if (UNTAG_Bool(REGB0)) {
15409 /* ./parser//parser_prod.nit:2883 */
15410 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15411 if (UNTAG_Bool(REGB0)) {
15412 } else {
15413 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15414 if (UNTAG_Bool(REGB1)) {
15415 REGB1 = TAG_Bool(false);
15416 REGB0 = REGB1;
15417 } else {
15418 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15419 REGB0 = REGB1;
15420 }
15421 }
15422 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15423 if (UNTAG_Bool(REGB0)) {
15424 /* ./parser//parser_prod.nit:2884 */
15425 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15426 if (UNTAG_Bool(REGB0)) {
15427 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2884);
15428 }
15429 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15430 /* ./parser//parser_prod.nit:2885 */
15431 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*/;
15432 if (UNTAG_Bool(REGB0)) {
15433 } else {
15434 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2885);
15435 }
15436 /* ./parser//parser_prod.nit:2886 */
15437 ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
15438 } else {
15439 /* ./parser//parser_prod.nit:2888 */
15440 ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = NIT_NULL;
15441 }
15442 /* ./parser//parser_prod.nit:2890 */
15443 goto label1;
15444 }
15445 /* ./parser//parser_prod.nit:2892 */
15446 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0])!=NIT_NULL);
15447 if (UNTAG_Bool(REGB0)) {
15448 } else {
15449 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 2892);
15450 }
15451 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]);
15452 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15453 if (UNTAG_Bool(REGB0)) {
15454 } else {
15455 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15456 REGB0 = REGB1;
15457 }
15458 if (UNTAG_Bool(REGB0)) {
15459 /* ./parser//parser_prod.nit:2893 */
15460 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15461 if (UNTAG_Bool(REGB0)) {
15462 } else {
15463 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15464 if (UNTAG_Bool(REGB1)) {
15465 REGB1 = TAG_Bool(false);
15466 REGB0 = REGB1;
15467 } else {
15468 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15469 REGB0 = REGB1;
15470 }
15471 }
15472 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15473 if (UNTAG_Bool(REGB0)) {
15474 /* ./parser//parser_prod.nit:2894 */
15475 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15476 if (UNTAG_Bool(REGB0)) {
15477 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2894);
15478 }
15479 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15480 /* ./parser//parser_prod.nit:2895 */
15481 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*/;
15482 if (UNTAG_Bool(REGB0)) {
15483 } else {
15484 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2895);
15485 }
15486 /* ./parser//parser_prod.nit:2896 */
15487 ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]) = fra.me.REG[2];
15488 } else {
15489 /* ./parser//parser_prod.nit:2898 */
15490 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2898);
15491 }
15492 /* ./parser//parser_prod.nit:2900 */
15493 goto label1;
15494 }
15495 /* ./parser//parser_prod.nit:2902 */
15496 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0])!=NIT_NULL);
15497 if (UNTAG_Bool(REGB0)) {
15498 } else {
15499 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2902);
15500 }
15501 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0]);
15502 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15503 if (UNTAG_Bool(REGB0)) {
15504 } else {
15505 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15506 REGB0 = REGB1;
15507 }
15508 if (UNTAG_Bool(REGB0)) {
15509 /* ./parser//parser_prod.nit:2903 */
15510 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15511 if (UNTAG_Bool(REGB0)) {
15512 } else {
15513 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15514 if (UNTAG_Bool(REGB1)) {
15515 REGB1 = TAG_Bool(false);
15516 REGB0 = REGB1;
15517 } else {
15518 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15519 REGB0 = REGB1;
15520 }
15521 }
15522 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15523 if (UNTAG_Bool(REGB0)) {
15524 /* ./parser//parser_prod.nit:2904 */
15525 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15526 if (UNTAG_Bool(REGB0)) {
15527 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2904);
15528 }
15529 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15530 /* ./parser//parser_prod.nit:2905 */
15531 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*/;
15532 if (UNTAG_Bool(REGB0)) {
15533 } else {
15534 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2905);
15535 }
15536 /* ./parser//parser_prod.nit:2906 */
15537 ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0]) = fra.me.REG[2];
15538 } else {
15539 /* ./parser//parser_prod.nit:2908 */
15540 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2908);
15541 }
15542 /* ./parser//parser_prod.nit:2910 */
15543 goto label1;
15544 }
15545 /* ./parser//parser_prod.nit:2912 */
15546 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0])!=NIT_NULL);
15547 if (UNTAG_Bool(REGB0)) {
15548 } else {
15549 nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser___parser_prod, 2912);
15550 }
15551 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]);
15552 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15553 if (UNTAG_Bool(REGB0)) {
15554 } else {
15555 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15556 REGB0 = REGB1;
15557 }
15558 if (UNTAG_Bool(REGB0)) {
15559 /* ./parser//parser_prod.nit:2913 */
15560 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15561 if (UNTAG_Bool(REGB0)) {
15562 } else {
15563 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15564 if (UNTAG_Bool(REGB1)) {
15565 REGB1 = TAG_Bool(false);
15566 REGB0 = REGB1;
15567 } else {
15568 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15569 REGB0 = REGB1;
15570 }
15571 }
15572 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15573 if (UNTAG_Bool(REGB0)) {
15574 /* ./parser//parser_prod.nit:2914 */
15575 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15576 if (UNTAG_Bool(REGB0)) {
15577 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2914);
15578 }
15579 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15580 /* ./parser//parser_prod.nit:2915 */
15581 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*/;
15582 if (UNTAG_Bool(REGB0)) {
15583 } else {
15584 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2915);
15585 }
15586 /* ./parser//parser_prod.nit:2916 */
15587 ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]) = fra.me.REG[2];
15588 } else {
15589 /* ./parser//parser_prod.nit:2918 */
15590 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2918);
15591 }
15592 /* ./parser//parser_prod.nit:2920 */
15593 goto label1;
15594 }
15595 /* ./parser//parser_prod.nit:2922 */
15596 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]);
15597 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
15598 if (UNTAG_Bool(REGB0)) {
15599 } else {
15600 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15601 if (UNTAG_Bool(REGB1)) {
15602 REGB1 = TAG_Bool(false);
15603 REGB0 = REGB1;
15604 } else {
15605 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15606 REGB0 = REGB1;
15607 }
15608 }
15609 if (UNTAG_Bool(REGB0)) {
15610 /* ./parser//parser_prod.nit:2923 */
15611 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15612 if (UNTAG_Bool(REGB0)) {
15613 } else {
15614 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15615 if (UNTAG_Bool(REGB1)) {
15616 REGB1 = TAG_Bool(false);
15617 REGB0 = REGB1;
15618 } else {
15619 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15620 REGB0 = REGB1;
15621 }
15622 }
15623 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15624 if (UNTAG_Bool(REGB0)) {
15625 /* ./parser//parser_prod.nit:2924 */
15626 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15627 if (UNTAG_Bool(REGB0)) {
15628 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2924);
15629 }
15630 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15631 /* ./parser//parser_prod.nit:2925 */
15632 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
15633 if (UNTAG_Bool(REGB0)) {
15634 } else {
15635 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2925);
15636 }
15637 /* ./parser//parser_prod.nit:2926 */
15638 ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = fra.me.REG[2];
15639 } else {
15640 /* ./parser//parser_prod.nit:2928 */
15641 ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = NIT_NULL;
15642 }
15643 /* ./parser//parser_prod.nit:2930 */
15644 goto label1;
15645 }
15646 label1: while(0);
15647 stack_frame_head = fra.me.prev;
15648 return;
15649 }
15650 void parser___parser_prod___AClosureDecl___visit_all(val_t p0, val_t p1){
15651 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15652 val_t REGB0;
15653 val_t REGB1;
15654 val_t tmp;
15655 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15656 fra.me.file = LOCATE_parser___parser_prod;
15657 fra.me.line = 2934;
15658 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___visit_all;
15659 fra.me.has_broke = 0;
15660 fra.me.REG_size = 4;
15661 fra.me.REG[0] = NIT_NULL;
15662 fra.me.REG[1] = NIT_NULL;
15663 fra.me.REG[2] = NIT_NULL;
15664 fra.me.REG[3] = NIT_NULL;
15665 fra.me.REG[0] = p0;
15666 fra.me.REG[1] = p1;
15667 /* ./parser//parser_prod.nit:2934 */
15668 fra.me.REG[2] = fra.me.REG[0];
15669 /* ./parser//parser_prod.nit:2936 */
15670 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[2]);
15671 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15672 if (UNTAG_Bool(REGB0)) {
15673 } else {
15674 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15675 if (UNTAG_Bool(REGB1)) {
15676 REGB1 = TAG_Bool(false);
15677 REGB0 = REGB1;
15678 } else {
15679 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
15680 REGB0 = REGB1;
15681 }
15682 }
15683 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15684 if (UNTAG_Bool(REGB0)) {
15685 /* ./parser//parser_prod.nit:2937 */
15686 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[2]);
15687 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*/;
15688 if (UNTAG_Bool(REGB0)) {
15689 } else {
15690 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2937);
15691 }
15692 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15693 }
15694 /* ./parser//parser_prod.nit:2939 */
15695 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[2])!=NIT_NULL);
15696 if (UNTAG_Bool(REGB0)) {
15697 } else {
15698 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 2939);
15699 }
15700 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[2]);
15701 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15702 /* ./parser//parser_prod.nit:2940 */
15703 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[2])!=NIT_NULL);
15704 if (UNTAG_Bool(REGB0)) {
15705 } else {
15706 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2940);
15707 }
15708 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[2]);
15709 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15710 /* ./parser//parser_prod.nit:2941 */
15711 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[2])!=NIT_NULL);
15712 if (UNTAG_Bool(REGB0)) {
15713 } else {
15714 nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser___parser_prod, 2941);
15715 }
15716 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[2]);
15717 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
15718 /* ./parser//parser_prod.nit:2942 */
15719 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[2]);
15720 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15721 if (UNTAG_Bool(REGB0)) {
15722 } else {
15723 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15724 if (UNTAG_Bool(REGB1)) {
15725 REGB1 = TAG_Bool(false);
15726 REGB0 = REGB1;
15727 } else {
15728 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
15729 REGB0 = REGB1;
15730 }
15731 }
15732 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15733 if (UNTAG_Bool(REGB0)) {
15734 /* ./parser//parser_prod.nit:2943 */
15735 fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[2]);
15736 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
15737 if (UNTAG_Bool(REGB0)) {
15738 } else {
15739 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2943);
15740 }
15741 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15742 }
15743 stack_frame_head = fra.me.prev;
15744 return;
15745 }
15746 void parser___parser_prod___AType___empty_init(val_t p0, int* init_table){
15747 int itpos99 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AType].i;
15748 struct {struct stack_frame_t me;} fra;
15749 val_t tmp;
15750 if (init_table[itpos99]) return;
15751 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15752 fra.me.file = LOCATE_parser___parser_prod;
15753 fra.me.line = 2948;
15754 fra.me.meth = LOCATE_parser___parser_prod___AType___empty_init;
15755 fra.me.has_broke = 0;
15756 fra.me.REG_size = 1;
15757 fra.me.REG[0] = NIT_NULL;
15758 fra.me.REG[0] = p0;
15759 stack_frame_head = fra.me.prev;
15760 init_table[itpos99] = 1;
15761 return;
15762 }
15763 void parser___parser_prod___AType___init_atype(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
15764 int itpos100 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AType].i;
15765 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
15766 val_t REGB0;
15767 val_t REGB1;
15768 val_t tmp;
15769 if (init_table[itpos100]) return;
15770 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15771 fra.me.file = LOCATE_parser___parser_prod;
15772 fra.me.line = 2950;
15773 fra.me.meth = LOCATE_parser___parser_prod___AType___init_atype;
15774 fra.me.has_broke = 0;
15775 fra.me.REG_size = 5;
15776 fra.me.REG[0] = NIT_NULL;
15777 fra.me.REG[1] = NIT_NULL;
15778 fra.me.REG[2] = NIT_NULL;
15779 fra.me.REG[3] = NIT_NULL;
15780 fra.me.REG[4] = NIT_NULL;
15781 fra.me.REG[0] = p0;
15782 fra.me.REG[1] = p1;
15783 fra.me.REG[2] = p2;
15784 fra.me.REG[3] = p3;
15785 /* ./parser//parser_prod.nit:2950 */
15786 fra.me.REG[4] = fra.me.REG[0];
15787 /* ./parser//parser_prod.nit:2956 */
15788 CALL_parser___parser_prod___AType___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
15789 /* ./parser//parser_prod.nit:2957 */
15790 ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[4]) = fra.me.REG[1];
15791 /* ./parser//parser_prod.nit:2958 */
15792 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15793 if (UNTAG_Bool(REGB0)) {
15794 } else {
15795 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15796 if (UNTAG_Bool(REGB1)) {
15797 REGB1 = TAG_Bool(false);
15798 REGB0 = REGB1;
15799 } else {
15800 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
15801 REGB0 = REGB1;
15802 }
15803 }
15804 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15805 if (UNTAG_Bool(REGB0)) {
15806 /* ./parser//parser_prod.nit:2959 */
15807 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15808 if (UNTAG_Bool(REGB0)) {
15809 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2959);
15810 }
15811 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
15812 }
15813 /* ./parser//parser_prod.nit:2961 */
15814 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
15815 if (UNTAG_Bool(REGB0)) {
15816 } else {
15817 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2961);
15818 }
15819 ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[4]) = fra.me.REG[2];
15820 /* ./parser//parser_prod.nit:2962 */
15821 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15822 if (UNTAG_Bool(REGB0)) {
15823 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2962);
15824 }
15825 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
15826 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));
15827 stack_frame_head = fra.me.prev;
15828 init_table[itpos100] = 1;
15829 return;
15830 }
15831 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){
15832 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15833 val_t REGB0;
15834 fun_t CREG[1];
15835 val_t tmp;
15836 /* ./parser//parser_prod.nit:2963 */
15837 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15838 fra.me.file = LOCATE_parser___parser_prod;
15839 fra.me.line = 0;
15840 fra.me.meth = LOCATE_parser___parser_prod___AType___init_atype;
15841 fra.me.has_broke = 0;
15842 fra.me.REG_size = 2;
15843 fra.me.REG[0] = NIT_NULL;
15844 fra.me.REG[1] = NIT_NULL;
15845 fra.me.closure_ctx = closctx_param;
15846 fra.me.closure_funs = CREG;
15847 fra.me.REG[0] = p0;
15848 CREG[0] = clos_fun0;
15849 /* ./parser//parser_prod.nit:2964 */
15850 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
15851 if (UNTAG_Bool(REGB0)) {
15852 } else {
15853 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2964);
15854 }
15855 /* ./parser//parser_prod.nit:2965 */
15856 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(closctx->REG[4])!=NIT_NULL);
15857 if (UNTAG_Bool(REGB0)) {
15858 } else {
15859 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 2965);
15860 }
15861 fra.me.REG[1] = ATTR_parser___parser_nodes___AType____n_types(closctx->REG[4]);
15862 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15863 /* ./parser//parser_prod.nit:2966 */
15864 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
15865 stack_frame_head = fra.me.prev;
15866 return;
15867 }
15868 void parser___parser_prod___AType___replace_child(val_t p0, val_t p1, val_t p2){
15869 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15870 val_t REGB0;
15871 val_t REGB1;
15872 val_t REGB2;
15873 val_t REGB3;
15874 val_t REGB4;
15875 val_t tmp;
15876 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15877 fra.me.file = LOCATE_parser___parser_prod;
15878 fra.me.line = 2970;
15879 fra.me.meth = LOCATE_parser___parser_prod___AType___replace_child;
15880 fra.me.has_broke = 0;
15881 fra.me.REG_size = 4;
15882 fra.me.REG[0] = NIT_NULL;
15883 fra.me.REG[1] = NIT_NULL;
15884 fra.me.REG[2] = NIT_NULL;
15885 fra.me.REG[3] = NIT_NULL;
15886 fra.me.REG[0] = p0;
15887 fra.me.REG[1] = p1;
15888 fra.me.REG[2] = p2;
15889 /* ./parser//parser_prod.nit:2972 */
15890 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]);
15891 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
15892 if (UNTAG_Bool(REGB0)) {
15893 } else {
15894 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15895 if (UNTAG_Bool(REGB1)) {
15896 REGB1 = TAG_Bool(false);
15897 REGB0 = REGB1;
15898 } else {
15899 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15900 REGB0 = REGB1;
15901 }
15902 }
15903 if (UNTAG_Bool(REGB0)) {
15904 /* ./parser//parser_prod.nit:2973 */
15905 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15906 if (UNTAG_Bool(REGB0)) {
15907 } else {
15908 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15909 if (UNTAG_Bool(REGB1)) {
15910 REGB1 = TAG_Bool(false);
15911 REGB0 = REGB1;
15912 } else {
15913 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15914 REGB0 = REGB1;
15915 }
15916 }
15917 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15918 if (UNTAG_Bool(REGB0)) {
15919 /* ./parser//parser_prod.nit:2974 */
15920 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15921 if (UNTAG_Bool(REGB0)) {
15922 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2974);
15923 }
15924 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15925 /* ./parser//parser_prod.nit:2975 */
15926 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*/;
15927 if (UNTAG_Bool(REGB0)) {
15928 } else {
15929 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2975);
15930 }
15931 /* ./parser//parser_prod.nit:2976 */
15932 ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
15933 } else {
15934 /* ./parser//parser_prod.nit:2978 */
15935 ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = NIT_NULL;
15936 }
15937 /* ./parser//parser_prod.nit:2980 */
15938 goto label1;
15939 }
15940 /* ./parser//parser_prod.nit:2982 */
15941 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0])!=NIT_NULL);
15942 if (UNTAG_Bool(REGB0)) {
15943 } else {
15944 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2982);
15945 }
15946 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0]);
15947 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15948 if (UNTAG_Bool(REGB0)) {
15949 } else {
15950 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15951 REGB0 = REGB1;
15952 }
15953 if (UNTAG_Bool(REGB0)) {
15954 /* ./parser//parser_prod.nit:2983 */
15955 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15956 if (UNTAG_Bool(REGB0)) {
15957 } else {
15958 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15959 if (UNTAG_Bool(REGB1)) {
15960 REGB1 = TAG_Bool(false);
15961 REGB0 = REGB1;
15962 } else {
15963 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15964 REGB0 = REGB1;
15965 }
15966 }
15967 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15968 if (UNTAG_Bool(REGB0)) {
15969 /* ./parser//parser_prod.nit:2984 */
15970 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15971 if (UNTAG_Bool(REGB0)) {
15972 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2984);
15973 }
15974 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15975 /* ./parser//parser_prod.nit:2985 */
15976 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*/;
15977 if (UNTAG_Bool(REGB0)) {
15978 } else {
15979 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2985);
15980 }
15981 /* ./parser//parser_prod.nit:2986 */
15982 ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0]) = fra.me.REG[2];
15983 } else {
15984 /* ./parser//parser_prod.nit:2988 */
15985 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2988);
15986 }
15987 /* ./parser//parser_prod.nit:2990 */
15988 goto label1;
15989 }
15990 /* ./parser//parser_prod.nit:2992 */
15991 REGB0 = TAG_Int(0);
15992 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
15993 if (UNTAG_Bool(REGB1)) {
15994 } else {
15995 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 2992);
15996 }
15997 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
15998 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
15999 /* ./../lib/standard//kernel.nit:335 */
16000 while(1) {
16001 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
16002 if (UNTAG_Bool(REGB2)) {
16003 } else {
16004 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
16005 }
16006 /* ./../lib/standard//kernel.nit:215 */
16007 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
16008 /* ./../lib/standard//kernel.nit:335 */
16009 if (UNTAG_Bool(REGB2)) {
16010 /* ./parser//parser_prod.nit:2992 */
16011 REGB2 = REGB0;
16012 /* ./parser//parser_prod.nit:2993 */
16013 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
16014 if (UNTAG_Bool(REGB3)) {
16015 } else {
16016 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 2993);
16017 }
16018 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
16019 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
16020 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16021 if (UNTAG_Bool(REGB3)) {
16022 } else {
16023 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16024 if (UNTAG_Bool(REGB4)) {
16025 REGB4 = TAG_Bool(false);
16026 REGB3 = REGB4;
16027 } else {
16028 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16029 REGB3 = REGB4;
16030 }
16031 }
16032 if (UNTAG_Bool(REGB3)) {
16033 /* ./parser//parser_prod.nit:2994 */
16034 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16035 if (UNTAG_Bool(REGB3)) {
16036 } else {
16037 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16038 if (UNTAG_Bool(REGB4)) {
16039 REGB4 = TAG_Bool(false);
16040 REGB3 = REGB4;
16041 } else {
16042 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16043 REGB3 = REGB4;
16044 }
16045 }
16046 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
16047 if (UNTAG_Bool(REGB3)) {
16048 /* ./parser//parser_prod.nit:2995 */
16049 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*/;
16050 if (UNTAG_Bool(REGB3)) {
16051 } else {
16052 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2995);
16053 }
16054 /* ./parser//parser_prod.nit:2996 */
16055 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
16056 if (UNTAG_Bool(REGB3)) {
16057 } else {
16058 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 2996);
16059 }
16060 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
16061 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
16062 /* ./parser//parser_prod.nit:2997 */
16063 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16064 if (UNTAG_Bool(REGB3)) {
16065 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2997);
16066 }
16067 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16068 } else {
16069 /* ./parser//parser_prod.nit:2999 */
16070 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
16071 if (UNTAG_Bool(REGB3)) {
16072 } else {
16073 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 2999);
16074 }
16075 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
16076 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
16077 }
16078 /* ./parser//parser_prod.nit:3001 */
16079 goto label1;
16080 }
16081 /* ./../lib/standard//kernel.nit:337 */
16082 REGB2 = TAG_Int(1);
16083 /* ./../lib/standard//kernel.nit:218 */
16084 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
16085 /* ./../lib/standard//kernel.nit:337 */
16086 REGB0 = REGB2;
16087 } else {
16088 /* ./../lib/standard//kernel.nit:335 */
16089 goto label2;
16090 }
16091 }
16092 label2: while(0);
16093 label1: while(0);
16094 stack_frame_head = fra.me.prev;
16095 return;
16096 }
16097 void parser___parser_prod___AType___visit_all(val_t p0, val_t p1){
16098 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16099 val_t REGB0;
16100 val_t REGB1;
16101 val_t tmp;
16102 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16103 fra.me.file = LOCATE_parser___parser_prod;
16104 fra.me.line = 3006;
16105 fra.me.meth = LOCATE_parser___parser_prod___AType___visit_all;
16106 fra.me.has_broke = 0;
16107 fra.me.REG_size = 4;
16108 fra.me.REG[0] = NIT_NULL;
16109 fra.me.REG[1] = NIT_NULL;
16110 fra.me.REG[2] = NIT_NULL;
16111 fra.me.REG[3] = NIT_NULL;
16112 fra.me.REG[0] = p0;
16113 fra.me.REG[1] = p1;
16114 /* ./parser//parser_prod.nit:3006 */
16115 fra.me.REG[2] = fra.me.REG[0];
16116 /* ./parser//parser_prod.nit:3008 */
16117 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[2]);
16118 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
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], NIT_NULL);
16127 REGB0 = REGB1;
16128 }
16129 }
16130 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16131 if (UNTAG_Bool(REGB0)) {
16132 /* ./parser//parser_prod.nit:3009 */
16133 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[2]);
16134 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*/;
16135 if (UNTAG_Bool(REGB0)) {
16136 } else {
16137 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3009);
16138 }
16139 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16140 }
16141 /* ./parser//parser_prod.nit:3011 */
16142 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[2])!=NIT_NULL);
16143 if (UNTAG_Bool(REGB0)) {
16144 } else {
16145 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3011);
16146 }
16147 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[2]);
16148 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16149 /* ./parser//parser_prod.nit:3012 */
16150 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[2])!=NIT_NULL);
16151 if (UNTAG_Bool(REGB0)) {
16152 } else {
16153 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3012);
16154 }
16155 fra.me.REG[2] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[2]);
16156 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));
16157 stack_frame_head = fra.me.prev;
16158 return;
16159 }
16160 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){
16161 struct {struct stack_frame_t me;} fra;
16162 fun_t CREG[1];
16163 val_t tmp;
16164 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16165 fra.me.file = LOCATE_parser___parser_prod;
16166 fra.me.line = 0;
16167 fra.me.meth = LOCATE_parser___parser_prod___AType___visit_all;
16168 fra.me.has_broke = 0;
16169 fra.me.REG_size = 1;
16170 fra.me.REG[0] = NIT_NULL;
16171 fra.me.closure_ctx = closctx_param;
16172 fra.me.closure_funs = CREG;
16173 fra.me.REG[0] = p0;
16174 CREG[0] = clos_fun0;
16175 /* ./parser//parser_prod.nit:3013 */
16176 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
16177 stack_frame_head = fra.me.prev;
16178 return;
16179 }
16180 void parser___parser_prod___ALabel___empty_init(val_t p0, int* init_table){
16181 int itpos101 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALabel].i;
16182 struct {struct stack_frame_t me;} fra;
16183 val_t tmp;
16184 if (init_table[itpos101]) return;
16185 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16186 fra.me.file = LOCATE_parser___parser_prod;
16187 fra.me.line = 3018;
16188 fra.me.meth = LOCATE_parser___parser_prod___ALabel___empty_init;
16189 fra.me.has_broke = 0;
16190 fra.me.REG_size = 1;
16191 fra.me.REG[0] = NIT_NULL;
16192 fra.me.REG[0] = p0;
16193 stack_frame_head = fra.me.prev;
16194 init_table[itpos101] = 1;
16195 return;
16196 }
16197 void parser___parser_prod___ALabel___init_alabel(val_t p0, val_t p1, val_t p2, int* init_table){
16198 int itpos102 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALabel].i;
16199 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16200 val_t REGB0;
16201 val_t tmp;
16202 if (init_table[itpos102]) return;
16203 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16204 fra.me.file = LOCATE_parser___parser_prod;
16205 fra.me.line = 3020;
16206 fra.me.meth = LOCATE_parser___parser_prod___ALabel___init_alabel;
16207 fra.me.has_broke = 0;
16208 fra.me.REG_size = 4;
16209 fra.me.REG[0] = NIT_NULL;
16210 fra.me.REG[1] = NIT_NULL;
16211 fra.me.REG[2] = NIT_NULL;
16212 fra.me.REG[3] = NIT_NULL;
16213 fra.me.REG[0] = p0;
16214 fra.me.REG[1] = p1;
16215 fra.me.REG[2] = p2;
16216 /* ./parser//parser_prod.nit:3020 */
16217 fra.me.REG[3] = fra.me.REG[0];
16218 /* ./parser//parser_prod.nit:3025 */
16219 CALL_parser___parser_prod___ALabel___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
16220 /* ./parser//parser_prod.nit:3026 */
16221 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
16222 if (UNTAG_Bool(REGB0)) {
16223 } else {
16224 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3026);
16225 }
16226 ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[3]) = fra.me.REG[1];
16227 /* ./parser//parser_prod.nit:3027 */
16228 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16229 if (UNTAG_Bool(REGB0)) {
16230 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3027);
16231 }
16232 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16233 /* ./parser//parser_prod.nit:3028 */
16234 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
16235 if (UNTAG_Bool(REGB0)) {
16236 } else {
16237 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3028);
16238 }
16239 ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[3]) = fra.me.REG[2];
16240 /* ./parser//parser_prod.nit:3029 */
16241 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16242 if (UNTAG_Bool(REGB0)) {
16243 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3029);
16244 }
16245 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16246 stack_frame_head = fra.me.prev;
16247 init_table[itpos102] = 1;
16248 return;
16249 }
16250 void parser___parser_prod___ALabel___replace_child(val_t p0, val_t p1, val_t p2){
16251 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16252 val_t REGB0;
16253 val_t REGB1;
16254 val_t tmp;
16255 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16256 fra.me.file = LOCATE_parser___parser_prod;
16257 fra.me.line = 3032;
16258 fra.me.meth = LOCATE_parser___parser_prod___ALabel___replace_child;
16259 fra.me.has_broke = 0;
16260 fra.me.REG_size = 4;
16261 fra.me.REG[0] = NIT_NULL;
16262 fra.me.REG[1] = NIT_NULL;
16263 fra.me.REG[2] = NIT_NULL;
16264 fra.me.REG[3] = NIT_NULL;
16265 fra.me.REG[0] = p0;
16266 fra.me.REG[1] = p1;
16267 fra.me.REG[2] = p2;
16268 /* ./parser//parser_prod.nit:3034 */
16269 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0])!=NIT_NULL);
16270 if (UNTAG_Bool(REGB0)) {
16271 } else {
16272 nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser___parser_prod, 3034);
16273 }
16274 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]);
16275 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16276 if (UNTAG_Bool(REGB0)) {
16277 } else {
16278 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16279 REGB0 = REGB1;
16280 }
16281 if (UNTAG_Bool(REGB0)) {
16282 /* ./parser//parser_prod.nit:3035 */
16283 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16284 if (UNTAG_Bool(REGB0)) {
16285 } else {
16286 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16287 if (UNTAG_Bool(REGB1)) {
16288 REGB1 = TAG_Bool(false);
16289 REGB0 = REGB1;
16290 } else {
16291 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16292 REGB0 = REGB1;
16293 }
16294 }
16295 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16296 if (UNTAG_Bool(REGB0)) {
16297 /* ./parser//parser_prod.nit:3036 */
16298 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16299 if (UNTAG_Bool(REGB0)) {
16300 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3036);
16301 }
16302 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16303 /* ./parser//parser_prod.nit:3037 */
16304 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*/;
16305 if (UNTAG_Bool(REGB0)) {
16306 } else {
16307 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3037);
16308 }
16309 /* ./parser//parser_prod.nit:3038 */
16310 ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]) = fra.me.REG[2];
16311 } else {
16312 /* ./parser//parser_prod.nit:3040 */
16313 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3040);
16314 }
16315 /* ./parser//parser_prod.nit:3042 */
16316 goto label1;
16317 }
16318 /* ./parser//parser_prod.nit:3044 */
16319 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0])!=NIT_NULL);
16320 if (UNTAG_Bool(REGB0)) {
16321 } else {
16322 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3044);
16323 }
16324 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]);
16325 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16326 if (UNTAG_Bool(REGB0)) {
16327 } else {
16328 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16329 REGB0 = REGB1;
16330 }
16331 if (UNTAG_Bool(REGB0)) {
16332 /* ./parser//parser_prod.nit:3045 */
16333 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16334 if (UNTAG_Bool(REGB0)) {
16335 } else {
16336 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16337 if (UNTAG_Bool(REGB1)) {
16338 REGB1 = TAG_Bool(false);
16339 REGB0 = REGB1;
16340 } else {
16341 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16342 REGB0 = REGB1;
16343 }
16344 }
16345 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16346 if (UNTAG_Bool(REGB0)) {
16347 /* ./parser//parser_prod.nit:3046 */
16348 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16349 if (UNTAG_Bool(REGB0)) {
16350 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3046);
16351 }
16352 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16353 /* ./parser//parser_prod.nit:3047 */
16354 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*/;
16355 if (UNTAG_Bool(REGB0)) {
16356 } else {
16357 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3047);
16358 }
16359 /* ./parser//parser_prod.nit:3048 */
16360 ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]) = fra.me.REG[2];
16361 } else {
16362 /* ./parser//parser_prod.nit:3050 */
16363 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3050);
16364 }
16365 /* ./parser//parser_prod.nit:3052 */
16366 goto label1;
16367 }
16368 label1: while(0);
16369 stack_frame_head = fra.me.prev;
16370 return;
16371 }
16372 void parser___parser_prod___ALabel___visit_all(val_t p0, val_t p1){
16373 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
16374 val_t REGB0;
16375 val_t tmp;
16376 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16377 fra.me.file = LOCATE_parser___parser_prod;
16378 fra.me.line = 3056;
16379 fra.me.meth = LOCATE_parser___parser_prod___ALabel___visit_all;
16380 fra.me.has_broke = 0;
16381 fra.me.REG_size = 3;
16382 fra.me.REG[0] = NIT_NULL;
16383 fra.me.REG[1] = NIT_NULL;
16384 fra.me.REG[2] = NIT_NULL;
16385 fra.me.REG[0] = p0;
16386 fra.me.REG[1] = p1;
16387 /* ./parser//parser_prod.nit:3058 */
16388 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0])!=NIT_NULL);
16389 if (UNTAG_Bool(REGB0)) {
16390 } else {
16391 nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser___parser_prod, 3058);
16392 }
16393 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]);
16394 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16395 /* ./parser//parser_prod.nit:3059 */
16396 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0])!=NIT_NULL);
16397 if (UNTAG_Bool(REGB0)) {
16398 } else {
16399 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3059);
16400 }
16401 fra.me.REG[0] = ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]);
16402 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16403 stack_frame_head = fra.me.prev;
16404 return;
16405 }
16406 void parser___parser_prod___ABlockExpr___empty_init(val_t p0, int* init_table){
16407 int itpos103 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABlockExpr].i;
16408 struct {struct stack_frame_t me;} fra;
16409 val_t tmp;
16410 if (init_table[itpos103]) return;
16411 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16412 fra.me.file = LOCATE_parser___parser_prod;
16413 fra.me.line = 3063;
16414 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___empty_init;
16415 fra.me.has_broke = 0;
16416 fra.me.REG_size = 1;
16417 fra.me.REG[0] = NIT_NULL;
16418 fra.me.REG[0] = p0;
16419 stack_frame_head = fra.me.prev;
16420 init_table[itpos103] = 1;
16421 return;
16422 }
16423 void parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0, val_t p1, int* init_table){
16424 int itpos104 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABlockExpr].i;
16425 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16426 val_t tmp;
16427 if (init_table[itpos104]) return;
16428 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16429 fra.me.file = LOCATE_parser___parser_prod;
16430 fra.me.line = 3065;
16431 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___init_ablockexpr;
16432 fra.me.has_broke = 0;
16433 fra.me.REG_size = 2;
16434 fra.me.REG[0] = NIT_NULL;
16435 fra.me.REG[1] = NIT_NULL;
16436 fra.me.REG[0] = p0;
16437 fra.me.REG[1] = p1;
16438 /* ./parser//parser_prod.nit:3069 */
16439 CALL_parser___parser_prod___ABlockExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
16440 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));
16441 stack_frame_head = fra.me.prev;
16442 init_table[itpos104] = 1;
16443 return;
16444 }
16445 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){
16446 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16447 val_t REGB0;
16448 fun_t CREG[1];
16449 val_t tmp;
16450 /* ./parser//parser_prod.nit:3070 */
16451 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16452 fra.me.file = LOCATE_parser___parser_prod;
16453 fra.me.line = 0;
16454 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___init_ablockexpr;
16455 fra.me.has_broke = 0;
16456 fra.me.REG_size = 2;
16457 fra.me.REG[0] = NIT_NULL;
16458 fra.me.REG[1] = NIT_NULL;
16459 fra.me.closure_ctx = closctx_param;
16460 fra.me.closure_funs = CREG;
16461 fra.me.REG[0] = p0;
16462 CREG[0] = clos_fun0;
16463 /* ./parser//parser_prod.nit:3071 */
16464 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
16465 if (UNTAG_Bool(REGB0)) {
16466 } else {
16467 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3071);
16468 }
16469 /* ./parser//parser_prod.nit:3072 */
16470 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(closctx->REG[0])!=NIT_NULL);
16471 if (UNTAG_Bool(REGB0)) {
16472 } else {
16473 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3072);
16474 }
16475 fra.me.REG[1] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(closctx->REG[0]);
16476 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16477 /* ./parser//parser_prod.nit:3073 */
16478 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
16479 stack_frame_head = fra.me.prev;
16480 return;
16481 }
16482 void parser___parser_prod___ABlockExpr___replace_child(val_t p0, val_t p1, val_t p2){
16483 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16484 val_t REGB0;
16485 val_t REGB1;
16486 val_t REGB2;
16487 val_t REGB3;
16488 val_t REGB4;
16489 val_t tmp;
16490 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16491 fra.me.file = LOCATE_parser___parser_prod;
16492 fra.me.line = 3077;
16493 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___replace_child;
16494 fra.me.has_broke = 0;
16495 fra.me.REG_size = 4;
16496 fra.me.REG[0] = NIT_NULL;
16497 fra.me.REG[1] = NIT_NULL;
16498 fra.me.REG[2] = NIT_NULL;
16499 fra.me.REG[3] = NIT_NULL;
16500 fra.me.REG[0] = p0;
16501 fra.me.REG[1] = p1;
16502 fra.me.REG[2] = p2;
16503 /* ./parser//parser_prod.nit:3079 */
16504 REGB0 = TAG_Int(0);
16505 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
16506 if (UNTAG_Bool(REGB1)) {
16507 } else {
16508 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3079);
16509 }
16510 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
16511 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
16512 /* ./../lib/standard//kernel.nit:335 */
16513 while(1) {
16514 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
16515 if (UNTAG_Bool(REGB2)) {
16516 } else {
16517 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
16518 }
16519 /* ./../lib/standard//kernel.nit:215 */
16520 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
16521 /* ./../lib/standard//kernel.nit:335 */
16522 if (UNTAG_Bool(REGB2)) {
16523 /* ./parser//parser_prod.nit:3079 */
16524 REGB2 = REGB0;
16525 /* ./parser//parser_prod.nit:3080 */
16526 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
16527 if (UNTAG_Bool(REGB3)) {
16528 } else {
16529 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3080);
16530 }
16531 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
16532 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
16533 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16534 if (UNTAG_Bool(REGB3)) {
16535 } else {
16536 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16537 if (UNTAG_Bool(REGB4)) {
16538 REGB4 = TAG_Bool(false);
16539 REGB3 = REGB4;
16540 } else {
16541 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16542 REGB3 = REGB4;
16543 }
16544 }
16545 if (UNTAG_Bool(REGB3)) {
16546 /* ./parser//parser_prod.nit:3081 */
16547 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16548 if (UNTAG_Bool(REGB3)) {
16549 } else {
16550 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16551 if (UNTAG_Bool(REGB4)) {
16552 REGB4 = TAG_Bool(false);
16553 REGB3 = REGB4;
16554 } else {
16555 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16556 REGB3 = REGB4;
16557 }
16558 }
16559 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
16560 if (UNTAG_Bool(REGB3)) {
16561 /* ./parser//parser_prod.nit:3082 */
16562 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*/;
16563 if (UNTAG_Bool(REGB3)) {
16564 } else {
16565 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3082);
16566 }
16567 /* ./parser//parser_prod.nit:3083 */
16568 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
16569 if (UNTAG_Bool(REGB3)) {
16570 } else {
16571 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3083);
16572 }
16573 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
16574 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
16575 /* ./parser//parser_prod.nit:3084 */
16576 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16577 if (UNTAG_Bool(REGB3)) {
16578 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3084);
16579 }
16580 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16581 } else {
16582 /* ./parser//parser_prod.nit:3086 */
16583 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
16584 if (UNTAG_Bool(REGB3)) {
16585 } else {
16586 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3086);
16587 }
16588 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
16589 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
16590 }
16591 /* ./parser//parser_prod.nit:3088 */
16592 goto label1;
16593 }
16594 /* ./../lib/standard//kernel.nit:337 */
16595 REGB2 = TAG_Int(1);
16596 /* ./../lib/standard//kernel.nit:218 */
16597 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
16598 /* ./../lib/standard//kernel.nit:337 */
16599 REGB0 = REGB2;
16600 } else {
16601 /* ./../lib/standard//kernel.nit:335 */
16602 goto label2;
16603 }
16604 }
16605 label2: while(0);
16606 label1: while(0);
16607 stack_frame_head = fra.me.prev;
16608 return;
16609 }
16610 void parser___parser_prod___ABlockExpr___visit_all(val_t p0, val_t p1){
16611 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16612 val_t REGB0;
16613 val_t tmp;
16614 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16615 fra.me.file = LOCATE_parser___parser_prod;
16616 fra.me.line = 3093;
16617 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___visit_all;
16618 fra.me.has_broke = 0;
16619 fra.me.REG_size = 2;
16620 fra.me.REG[0] = NIT_NULL;
16621 fra.me.REG[1] = NIT_NULL;
16622 fra.me.REG[0] = p0;
16623 fra.me.REG[1] = p1;
16624 /* ./parser//parser_prod.nit:3095 */
16625 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
16626 if (UNTAG_Bool(REGB0)) {
16627 } else {
16628 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3095);
16629 }
16630 fra.me.REG[0] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
16631 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));
16632 stack_frame_head = fra.me.prev;
16633 return;
16634 }
16635 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){
16636 struct {struct stack_frame_t me;} fra;
16637 fun_t CREG[1];
16638 val_t tmp;
16639 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16640 fra.me.file = LOCATE_parser___parser_prod;
16641 fra.me.line = 0;
16642 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___visit_all;
16643 fra.me.has_broke = 0;
16644 fra.me.REG_size = 1;
16645 fra.me.REG[0] = NIT_NULL;
16646 fra.me.closure_ctx = closctx_param;
16647 fra.me.closure_funs = CREG;
16648 fra.me.REG[0] = p0;
16649 CREG[0] = clos_fun0;
16650 /* ./parser//parser_prod.nit:3096 */
16651 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
16652 stack_frame_head = fra.me.prev;
16653 return;
16654 }
16655 void parser___parser_prod___AVardeclExpr___empty_init(val_t p0, int* init_table){
16656 int itpos105 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVardeclExpr].i;
16657 struct {struct stack_frame_t me;} fra;
16658 val_t tmp;
16659 if (init_table[itpos105]) return;
16660 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16661 fra.me.file = LOCATE_parser___parser_prod;
16662 fra.me.line = 3101;
16663 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___empty_init;
16664 fra.me.has_broke = 0;
16665 fra.me.REG_size = 1;
16666 fra.me.REG[0] = NIT_NULL;
16667 fra.me.REG[0] = p0;
16668 stack_frame_head = fra.me.prev;
16669 init_table[itpos105] = 1;
16670 return;
16671 }
16672 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){
16673 int itpos106 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVardeclExpr].i;
16674 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
16675 val_t REGB0;
16676 val_t REGB1;
16677 val_t tmp;
16678 if (init_table[itpos106]) return;
16679 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16680 fra.me.file = LOCATE_parser___parser_prod;
16681 fra.me.line = 3103;
16682 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___init_avardeclexpr;
16683 fra.me.has_broke = 0;
16684 fra.me.REG_size = 7;
16685 fra.me.REG[0] = NIT_NULL;
16686 fra.me.REG[1] = NIT_NULL;
16687 fra.me.REG[2] = NIT_NULL;
16688 fra.me.REG[3] = NIT_NULL;
16689 fra.me.REG[4] = NIT_NULL;
16690 fra.me.REG[5] = NIT_NULL;
16691 fra.me.REG[6] = NIT_NULL;
16692 fra.me.REG[0] = p0;
16693 fra.me.REG[1] = p1;
16694 fra.me.REG[2] = p2;
16695 fra.me.REG[3] = p3;
16696 fra.me.REG[4] = p4;
16697 fra.me.REG[5] = p5;
16698 /* ./parser//parser_prod.nit:3103 */
16699 fra.me.REG[6] = fra.me.REG[0];
16700 /* ./parser//parser_prod.nit:3111 */
16701 CALL_parser___parser_prod___AVardeclExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
16702 /* ./parser//parser_prod.nit:3112 */
16703 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
16704 if (UNTAG_Bool(REGB0)) {
16705 } else {
16706 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3112);
16707 }
16708 ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[6]) = fra.me.REG[1];
16709 /* ./parser//parser_prod.nit:3113 */
16710 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16711 if (UNTAG_Bool(REGB0)) {
16712 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3113);
16713 }
16714 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
16715 /* ./parser//parser_prod.nit:3114 */
16716 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
16717 if (UNTAG_Bool(REGB0)) {
16718 } else {
16719 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3114);
16720 }
16721 ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[6]) = fra.me.REG[2];
16722 /* ./parser//parser_prod.nit:3115 */
16723 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16724 if (UNTAG_Bool(REGB0)) {
16725 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3115);
16726 }
16727 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
16728 /* ./parser//parser_prod.nit:3116 */
16729 ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[6]) = fra.me.REG[3];
16730 /* ./parser//parser_prod.nit:3117 */
16731 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16732 if (UNTAG_Bool(REGB0)) {
16733 } else {
16734 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16735 if (UNTAG_Bool(REGB1)) {
16736 REGB1 = TAG_Bool(false);
16737 REGB0 = REGB1;
16738 } else {
16739 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
16740 REGB0 = REGB1;
16741 }
16742 }
16743 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16744 if (UNTAG_Bool(REGB0)) {
16745 /* ./parser//parser_prod.nit:3118 */
16746 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16747 if (UNTAG_Bool(REGB0)) {
16748 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3118);
16749 }
16750 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
16751 }
16752 /* ./parser//parser_prod.nit:3120 */
16753 ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[6]) = fra.me.REG[4];
16754 /* ./parser//parser_prod.nit:3121 */
16755 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
16756 if (UNTAG_Bool(REGB0)) {
16757 } else {
16758 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
16759 if (UNTAG_Bool(REGB1)) {
16760 REGB1 = TAG_Bool(false);
16761 REGB0 = REGB1;
16762 } else {
16763 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
16764 REGB0 = REGB1;
16765 }
16766 }
16767 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16768 if (UNTAG_Bool(REGB0)) {
16769 /* ./parser//parser_prod.nit:3122 */
16770 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
16771 if (UNTAG_Bool(REGB0)) {
16772 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3122);
16773 }
16774 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
16775 }
16776 /* ./parser//parser_prod.nit:3124 */
16777 ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[6]) = fra.me.REG[5];
16778 /* ./parser//parser_prod.nit:3125 */
16779 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
16780 if (UNTAG_Bool(REGB0)) {
16781 } else {
16782 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
16783 if (UNTAG_Bool(REGB1)) {
16784 REGB1 = TAG_Bool(false);
16785 REGB0 = REGB1;
16786 } else {
16787 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
16788 REGB0 = REGB1;
16789 }
16790 }
16791 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16792 if (UNTAG_Bool(REGB0)) {
16793 /* ./parser//parser_prod.nit:3126 */
16794 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
16795 if (UNTAG_Bool(REGB0)) {
16796 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3126);
16797 }
16798 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
16799 }
16800 stack_frame_head = fra.me.prev;
16801 init_table[itpos106] = 1;
16802 return;
16803 }
16804 void parser___parser_prod___AVardeclExpr___replace_child(val_t p0, val_t p1, val_t p2){
16805 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16806 val_t REGB0;
16807 val_t REGB1;
16808 val_t tmp;
16809 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16810 fra.me.file = LOCATE_parser___parser_prod;
16811 fra.me.line = 3130;
16812 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___replace_child;
16813 fra.me.has_broke = 0;
16814 fra.me.REG_size = 4;
16815 fra.me.REG[0] = NIT_NULL;
16816 fra.me.REG[1] = NIT_NULL;
16817 fra.me.REG[2] = NIT_NULL;
16818 fra.me.REG[3] = NIT_NULL;
16819 fra.me.REG[0] = p0;
16820 fra.me.REG[1] = p1;
16821 fra.me.REG[2] = p2;
16822 /* ./parser//parser_prod.nit:3132 */
16823 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0])!=NIT_NULL);
16824 if (UNTAG_Bool(REGB0)) {
16825 } else {
16826 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 3132);
16827 }
16828 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]);
16829 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16830 if (UNTAG_Bool(REGB0)) {
16831 } else {
16832 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16833 REGB0 = REGB1;
16834 }
16835 if (UNTAG_Bool(REGB0)) {
16836 /* ./parser//parser_prod.nit:3133 */
16837 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16838 if (UNTAG_Bool(REGB0)) {
16839 } else {
16840 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16841 if (UNTAG_Bool(REGB1)) {
16842 REGB1 = TAG_Bool(false);
16843 REGB0 = REGB1;
16844 } else {
16845 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16846 REGB0 = REGB1;
16847 }
16848 }
16849 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16850 if (UNTAG_Bool(REGB0)) {
16851 /* ./parser//parser_prod.nit:3134 */
16852 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16853 if (UNTAG_Bool(REGB0)) {
16854 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3134);
16855 }
16856 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16857 /* ./parser//parser_prod.nit:3135 */
16858 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*/;
16859 if (UNTAG_Bool(REGB0)) {
16860 } else {
16861 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3135);
16862 }
16863 /* ./parser//parser_prod.nit:3136 */
16864 ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]) = fra.me.REG[2];
16865 } else {
16866 /* ./parser//parser_prod.nit:3138 */
16867 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3138);
16868 }
16869 /* ./parser//parser_prod.nit:3140 */
16870 goto label1;
16871 }
16872 /* ./parser//parser_prod.nit:3142 */
16873 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0])!=NIT_NULL);
16874 if (UNTAG_Bool(REGB0)) {
16875 } else {
16876 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3142);
16877 }
16878 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]);
16879 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16880 if (UNTAG_Bool(REGB0)) {
16881 } else {
16882 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16883 REGB0 = REGB1;
16884 }
16885 if (UNTAG_Bool(REGB0)) {
16886 /* ./parser//parser_prod.nit:3143 */
16887 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16888 if (UNTAG_Bool(REGB0)) {
16889 } else {
16890 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16891 if (UNTAG_Bool(REGB1)) {
16892 REGB1 = TAG_Bool(false);
16893 REGB0 = REGB1;
16894 } else {
16895 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16896 REGB0 = REGB1;
16897 }
16898 }
16899 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16900 if (UNTAG_Bool(REGB0)) {
16901 /* ./parser//parser_prod.nit:3144 */
16902 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16903 if (UNTAG_Bool(REGB0)) {
16904 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3144);
16905 }
16906 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16907 /* ./parser//parser_prod.nit:3145 */
16908 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*/;
16909 if (UNTAG_Bool(REGB0)) {
16910 } else {
16911 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3145);
16912 }
16913 /* ./parser//parser_prod.nit:3146 */
16914 ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
16915 } else {
16916 /* ./parser//parser_prod.nit:3148 */
16917 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3148);
16918 }
16919 /* ./parser//parser_prod.nit:3150 */
16920 goto label1;
16921 }
16922 /* ./parser//parser_prod.nit:3152 */
16923 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]);
16924 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16925 if (UNTAG_Bool(REGB0)) {
16926 } else {
16927 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16928 if (UNTAG_Bool(REGB1)) {
16929 REGB1 = TAG_Bool(false);
16930 REGB0 = REGB1;
16931 } else {
16932 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16933 REGB0 = REGB1;
16934 }
16935 }
16936 if (UNTAG_Bool(REGB0)) {
16937 /* ./parser//parser_prod.nit:3153 */
16938 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16939 if (UNTAG_Bool(REGB0)) {
16940 } else {
16941 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16942 if (UNTAG_Bool(REGB1)) {
16943 REGB1 = TAG_Bool(false);
16944 REGB0 = REGB1;
16945 } else {
16946 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16947 REGB0 = REGB1;
16948 }
16949 }
16950 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16951 if (UNTAG_Bool(REGB0)) {
16952 /* ./parser//parser_prod.nit:3154 */
16953 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16954 if (UNTAG_Bool(REGB0)) {
16955 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3154);
16956 }
16957 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16958 /* ./parser//parser_prod.nit:3155 */
16959 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*/;
16960 if (UNTAG_Bool(REGB0)) {
16961 } else {
16962 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3155);
16963 }
16964 /* ./parser//parser_prod.nit:3156 */
16965 ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
16966 } else {
16967 /* ./parser//parser_prod.nit:3158 */
16968 ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = NIT_NULL;
16969 }
16970 /* ./parser//parser_prod.nit:3160 */
16971 goto label1;
16972 }
16973 /* ./parser//parser_prod.nit:3162 */
16974 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]);
16975 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16976 if (UNTAG_Bool(REGB0)) {
16977 } else {
16978 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16979 if (UNTAG_Bool(REGB1)) {
16980 REGB1 = TAG_Bool(false);
16981 REGB0 = REGB1;
16982 } else {
16983 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16984 REGB0 = REGB1;
16985 }
16986 }
16987 if (UNTAG_Bool(REGB0)) {
16988 /* ./parser//parser_prod.nit:3163 */
16989 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16990 if (UNTAG_Bool(REGB0)) {
16991 } else {
16992 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16993 if (UNTAG_Bool(REGB1)) {
16994 REGB1 = TAG_Bool(false);
16995 REGB0 = REGB1;
16996 } else {
16997 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16998 REGB0 = REGB1;
16999 }
17000 }
17001 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17002 if (UNTAG_Bool(REGB0)) {
17003 /* ./parser//parser_prod.nit:3164 */
17004 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17005 if (UNTAG_Bool(REGB0)) {
17006 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3164);
17007 }
17008 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17009 /* ./parser//parser_prod.nit:3165 */
17010 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*/;
17011 if (UNTAG_Bool(REGB0)) {
17012 } else {
17013 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3165);
17014 }
17015 /* ./parser//parser_prod.nit:3166 */
17016 ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
17017 } else {
17018 /* ./parser//parser_prod.nit:3168 */
17019 ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = NIT_NULL;
17020 }
17021 /* ./parser//parser_prod.nit:3170 */
17022 goto label1;
17023 }
17024 /* ./parser//parser_prod.nit:3172 */
17025 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]);
17026 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17027 if (UNTAG_Bool(REGB0)) {
17028 } else {
17029 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17030 if (UNTAG_Bool(REGB1)) {
17031 REGB1 = TAG_Bool(false);
17032 REGB0 = REGB1;
17033 } else {
17034 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17035 REGB0 = REGB1;
17036 }
17037 }
17038 if (UNTAG_Bool(REGB0)) {
17039 /* ./parser//parser_prod.nit:3173 */
17040 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17041 if (UNTAG_Bool(REGB0)) {
17042 } else {
17043 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17044 if (UNTAG_Bool(REGB1)) {
17045 REGB1 = TAG_Bool(false);
17046 REGB0 = REGB1;
17047 } else {
17048 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17049 REGB0 = REGB1;
17050 }
17051 }
17052 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17053 if (UNTAG_Bool(REGB0)) {
17054 /* ./parser//parser_prod.nit:3174 */
17055 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17056 if (UNTAG_Bool(REGB0)) {
17057 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3174);
17058 }
17059 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17060 /* ./parser//parser_prod.nit:3175 */
17061 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
17062 if (UNTAG_Bool(REGB0)) {
17063 } else {
17064 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3175);
17065 }
17066 /* ./parser//parser_prod.nit:3176 */
17067 ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
17068 } else {
17069 /* ./parser//parser_prod.nit:3178 */
17070 ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
17071 }
17072 /* ./parser//parser_prod.nit:3180 */
17073 goto label1;
17074 }
17075 label1: while(0);
17076 stack_frame_head = fra.me.prev;
17077 return;
17078 }
17079 void parser___parser_prod___AVardeclExpr___visit_all(val_t p0, val_t p1){
17080 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17081 val_t REGB0;
17082 val_t REGB1;
17083 val_t tmp;
17084 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17085 fra.me.file = LOCATE_parser___parser_prod;
17086 fra.me.line = 3184;
17087 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___visit_all;
17088 fra.me.has_broke = 0;
17089 fra.me.REG_size = 4;
17090 fra.me.REG[0] = NIT_NULL;
17091 fra.me.REG[1] = NIT_NULL;
17092 fra.me.REG[2] = NIT_NULL;
17093 fra.me.REG[3] = NIT_NULL;
17094 fra.me.REG[0] = p0;
17095 fra.me.REG[1] = p1;
17096 /* ./parser//parser_prod.nit:3184 */
17097 fra.me.REG[2] = fra.me.REG[0];
17098 /* ./parser//parser_prod.nit:3186 */
17099 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[2])!=NIT_NULL);
17100 if (UNTAG_Bool(REGB0)) {
17101 } else {
17102 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 3186);
17103 }
17104 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[2]);
17105 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17106 /* ./parser//parser_prod.nit:3187 */
17107 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[2])!=NIT_NULL);
17108 if (UNTAG_Bool(REGB0)) {
17109 } else {
17110 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3187);
17111 }
17112 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[2]);
17113 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17114 /* ./parser//parser_prod.nit:3188 */
17115 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[2]);
17116 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17117 if (UNTAG_Bool(REGB0)) {
17118 } else {
17119 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17120 if (UNTAG_Bool(REGB1)) {
17121 REGB1 = TAG_Bool(false);
17122 REGB0 = REGB1;
17123 } else {
17124 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17125 REGB0 = REGB1;
17126 }
17127 }
17128 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17129 if (UNTAG_Bool(REGB0)) {
17130 /* ./parser//parser_prod.nit:3189 */
17131 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[2]);
17132 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*/;
17133 if (UNTAG_Bool(REGB0)) {
17134 } else {
17135 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3189);
17136 }
17137 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17138 }
17139 /* ./parser//parser_prod.nit:3191 */
17140 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[2]);
17141 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17142 if (UNTAG_Bool(REGB0)) {
17143 } else {
17144 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17145 if (UNTAG_Bool(REGB1)) {
17146 REGB1 = TAG_Bool(false);
17147 REGB0 = REGB1;
17148 } else {
17149 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17150 REGB0 = REGB1;
17151 }
17152 }
17153 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17154 if (UNTAG_Bool(REGB0)) {
17155 /* ./parser//parser_prod.nit:3192 */
17156 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[2]);
17157 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*/;
17158 if (UNTAG_Bool(REGB0)) {
17159 } else {
17160 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3192);
17161 }
17162 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17163 }
17164 /* ./parser//parser_prod.nit:3194 */
17165 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[2]);
17166 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17167 if (UNTAG_Bool(REGB0)) {
17168 } else {
17169 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17170 if (UNTAG_Bool(REGB1)) {
17171 REGB1 = TAG_Bool(false);
17172 REGB0 = REGB1;
17173 } else {
17174 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17175 REGB0 = REGB1;
17176 }
17177 }
17178 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17179 if (UNTAG_Bool(REGB0)) {
17180 /* ./parser//parser_prod.nit:3195 */
17181 fra.me.REG[2] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[2]);
17182 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
17183 if (UNTAG_Bool(REGB0)) {
17184 } else {
17185 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3195);
17186 }
17187 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17188 }
17189 stack_frame_head = fra.me.prev;
17190 return;
17191 }
17192 void parser___parser_prod___AReturnExpr___empty_init(val_t p0, int* init_table){
17193 int itpos107 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReturnExpr].i;
17194 struct {struct stack_frame_t me;} fra;
17195 val_t tmp;
17196 if (init_table[itpos107]) return;
17197 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17198 fra.me.file = LOCATE_parser___parser_prod;
17199 fra.me.line = 3200;
17200 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___empty_init;
17201 fra.me.has_broke = 0;
17202 fra.me.REG_size = 1;
17203 fra.me.REG[0] = NIT_NULL;
17204 fra.me.REG[0] = p0;
17205 stack_frame_head = fra.me.prev;
17206 init_table[itpos107] = 1;
17207 return;
17208 }
17209 void parser___parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1, val_t p2, int* init_table){
17210 int itpos108 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReturnExpr].i;
17211 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
17212 val_t REGB0;
17213 val_t REGB1;
17214 val_t tmp;
17215 if (init_table[itpos108]) return;
17216 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17217 fra.me.file = LOCATE_parser___parser_prod;
17218 fra.me.line = 3202;
17219 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___init_areturnexpr;
17220 fra.me.has_broke = 0;
17221 fra.me.REG_size = 3;
17222 fra.me.REG[0] = NIT_NULL;
17223 fra.me.REG[1] = NIT_NULL;
17224 fra.me.REG[2] = NIT_NULL;
17225 fra.me.REG[0] = p0;
17226 fra.me.REG[1] = p1;
17227 fra.me.REG[2] = p2;
17228 /* ./parser//parser_prod.nit:3207 */
17229 CALL_parser___parser_prod___AReturnExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
17230 /* ./parser//parser_prod.nit:3208 */
17231 ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[1];
17232 /* ./parser//parser_prod.nit:3209 */
17233 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17234 if (UNTAG_Bool(REGB0)) {
17235 } else {
17236 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17237 if (UNTAG_Bool(REGB1)) {
17238 REGB1 = TAG_Bool(false);
17239 REGB0 = REGB1;
17240 } else {
17241 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
17242 REGB0 = REGB1;
17243 }
17244 }
17245 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17246 if (UNTAG_Bool(REGB0)) {
17247 /* ./parser//parser_prod.nit:3210 */
17248 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17249 if (UNTAG_Bool(REGB0)) {
17250 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3210);
17251 }
17252 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17253 }
17254 /* ./parser//parser_prod.nit:3212 */
17255 ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
17256 /* ./parser//parser_prod.nit:3213 */
17257 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17258 if (UNTAG_Bool(REGB0)) {
17259 } else {
17260 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17261 if (UNTAG_Bool(REGB1)) {
17262 REGB1 = TAG_Bool(false);
17263 REGB0 = REGB1;
17264 } else {
17265 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17266 REGB0 = REGB1;
17267 }
17268 }
17269 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17270 if (UNTAG_Bool(REGB0)) {
17271 /* ./parser//parser_prod.nit:3214 */
17272 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17273 if (UNTAG_Bool(REGB0)) {
17274 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3214);
17275 }
17276 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17277 }
17278 stack_frame_head = fra.me.prev;
17279 init_table[itpos108] = 1;
17280 return;
17281 }
17282 void parser___parser_prod___AReturnExpr___replace_child(val_t p0, val_t p1, val_t p2){
17283 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17284 val_t REGB0;
17285 val_t REGB1;
17286 val_t tmp;
17287 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17288 fra.me.file = LOCATE_parser___parser_prod;
17289 fra.me.line = 3218;
17290 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___replace_child;
17291 fra.me.has_broke = 0;
17292 fra.me.REG_size = 4;
17293 fra.me.REG[0] = NIT_NULL;
17294 fra.me.REG[1] = NIT_NULL;
17295 fra.me.REG[2] = NIT_NULL;
17296 fra.me.REG[3] = NIT_NULL;
17297 fra.me.REG[0] = p0;
17298 fra.me.REG[1] = p1;
17299 fra.me.REG[2] = p2;
17300 /* ./parser//parser_prod.nit:3220 */
17301 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]);
17302 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17303 if (UNTAG_Bool(REGB0)) {
17304 } else {
17305 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17306 if (UNTAG_Bool(REGB1)) {
17307 REGB1 = TAG_Bool(false);
17308 REGB0 = REGB1;
17309 } else {
17310 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17311 REGB0 = REGB1;
17312 }
17313 }
17314 if (UNTAG_Bool(REGB0)) {
17315 /* ./parser//parser_prod.nit:3221 */
17316 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17317 if (UNTAG_Bool(REGB0)) {
17318 } else {
17319 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17320 if (UNTAG_Bool(REGB1)) {
17321 REGB1 = TAG_Bool(false);
17322 REGB0 = REGB1;
17323 } else {
17324 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17325 REGB0 = REGB1;
17326 }
17327 }
17328 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17329 if (UNTAG_Bool(REGB0)) {
17330 /* ./parser//parser_prod.nit:3222 */
17331 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17332 if (UNTAG_Bool(REGB0)) {
17333 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3222);
17334 }
17335 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17336 /* ./parser//parser_prod.nit:3223 */
17337 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*/;
17338 if (UNTAG_Bool(REGB0)) {
17339 } else {
17340 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3223);
17341 }
17342 /* ./parser//parser_prod.nit:3224 */
17343 ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[2];
17344 } else {
17345 /* ./parser//parser_prod.nit:3226 */
17346 ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = NIT_NULL;
17347 }
17348 /* ./parser//parser_prod.nit:3228 */
17349 goto label1;
17350 }
17351 /* ./parser//parser_prod.nit:3230 */
17352 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]);
17353 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17354 if (UNTAG_Bool(REGB0)) {
17355 } else {
17356 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17357 if (UNTAG_Bool(REGB1)) {
17358 REGB1 = TAG_Bool(false);
17359 REGB0 = REGB1;
17360 } else {
17361 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17362 REGB0 = REGB1;
17363 }
17364 }
17365 if (UNTAG_Bool(REGB0)) {
17366 /* ./parser//parser_prod.nit:3231 */
17367 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17368 if (UNTAG_Bool(REGB0)) {
17369 } else {
17370 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17371 if (UNTAG_Bool(REGB1)) {
17372 REGB1 = TAG_Bool(false);
17373 REGB0 = REGB1;
17374 } else {
17375 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17376 REGB0 = REGB1;
17377 }
17378 }
17379 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17380 if (UNTAG_Bool(REGB0)) {
17381 /* ./parser//parser_prod.nit:3232 */
17382 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17383 if (UNTAG_Bool(REGB0)) {
17384 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3232);
17385 }
17386 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17387 /* ./parser//parser_prod.nit:3233 */
17388 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
17389 if (UNTAG_Bool(REGB0)) {
17390 } else {
17391 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3233);
17392 }
17393 /* ./parser//parser_prod.nit:3234 */
17394 ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
17395 } else {
17396 /* ./parser//parser_prod.nit:3236 */
17397 ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
17398 }
17399 /* ./parser//parser_prod.nit:3238 */
17400 goto label1;
17401 }
17402 label1: while(0);
17403 stack_frame_head = fra.me.prev;
17404 return;
17405 }
17406 void parser___parser_prod___AReturnExpr___visit_all(val_t p0, val_t p1){
17407 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17408 val_t REGB0;
17409 val_t REGB1;
17410 val_t tmp;
17411 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17412 fra.me.file = LOCATE_parser___parser_prod;
17413 fra.me.line = 3242;
17414 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___visit_all;
17415 fra.me.has_broke = 0;
17416 fra.me.REG_size = 4;
17417 fra.me.REG[0] = NIT_NULL;
17418 fra.me.REG[1] = NIT_NULL;
17419 fra.me.REG[2] = NIT_NULL;
17420 fra.me.REG[3] = NIT_NULL;
17421 fra.me.REG[0] = p0;
17422 fra.me.REG[1] = p1;
17423 /* ./parser//parser_prod.nit:3242 */
17424 fra.me.REG[2] = fra.me.REG[0];
17425 /* ./parser//parser_prod.nit:3244 */
17426 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[2]);
17427 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17428 if (UNTAG_Bool(REGB0)) {
17429 } else {
17430 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17431 if (UNTAG_Bool(REGB1)) {
17432 REGB1 = TAG_Bool(false);
17433 REGB0 = REGB1;
17434 } else {
17435 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17436 REGB0 = REGB1;
17437 }
17438 }
17439 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17440 if (UNTAG_Bool(REGB0)) {
17441 /* ./parser//parser_prod.nit:3245 */
17442 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[2]);
17443 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*/;
17444 if (UNTAG_Bool(REGB0)) {
17445 } else {
17446 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3245);
17447 }
17448 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17449 }
17450 /* ./parser//parser_prod.nit:3247 */
17451 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[2]);
17452 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17453 if (UNTAG_Bool(REGB0)) {
17454 } else {
17455 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17456 if (UNTAG_Bool(REGB1)) {
17457 REGB1 = TAG_Bool(false);
17458 REGB0 = REGB1;
17459 } else {
17460 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17461 REGB0 = REGB1;
17462 }
17463 }
17464 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17465 if (UNTAG_Bool(REGB0)) {
17466 /* ./parser//parser_prod.nit:3248 */
17467 fra.me.REG[2] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[2]);
17468 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
17469 if (UNTAG_Bool(REGB0)) {
17470 } else {
17471 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3248);
17472 }
17473 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17474 }
17475 stack_frame_head = fra.me.prev;
17476 return;
17477 }
17478 void parser___parser_prod___ABreakExpr___empty_init(val_t p0, int* init_table){
17479 int itpos109 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakExpr].i;
17480 struct {struct stack_frame_t me;} fra;
17481 val_t tmp;
17482 if (init_table[itpos109]) return;
17483 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17484 fra.me.file = LOCATE_parser___parser_prod;
17485 fra.me.line = 3253;
17486 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___empty_init;
17487 fra.me.has_broke = 0;
17488 fra.me.REG_size = 1;
17489 fra.me.REG[0] = NIT_NULL;
17490 fra.me.REG[0] = p0;
17491 stack_frame_head = fra.me.prev;
17492 init_table[itpos109] = 1;
17493 return;
17494 }
17495 void parser___parser_prod___ABreakExpr___init_abreakexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
17496 int itpos110 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakExpr].i;
17497 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
17498 val_t REGB0;
17499 val_t REGB1;
17500 val_t tmp;
17501 if (init_table[itpos110]) return;
17502 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17503 fra.me.file = LOCATE_parser___parser_prod;
17504 fra.me.line = 3255;
17505 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___init_abreakexpr;
17506 fra.me.has_broke = 0;
17507 fra.me.REG_size = 5;
17508 fra.me.REG[0] = NIT_NULL;
17509 fra.me.REG[1] = NIT_NULL;
17510 fra.me.REG[2] = NIT_NULL;
17511 fra.me.REG[3] = NIT_NULL;
17512 fra.me.REG[4] = NIT_NULL;
17513 fra.me.REG[0] = p0;
17514 fra.me.REG[1] = p1;
17515 fra.me.REG[2] = p2;
17516 fra.me.REG[3] = p3;
17517 /* ./parser//parser_prod.nit:3255 */
17518 fra.me.REG[4] = fra.me.REG[0];
17519 /* ./parser//parser_prod.nit:3261 */
17520 CALL_parser___parser_prod___ABreakExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
17521 /* ./parser//parser_prod.nit:3262 */
17522 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
17523 if (UNTAG_Bool(REGB0)) {
17524 } else {
17525 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3262);
17526 }
17527 ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[4]) = fra.me.REG[1];
17528 /* ./parser//parser_prod.nit:3263 */
17529 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17530 if (UNTAG_Bool(REGB0)) {
17531 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3263);
17532 }
17533 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
17534 /* ./parser//parser_prod.nit:3264 */
17535 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[2];
17536 /* ./parser//parser_prod.nit:3265 */
17537 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17538 if (UNTAG_Bool(REGB0)) {
17539 } else {
17540 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17541 if (UNTAG_Bool(REGB1)) {
17542 REGB1 = TAG_Bool(false);
17543 REGB0 = REGB1;
17544 } else {
17545 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17546 REGB0 = REGB1;
17547 }
17548 }
17549 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17550 if (UNTAG_Bool(REGB0)) {
17551 /* ./parser//parser_prod.nit:3266 */
17552 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17553 if (UNTAG_Bool(REGB0)) {
17554 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3266);
17555 }
17556 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17557 }
17558 /* ./parser//parser_prod.nit:3268 */
17559 ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[4]) = fra.me.REG[3];
17560 /* ./parser//parser_prod.nit:3269 */
17561 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17562 if (UNTAG_Bool(REGB0)) {
17563 } else {
17564 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17565 if (UNTAG_Bool(REGB1)) {
17566 REGB1 = TAG_Bool(false);
17567 REGB0 = REGB1;
17568 } else {
17569 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17570 REGB0 = REGB1;
17571 }
17572 }
17573 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17574 if (UNTAG_Bool(REGB0)) {
17575 /* ./parser//parser_prod.nit:3270 */
17576 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17577 if (UNTAG_Bool(REGB0)) {
17578 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3270);
17579 }
17580 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17581 }
17582 stack_frame_head = fra.me.prev;
17583 init_table[itpos110] = 1;
17584 return;
17585 }
17586 void parser___parser_prod___ABreakExpr___replace_child(val_t p0, val_t p1, val_t p2){
17587 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17588 val_t REGB0;
17589 val_t REGB1;
17590 val_t tmp;
17591 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17592 fra.me.file = LOCATE_parser___parser_prod;
17593 fra.me.line = 3274;
17594 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___replace_child;
17595 fra.me.has_broke = 0;
17596 fra.me.REG_size = 4;
17597 fra.me.REG[0] = NIT_NULL;
17598 fra.me.REG[1] = NIT_NULL;
17599 fra.me.REG[2] = NIT_NULL;
17600 fra.me.REG[3] = NIT_NULL;
17601 fra.me.REG[0] = p0;
17602 fra.me.REG[1] = p1;
17603 fra.me.REG[2] = p2;
17604 /* ./parser//parser_prod.nit:3276 */
17605 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
17606 if (UNTAG_Bool(REGB0)) {
17607 } else {
17608 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 3276);
17609 }
17610 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]);
17611 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17612 if (UNTAG_Bool(REGB0)) {
17613 } else {
17614 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17615 REGB0 = REGB1;
17616 }
17617 if (UNTAG_Bool(REGB0)) {
17618 /* ./parser//parser_prod.nit:3277 */
17619 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17620 if (UNTAG_Bool(REGB0)) {
17621 } else {
17622 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17623 if (UNTAG_Bool(REGB1)) {
17624 REGB1 = TAG_Bool(false);
17625 REGB0 = REGB1;
17626 } else {
17627 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17628 REGB0 = REGB1;
17629 }
17630 }
17631 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17632 if (UNTAG_Bool(REGB0)) {
17633 /* ./parser//parser_prod.nit:3278 */
17634 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17635 if (UNTAG_Bool(REGB0)) {
17636 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3278);
17637 }
17638 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17639 /* ./parser//parser_prod.nit:3279 */
17640 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*/;
17641 if (UNTAG_Bool(REGB0)) {
17642 } else {
17643 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3279);
17644 }
17645 /* ./parser//parser_prod.nit:3280 */
17646 ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
17647 } else {
17648 /* ./parser//parser_prod.nit:3282 */
17649 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3282);
17650 }
17651 /* ./parser//parser_prod.nit:3284 */
17652 goto label1;
17653 }
17654 /* ./parser//parser_prod.nit:3286 */
17655 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
17656 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17657 if (UNTAG_Bool(REGB0)) {
17658 } else {
17659 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17660 if (UNTAG_Bool(REGB1)) {
17661 REGB1 = TAG_Bool(false);
17662 REGB0 = REGB1;
17663 } else {
17664 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17665 REGB0 = REGB1;
17666 }
17667 }
17668 if (UNTAG_Bool(REGB0)) {
17669 /* ./parser//parser_prod.nit:3287 */
17670 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17671 if (UNTAG_Bool(REGB0)) {
17672 } else {
17673 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17674 if (UNTAG_Bool(REGB1)) {
17675 REGB1 = TAG_Bool(false);
17676 REGB0 = REGB1;
17677 } else {
17678 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17679 REGB0 = REGB1;
17680 }
17681 }
17682 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17683 if (UNTAG_Bool(REGB0)) {
17684 /* ./parser//parser_prod.nit:3288 */
17685 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17686 if (UNTAG_Bool(REGB0)) {
17687 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3288);
17688 }
17689 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17690 /* ./parser//parser_prod.nit:3289 */
17691 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*/;
17692 if (UNTAG_Bool(REGB0)) {
17693 } else {
17694 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3289);
17695 }
17696 /* ./parser//parser_prod.nit:3290 */
17697 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
17698 } else {
17699 /* ./parser//parser_prod.nit:3292 */
17700 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
17701 }
17702 /* ./parser//parser_prod.nit:3294 */
17703 goto label1;
17704 }
17705 /* ./parser//parser_prod.nit:3296 */
17706 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]);
17707 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17708 if (UNTAG_Bool(REGB0)) {
17709 } else {
17710 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17711 if (UNTAG_Bool(REGB1)) {
17712 REGB1 = TAG_Bool(false);
17713 REGB0 = REGB1;
17714 } else {
17715 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17716 REGB0 = REGB1;
17717 }
17718 }
17719 if (UNTAG_Bool(REGB0)) {
17720 /* ./parser//parser_prod.nit:3297 */
17721 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17722 if (UNTAG_Bool(REGB0)) {
17723 } else {
17724 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17725 if (UNTAG_Bool(REGB1)) {
17726 REGB1 = TAG_Bool(false);
17727 REGB0 = REGB1;
17728 } else {
17729 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17730 REGB0 = REGB1;
17731 }
17732 }
17733 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17734 if (UNTAG_Bool(REGB0)) {
17735 /* ./parser//parser_prod.nit:3298 */
17736 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17737 if (UNTAG_Bool(REGB0)) {
17738 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3298);
17739 }
17740 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17741 /* ./parser//parser_prod.nit:3299 */
17742 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
17743 if (UNTAG_Bool(REGB0)) {
17744 } else {
17745 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3299);
17746 }
17747 /* ./parser//parser_prod.nit:3300 */
17748 ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
17749 } else {
17750 /* ./parser//parser_prod.nit:3302 */
17751 ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
17752 }
17753 /* ./parser//parser_prod.nit:3304 */
17754 goto label1;
17755 }
17756 label1: while(0);
17757 stack_frame_head = fra.me.prev;
17758 return;
17759 }
17760 void parser___parser_prod___ABreakExpr___visit_all(val_t p0, val_t p1){
17761 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17762 val_t REGB0;
17763 val_t REGB1;
17764 val_t tmp;
17765 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17766 fra.me.file = LOCATE_parser___parser_prod;
17767 fra.me.line = 3308;
17768 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___visit_all;
17769 fra.me.has_broke = 0;
17770 fra.me.REG_size = 4;
17771 fra.me.REG[0] = NIT_NULL;
17772 fra.me.REG[1] = NIT_NULL;
17773 fra.me.REG[2] = NIT_NULL;
17774 fra.me.REG[3] = NIT_NULL;
17775 fra.me.REG[0] = p0;
17776 fra.me.REG[1] = p1;
17777 /* ./parser//parser_prod.nit:3308 */
17778 fra.me.REG[2] = fra.me.REG[0];
17779 /* ./parser//parser_prod.nit:3310 */
17780 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[2])!=NIT_NULL);
17781 if (UNTAG_Bool(REGB0)) {
17782 } else {
17783 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 3310);
17784 }
17785 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[2]);
17786 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17787 /* ./parser//parser_prod.nit:3311 */
17788 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
17789 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17790 if (UNTAG_Bool(REGB0)) {
17791 } else {
17792 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17793 if (UNTAG_Bool(REGB1)) {
17794 REGB1 = TAG_Bool(false);
17795 REGB0 = REGB1;
17796 } else {
17797 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17798 REGB0 = REGB1;
17799 }
17800 }
17801 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17802 if (UNTAG_Bool(REGB0)) {
17803 /* ./parser//parser_prod.nit:3312 */
17804 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
17805 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*/;
17806 if (UNTAG_Bool(REGB0)) {
17807 } else {
17808 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3312);
17809 }
17810 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
17811 }
17812 /* ./parser//parser_prod.nit:3314 */
17813 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[2]);
17814 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17815 if (UNTAG_Bool(REGB0)) {
17816 } else {
17817 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17818 if (UNTAG_Bool(REGB1)) {
17819 REGB1 = TAG_Bool(false);
17820 REGB0 = REGB1;
17821 } else {
17822 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17823 REGB0 = REGB1;
17824 }
17825 }
17826 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17827 if (UNTAG_Bool(REGB0)) {
17828 /* ./parser//parser_prod.nit:3315 */
17829 fra.me.REG[2] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[2]);
17830 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
17831 if (UNTAG_Bool(REGB0)) {
17832 } else {
17833 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3315);
17834 }
17835 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17836 }
17837 stack_frame_head = fra.me.prev;
17838 return;
17839 }
17840 void parser___parser_prod___AAbortExpr___empty_init(val_t p0, int* init_table){
17841 int itpos111 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbortExpr].i;
17842 struct {struct stack_frame_t me;} fra;
17843 val_t tmp;
17844 if (init_table[itpos111]) return;
17845 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17846 fra.me.file = LOCATE_parser___parser_prod;
17847 fra.me.line = 3320;
17848 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___empty_init;
17849 fra.me.has_broke = 0;
17850 fra.me.REG_size = 1;
17851 fra.me.REG[0] = NIT_NULL;
17852 fra.me.REG[0] = p0;
17853 stack_frame_head = fra.me.prev;
17854 init_table[itpos111] = 1;
17855 return;
17856 }
17857 void parser___parser_prod___AAbortExpr___init_aabortexpr(val_t p0, val_t p1, int* init_table){
17858 int itpos112 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbortExpr].i;
17859 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
17860 val_t REGB0;
17861 val_t tmp;
17862 if (init_table[itpos112]) return;
17863 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17864 fra.me.file = LOCATE_parser___parser_prod;
17865 fra.me.line = 3322;
17866 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___init_aabortexpr;
17867 fra.me.has_broke = 0;
17868 fra.me.REG_size = 3;
17869 fra.me.REG[0] = NIT_NULL;
17870 fra.me.REG[1] = NIT_NULL;
17871 fra.me.REG[2] = NIT_NULL;
17872 fra.me.REG[0] = p0;
17873 fra.me.REG[1] = p1;
17874 /* ./parser//parser_prod.nit:3322 */
17875 fra.me.REG[2] = fra.me.REG[0];
17876 /* ./parser//parser_prod.nit:3326 */
17877 CALL_parser___parser_prod___AAbortExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
17878 /* ./parser//parser_prod.nit:3327 */
17879 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
17880 if (UNTAG_Bool(REGB0)) {
17881 } else {
17882 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3327);
17883 }
17884 ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[2]) = fra.me.REG[1];
17885 /* ./parser//parser_prod.nit:3328 */
17886 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17887 if (UNTAG_Bool(REGB0)) {
17888 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3328);
17889 }
17890 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17891 stack_frame_head = fra.me.prev;
17892 init_table[itpos112] = 1;
17893 return;
17894 }
17895 void parser___parser_prod___AAbortExpr___replace_child(val_t p0, val_t p1, val_t p2){
17896 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17897 val_t REGB0;
17898 val_t REGB1;
17899 val_t tmp;
17900 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17901 fra.me.file = LOCATE_parser___parser_prod;
17902 fra.me.line = 3331;
17903 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___replace_child;
17904 fra.me.has_broke = 0;
17905 fra.me.REG_size = 4;
17906 fra.me.REG[0] = NIT_NULL;
17907 fra.me.REG[1] = NIT_NULL;
17908 fra.me.REG[2] = NIT_NULL;
17909 fra.me.REG[3] = NIT_NULL;
17910 fra.me.REG[0] = p0;
17911 fra.me.REG[1] = p1;
17912 fra.me.REG[2] = p2;
17913 /* ./parser//parser_prod.nit:3333 */
17914 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0])!=NIT_NULL);
17915 if (UNTAG_Bool(REGB0)) {
17916 } else {
17917 nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser___parser_prod, 3333);
17918 }
17919 fra.me.REG[3] = ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]);
17920 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17921 if (UNTAG_Bool(REGB0)) {
17922 } else {
17923 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17924 REGB0 = REGB1;
17925 }
17926 if (UNTAG_Bool(REGB0)) {
17927 /* ./parser//parser_prod.nit:3334 */
17928 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17929 if (UNTAG_Bool(REGB0)) {
17930 } else {
17931 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17932 if (UNTAG_Bool(REGB1)) {
17933 REGB1 = TAG_Bool(false);
17934 REGB0 = REGB1;
17935 } else {
17936 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17937 REGB0 = REGB1;
17938 }
17939 }
17940 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17941 if (UNTAG_Bool(REGB0)) {
17942 /* ./parser//parser_prod.nit:3335 */
17943 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17944 if (UNTAG_Bool(REGB0)) {
17945 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3335);
17946 }
17947 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17948 /* ./parser//parser_prod.nit:3336 */
17949 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*/;
17950 if (UNTAG_Bool(REGB0)) {
17951 } else {
17952 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3336);
17953 }
17954 /* ./parser//parser_prod.nit:3337 */
17955 ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]) = fra.me.REG[2];
17956 } else {
17957 /* ./parser//parser_prod.nit:3339 */
17958 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3339);
17959 }
17960 /* ./parser//parser_prod.nit:3341 */
17961 goto label1;
17962 }
17963 label1: while(0);
17964 stack_frame_head = fra.me.prev;
17965 return;
17966 }
17967 void parser___parser_prod___AAbortExpr___visit_all(val_t p0, val_t p1){
17968 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17969 val_t REGB0;
17970 val_t tmp;
17971 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17972 fra.me.file = LOCATE_parser___parser_prod;
17973 fra.me.line = 3345;
17974 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___visit_all;
17975 fra.me.has_broke = 0;
17976 fra.me.REG_size = 2;
17977 fra.me.REG[0] = NIT_NULL;
17978 fra.me.REG[1] = NIT_NULL;
17979 fra.me.REG[0] = p0;
17980 fra.me.REG[1] = p1;
17981 /* ./parser//parser_prod.nit:3347 */
17982 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0])!=NIT_NULL);
17983 if (UNTAG_Bool(REGB0)) {
17984 } else {
17985 nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser___parser_prod, 3347);
17986 }
17987 fra.me.REG[0] = ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]);
17988 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17989 stack_frame_head = fra.me.prev;
17990 return;
17991 }
17992 void parser___parser_prod___AContinueExpr___empty_init(val_t p0, int* init_table){
17993 int itpos113 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AContinueExpr].i;
17994 struct {struct stack_frame_t me;} fra;
17995 val_t tmp;
17996 if (init_table[itpos113]) return;
17997 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17998 fra.me.file = LOCATE_parser___parser_prod;
17999 fra.me.line = 3351;
18000 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___empty_init;
18001 fra.me.has_broke = 0;
18002 fra.me.REG_size = 1;
18003 fra.me.REG[0] = NIT_NULL;
18004 fra.me.REG[0] = p0;
18005 stack_frame_head = fra.me.prev;
18006 init_table[itpos113] = 1;
18007 return;
18008 }
18009 void parser___parser_prod___AContinueExpr___init_acontinueexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
18010 int itpos114 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AContinueExpr].i;
18011 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18012 val_t REGB0;
18013 val_t REGB1;
18014 val_t tmp;
18015 if (init_table[itpos114]) return;
18016 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18017 fra.me.file = LOCATE_parser___parser_prod;
18018 fra.me.line = 3353;
18019 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___init_acontinueexpr;
18020 fra.me.has_broke = 0;
18021 fra.me.REG_size = 4;
18022 fra.me.REG[0] = NIT_NULL;
18023 fra.me.REG[1] = NIT_NULL;
18024 fra.me.REG[2] = NIT_NULL;
18025 fra.me.REG[3] = NIT_NULL;
18026 fra.me.REG[0] = p0;
18027 fra.me.REG[1] = p1;
18028 fra.me.REG[2] = p2;
18029 fra.me.REG[3] = p3;
18030 /* ./parser//parser_prod.nit:3359 */
18031 CALL_parser___parser_prod___AContinueExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
18032 /* ./parser//parser_prod.nit:3360 */
18033 ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = fra.me.REG[1];
18034 /* ./parser//parser_prod.nit:3361 */
18035 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18036 if (UNTAG_Bool(REGB0)) {
18037 } else {
18038 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18039 if (UNTAG_Bool(REGB1)) {
18040 REGB1 = TAG_Bool(false);
18041 REGB0 = REGB1;
18042 } else {
18043 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
18044 REGB0 = REGB1;
18045 }
18046 }
18047 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18048 if (UNTAG_Bool(REGB0)) {
18049 /* ./parser//parser_prod.nit:3362 */
18050 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18051 if (UNTAG_Bool(REGB0)) {
18052 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3362);
18053 }
18054 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18055 }
18056 /* ./parser//parser_prod.nit:3364 */
18057 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
18058 /* ./parser//parser_prod.nit:3365 */
18059 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18060 if (UNTAG_Bool(REGB0)) {
18061 } else {
18062 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18063 if (UNTAG_Bool(REGB1)) {
18064 REGB1 = TAG_Bool(false);
18065 REGB0 = REGB1;
18066 } else {
18067 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18068 REGB0 = REGB1;
18069 }
18070 }
18071 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18072 if (UNTAG_Bool(REGB0)) {
18073 /* ./parser//parser_prod.nit:3366 */
18074 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18075 if (UNTAG_Bool(REGB0)) {
18076 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3366);
18077 }
18078 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18079 }
18080 /* ./parser//parser_prod.nit:3368 */
18081 ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = fra.me.REG[3];
18082 /* ./parser//parser_prod.nit:3369 */
18083 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18084 if (UNTAG_Bool(REGB0)) {
18085 } else {
18086 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18087 if (UNTAG_Bool(REGB1)) {
18088 REGB1 = TAG_Bool(false);
18089 REGB0 = REGB1;
18090 } else {
18091 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18092 REGB0 = REGB1;
18093 }
18094 }
18095 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18096 if (UNTAG_Bool(REGB0)) {
18097 /* ./parser//parser_prod.nit:3370 */
18098 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18099 if (UNTAG_Bool(REGB0)) {
18100 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3370);
18101 }
18102 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
18103 }
18104 stack_frame_head = fra.me.prev;
18105 init_table[itpos114] = 1;
18106 return;
18107 }
18108 void parser___parser_prod___AContinueExpr___replace_child(val_t p0, val_t p1, val_t p2){
18109 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18110 val_t REGB0;
18111 val_t REGB1;
18112 val_t tmp;
18113 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18114 fra.me.file = LOCATE_parser___parser_prod;
18115 fra.me.line = 3374;
18116 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___replace_child;
18117 fra.me.has_broke = 0;
18118 fra.me.REG_size = 4;
18119 fra.me.REG[0] = NIT_NULL;
18120 fra.me.REG[1] = NIT_NULL;
18121 fra.me.REG[2] = NIT_NULL;
18122 fra.me.REG[3] = NIT_NULL;
18123 fra.me.REG[0] = p0;
18124 fra.me.REG[1] = p1;
18125 fra.me.REG[2] = p2;
18126 /* ./parser//parser_prod.nit:3376 */
18127 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]);
18128 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18129 if (UNTAG_Bool(REGB0)) {
18130 } else {
18131 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18132 if (UNTAG_Bool(REGB1)) {
18133 REGB1 = TAG_Bool(false);
18134 REGB0 = REGB1;
18135 } else {
18136 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18137 REGB0 = REGB1;
18138 }
18139 }
18140 if (UNTAG_Bool(REGB0)) {
18141 /* ./parser//parser_prod.nit:3377 */
18142 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18143 if (UNTAG_Bool(REGB0)) {
18144 } else {
18145 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18146 if (UNTAG_Bool(REGB1)) {
18147 REGB1 = TAG_Bool(false);
18148 REGB0 = REGB1;
18149 } else {
18150 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18151 REGB0 = REGB1;
18152 }
18153 }
18154 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18155 if (UNTAG_Bool(REGB0)) {
18156 /* ./parser//parser_prod.nit:3378 */
18157 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18158 if (UNTAG_Bool(REGB0)) {
18159 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3378);
18160 }
18161 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18162 /* ./parser//parser_prod.nit:3379 */
18163 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*/;
18164 if (UNTAG_Bool(REGB0)) {
18165 } else {
18166 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3379);
18167 }
18168 /* ./parser//parser_prod.nit:3380 */
18169 ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = fra.me.REG[2];
18170 } else {
18171 /* ./parser//parser_prod.nit:3382 */
18172 ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = NIT_NULL;
18173 }
18174 /* ./parser//parser_prod.nit:3384 */
18175 goto label1;
18176 }
18177 /* ./parser//parser_prod.nit:3386 */
18178 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
18179 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18180 if (UNTAG_Bool(REGB0)) {
18181 } else {
18182 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18183 if (UNTAG_Bool(REGB1)) {
18184 REGB1 = TAG_Bool(false);
18185 REGB0 = REGB1;
18186 } else {
18187 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18188 REGB0 = REGB1;
18189 }
18190 }
18191 if (UNTAG_Bool(REGB0)) {
18192 /* ./parser//parser_prod.nit:3387 */
18193 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18194 if (UNTAG_Bool(REGB0)) {
18195 } else {
18196 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18197 if (UNTAG_Bool(REGB1)) {
18198 REGB1 = TAG_Bool(false);
18199 REGB0 = REGB1;
18200 } else {
18201 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18202 REGB0 = REGB1;
18203 }
18204 }
18205 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18206 if (UNTAG_Bool(REGB0)) {
18207 /* ./parser//parser_prod.nit:3388 */
18208 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18209 if (UNTAG_Bool(REGB0)) {
18210 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3388);
18211 }
18212 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18213 /* ./parser//parser_prod.nit:3389 */
18214 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*/;
18215 if (UNTAG_Bool(REGB0)) {
18216 } else {
18217 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3389);
18218 }
18219 /* ./parser//parser_prod.nit:3390 */
18220 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
18221 } else {
18222 /* ./parser//parser_prod.nit:3392 */
18223 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
18224 }
18225 /* ./parser//parser_prod.nit:3394 */
18226 goto label1;
18227 }
18228 /* ./parser//parser_prod.nit:3396 */
18229 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]);
18230 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
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], fra.me.REG[1]);
18239 REGB0 = REGB1;
18240 }
18241 }
18242 if (UNTAG_Bool(REGB0)) {
18243 /* ./parser//parser_prod.nit:3397 */
18244 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18245 if (UNTAG_Bool(REGB0)) {
18246 } else {
18247 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18248 if (UNTAG_Bool(REGB1)) {
18249 REGB1 = TAG_Bool(false);
18250 REGB0 = REGB1;
18251 } else {
18252 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18253 REGB0 = REGB1;
18254 }
18255 }
18256 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18257 if (UNTAG_Bool(REGB0)) {
18258 /* ./parser//parser_prod.nit:3398 */
18259 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18260 if (UNTAG_Bool(REGB0)) {
18261 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3398);
18262 }
18263 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18264 /* ./parser//parser_prod.nit:3399 */
18265 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
18266 if (UNTAG_Bool(REGB0)) {
18267 } else {
18268 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3399);
18269 }
18270 /* ./parser//parser_prod.nit:3400 */
18271 ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
18272 } else {
18273 /* ./parser//parser_prod.nit:3402 */
18274 ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
18275 }
18276 /* ./parser//parser_prod.nit:3404 */
18277 goto label1;
18278 }
18279 label1: while(0);
18280 stack_frame_head = fra.me.prev;
18281 return;
18282 }
18283 void parser___parser_prod___AContinueExpr___visit_all(val_t p0, val_t p1){
18284 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18285 val_t REGB0;
18286 val_t REGB1;
18287 val_t tmp;
18288 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18289 fra.me.file = LOCATE_parser___parser_prod;
18290 fra.me.line = 3408;
18291 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___visit_all;
18292 fra.me.has_broke = 0;
18293 fra.me.REG_size = 4;
18294 fra.me.REG[0] = NIT_NULL;
18295 fra.me.REG[1] = NIT_NULL;
18296 fra.me.REG[2] = NIT_NULL;
18297 fra.me.REG[3] = NIT_NULL;
18298 fra.me.REG[0] = p0;
18299 fra.me.REG[1] = p1;
18300 /* ./parser//parser_prod.nit:3408 */
18301 fra.me.REG[2] = fra.me.REG[0];
18302 /* ./parser//parser_prod.nit:3410 */
18303 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[2]);
18304 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18305 if (UNTAG_Bool(REGB0)) {
18306 } else {
18307 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18308 if (UNTAG_Bool(REGB1)) {
18309 REGB1 = TAG_Bool(false);
18310 REGB0 = REGB1;
18311 } else {
18312 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18313 REGB0 = REGB1;
18314 }
18315 }
18316 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18317 if (UNTAG_Bool(REGB0)) {
18318 /* ./parser//parser_prod.nit:3411 */
18319 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[2]);
18320 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*/;
18321 if (UNTAG_Bool(REGB0)) {
18322 } else {
18323 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3411);
18324 }
18325 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18326 }
18327 /* ./parser//parser_prod.nit:3413 */
18328 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
18329 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18330 if (UNTAG_Bool(REGB0)) {
18331 } else {
18332 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18333 if (UNTAG_Bool(REGB1)) {
18334 REGB1 = TAG_Bool(false);
18335 REGB0 = REGB1;
18336 } else {
18337 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18338 REGB0 = REGB1;
18339 }
18340 }
18341 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18342 if (UNTAG_Bool(REGB0)) {
18343 /* ./parser//parser_prod.nit:3414 */
18344 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
18345 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*/;
18346 if (UNTAG_Bool(REGB0)) {
18347 } else {
18348 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3414);
18349 }
18350 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18351 }
18352 /* ./parser//parser_prod.nit:3416 */
18353 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[2]);
18354 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18355 if (UNTAG_Bool(REGB0)) {
18356 } else {
18357 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18358 if (UNTAG_Bool(REGB1)) {
18359 REGB1 = TAG_Bool(false);
18360 REGB0 = REGB1;
18361 } else {
18362 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18363 REGB0 = REGB1;
18364 }
18365 }
18366 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18367 if (UNTAG_Bool(REGB0)) {
18368 /* ./parser//parser_prod.nit:3417 */
18369 fra.me.REG[2] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[2]);
18370 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
18371 if (UNTAG_Bool(REGB0)) {
18372 } else {
18373 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3417);
18374 }
18375 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18376 }
18377 stack_frame_head = fra.me.prev;
18378 return;
18379 }
18380 void parser___parser_prod___ADoExpr___empty_init(val_t p0, int* init_table){
18381 int itpos115 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoExpr].i;
18382 struct {struct stack_frame_t me;} fra;
18383 val_t tmp;
18384 if (init_table[itpos115]) return;
18385 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18386 fra.me.file = LOCATE_parser___parser_prod;
18387 fra.me.line = 3422;
18388 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___empty_init;
18389 fra.me.has_broke = 0;
18390 fra.me.REG_size = 1;
18391 fra.me.REG[0] = NIT_NULL;
18392 fra.me.REG[0] = p0;
18393 stack_frame_head = fra.me.prev;
18394 init_table[itpos115] = 1;
18395 return;
18396 }
18397 void parser___parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
18398 int itpos116 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoExpr].i;
18399 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
18400 val_t REGB0;
18401 val_t REGB1;
18402 val_t tmp;
18403 if (init_table[itpos116]) return;
18404 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18405 fra.me.file = LOCATE_parser___parser_prod;
18406 fra.me.line = 3424;
18407 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___init_adoexpr;
18408 fra.me.has_broke = 0;
18409 fra.me.REG_size = 5;
18410 fra.me.REG[0] = NIT_NULL;
18411 fra.me.REG[1] = NIT_NULL;
18412 fra.me.REG[2] = NIT_NULL;
18413 fra.me.REG[3] = NIT_NULL;
18414 fra.me.REG[4] = NIT_NULL;
18415 fra.me.REG[0] = p0;
18416 fra.me.REG[1] = p1;
18417 fra.me.REG[2] = p2;
18418 fra.me.REG[3] = p3;
18419 /* ./parser//parser_prod.nit:3424 */
18420 fra.me.REG[4] = fra.me.REG[0];
18421 /* ./parser//parser_prod.nit:3430 */
18422 CALL_parser___parser_prod___ADoExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
18423 /* ./parser//parser_prod.nit:3431 */
18424 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
18425 if (UNTAG_Bool(REGB0)) {
18426 } else {
18427 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3431);
18428 }
18429 ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[4]) = fra.me.REG[1];
18430 /* ./parser//parser_prod.nit:3432 */
18431 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18432 if (UNTAG_Bool(REGB0)) {
18433 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3432);
18434 }
18435 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
18436 /* ./parser//parser_prod.nit:3433 */
18437 ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[4]) = fra.me.REG[2];
18438 /* ./parser//parser_prod.nit:3434 */
18439 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18440 if (UNTAG_Bool(REGB0)) {
18441 } else {
18442 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18443 if (UNTAG_Bool(REGB1)) {
18444 REGB1 = TAG_Bool(false);
18445 REGB0 = REGB1;
18446 } else {
18447 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18448 REGB0 = REGB1;
18449 }
18450 }
18451 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18452 if (UNTAG_Bool(REGB0)) {
18453 /* ./parser//parser_prod.nit:3435 */
18454 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18455 if (UNTAG_Bool(REGB0)) {
18456 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3435);
18457 }
18458 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
18459 }
18460 /* ./parser//parser_prod.nit:3437 */
18461 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[3];
18462 /* ./parser//parser_prod.nit:3438 */
18463 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18464 if (UNTAG_Bool(REGB0)) {
18465 } else {
18466 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18467 if (UNTAG_Bool(REGB1)) {
18468 REGB1 = TAG_Bool(false);
18469 REGB0 = REGB1;
18470 } else {
18471 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18472 REGB0 = REGB1;
18473 }
18474 }
18475 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18476 if (UNTAG_Bool(REGB0)) {
18477 /* ./parser//parser_prod.nit:3439 */
18478 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18479 if (UNTAG_Bool(REGB0)) {
18480 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3439);
18481 }
18482 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
18483 }
18484 stack_frame_head = fra.me.prev;
18485 init_table[itpos116] = 1;
18486 return;
18487 }
18488 void parser___parser_prod___ADoExpr___replace_child(val_t p0, val_t p1, val_t p2){
18489 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18490 val_t REGB0;
18491 val_t REGB1;
18492 val_t tmp;
18493 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18494 fra.me.file = LOCATE_parser___parser_prod;
18495 fra.me.line = 3443;
18496 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___replace_child;
18497 fra.me.has_broke = 0;
18498 fra.me.REG_size = 4;
18499 fra.me.REG[0] = NIT_NULL;
18500 fra.me.REG[1] = NIT_NULL;
18501 fra.me.REG[2] = NIT_NULL;
18502 fra.me.REG[3] = NIT_NULL;
18503 fra.me.REG[0] = p0;
18504 fra.me.REG[1] = p1;
18505 fra.me.REG[2] = p2;
18506 /* ./parser//parser_prod.nit:3445 */
18507 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
18508 if (UNTAG_Bool(REGB0)) {
18509 } else {
18510 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3445);
18511 }
18512 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]);
18513 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18514 if (UNTAG_Bool(REGB0)) {
18515 } else {
18516 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18517 REGB0 = REGB1;
18518 }
18519 if (UNTAG_Bool(REGB0)) {
18520 /* ./parser//parser_prod.nit:3446 */
18521 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18522 if (UNTAG_Bool(REGB0)) {
18523 } else {
18524 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18525 if (UNTAG_Bool(REGB1)) {
18526 REGB1 = TAG_Bool(false);
18527 REGB0 = REGB1;
18528 } else {
18529 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18530 REGB0 = REGB1;
18531 }
18532 }
18533 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18534 if (UNTAG_Bool(REGB0)) {
18535 /* ./parser//parser_prod.nit:3447 */
18536 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18537 if (UNTAG_Bool(REGB0)) {
18538 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3447);
18539 }
18540 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18541 /* ./parser//parser_prod.nit:3448 */
18542 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*/;
18543 if (UNTAG_Bool(REGB0)) {
18544 } else {
18545 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3448);
18546 }
18547 /* ./parser//parser_prod.nit:3449 */
18548 ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
18549 } else {
18550 /* ./parser//parser_prod.nit:3451 */
18551 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3451);
18552 }
18553 /* ./parser//parser_prod.nit:3453 */
18554 goto label1;
18555 }
18556 /* ./parser//parser_prod.nit:3455 */
18557 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]);
18558 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18559 if (UNTAG_Bool(REGB0)) {
18560 } else {
18561 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18562 if (UNTAG_Bool(REGB1)) {
18563 REGB1 = TAG_Bool(false);
18564 REGB0 = REGB1;
18565 } else {
18566 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18567 REGB0 = REGB1;
18568 }
18569 }
18570 if (UNTAG_Bool(REGB0)) {
18571 /* ./parser//parser_prod.nit:3456 */
18572 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18573 if (UNTAG_Bool(REGB0)) {
18574 } else {
18575 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18576 if (UNTAG_Bool(REGB1)) {
18577 REGB1 = TAG_Bool(false);
18578 REGB0 = REGB1;
18579 } else {
18580 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18581 REGB0 = REGB1;
18582 }
18583 }
18584 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18585 if (UNTAG_Bool(REGB0)) {
18586 /* ./parser//parser_prod.nit:3457 */
18587 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18588 if (UNTAG_Bool(REGB0)) {
18589 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3457);
18590 }
18591 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18592 /* ./parser//parser_prod.nit:3458 */
18593 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
18594 if (UNTAG_Bool(REGB0)) {
18595 } else {
18596 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3458);
18597 }
18598 /* ./parser//parser_prod.nit:3459 */
18599 ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
18600 } else {
18601 /* ./parser//parser_prod.nit:3461 */
18602 ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = NIT_NULL;
18603 }
18604 /* ./parser//parser_prod.nit:3463 */
18605 goto label1;
18606 }
18607 /* ./parser//parser_prod.nit:3465 */
18608 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
18609 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18610 if (UNTAG_Bool(REGB0)) {
18611 } else {
18612 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18613 if (UNTAG_Bool(REGB1)) {
18614 REGB1 = TAG_Bool(false);
18615 REGB0 = REGB1;
18616 } else {
18617 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18618 REGB0 = REGB1;
18619 }
18620 }
18621 if (UNTAG_Bool(REGB0)) {
18622 /* ./parser//parser_prod.nit:3466 */
18623 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18624 if (UNTAG_Bool(REGB0)) {
18625 } else {
18626 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18627 if (UNTAG_Bool(REGB1)) {
18628 REGB1 = TAG_Bool(false);
18629 REGB0 = REGB1;
18630 } else {
18631 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18632 REGB0 = REGB1;
18633 }
18634 }
18635 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18636 if (UNTAG_Bool(REGB0)) {
18637 /* ./parser//parser_prod.nit:3467 */
18638 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18639 if (UNTAG_Bool(REGB0)) {
18640 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3467);
18641 }
18642 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18643 /* ./parser//parser_prod.nit:3468 */
18644 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*/;
18645 if (UNTAG_Bool(REGB0)) {
18646 } else {
18647 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3468);
18648 }
18649 /* ./parser//parser_prod.nit:3469 */
18650 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
18651 } else {
18652 /* ./parser//parser_prod.nit:3471 */
18653 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
18654 }
18655 /* ./parser//parser_prod.nit:3473 */
18656 goto label1;
18657 }
18658 label1: while(0);
18659 stack_frame_head = fra.me.prev;
18660 return;
18661 }
18662 void parser___parser_prod___ADoExpr___visit_all(val_t p0, val_t p1){
18663 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18664 val_t REGB0;
18665 val_t REGB1;
18666 val_t tmp;
18667 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18668 fra.me.file = LOCATE_parser___parser_prod;
18669 fra.me.line = 3477;
18670 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___visit_all;
18671 fra.me.has_broke = 0;
18672 fra.me.REG_size = 4;
18673 fra.me.REG[0] = NIT_NULL;
18674 fra.me.REG[1] = NIT_NULL;
18675 fra.me.REG[2] = NIT_NULL;
18676 fra.me.REG[3] = NIT_NULL;
18677 fra.me.REG[0] = p0;
18678 fra.me.REG[1] = p1;
18679 /* ./parser//parser_prod.nit:3477 */
18680 fra.me.REG[2] = fra.me.REG[0];
18681 /* ./parser//parser_prod.nit:3479 */
18682 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
18683 if (UNTAG_Bool(REGB0)) {
18684 } else {
18685 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3479);
18686 }
18687 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[2]);
18688 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18689 /* ./parser//parser_prod.nit:3480 */
18690 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[2]);
18691 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18692 if (UNTAG_Bool(REGB0)) {
18693 } else {
18694 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18695 if (UNTAG_Bool(REGB1)) {
18696 REGB1 = TAG_Bool(false);
18697 REGB0 = REGB1;
18698 } else {
18699 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18700 REGB0 = REGB1;
18701 }
18702 }
18703 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18704 if (UNTAG_Bool(REGB0)) {
18705 /* ./parser//parser_prod.nit:3481 */
18706 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[2]);
18707 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*/;
18708 if (UNTAG_Bool(REGB0)) {
18709 } else {
18710 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3481);
18711 }
18712 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18713 }
18714 /* ./parser//parser_prod.nit:3483 */
18715 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
18716 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18717 if (UNTAG_Bool(REGB0)) {
18718 } else {
18719 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18720 if (UNTAG_Bool(REGB1)) {
18721 REGB1 = TAG_Bool(false);
18722 REGB0 = REGB1;
18723 } else {
18724 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18725 REGB0 = REGB1;
18726 }
18727 }
18728 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18729 if (UNTAG_Bool(REGB0)) {
18730 /* ./parser//parser_prod.nit:3484 */
18731 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
18732 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*/;
18733 if (UNTAG_Bool(REGB0)) {
18734 } else {
18735 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3484);
18736 }
18737 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18738 }
18739 stack_frame_head = fra.me.prev;
18740 return;
18741 }
18742 void parser___parser_prod___AIfExpr___empty_init(val_t p0, int* init_table){
18743 int itpos117 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfExpr].i;
18744 struct {struct stack_frame_t me;} fra;
18745 val_t tmp;
18746 if (init_table[itpos117]) return;
18747 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18748 fra.me.file = LOCATE_parser___parser_prod;
18749 fra.me.line = 3489;
18750 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___empty_init;
18751 fra.me.has_broke = 0;
18752 fra.me.REG_size = 1;
18753 fra.me.REG[0] = NIT_NULL;
18754 fra.me.REG[0] = p0;
18755 stack_frame_head = fra.me.prev;
18756 init_table[itpos117] = 1;
18757 return;
18758 }
18759 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){
18760 int itpos118 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfExpr].i;
18761 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
18762 val_t REGB0;
18763 val_t REGB1;
18764 val_t tmp;
18765 if (init_table[itpos118]) return;
18766 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18767 fra.me.file = LOCATE_parser___parser_prod;
18768 fra.me.line = 3491;
18769 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___init_aifexpr;
18770 fra.me.has_broke = 0;
18771 fra.me.REG_size = 6;
18772 fra.me.REG[0] = NIT_NULL;
18773 fra.me.REG[1] = NIT_NULL;
18774 fra.me.REG[2] = NIT_NULL;
18775 fra.me.REG[3] = NIT_NULL;
18776 fra.me.REG[4] = NIT_NULL;
18777 fra.me.REG[5] = NIT_NULL;
18778 fra.me.REG[0] = p0;
18779 fra.me.REG[1] = p1;
18780 fra.me.REG[2] = p2;
18781 fra.me.REG[3] = p3;
18782 fra.me.REG[4] = p4;
18783 /* ./parser//parser_prod.nit:3491 */
18784 fra.me.REG[5] = fra.me.REG[0];
18785 /* ./parser//parser_prod.nit:3498 */
18786 CALL_parser___parser_prod___AIfExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
18787 /* ./parser//parser_prod.nit:3499 */
18788 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
18789 if (UNTAG_Bool(REGB0)) {
18790 } else {
18791 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3499);
18792 }
18793 ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[5]) = fra.me.REG[1];
18794 /* ./parser//parser_prod.nit:3500 */
18795 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18796 if (UNTAG_Bool(REGB0)) {
18797 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3500);
18798 }
18799 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
18800 /* ./parser//parser_prod.nit:3501 */
18801 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
18802 if (UNTAG_Bool(REGB0)) {
18803 } else {
18804 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3501);
18805 }
18806 ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[5]) = fra.me.REG[2];
18807 /* ./parser//parser_prod.nit:3502 */
18808 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18809 if (UNTAG_Bool(REGB0)) {
18810 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3502);
18811 }
18812 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
18813 /* ./parser//parser_prod.nit:3503 */
18814 ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[5]) = fra.me.REG[3];
18815 /* ./parser//parser_prod.nit:3504 */
18816 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18817 if (UNTAG_Bool(REGB0)) {
18818 } else {
18819 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18820 if (UNTAG_Bool(REGB1)) {
18821 REGB1 = TAG_Bool(false);
18822 REGB0 = REGB1;
18823 } else {
18824 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18825 REGB0 = REGB1;
18826 }
18827 }
18828 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18829 if (UNTAG_Bool(REGB0)) {
18830 /* ./parser//parser_prod.nit:3505 */
18831 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18832 if (UNTAG_Bool(REGB0)) {
18833 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3505);
18834 }
18835 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
18836 }
18837 /* ./parser//parser_prod.nit:3507 */
18838 ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[5]) = fra.me.REG[4];
18839 /* ./parser//parser_prod.nit:3508 */
18840 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
18841 if (UNTAG_Bool(REGB0)) {
18842 } else {
18843 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
18844 if (UNTAG_Bool(REGB1)) {
18845 REGB1 = TAG_Bool(false);
18846 REGB0 = REGB1;
18847 } else {
18848 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
18849 REGB0 = REGB1;
18850 }
18851 }
18852 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18853 if (UNTAG_Bool(REGB0)) {
18854 /* ./parser//parser_prod.nit:3509 */
18855 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
18856 if (UNTAG_Bool(REGB0)) {
18857 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3509);
18858 }
18859 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
18860 }
18861 stack_frame_head = fra.me.prev;
18862 init_table[itpos118] = 1;
18863 return;
18864 }
18865 void parser___parser_prod___AIfExpr___replace_child(val_t p0, val_t p1, val_t p2){
18866 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18867 val_t REGB0;
18868 val_t REGB1;
18869 val_t tmp;
18870 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18871 fra.me.file = LOCATE_parser___parser_prod;
18872 fra.me.line = 3513;
18873 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___replace_child;
18874 fra.me.has_broke = 0;
18875 fra.me.REG_size = 4;
18876 fra.me.REG[0] = NIT_NULL;
18877 fra.me.REG[1] = NIT_NULL;
18878 fra.me.REG[2] = NIT_NULL;
18879 fra.me.REG[3] = NIT_NULL;
18880 fra.me.REG[0] = p0;
18881 fra.me.REG[1] = p1;
18882 fra.me.REG[2] = p2;
18883 /* ./parser//parser_prod.nit:3515 */
18884 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
18885 if (UNTAG_Bool(REGB0)) {
18886 } else {
18887 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3515);
18888 }
18889 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]);
18890 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18891 if (UNTAG_Bool(REGB0)) {
18892 } else {
18893 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18894 REGB0 = REGB1;
18895 }
18896 if (UNTAG_Bool(REGB0)) {
18897 /* ./parser//parser_prod.nit:3516 */
18898 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18899 if (UNTAG_Bool(REGB0)) {
18900 } else {
18901 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18902 if (UNTAG_Bool(REGB1)) {
18903 REGB1 = TAG_Bool(false);
18904 REGB0 = REGB1;
18905 } else {
18906 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18907 REGB0 = REGB1;
18908 }
18909 }
18910 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18911 if (UNTAG_Bool(REGB0)) {
18912 /* ./parser//parser_prod.nit:3517 */
18913 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18914 if (UNTAG_Bool(REGB0)) {
18915 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3517);
18916 }
18917 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18918 /* ./parser//parser_prod.nit:3518 */
18919 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*/;
18920 if (UNTAG_Bool(REGB0)) {
18921 } else {
18922 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3518);
18923 }
18924 /* ./parser//parser_prod.nit:3519 */
18925 ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[2];
18926 } else {
18927 /* ./parser//parser_prod.nit:3521 */
18928 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3521);
18929 }
18930 /* ./parser//parser_prod.nit:3523 */
18931 goto label1;
18932 }
18933 /* ./parser//parser_prod.nit:3525 */
18934 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
18935 if (UNTAG_Bool(REGB0)) {
18936 } else {
18937 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3525);
18938 }
18939 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0]);
18940 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18941 if (UNTAG_Bool(REGB0)) {
18942 } else {
18943 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18944 REGB0 = REGB1;
18945 }
18946 if (UNTAG_Bool(REGB0)) {
18947 /* ./parser//parser_prod.nit:3526 */
18948 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18949 if (UNTAG_Bool(REGB0)) {
18950 } else {
18951 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18952 if (UNTAG_Bool(REGB1)) {
18953 REGB1 = TAG_Bool(false);
18954 REGB0 = REGB1;
18955 } else {
18956 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18957 REGB0 = REGB1;
18958 }
18959 }
18960 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18961 if (UNTAG_Bool(REGB0)) {
18962 /* ./parser//parser_prod.nit:3527 */
18963 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18964 if (UNTAG_Bool(REGB0)) {
18965 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3527);
18966 }
18967 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18968 /* ./parser//parser_prod.nit:3528 */
18969 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
18970 if (UNTAG_Bool(REGB0)) {
18971 } else {
18972 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3528);
18973 }
18974 /* ./parser//parser_prod.nit:3529 */
18975 ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
18976 } else {
18977 /* ./parser//parser_prod.nit:3531 */
18978 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3531);
18979 }
18980 /* ./parser//parser_prod.nit:3533 */
18981 goto label1;
18982 }
18983 /* ./parser//parser_prod.nit:3535 */
18984 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]);
18985 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18986 if (UNTAG_Bool(REGB0)) {
18987 } else {
18988 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18989 if (UNTAG_Bool(REGB1)) {
18990 REGB1 = TAG_Bool(false);
18991 REGB0 = REGB1;
18992 } else {
18993 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18994 REGB0 = REGB1;
18995 }
18996 }
18997 if (UNTAG_Bool(REGB0)) {
18998 /* ./parser//parser_prod.nit:3536 */
18999 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19000 if (UNTAG_Bool(REGB0)) {
19001 } else {
19002 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19003 if (UNTAG_Bool(REGB1)) {
19004 REGB1 = TAG_Bool(false);
19005 REGB0 = REGB1;
19006 } else {
19007 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19008 REGB0 = REGB1;
19009 }
19010 }
19011 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19012 if (UNTAG_Bool(REGB0)) {
19013 /* ./parser//parser_prod.nit:3537 */
19014 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19015 if (UNTAG_Bool(REGB0)) {
19016 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3537);
19017 }
19018 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19019 /* ./parser//parser_prod.nit:3538 */
19020 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19021 if (UNTAG_Bool(REGB0)) {
19022 } else {
19023 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3538);
19024 }
19025 /* ./parser//parser_prod.nit:3539 */
19026 ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = fra.me.REG[2];
19027 } else {
19028 /* ./parser//parser_prod.nit:3541 */
19029 ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = NIT_NULL;
19030 }
19031 /* ./parser//parser_prod.nit:3543 */
19032 goto label1;
19033 }
19034 /* ./parser//parser_prod.nit:3545 */
19035 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]);
19036 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19037 if (UNTAG_Bool(REGB0)) {
19038 } else {
19039 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19040 if (UNTAG_Bool(REGB1)) {
19041 REGB1 = TAG_Bool(false);
19042 REGB0 = REGB1;
19043 } else {
19044 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19045 REGB0 = REGB1;
19046 }
19047 }
19048 if (UNTAG_Bool(REGB0)) {
19049 /* ./parser//parser_prod.nit:3546 */
19050 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19051 if (UNTAG_Bool(REGB0)) {
19052 } else {
19053 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19054 if (UNTAG_Bool(REGB1)) {
19055 REGB1 = TAG_Bool(false);
19056 REGB0 = REGB1;
19057 } else {
19058 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19059 REGB0 = REGB1;
19060 }
19061 }
19062 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19063 if (UNTAG_Bool(REGB0)) {
19064 /* ./parser//parser_prod.nit:3547 */
19065 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19066 if (UNTAG_Bool(REGB0)) {
19067 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3547);
19068 }
19069 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19070 /* ./parser//parser_prod.nit:3548 */
19071 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19072 if (UNTAG_Bool(REGB0)) {
19073 } else {
19074 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3548);
19075 }
19076 /* ./parser//parser_prod.nit:3549 */
19077 ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
19078 } else {
19079 /* ./parser//parser_prod.nit:3551 */
19080 ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = NIT_NULL;
19081 }
19082 /* ./parser//parser_prod.nit:3553 */
19083 goto label1;
19084 }
19085 label1: while(0);
19086 stack_frame_head = fra.me.prev;
19087 return;
19088 }
19089 void parser___parser_prod___AIfExpr___visit_all(val_t p0, val_t p1){
19090 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19091 val_t REGB0;
19092 val_t REGB1;
19093 val_t tmp;
19094 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19095 fra.me.file = LOCATE_parser___parser_prod;
19096 fra.me.line = 3557;
19097 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___visit_all;
19098 fra.me.has_broke = 0;
19099 fra.me.REG_size = 4;
19100 fra.me.REG[0] = NIT_NULL;
19101 fra.me.REG[1] = NIT_NULL;
19102 fra.me.REG[2] = NIT_NULL;
19103 fra.me.REG[3] = NIT_NULL;
19104 fra.me.REG[0] = p0;
19105 fra.me.REG[1] = p1;
19106 /* ./parser//parser_prod.nit:3557 */
19107 fra.me.REG[2] = fra.me.REG[0];
19108 /* ./parser//parser_prod.nit:3559 */
19109 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[2])!=NIT_NULL);
19110 if (UNTAG_Bool(REGB0)) {
19111 } else {
19112 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3559);
19113 }
19114 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[2]);
19115 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19116 /* ./parser//parser_prod.nit:3560 */
19117 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
19118 if (UNTAG_Bool(REGB0)) {
19119 } else {
19120 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3560);
19121 }
19122 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[2]);
19123 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19124 /* ./parser//parser_prod.nit:3561 */
19125 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[2]);
19126 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19127 if (UNTAG_Bool(REGB0)) {
19128 } else {
19129 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19130 if (UNTAG_Bool(REGB1)) {
19131 REGB1 = TAG_Bool(false);
19132 REGB0 = REGB1;
19133 } else {
19134 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19135 REGB0 = REGB1;
19136 }
19137 }
19138 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19139 if (UNTAG_Bool(REGB0)) {
19140 /* ./parser//parser_prod.nit:3562 */
19141 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[2]);
19142 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*/;
19143 if (UNTAG_Bool(REGB0)) {
19144 } else {
19145 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3562);
19146 }
19147 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19148 }
19149 /* ./parser//parser_prod.nit:3564 */
19150 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[2]);
19151 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19152 if (UNTAG_Bool(REGB0)) {
19153 } else {
19154 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19155 if (UNTAG_Bool(REGB1)) {
19156 REGB1 = TAG_Bool(false);
19157 REGB0 = REGB1;
19158 } else {
19159 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19160 REGB0 = REGB1;
19161 }
19162 }
19163 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19164 if (UNTAG_Bool(REGB0)) {
19165 /* ./parser//parser_prod.nit:3565 */
19166 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[2]);
19167 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19168 if (UNTAG_Bool(REGB0)) {
19169 } else {
19170 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3565);
19171 }
19172 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19173 }
19174 stack_frame_head = fra.me.prev;
19175 return;
19176 }
19177 void parser___parser_prod___AIfexprExpr___empty_init(val_t p0, int* init_table){
19178 int itpos119 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfexprExpr].i;
19179 struct {struct stack_frame_t me;} fra;
19180 val_t tmp;
19181 if (init_table[itpos119]) return;
19182 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19183 fra.me.file = LOCATE_parser___parser_prod;
19184 fra.me.line = 3570;
19185 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___empty_init;
19186 fra.me.has_broke = 0;
19187 fra.me.REG_size = 1;
19188 fra.me.REG[0] = NIT_NULL;
19189 fra.me.REG[0] = p0;
19190 stack_frame_head = fra.me.prev;
19191 init_table[itpos119] = 1;
19192 return;
19193 }
19194 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){
19195 int itpos120 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfexprExpr].i;
19196 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
19197 val_t REGB0;
19198 val_t tmp;
19199 if (init_table[itpos120]) return;
19200 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19201 fra.me.file = LOCATE_parser___parser_prod;
19202 fra.me.line = 3572;
19203 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___init_aifexprexpr;
19204 fra.me.has_broke = 0;
19205 fra.me.REG_size = 8;
19206 fra.me.REG[0] = NIT_NULL;
19207 fra.me.REG[1] = NIT_NULL;
19208 fra.me.REG[2] = NIT_NULL;
19209 fra.me.REG[3] = NIT_NULL;
19210 fra.me.REG[4] = NIT_NULL;
19211 fra.me.REG[5] = NIT_NULL;
19212 fra.me.REG[6] = NIT_NULL;
19213 fra.me.REG[7] = NIT_NULL;
19214 fra.me.REG[0] = p0;
19215 fra.me.REG[1] = p1;
19216 fra.me.REG[2] = p2;
19217 fra.me.REG[3] = p3;
19218 fra.me.REG[4] = p4;
19219 fra.me.REG[5] = p5;
19220 fra.me.REG[6] = p6;
19221 /* ./parser//parser_prod.nit:3572 */
19222 fra.me.REG[7] = fra.me.REG[0];
19223 /* ./parser//parser_prod.nit:3581 */
19224 CALL_parser___parser_prod___AIfexprExpr___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
19225 /* ./parser//parser_prod.nit:3582 */
19226 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
19227 if (UNTAG_Bool(REGB0)) {
19228 } else {
19229 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3582);
19230 }
19231 ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[7]) = fra.me.REG[1];
19232 /* ./parser//parser_prod.nit:3583 */
19233 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19234 if (UNTAG_Bool(REGB0)) {
19235 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3583);
19236 }
19237 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
19238 /* ./parser//parser_prod.nit:3584 */
19239 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
19240 if (UNTAG_Bool(REGB0)) {
19241 } else {
19242 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3584);
19243 }
19244 ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[7]) = fra.me.REG[2];
19245 /* ./parser//parser_prod.nit:3585 */
19246 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19247 if (UNTAG_Bool(REGB0)) {
19248 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3585);
19249 }
19250 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
19251 /* ./parser//parser_prod.nit:3586 */
19252 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
19253 if (UNTAG_Bool(REGB0)) {
19254 } else {
19255 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3586);
19256 }
19257 ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[7]) = fra.me.REG[3];
19258 /* ./parser//parser_prod.nit:3587 */
19259 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19260 if (UNTAG_Bool(REGB0)) {
19261 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3587);
19262 }
19263 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
19264 /* ./parser//parser_prod.nit:3588 */
19265 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
19266 if (UNTAG_Bool(REGB0)) {
19267 } else {
19268 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3588);
19269 }
19270 ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[7]) = fra.me.REG[4];
19271 /* ./parser//parser_prod.nit:3589 */
19272 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
19273 if (UNTAG_Bool(REGB0)) {
19274 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3589);
19275 }
19276 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
19277 /* ./parser//parser_prod.nit:3590 */
19278 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
19279 if (UNTAG_Bool(REGB0)) {
19280 } else {
19281 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3590);
19282 }
19283 ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[7]) = fra.me.REG[5];
19284 /* ./parser//parser_prod.nit:3591 */
19285 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
19286 if (UNTAG_Bool(REGB0)) {
19287 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3591);
19288 }
19289 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
19290 /* ./parser//parser_prod.nit:3592 */
19291 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
19292 if (UNTAG_Bool(REGB0)) {
19293 } else {
19294 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3592);
19295 }
19296 ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[7]) = fra.me.REG[6];
19297 /* ./parser//parser_prod.nit:3593 */
19298 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
19299 if (UNTAG_Bool(REGB0)) {
19300 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3593);
19301 }
19302 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
19303 stack_frame_head = fra.me.prev;
19304 init_table[itpos120] = 1;
19305 return;
19306 }
19307 void parser___parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_t p2){
19308 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19309 val_t REGB0;
19310 val_t REGB1;
19311 val_t tmp;
19312 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19313 fra.me.file = LOCATE_parser___parser_prod;
19314 fra.me.line = 3596;
19315 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___replace_child;
19316 fra.me.has_broke = 0;
19317 fra.me.REG_size = 4;
19318 fra.me.REG[0] = NIT_NULL;
19319 fra.me.REG[1] = NIT_NULL;
19320 fra.me.REG[2] = NIT_NULL;
19321 fra.me.REG[3] = NIT_NULL;
19322 fra.me.REG[0] = p0;
19323 fra.me.REG[1] = p1;
19324 fra.me.REG[2] = p2;
19325 /* ./parser//parser_prod.nit:3598 */
19326 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
19327 if (UNTAG_Bool(REGB0)) {
19328 } else {
19329 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3598);
19330 }
19331 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]);
19332 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19333 if (UNTAG_Bool(REGB0)) {
19334 } else {
19335 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19336 REGB0 = REGB1;
19337 }
19338 if (UNTAG_Bool(REGB0)) {
19339 /* ./parser//parser_prod.nit:3599 */
19340 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19341 if (UNTAG_Bool(REGB0)) {
19342 } else {
19343 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19344 if (UNTAG_Bool(REGB1)) {
19345 REGB1 = TAG_Bool(false);
19346 REGB0 = REGB1;
19347 } else {
19348 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19349 REGB0 = REGB1;
19350 }
19351 }
19352 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19353 if (UNTAG_Bool(REGB0)) {
19354 /* ./parser//parser_prod.nit:3600 */
19355 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19356 if (UNTAG_Bool(REGB0)) {
19357 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3600);
19358 }
19359 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19360 /* ./parser//parser_prod.nit:3601 */
19361 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*/;
19362 if (UNTAG_Bool(REGB0)) {
19363 } else {
19364 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3601);
19365 }
19366 /* ./parser//parser_prod.nit:3602 */
19367 ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[2];
19368 } else {
19369 /* ./parser//parser_prod.nit:3604 */
19370 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3604);
19371 }
19372 /* ./parser//parser_prod.nit:3606 */
19373 goto label1;
19374 }
19375 /* ./parser//parser_prod.nit:3608 */
19376 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
19377 if (UNTAG_Bool(REGB0)) {
19378 } else {
19379 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3608);
19380 }
19381 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]);
19382 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19383 if (UNTAG_Bool(REGB0)) {
19384 } else {
19385 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19386 REGB0 = REGB1;
19387 }
19388 if (UNTAG_Bool(REGB0)) {
19389 /* ./parser//parser_prod.nit:3609 */
19390 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19391 if (UNTAG_Bool(REGB0)) {
19392 } else {
19393 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19394 if (UNTAG_Bool(REGB1)) {
19395 REGB1 = TAG_Bool(false);
19396 REGB0 = REGB1;
19397 } else {
19398 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19399 REGB0 = REGB1;
19400 }
19401 }
19402 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19403 if (UNTAG_Bool(REGB0)) {
19404 /* ./parser//parser_prod.nit:3610 */
19405 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19406 if (UNTAG_Bool(REGB0)) {
19407 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3610);
19408 }
19409 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19410 /* ./parser//parser_prod.nit:3611 */
19411 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19412 if (UNTAG_Bool(REGB0)) {
19413 } else {
19414 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3611);
19415 }
19416 /* ./parser//parser_prod.nit:3612 */
19417 ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
19418 } else {
19419 /* ./parser//parser_prod.nit:3614 */
19420 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3614);
19421 }
19422 /* ./parser//parser_prod.nit:3616 */
19423 goto label1;
19424 }
19425 /* ./parser//parser_prod.nit:3618 */
19426 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0])!=NIT_NULL);
19427 if (UNTAG_Bool(REGB0)) {
19428 } else {
19429 nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser___parser_prod, 3618);
19430 }
19431 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]);
19432 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19433 if (UNTAG_Bool(REGB0)) {
19434 } else {
19435 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19436 REGB0 = REGB1;
19437 }
19438 if (UNTAG_Bool(REGB0)) {
19439 /* ./parser//parser_prod.nit:3619 */
19440 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19441 if (UNTAG_Bool(REGB0)) {
19442 } else {
19443 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19444 if (UNTAG_Bool(REGB1)) {
19445 REGB1 = TAG_Bool(false);
19446 REGB0 = REGB1;
19447 } else {
19448 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19449 REGB0 = REGB1;
19450 }
19451 }
19452 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19453 if (UNTAG_Bool(REGB0)) {
19454 /* ./parser//parser_prod.nit:3620 */
19455 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19456 if (UNTAG_Bool(REGB0)) {
19457 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3620);
19458 }
19459 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19460 /* ./parser//parser_prod.nit:3621 */
19461 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*/;
19462 if (UNTAG_Bool(REGB0)) {
19463 } else {
19464 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3621);
19465 }
19466 /* ./parser//parser_prod.nit:3622 */
19467 ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]) = fra.me.REG[2];
19468 } else {
19469 /* ./parser//parser_prod.nit:3624 */
19470 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3624);
19471 }
19472 /* ./parser//parser_prod.nit:3626 */
19473 goto label1;
19474 }
19475 /* ./parser//parser_prod.nit:3628 */
19476 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0])!=NIT_NULL);
19477 if (UNTAG_Bool(REGB0)) {
19478 } else {
19479 nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser___parser_prod, 3628);
19480 }
19481 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]);
19482 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19483 if (UNTAG_Bool(REGB0)) {
19484 } else {
19485 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19486 REGB0 = REGB1;
19487 }
19488 if (UNTAG_Bool(REGB0)) {
19489 /* ./parser//parser_prod.nit:3629 */
19490 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19491 if (UNTAG_Bool(REGB0)) {
19492 } else {
19493 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19494 if (UNTAG_Bool(REGB1)) {
19495 REGB1 = TAG_Bool(false);
19496 REGB0 = REGB1;
19497 } else {
19498 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19499 REGB0 = REGB1;
19500 }
19501 }
19502 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19503 if (UNTAG_Bool(REGB0)) {
19504 /* ./parser//parser_prod.nit:3630 */
19505 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19506 if (UNTAG_Bool(REGB0)) {
19507 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3630);
19508 }
19509 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19510 /* ./parser//parser_prod.nit:3631 */
19511 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19512 if (UNTAG_Bool(REGB0)) {
19513 } else {
19514 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3631);
19515 }
19516 /* ./parser//parser_prod.nit:3632 */
19517 ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]) = fra.me.REG[2];
19518 } else {
19519 /* ./parser//parser_prod.nit:3634 */
19520 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3634);
19521 }
19522 /* ./parser//parser_prod.nit:3636 */
19523 goto label1;
19524 }
19525 /* ./parser//parser_prod.nit:3638 */
19526 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0])!=NIT_NULL);
19527 if (UNTAG_Bool(REGB0)) {
19528 } else {
19529 nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser___parser_prod, 3638);
19530 }
19531 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]);
19532 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19533 if (UNTAG_Bool(REGB0)) {
19534 } else {
19535 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19536 REGB0 = REGB1;
19537 }
19538 if (UNTAG_Bool(REGB0)) {
19539 /* ./parser//parser_prod.nit:3639 */
19540 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19541 if (UNTAG_Bool(REGB0)) {
19542 } else {
19543 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19544 if (UNTAG_Bool(REGB1)) {
19545 REGB1 = TAG_Bool(false);
19546 REGB0 = REGB1;
19547 } else {
19548 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19549 REGB0 = REGB1;
19550 }
19551 }
19552 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19553 if (UNTAG_Bool(REGB0)) {
19554 /* ./parser//parser_prod.nit:3640 */
19555 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19556 if (UNTAG_Bool(REGB0)) {
19557 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3640);
19558 }
19559 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19560 /* ./parser//parser_prod.nit:3641 */
19561 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*/;
19562 if (UNTAG_Bool(REGB0)) {
19563 } else {
19564 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3641);
19565 }
19566 /* ./parser//parser_prod.nit:3642 */
19567 ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]) = fra.me.REG[2];
19568 } else {
19569 /* ./parser//parser_prod.nit:3644 */
19570 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3644);
19571 }
19572 /* ./parser//parser_prod.nit:3646 */
19573 goto label1;
19574 }
19575 /* ./parser//parser_prod.nit:3648 */
19576 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0])!=NIT_NULL);
19577 if (UNTAG_Bool(REGB0)) {
19578 } else {
19579 nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser___parser_prod, 3648);
19580 }
19581 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]);
19582 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19583 if (UNTAG_Bool(REGB0)) {
19584 } else {
19585 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19586 REGB0 = REGB1;
19587 }
19588 if (UNTAG_Bool(REGB0)) {
19589 /* ./parser//parser_prod.nit:3649 */
19590 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19591 if (UNTAG_Bool(REGB0)) {
19592 } else {
19593 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19594 if (UNTAG_Bool(REGB1)) {
19595 REGB1 = TAG_Bool(false);
19596 REGB0 = REGB1;
19597 } else {
19598 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19599 REGB0 = REGB1;
19600 }
19601 }
19602 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19603 if (UNTAG_Bool(REGB0)) {
19604 /* ./parser//parser_prod.nit:3650 */
19605 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19606 if (UNTAG_Bool(REGB0)) {
19607 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3650);
19608 }
19609 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19610 /* ./parser//parser_prod.nit:3651 */
19611 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19612 if (UNTAG_Bool(REGB0)) {
19613 } else {
19614 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3651);
19615 }
19616 /* ./parser//parser_prod.nit:3652 */
19617 ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
19618 } else {
19619 /* ./parser//parser_prod.nit:3654 */
19620 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3654);
19621 }
19622 /* ./parser//parser_prod.nit:3656 */
19623 goto label1;
19624 }
19625 label1: while(0);
19626 stack_frame_head = fra.me.prev;
19627 return;
19628 }
19629 void parser___parser_prod___AIfexprExpr___visit_all(val_t p0, val_t p1){
19630 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
19631 val_t REGB0;
19632 val_t tmp;
19633 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19634 fra.me.file = LOCATE_parser___parser_prod;
19635 fra.me.line = 3660;
19636 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___visit_all;
19637 fra.me.has_broke = 0;
19638 fra.me.REG_size = 3;
19639 fra.me.REG[0] = NIT_NULL;
19640 fra.me.REG[1] = NIT_NULL;
19641 fra.me.REG[2] = NIT_NULL;
19642 fra.me.REG[0] = p0;
19643 fra.me.REG[1] = p1;
19644 /* ./parser//parser_prod.nit:3662 */
19645 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
19646 if (UNTAG_Bool(REGB0)) {
19647 } else {
19648 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3662);
19649 }
19650 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]);
19651 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19652 /* ./parser//parser_prod.nit:3663 */
19653 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
19654 if (UNTAG_Bool(REGB0)) {
19655 } else {
19656 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3663);
19657 }
19658 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]);
19659 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19660 /* ./parser//parser_prod.nit:3664 */
19661 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0])!=NIT_NULL);
19662 if (UNTAG_Bool(REGB0)) {
19663 } else {
19664 nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser___parser_prod, 3664);
19665 }
19666 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]);
19667 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19668 /* ./parser//parser_prod.nit:3665 */
19669 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0])!=NIT_NULL);
19670 if (UNTAG_Bool(REGB0)) {
19671 } else {
19672 nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser___parser_prod, 3665);
19673 }
19674 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]);
19675 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19676 /* ./parser//parser_prod.nit:3666 */
19677 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0])!=NIT_NULL);
19678 if (UNTAG_Bool(REGB0)) {
19679 } else {
19680 nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser___parser_prod, 3666);
19681 }
19682 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]);
19683 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19684 /* ./parser//parser_prod.nit:3667 */
19685 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0])!=NIT_NULL);
19686 if (UNTAG_Bool(REGB0)) {
19687 } else {
19688 nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser___parser_prod, 3667);
19689 }
19690 fra.me.REG[0] = ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]);
19691 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
19692 stack_frame_head = fra.me.prev;
19693 return;
19694 }
19695 void parser___parser_prod___AWhileExpr___empty_init(val_t p0, int* init_table){
19696 int itpos121 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWhileExpr].i;
19697 struct {struct stack_frame_t me;} fra;
19698 val_t tmp;
19699 if (init_table[itpos121]) return;
19700 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19701 fra.me.file = LOCATE_parser___parser_prod;
19702 fra.me.line = 3671;
19703 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___empty_init;
19704 fra.me.has_broke = 0;
19705 fra.me.REG_size = 1;
19706 fra.me.REG[0] = NIT_NULL;
19707 fra.me.REG[0] = p0;
19708 stack_frame_head = fra.me.prev;
19709 init_table[itpos121] = 1;
19710 return;
19711 }
19712 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){
19713 int itpos122 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWhileExpr].i;
19714 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
19715 val_t REGB0;
19716 val_t REGB1;
19717 val_t tmp;
19718 if (init_table[itpos122]) return;
19719 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19720 fra.me.file = LOCATE_parser___parser_prod;
19721 fra.me.line = 3673;
19722 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___init_awhileexpr;
19723 fra.me.has_broke = 0;
19724 fra.me.REG_size = 7;
19725 fra.me.REG[0] = NIT_NULL;
19726 fra.me.REG[1] = NIT_NULL;
19727 fra.me.REG[2] = NIT_NULL;
19728 fra.me.REG[3] = NIT_NULL;
19729 fra.me.REG[4] = NIT_NULL;
19730 fra.me.REG[5] = NIT_NULL;
19731 fra.me.REG[6] = NIT_NULL;
19732 fra.me.REG[0] = p0;
19733 fra.me.REG[1] = p1;
19734 fra.me.REG[2] = p2;
19735 fra.me.REG[3] = p3;
19736 fra.me.REG[4] = p4;
19737 fra.me.REG[5] = p5;
19738 /* ./parser//parser_prod.nit:3673 */
19739 fra.me.REG[6] = fra.me.REG[0];
19740 /* ./parser//parser_prod.nit:3681 */
19741 CALL_parser___parser_prod___AWhileExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
19742 /* ./parser//parser_prod.nit:3682 */
19743 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
19744 if (UNTAG_Bool(REGB0)) {
19745 } else {
19746 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3682);
19747 }
19748 ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[6]) = fra.me.REG[1];
19749 /* ./parser//parser_prod.nit:3683 */
19750 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19751 if (UNTAG_Bool(REGB0)) {
19752 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3683);
19753 }
19754 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
19755 /* ./parser//parser_prod.nit:3684 */
19756 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
19757 if (UNTAG_Bool(REGB0)) {
19758 } else {
19759 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3684);
19760 }
19761 ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[6]) = fra.me.REG[2];
19762 /* ./parser//parser_prod.nit:3685 */
19763 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19764 if (UNTAG_Bool(REGB0)) {
19765 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3685);
19766 }
19767 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
19768 /* ./parser//parser_prod.nit:3686 */
19769 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
19770 if (UNTAG_Bool(REGB0)) {
19771 } else {
19772 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3686);
19773 }
19774 ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[6]) = fra.me.REG[3];
19775 /* ./parser//parser_prod.nit:3687 */
19776 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19777 if (UNTAG_Bool(REGB0)) {
19778 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3687);
19779 }
19780 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
19781 /* ./parser//parser_prod.nit:3688 */
19782 ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[6]) = fra.me.REG[4];
19783 /* ./parser//parser_prod.nit:3689 */
19784 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
19785 if (UNTAG_Bool(REGB0)) {
19786 } else {
19787 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
19788 if (UNTAG_Bool(REGB1)) {
19789 REGB1 = TAG_Bool(false);
19790 REGB0 = REGB1;
19791 } else {
19792 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
19793 REGB0 = REGB1;
19794 }
19795 }
19796 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19797 if (UNTAG_Bool(REGB0)) {
19798 /* ./parser//parser_prod.nit:3690 */
19799 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
19800 if (UNTAG_Bool(REGB0)) {
19801 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3690);
19802 }
19803 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
19804 }
19805 /* ./parser//parser_prod.nit:3692 */
19806 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[6]) = fra.me.REG[5];
19807 /* ./parser//parser_prod.nit:3693 */
19808 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
19809 if (UNTAG_Bool(REGB0)) {
19810 } else {
19811 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
19812 if (UNTAG_Bool(REGB1)) {
19813 REGB1 = TAG_Bool(false);
19814 REGB0 = REGB1;
19815 } else {
19816 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
19817 REGB0 = REGB1;
19818 }
19819 }
19820 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19821 if (UNTAG_Bool(REGB0)) {
19822 /* ./parser//parser_prod.nit:3694 */
19823 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
19824 if (UNTAG_Bool(REGB0)) {
19825 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3694);
19826 }
19827 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
19828 }
19829 stack_frame_head = fra.me.prev;
19830 init_table[itpos122] = 1;
19831 return;
19832 }
19833 void parser___parser_prod___AWhileExpr___replace_child(val_t p0, val_t p1, val_t p2){
19834 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19835 val_t REGB0;
19836 val_t REGB1;
19837 val_t tmp;
19838 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19839 fra.me.file = LOCATE_parser___parser_prod;
19840 fra.me.line = 3698;
19841 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___replace_child;
19842 fra.me.has_broke = 0;
19843 fra.me.REG_size = 4;
19844 fra.me.REG[0] = NIT_NULL;
19845 fra.me.REG[1] = NIT_NULL;
19846 fra.me.REG[2] = NIT_NULL;
19847 fra.me.REG[3] = NIT_NULL;
19848 fra.me.REG[0] = p0;
19849 fra.me.REG[1] = p1;
19850 fra.me.REG[2] = p2;
19851 /* ./parser//parser_prod.nit:3700 */
19852 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0])!=NIT_NULL);
19853 if (UNTAG_Bool(REGB0)) {
19854 } else {
19855 nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser___parser_prod, 3700);
19856 }
19857 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]);
19858 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19859 if (UNTAG_Bool(REGB0)) {
19860 } else {
19861 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19862 REGB0 = REGB1;
19863 }
19864 if (UNTAG_Bool(REGB0)) {
19865 /* ./parser//parser_prod.nit:3701 */
19866 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19867 if (UNTAG_Bool(REGB0)) {
19868 } else {
19869 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19870 if (UNTAG_Bool(REGB1)) {
19871 REGB1 = TAG_Bool(false);
19872 REGB0 = REGB1;
19873 } else {
19874 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19875 REGB0 = REGB1;
19876 }
19877 }
19878 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19879 if (UNTAG_Bool(REGB0)) {
19880 /* ./parser//parser_prod.nit:3702 */
19881 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19882 if (UNTAG_Bool(REGB0)) {
19883 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3702);
19884 }
19885 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19886 /* ./parser//parser_prod.nit:3703 */
19887 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*/;
19888 if (UNTAG_Bool(REGB0)) {
19889 } else {
19890 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3703);
19891 }
19892 /* ./parser//parser_prod.nit:3704 */
19893 ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]) = fra.me.REG[2];
19894 } else {
19895 /* ./parser//parser_prod.nit:3706 */
19896 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3706);
19897 }
19898 /* ./parser//parser_prod.nit:3708 */
19899 goto label1;
19900 }
19901 /* ./parser//parser_prod.nit:3710 */
19902 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
19903 if (UNTAG_Bool(REGB0)) {
19904 } else {
19905 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3710);
19906 }
19907 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]);
19908 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19909 if (UNTAG_Bool(REGB0)) {
19910 } else {
19911 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19912 REGB0 = REGB1;
19913 }
19914 if (UNTAG_Bool(REGB0)) {
19915 /* ./parser//parser_prod.nit:3711 */
19916 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19917 if (UNTAG_Bool(REGB0)) {
19918 } else {
19919 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19920 if (UNTAG_Bool(REGB1)) {
19921 REGB1 = TAG_Bool(false);
19922 REGB0 = REGB1;
19923 } else {
19924 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19925 REGB0 = REGB1;
19926 }
19927 }
19928 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19929 if (UNTAG_Bool(REGB0)) {
19930 /* ./parser//parser_prod.nit:3712 */
19931 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19932 if (UNTAG_Bool(REGB0)) {
19933 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3712);
19934 }
19935 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19936 /* ./parser//parser_prod.nit:3713 */
19937 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19938 if (UNTAG_Bool(REGB0)) {
19939 } else {
19940 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3713);
19941 }
19942 /* ./parser//parser_prod.nit:3714 */
19943 ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
19944 } else {
19945 /* ./parser//parser_prod.nit:3716 */
19946 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3716);
19947 }
19948 /* ./parser//parser_prod.nit:3718 */
19949 goto label1;
19950 }
19951 /* ./parser//parser_prod.nit:3720 */
19952 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
19953 if (UNTAG_Bool(REGB0)) {
19954 } else {
19955 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3720);
19956 }
19957 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]);
19958 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19959 if (UNTAG_Bool(REGB0)) {
19960 } else {
19961 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19962 REGB0 = REGB1;
19963 }
19964 if (UNTAG_Bool(REGB0)) {
19965 /* ./parser//parser_prod.nit:3721 */
19966 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19967 if (UNTAG_Bool(REGB0)) {
19968 } else {
19969 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19970 if (UNTAG_Bool(REGB1)) {
19971 REGB1 = TAG_Bool(false);
19972 REGB0 = REGB1;
19973 } else {
19974 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19975 REGB0 = REGB1;
19976 }
19977 }
19978 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19979 if (UNTAG_Bool(REGB0)) {
19980 /* ./parser//parser_prod.nit:3722 */
19981 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19982 if (UNTAG_Bool(REGB0)) {
19983 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3722);
19984 }
19985 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19986 /* ./parser//parser_prod.nit:3723 */
19987 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*/;
19988 if (UNTAG_Bool(REGB0)) {
19989 } else {
19990 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3723);
19991 }
19992 /* ./parser//parser_prod.nit:3724 */
19993 ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
19994 } else {
19995 /* ./parser//parser_prod.nit:3726 */
19996 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3726);
19997 }
19998 /* ./parser//parser_prod.nit:3728 */
19999 goto label1;
20000 }
20001 /* ./parser//parser_prod.nit:3730 */
20002 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]);
20003 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20004 if (UNTAG_Bool(REGB0)) {
20005 } else {
20006 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20007 if (UNTAG_Bool(REGB1)) {
20008 REGB1 = TAG_Bool(false);
20009 REGB0 = REGB1;
20010 } else {
20011 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20012 REGB0 = REGB1;
20013 }
20014 }
20015 if (UNTAG_Bool(REGB0)) {
20016 /* ./parser//parser_prod.nit:3731 */
20017 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20018 if (UNTAG_Bool(REGB0)) {
20019 } else {
20020 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20021 if (UNTAG_Bool(REGB1)) {
20022 REGB1 = TAG_Bool(false);
20023 REGB0 = REGB1;
20024 } else {
20025 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20026 REGB0 = REGB1;
20027 }
20028 }
20029 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20030 if (UNTAG_Bool(REGB0)) {
20031 /* ./parser//parser_prod.nit:3732 */
20032 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20033 if (UNTAG_Bool(REGB0)) {
20034 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3732);
20035 }
20036 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20037 /* ./parser//parser_prod.nit:3733 */
20038 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20039 if (UNTAG_Bool(REGB0)) {
20040 } else {
20041 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3733);
20042 }
20043 /* ./parser//parser_prod.nit:3734 */
20044 ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
20045 } else {
20046 /* ./parser//parser_prod.nit:3736 */
20047 ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = NIT_NULL;
20048 }
20049 /* ./parser//parser_prod.nit:3738 */
20050 goto label1;
20051 }
20052 /* ./parser//parser_prod.nit:3740 */
20053 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
20054 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20055 if (UNTAG_Bool(REGB0)) {
20056 } else {
20057 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20058 if (UNTAG_Bool(REGB1)) {
20059 REGB1 = TAG_Bool(false);
20060 REGB0 = REGB1;
20061 } else {
20062 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20063 REGB0 = REGB1;
20064 }
20065 }
20066 if (UNTAG_Bool(REGB0)) {
20067 /* ./parser//parser_prod.nit:3741 */
20068 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20069 if (UNTAG_Bool(REGB0)) {
20070 } else {
20071 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20072 if (UNTAG_Bool(REGB1)) {
20073 REGB1 = TAG_Bool(false);
20074 REGB0 = REGB1;
20075 } else {
20076 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20077 REGB0 = REGB1;
20078 }
20079 }
20080 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20081 if (UNTAG_Bool(REGB0)) {
20082 /* ./parser//parser_prod.nit:3742 */
20083 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20084 if (UNTAG_Bool(REGB0)) {
20085 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3742);
20086 }
20087 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20088 /* ./parser//parser_prod.nit:3743 */
20089 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*/;
20090 if (UNTAG_Bool(REGB0)) {
20091 } else {
20092 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3743);
20093 }
20094 /* ./parser//parser_prod.nit:3744 */
20095 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
20096 } else {
20097 /* ./parser//parser_prod.nit:3746 */
20098 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
20099 }
20100 /* ./parser//parser_prod.nit:3748 */
20101 goto label1;
20102 }
20103 label1: while(0);
20104 stack_frame_head = fra.me.prev;
20105 return;
20106 }
20107 void parser___parser_prod___AWhileExpr___visit_all(val_t p0, val_t p1){
20108 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20109 val_t REGB0;
20110 val_t REGB1;
20111 val_t tmp;
20112 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20113 fra.me.file = LOCATE_parser___parser_prod;
20114 fra.me.line = 3752;
20115 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___visit_all;
20116 fra.me.has_broke = 0;
20117 fra.me.REG_size = 4;
20118 fra.me.REG[0] = NIT_NULL;
20119 fra.me.REG[1] = NIT_NULL;
20120 fra.me.REG[2] = NIT_NULL;
20121 fra.me.REG[3] = NIT_NULL;
20122 fra.me.REG[0] = p0;
20123 fra.me.REG[1] = p1;
20124 /* ./parser//parser_prod.nit:3752 */
20125 fra.me.REG[2] = fra.me.REG[0];
20126 /* ./parser//parser_prod.nit:3754 */
20127 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[2])!=NIT_NULL);
20128 if (UNTAG_Bool(REGB0)) {
20129 } else {
20130 nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser___parser_prod, 3754);
20131 }
20132 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[2]);
20133 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20134 /* ./parser//parser_prod.nit:3755 */
20135 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
20136 if (UNTAG_Bool(REGB0)) {
20137 } else {
20138 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3755);
20139 }
20140 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[2]);
20141 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20142 /* ./parser//parser_prod.nit:3756 */
20143 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
20144 if (UNTAG_Bool(REGB0)) {
20145 } else {
20146 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3756);
20147 }
20148 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[2]);
20149 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20150 /* ./parser//parser_prod.nit:3757 */
20151 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[2]);
20152 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20153 if (UNTAG_Bool(REGB0)) {
20154 } else {
20155 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20156 if (UNTAG_Bool(REGB1)) {
20157 REGB1 = TAG_Bool(false);
20158 REGB0 = REGB1;
20159 } else {
20160 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20161 REGB0 = REGB1;
20162 }
20163 }
20164 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20165 if (UNTAG_Bool(REGB0)) {
20166 /* ./parser//parser_prod.nit:3758 */
20167 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[2]);
20168 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*/;
20169 if (UNTAG_Bool(REGB0)) {
20170 } else {
20171 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3758);
20172 }
20173 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20174 }
20175 /* ./parser//parser_prod.nit:3760 */
20176 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
20177 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20178 if (UNTAG_Bool(REGB0)) {
20179 } else {
20180 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20181 if (UNTAG_Bool(REGB1)) {
20182 REGB1 = TAG_Bool(false);
20183 REGB0 = REGB1;
20184 } else {
20185 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20186 REGB0 = REGB1;
20187 }
20188 }
20189 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20190 if (UNTAG_Bool(REGB0)) {
20191 /* ./parser//parser_prod.nit:3761 */
20192 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
20193 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*/;
20194 if (UNTAG_Bool(REGB0)) {
20195 } else {
20196 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3761);
20197 }
20198 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20199 }
20200 stack_frame_head = fra.me.prev;
20201 return;
20202 }
20203 void parser___parser_prod___ALoopExpr___empty_init(val_t p0, int* init_table){
20204 int itpos123 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALoopExpr].i;
20205 struct {struct stack_frame_t me;} fra;
20206 val_t tmp;
20207 if (init_table[itpos123]) return;
20208 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20209 fra.me.file = LOCATE_parser___parser_prod;
20210 fra.me.line = 3766;
20211 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___empty_init;
20212 fra.me.has_broke = 0;
20213 fra.me.REG_size = 1;
20214 fra.me.REG[0] = NIT_NULL;
20215 fra.me.REG[0] = p0;
20216 stack_frame_head = fra.me.prev;
20217 init_table[itpos123] = 1;
20218 return;
20219 }
20220 void parser___parser_prod___ALoopExpr___init_aloopexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
20221 int itpos124 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALoopExpr].i;
20222 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
20223 val_t REGB0;
20224 val_t REGB1;
20225 val_t tmp;
20226 if (init_table[itpos124]) return;
20227 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20228 fra.me.file = LOCATE_parser___parser_prod;
20229 fra.me.line = 3768;
20230 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___init_aloopexpr;
20231 fra.me.has_broke = 0;
20232 fra.me.REG_size = 5;
20233 fra.me.REG[0] = NIT_NULL;
20234 fra.me.REG[1] = NIT_NULL;
20235 fra.me.REG[2] = NIT_NULL;
20236 fra.me.REG[3] = NIT_NULL;
20237 fra.me.REG[4] = NIT_NULL;
20238 fra.me.REG[0] = p0;
20239 fra.me.REG[1] = p1;
20240 fra.me.REG[2] = p2;
20241 fra.me.REG[3] = p3;
20242 /* ./parser//parser_prod.nit:3768 */
20243 fra.me.REG[4] = fra.me.REG[0];
20244 /* ./parser//parser_prod.nit:3774 */
20245 CALL_parser___parser_prod___ALoopExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
20246 /* ./parser//parser_prod.nit:3775 */
20247 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
20248 if (UNTAG_Bool(REGB0)) {
20249 } else {
20250 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3775);
20251 }
20252 ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[4]) = fra.me.REG[1];
20253 /* ./parser//parser_prod.nit:3776 */
20254 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20255 if (UNTAG_Bool(REGB0)) {
20256 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3776);
20257 }
20258 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
20259 /* ./parser//parser_prod.nit:3777 */
20260 ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[4]) = fra.me.REG[2];
20261 /* ./parser//parser_prod.nit:3778 */
20262 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20263 if (UNTAG_Bool(REGB0)) {
20264 } else {
20265 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20266 if (UNTAG_Bool(REGB1)) {
20267 REGB1 = TAG_Bool(false);
20268 REGB0 = REGB1;
20269 } else {
20270 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20271 REGB0 = REGB1;
20272 }
20273 }
20274 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20275 if (UNTAG_Bool(REGB0)) {
20276 /* ./parser//parser_prod.nit:3779 */
20277 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20278 if (UNTAG_Bool(REGB0)) {
20279 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3779);
20280 }
20281 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
20282 }
20283 /* ./parser//parser_prod.nit:3781 */
20284 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[3];
20285 /* ./parser//parser_prod.nit:3782 */
20286 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20287 if (UNTAG_Bool(REGB0)) {
20288 } else {
20289 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20290 if (UNTAG_Bool(REGB1)) {
20291 REGB1 = TAG_Bool(false);
20292 REGB0 = REGB1;
20293 } else {
20294 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20295 REGB0 = REGB1;
20296 }
20297 }
20298 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20299 if (UNTAG_Bool(REGB0)) {
20300 /* ./parser//parser_prod.nit:3783 */
20301 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20302 if (UNTAG_Bool(REGB0)) {
20303 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3783);
20304 }
20305 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
20306 }
20307 stack_frame_head = fra.me.prev;
20308 init_table[itpos124] = 1;
20309 return;
20310 }
20311 void parser___parser_prod___ALoopExpr___replace_child(val_t p0, val_t p1, val_t p2){
20312 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20313 val_t REGB0;
20314 val_t REGB1;
20315 val_t tmp;
20316 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20317 fra.me.file = LOCATE_parser___parser_prod;
20318 fra.me.line = 3787;
20319 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___replace_child;
20320 fra.me.has_broke = 0;
20321 fra.me.REG_size = 4;
20322 fra.me.REG[0] = NIT_NULL;
20323 fra.me.REG[1] = NIT_NULL;
20324 fra.me.REG[2] = NIT_NULL;
20325 fra.me.REG[3] = NIT_NULL;
20326 fra.me.REG[0] = p0;
20327 fra.me.REG[1] = p1;
20328 fra.me.REG[2] = p2;
20329 /* ./parser//parser_prod.nit:3789 */
20330 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0])!=NIT_NULL);
20331 if (UNTAG_Bool(REGB0)) {
20332 } else {
20333 nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser___parser_prod, 3789);
20334 }
20335 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]);
20336 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20337 if (UNTAG_Bool(REGB0)) {
20338 } else {
20339 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20340 REGB0 = REGB1;
20341 }
20342 if (UNTAG_Bool(REGB0)) {
20343 /* ./parser//parser_prod.nit:3790 */
20344 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20345 if (UNTAG_Bool(REGB0)) {
20346 } else {
20347 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20348 if (UNTAG_Bool(REGB1)) {
20349 REGB1 = TAG_Bool(false);
20350 REGB0 = REGB1;
20351 } else {
20352 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20353 REGB0 = REGB1;
20354 }
20355 }
20356 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20357 if (UNTAG_Bool(REGB0)) {
20358 /* ./parser//parser_prod.nit:3791 */
20359 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20360 if (UNTAG_Bool(REGB0)) {
20361 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3791);
20362 }
20363 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20364 /* ./parser//parser_prod.nit:3792 */
20365 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*/;
20366 if (UNTAG_Bool(REGB0)) {
20367 } else {
20368 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3792);
20369 }
20370 /* ./parser//parser_prod.nit:3793 */
20371 ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]) = fra.me.REG[2];
20372 } else {
20373 /* ./parser//parser_prod.nit:3795 */
20374 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3795);
20375 }
20376 /* ./parser//parser_prod.nit:3797 */
20377 goto label1;
20378 }
20379 /* ./parser//parser_prod.nit:3799 */
20380 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]);
20381 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20382 if (UNTAG_Bool(REGB0)) {
20383 } else {
20384 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20385 if (UNTAG_Bool(REGB1)) {
20386 REGB1 = TAG_Bool(false);
20387 REGB0 = REGB1;
20388 } else {
20389 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20390 REGB0 = REGB1;
20391 }
20392 }
20393 if (UNTAG_Bool(REGB0)) {
20394 /* ./parser//parser_prod.nit:3800 */
20395 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20396 if (UNTAG_Bool(REGB0)) {
20397 } else {
20398 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20399 if (UNTAG_Bool(REGB1)) {
20400 REGB1 = TAG_Bool(false);
20401 REGB0 = REGB1;
20402 } else {
20403 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20404 REGB0 = REGB1;
20405 }
20406 }
20407 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20408 if (UNTAG_Bool(REGB0)) {
20409 /* ./parser//parser_prod.nit:3801 */
20410 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20411 if (UNTAG_Bool(REGB0)) {
20412 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3801);
20413 }
20414 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20415 /* ./parser//parser_prod.nit:3802 */
20416 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20417 if (UNTAG_Bool(REGB0)) {
20418 } else {
20419 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3802);
20420 }
20421 /* ./parser//parser_prod.nit:3803 */
20422 ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
20423 } else {
20424 /* ./parser//parser_prod.nit:3805 */
20425 ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = NIT_NULL;
20426 }
20427 /* ./parser//parser_prod.nit:3807 */
20428 goto label1;
20429 }
20430 /* ./parser//parser_prod.nit:3809 */
20431 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
20432 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20433 if (UNTAG_Bool(REGB0)) {
20434 } else {
20435 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20436 if (UNTAG_Bool(REGB1)) {
20437 REGB1 = TAG_Bool(false);
20438 REGB0 = REGB1;
20439 } else {
20440 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20441 REGB0 = REGB1;
20442 }
20443 }
20444 if (UNTAG_Bool(REGB0)) {
20445 /* ./parser//parser_prod.nit:3810 */
20446 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20447 if (UNTAG_Bool(REGB0)) {
20448 } else {
20449 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20450 if (UNTAG_Bool(REGB1)) {
20451 REGB1 = TAG_Bool(false);
20452 REGB0 = REGB1;
20453 } else {
20454 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20455 REGB0 = REGB1;
20456 }
20457 }
20458 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20459 if (UNTAG_Bool(REGB0)) {
20460 /* ./parser//parser_prod.nit:3811 */
20461 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20462 if (UNTAG_Bool(REGB0)) {
20463 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3811);
20464 }
20465 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20466 /* ./parser//parser_prod.nit:3812 */
20467 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*/;
20468 if (UNTAG_Bool(REGB0)) {
20469 } else {
20470 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3812);
20471 }
20472 /* ./parser//parser_prod.nit:3813 */
20473 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
20474 } else {
20475 /* ./parser//parser_prod.nit:3815 */
20476 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
20477 }
20478 /* ./parser//parser_prod.nit:3817 */
20479 goto label1;
20480 }
20481 label1: while(0);
20482 stack_frame_head = fra.me.prev;
20483 return;
20484 }
20485 void parser___parser_prod___ALoopExpr___visit_all(val_t p0, val_t p1){
20486 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20487 val_t REGB0;
20488 val_t REGB1;
20489 val_t tmp;
20490 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20491 fra.me.file = LOCATE_parser___parser_prod;
20492 fra.me.line = 3821;
20493 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___visit_all;
20494 fra.me.has_broke = 0;
20495 fra.me.REG_size = 4;
20496 fra.me.REG[0] = NIT_NULL;
20497 fra.me.REG[1] = NIT_NULL;
20498 fra.me.REG[2] = NIT_NULL;
20499 fra.me.REG[3] = NIT_NULL;
20500 fra.me.REG[0] = p0;
20501 fra.me.REG[1] = p1;
20502 /* ./parser//parser_prod.nit:3821 */
20503 fra.me.REG[2] = fra.me.REG[0];
20504 /* ./parser//parser_prod.nit:3823 */
20505 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[2])!=NIT_NULL);
20506 if (UNTAG_Bool(REGB0)) {
20507 } else {
20508 nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser___parser_prod, 3823);
20509 }
20510 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[2]);
20511 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20512 /* ./parser//parser_prod.nit:3824 */
20513 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[2]);
20514 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20515 if (UNTAG_Bool(REGB0)) {
20516 } else {
20517 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20518 if (UNTAG_Bool(REGB1)) {
20519 REGB1 = TAG_Bool(false);
20520 REGB0 = REGB1;
20521 } else {
20522 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20523 REGB0 = REGB1;
20524 }
20525 }
20526 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20527 if (UNTAG_Bool(REGB0)) {
20528 /* ./parser//parser_prod.nit:3825 */
20529 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[2]);
20530 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*/;
20531 if (UNTAG_Bool(REGB0)) {
20532 } else {
20533 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3825);
20534 }
20535 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20536 }
20537 /* ./parser//parser_prod.nit:3827 */
20538 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
20539 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20540 if (UNTAG_Bool(REGB0)) {
20541 } else {
20542 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20543 if (UNTAG_Bool(REGB1)) {
20544 REGB1 = TAG_Bool(false);
20545 REGB0 = REGB1;
20546 } else {
20547 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20548 REGB0 = REGB1;
20549 }
20550 }
20551 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20552 if (UNTAG_Bool(REGB0)) {
20553 /* ./parser//parser_prod.nit:3828 */
20554 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
20555 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*/;
20556 if (UNTAG_Bool(REGB0)) {
20557 } else {
20558 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3828);
20559 }
20560 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20561 }
20562 stack_frame_head = fra.me.prev;
20563 return;
20564 }
20565 void parser___parser_prod___AForExpr___empty_init(val_t p0, int* init_table){
20566 int itpos125 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AForExpr].i;
20567 struct {struct stack_frame_t me;} fra;
20568 val_t tmp;
20569 if (init_table[itpos125]) return;
20570 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20571 fra.me.file = LOCATE_parser___parser_prod;
20572 fra.me.line = 3833;
20573 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___empty_init;
20574 fra.me.has_broke = 0;
20575 fra.me.REG_size = 1;
20576 fra.me.REG[0] = NIT_NULL;
20577 fra.me.REG[0] = p0;
20578 stack_frame_head = fra.me.prev;
20579 init_table[itpos125] = 1;
20580 return;
20581 }
20582 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){
20583 int itpos126 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AForExpr].i;
20584 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
20585 val_t REGB0;
20586 val_t REGB1;
20587 val_t tmp;
20588 if (init_table[itpos126]) return;
20589 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20590 fra.me.file = LOCATE_parser___parser_prod;
20591 fra.me.line = 3835;
20592 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___init_aforexpr;
20593 fra.me.has_broke = 0;
20594 fra.me.REG_size = 8;
20595 fra.me.REG[0] = NIT_NULL;
20596 fra.me.REG[1] = NIT_NULL;
20597 fra.me.REG[2] = NIT_NULL;
20598 fra.me.REG[3] = NIT_NULL;
20599 fra.me.REG[4] = NIT_NULL;
20600 fra.me.REG[5] = NIT_NULL;
20601 fra.me.REG[6] = NIT_NULL;
20602 fra.me.REG[7] = NIT_NULL;
20603 fra.me.REG[0] = p0;
20604 fra.me.REG[1] = p1;
20605 fra.me.REG[2] = p2;
20606 fra.me.REG[3] = p3;
20607 fra.me.REG[4] = p4;
20608 fra.me.REG[5] = p5;
20609 fra.me.REG[6] = p6;
20610 /* ./parser//parser_prod.nit:3835 */
20611 fra.me.REG[7] = fra.me.REG[0];
20612 /* ./parser//parser_prod.nit:3844 */
20613 CALL_parser___parser_prod___AForExpr___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
20614 /* ./parser//parser_prod.nit:3845 */
20615 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
20616 if (UNTAG_Bool(REGB0)) {
20617 } else {
20618 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3845);
20619 }
20620 ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[7]) = fra.me.REG[1];
20621 /* ./parser//parser_prod.nit:3846 */
20622 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20623 if (UNTAG_Bool(REGB0)) {
20624 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3846);
20625 }
20626 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
20627 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));
20628 /* ./parser//parser_prod.nit:3852 */
20629 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
20630 if (UNTAG_Bool(REGB0)) {
20631 } else {
20632 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3852);
20633 }
20634 ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[7]) = fra.me.REG[3];
20635 /* ./parser//parser_prod.nit:3853 */
20636 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20637 if (UNTAG_Bool(REGB0)) {
20638 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3853);
20639 }
20640 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
20641 /* ./parser//parser_prod.nit:3854 */
20642 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
20643 if (UNTAG_Bool(REGB0)) {
20644 } else {
20645 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3854);
20646 }
20647 ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[7]) = fra.me.REG[4];
20648 /* ./parser//parser_prod.nit:3855 */
20649 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
20650 if (UNTAG_Bool(REGB0)) {
20651 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3855);
20652 }
20653 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
20654 /* ./parser//parser_prod.nit:3856 */
20655 ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[7]) = fra.me.REG[5];
20656 /* ./parser//parser_prod.nit:3857 */
20657 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
20658 if (UNTAG_Bool(REGB0)) {
20659 } else {
20660 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
20661 if (UNTAG_Bool(REGB1)) {
20662 REGB1 = TAG_Bool(false);
20663 REGB0 = REGB1;
20664 } else {
20665 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
20666 REGB0 = REGB1;
20667 }
20668 }
20669 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20670 if (UNTAG_Bool(REGB0)) {
20671 /* ./parser//parser_prod.nit:3858 */
20672 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
20673 if (UNTAG_Bool(REGB0)) {
20674 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3858);
20675 }
20676 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
20677 }
20678 /* ./parser//parser_prod.nit:3860 */
20679 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[7]) = fra.me.REG[6];
20680 /* ./parser//parser_prod.nit:3861 */
20681 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
20682 if (UNTAG_Bool(REGB0)) {
20683 } else {
20684 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
20685 if (UNTAG_Bool(REGB1)) {
20686 REGB1 = TAG_Bool(false);
20687 REGB0 = REGB1;
20688 } else {
20689 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
20690 REGB0 = REGB1;
20691 }
20692 }
20693 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20694 if (UNTAG_Bool(REGB0)) {
20695 /* ./parser//parser_prod.nit:3862 */
20696 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
20697 if (UNTAG_Bool(REGB0)) {
20698 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3862);
20699 }
20700 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
20701 }
20702 stack_frame_head = fra.me.prev;
20703 init_table[itpos126] = 1;
20704 return;
20705 }
20706 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){
20707 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
20708 val_t REGB0;
20709 fun_t CREG[1];
20710 val_t tmp;
20711 /* ./parser//parser_prod.nit:3847 */
20712 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20713 fra.me.file = LOCATE_parser___parser_prod;
20714 fra.me.line = 0;
20715 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___init_aforexpr;
20716 fra.me.has_broke = 0;
20717 fra.me.REG_size = 2;
20718 fra.me.REG[0] = NIT_NULL;
20719 fra.me.REG[1] = NIT_NULL;
20720 fra.me.closure_ctx = closctx_param;
20721 fra.me.closure_funs = CREG;
20722 fra.me.REG[0] = p0;
20723 CREG[0] = clos_fun0;
20724 /* ./parser//parser_prod.nit:3848 */
20725 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
20726 if (UNTAG_Bool(REGB0)) {
20727 } else {
20728 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3848);
20729 }
20730 /* ./parser//parser_prod.nit:3849 */
20731 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(closctx->REG[7])!=NIT_NULL);
20732 if (UNTAG_Bool(REGB0)) {
20733 } else {
20734 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 3849);
20735 }
20736 fra.me.REG[1] = ATTR_parser___parser_nodes___AForExpr____n_ids(closctx->REG[7]);
20737 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
20738 /* ./parser//parser_prod.nit:3850 */
20739 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[7]);
20740 stack_frame_head = fra.me.prev;
20741 return;
20742 }
20743 void parser___parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p2){
20744 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20745 val_t REGB0;
20746 val_t REGB1;
20747 val_t REGB2;
20748 val_t REGB3;
20749 val_t REGB4;
20750 val_t tmp;
20751 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20752 fra.me.file = LOCATE_parser___parser_prod;
20753 fra.me.line = 3866;
20754 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___replace_child;
20755 fra.me.has_broke = 0;
20756 fra.me.REG_size = 4;
20757 fra.me.REG[0] = NIT_NULL;
20758 fra.me.REG[1] = NIT_NULL;
20759 fra.me.REG[2] = NIT_NULL;
20760 fra.me.REG[3] = NIT_NULL;
20761 fra.me.REG[0] = p0;
20762 fra.me.REG[1] = p1;
20763 fra.me.REG[2] = p2;
20764 /* ./parser//parser_prod.nit:3868 */
20765 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0])!=NIT_NULL);
20766 if (UNTAG_Bool(REGB0)) {
20767 } else {
20768 nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser___parser_prod, 3868);
20769 }
20770 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]);
20771 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20772 if (UNTAG_Bool(REGB0)) {
20773 } else {
20774 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20775 REGB0 = REGB1;
20776 }
20777 if (UNTAG_Bool(REGB0)) {
20778 /* ./parser//parser_prod.nit:3869 */
20779 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20780 if (UNTAG_Bool(REGB0)) {
20781 } else {
20782 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20783 if (UNTAG_Bool(REGB1)) {
20784 REGB1 = TAG_Bool(false);
20785 REGB0 = REGB1;
20786 } else {
20787 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20788 REGB0 = REGB1;
20789 }
20790 }
20791 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20792 if (UNTAG_Bool(REGB0)) {
20793 /* ./parser//parser_prod.nit:3870 */
20794 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20795 if (UNTAG_Bool(REGB0)) {
20796 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3870);
20797 }
20798 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20799 /* ./parser//parser_prod.nit:3871 */
20800 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*/;
20801 if (UNTAG_Bool(REGB0)) {
20802 } else {
20803 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3871);
20804 }
20805 /* ./parser//parser_prod.nit:3872 */
20806 ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]) = fra.me.REG[2];
20807 } else {
20808 /* ./parser//parser_prod.nit:3874 */
20809 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3874);
20810 }
20811 /* ./parser//parser_prod.nit:3876 */
20812 goto label1;
20813 }
20814 /* ./parser//parser_prod.nit:3878 */
20815 REGB0 = TAG_Int(0);
20816 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
20817 if (UNTAG_Bool(REGB1)) {
20818 } else {
20819 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 3878);
20820 }
20821 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
20822 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
20823 /* ./../lib/standard//kernel.nit:335 */
20824 while(1) {
20825 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
20826 if (UNTAG_Bool(REGB2)) {
20827 } else {
20828 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
20829 }
20830 /* ./../lib/standard//kernel.nit:215 */
20831 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
20832 /* ./../lib/standard//kernel.nit:335 */
20833 if (UNTAG_Bool(REGB2)) {
20834 /* ./parser//parser_prod.nit:3878 */
20835 REGB2 = REGB0;
20836 /* ./parser//parser_prod.nit:3879 */
20837 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
20838 if (UNTAG_Bool(REGB3)) {
20839 } else {
20840 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 3879);
20841 }
20842 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
20843 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
20844 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20845 if (UNTAG_Bool(REGB3)) {
20846 } else {
20847 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20848 if (UNTAG_Bool(REGB4)) {
20849 REGB4 = TAG_Bool(false);
20850 REGB3 = REGB4;
20851 } else {
20852 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20853 REGB3 = REGB4;
20854 }
20855 }
20856 if (UNTAG_Bool(REGB3)) {
20857 /* ./parser//parser_prod.nit:3880 */
20858 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20859 if (UNTAG_Bool(REGB3)) {
20860 } else {
20861 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20862 if (UNTAG_Bool(REGB4)) {
20863 REGB4 = TAG_Bool(false);
20864 REGB3 = REGB4;
20865 } else {
20866 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20867 REGB3 = REGB4;
20868 }
20869 }
20870 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
20871 if (UNTAG_Bool(REGB3)) {
20872 /* ./parser//parser_prod.nit:3881 */
20873 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*/;
20874 if (UNTAG_Bool(REGB3)) {
20875 } else {
20876 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3881);
20877 }
20878 /* ./parser//parser_prod.nit:3882 */
20879 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
20880 if (UNTAG_Bool(REGB3)) {
20881 } else {
20882 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 3882);
20883 }
20884 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
20885 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
20886 /* ./parser//parser_prod.nit:3883 */
20887 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20888 if (UNTAG_Bool(REGB3)) {
20889 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3883);
20890 }
20891 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20892 } else {
20893 /* ./parser//parser_prod.nit:3885 */
20894 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
20895 if (UNTAG_Bool(REGB3)) {
20896 } else {
20897 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 3885);
20898 }
20899 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
20900 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
20901 }
20902 /* ./parser//parser_prod.nit:3887 */
20903 goto label1;
20904 }
20905 /* ./../lib/standard//kernel.nit:337 */
20906 REGB2 = TAG_Int(1);
20907 /* ./../lib/standard//kernel.nit:218 */
20908 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
20909 /* ./../lib/standard//kernel.nit:337 */
20910 REGB0 = REGB2;
20911 } else {
20912 /* ./../lib/standard//kernel.nit:335 */
20913 goto label2;
20914 }
20915 }
20916 label2: while(0);
20917 /* ./parser//parser_prod.nit:3890 */
20918 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
20919 if (UNTAG_Bool(REGB0)) {
20920 } else {
20921 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3890);
20922 }
20923 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0]);
20924 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20925 if (UNTAG_Bool(REGB0)) {
20926 } else {
20927 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20928 REGB0 = REGB1;
20929 }
20930 if (UNTAG_Bool(REGB0)) {
20931 /* ./parser//parser_prod.nit:3891 */
20932 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20933 if (UNTAG_Bool(REGB0)) {
20934 } else {
20935 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20936 if (UNTAG_Bool(REGB1)) {
20937 REGB1 = TAG_Bool(false);
20938 REGB0 = REGB1;
20939 } else {
20940 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20941 REGB0 = REGB1;
20942 }
20943 }
20944 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20945 if (UNTAG_Bool(REGB0)) {
20946 /* ./parser//parser_prod.nit:3892 */
20947 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20948 if (UNTAG_Bool(REGB0)) {
20949 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3892);
20950 }
20951 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20952 /* ./parser//parser_prod.nit:3893 */
20953 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20954 if (UNTAG_Bool(REGB0)) {
20955 } else {
20956 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3893);
20957 }
20958 /* ./parser//parser_prod.nit:3894 */
20959 ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
20960 } else {
20961 /* ./parser//parser_prod.nit:3896 */
20962 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3896);
20963 }
20964 /* ./parser//parser_prod.nit:3898 */
20965 goto label1;
20966 }
20967 /* ./parser//parser_prod.nit:3900 */
20968 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
20969 if (UNTAG_Bool(REGB0)) {
20970 } else {
20971 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3900);
20972 }
20973 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]);
20974 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20975 if (UNTAG_Bool(REGB0)) {
20976 } else {
20977 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20978 REGB0 = REGB1;
20979 }
20980 if (UNTAG_Bool(REGB0)) {
20981 /* ./parser//parser_prod.nit:3901 */
20982 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20983 if (UNTAG_Bool(REGB0)) {
20984 } else {
20985 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20986 if (UNTAG_Bool(REGB1)) {
20987 REGB1 = TAG_Bool(false);
20988 REGB0 = REGB1;
20989 } else {
20990 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20991 REGB0 = REGB1;
20992 }
20993 }
20994 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20995 if (UNTAG_Bool(REGB0)) {
20996 /* ./parser//parser_prod.nit:3902 */
20997 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20998 if (UNTAG_Bool(REGB0)) {
20999 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3902);
21000 }
21001 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21002 /* ./parser//parser_prod.nit:3903 */
21003 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*/;
21004 if (UNTAG_Bool(REGB0)) {
21005 } else {
21006 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3903);
21007 }
21008 /* ./parser//parser_prod.nit:3904 */
21009 ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
21010 } else {
21011 /* ./parser//parser_prod.nit:3906 */
21012 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3906);
21013 }
21014 /* ./parser//parser_prod.nit:3908 */
21015 goto label1;
21016 }
21017 /* ./parser//parser_prod.nit:3910 */
21018 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]);
21019 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21020 if (UNTAG_Bool(REGB0)) {
21021 } else {
21022 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21023 if (UNTAG_Bool(REGB1)) {
21024 REGB1 = TAG_Bool(false);
21025 REGB0 = REGB1;
21026 } else {
21027 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21028 REGB0 = REGB1;
21029 }
21030 }
21031 if (UNTAG_Bool(REGB0)) {
21032 /* ./parser//parser_prod.nit:3911 */
21033 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21034 if (UNTAG_Bool(REGB0)) {
21035 } else {
21036 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21037 if (UNTAG_Bool(REGB1)) {
21038 REGB1 = TAG_Bool(false);
21039 REGB0 = REGB1;
21040 } else {
21041 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21042 REGB0 = REGB1;
21043 }
21044 }
21045 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21046 if (UNTAG_Bool(REGB0)) {
21047 /* ./parser//parser_prod.nit:3912 */
21048 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21049 if (UNTAG_Bool(REGB0)) {
21050 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3912);
21051 }
21052 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21053 /* ./parser//parser_prod.nit:3913 */
21054 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21055 if (UNTAG_Bool(REGB0)) {
21056 } else {
21057 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3913);
21058 }
21059 /* ./parser//parser_prod.nit:3914 */
21060 ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
21061 } else {
21062 /* ./parser//parser_prod.nit:3916 */
21063 ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]) = NIT_NULL;
21064 }
21065 /* ./parser//parser_prod.nit:3918 */
21066 goto label1;
21067 }
21068 /* ./parser//parser_prod.nit:3920 */
21069 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
21070 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21071 if (UNTAG_Bool(REGB0)) {
21072 } else {
21073 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21074 if (UNTAG_Bool(REGB1)) {
21075 REGB1 = TAG_Bool(false);
21076 REGB0 = REGB1;
21077 } else {
21078 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21079 REGB0 = REGB1;
21080 }
21081 }
21082 if (UNTAG_Bool(REGB0)) {
21083 /* ./parser//parser_prod.nit:3921 */
21084 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21085 if (UNTAG_Bool(REGB0)) {
21086 } else {
21087 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21088 if (UNTAG_Bool(REGB1)) {
21089 REGB1 = TAG_Bool(false);
21090 REGB0 = REGB1;
21091 } else {
21092 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21093 REGB0 = REGB1;
21094 }
21095 }
21096 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21097 if (UNTAG_Bool(REGB0)) {
21098 /* ./parser//parser_prod.nit:3922 */
21099 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21100 if (UNTAG_Bool(REGB0)) {
21101 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3922);
21102 }
21103 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21104 /* ./parser//parser_prod.nit:3923 */
21105 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*/;
21106 if (UNTAG_Bool(REGB0)) {
21107 } else {
21108 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3923);
21109 }
21110 /* ./parser//parser_prod.nit:3924 */
21111 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
21112 } else {
21113 /* ./parser//parser_prod.nit:3926 */
21114 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
21115 }
21116 /* ./parser//parser_prod.nit:3928 */
21117 goto label1;
21118 }
21119 label1: while(0);
21120 stack_frame_head = fra.me.prev;
21121 return;
21122 }
21123 void parser___parser_prod___AForExpr___visit_all(val_t p0, val_t p1){
21124 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21125 val_t REGB0;
21126 val_t REGB1;
21127 val_t tmp;
21128 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21129 fra.me.file = LOCATE_parser___parser_prod;
21130 fra.me.line = 3932;
21131 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___visit_all;
21132 fra.me.has_broke = 0;
21133 fra.me.REG_size = 4;
21134 fra.me.REG[0] = NIT_NULL;
21135 fra.me.REG[1] = NIT_NULL;
21136 fra.me.REG[2] = NIT_NULL;
21137 fra.me.REG[3] = NIT_NULL;
21138 fra.me.REG[0] = p0;
21139 fra.me.REG[1] = p1;
21140 /* ./parser//parser_prod.nit:3932 */
21141 fra.me.REG[2] = fra.me.REG[0];
21142 /* ./parser//parser_prod.nit:3934 */
21143 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[2])!=NIT_NULL);
21144 if (UNTAG_Bool(REGB0)) {
21145 } else {
21146 nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser___parser_prod, 3934);
21147 }
21148 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[2]);
21149 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21150 /* ./parser//parser_prod.nit:3935 */
21151 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[2])!=NIT_NULL);
21152 if (UNTAG_Bool(REGB0)) {
21153 } else {
21154 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 3935);
21155 }
21156 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[2]);
21157 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));
21158 /* ./parser//parser_prod.nit:3938 */
21159 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
21160 if (UNTAG_Bool(REGB0)) {
21161 } else {
21162 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3938);
21163 }
21164 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[2]);
21165 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21166 /* ./parser//parser_prod.nit:3939 */
21167 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
21168 if (UNTAG_Bool(REGB0)) {
21169 } else {
21170 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3939);
21171 }
21172 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[2]);
21173 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21174 /* ./parser//parser_prod.nit:3940 */
21175 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[2]);
21176 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21177 if (UNTAG_Bool(REGB0)) {
21178 } else {
21179 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21180 if (UNTAG_Bool(REGB1)) {
21181 REGB1 = TAG_Bool(false);
21182 REGB0 = REGB1;
21183 } else {
21184 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21185 REGB0 = REGB1;
21186 }
21187 }
21188 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21189 if (UNTAG_Bool(REGB0)) {
21190 /* ./parser//parser_prod.nit:3941 */
21191 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[2]);
21192 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*/;
21193 if (UNTAG_Bool(REGB0)) {
21194 } else {
21195 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3941);
21196 }
21197 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21198 }
21199 /* ./parser//parser_prod.nit:3943 */
21200 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
21201 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21202 if (UNTAG_Bool(REGB0)) {
21203 } else {
21204 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21205 if (UNTAG_Bool(REGB1)) {
21206 REGB1 = TAG_Bool(false);
21207 REGB0 = REGB1;
21208 } else {
21209 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21210 REGB0 = REGB1;
21211 }
21212 }
21213 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21214 if (UNTAG_Bool(REGB0)) {
21215 /* ./parser//parser_prod.nit:3944 */
21216 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
21217 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*/;
21218 if (UNTAG_Bool(REGB0)) {
21219 } else {
21220 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3944);
21221 }
21222 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21223 }
21224 stack_frame_head = fra.me.prev;
21225 return;
21226 }
21227 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){
21228 struct {struct stack_frame_t me;} fra;
21229 fun_t CREG[1];
21230 val_t tmp;
21231 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21232 fra.me.file = LOCATE_parser___parser_prod;
21233 fra.me.line = 0;
21234 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___visit_all;
21235 fra.me.has_broke = 0;
21236 fra.me.REG_size = 1;
21237 fra.me.REG[0] = NIT_NULL;
21238 fra.me.closure_ctx = closctx_param;
21239 fra.me.closure_funs = CREG;
21240 fra.me.REG[0] = p0;
21241 CREG[0] = clos_fun0;
21242 /* ./parser//parser_prod.nit:3936 */
21243 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
21244 stack_frame_head = fra.me.prev;
21245 return;
21246 }
21247 void parser___parser_prod___AAssertExpr___empty_init(val_t p0, int* init_table){
21248 int itpos127 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssertExpr].i;
21249 struct {struct stack_frame_t me;} fra;
21250 val_t tmp;
21251 if (init_table[itpos127]) return;
21252 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21253 fra.me.file = LOCATE_parser___parser_prod;
21254 fra.me.line = 3949;
21255 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___empty_init;
21256 fra.me.has_broke = 0;
21257 fra.me.REG_size = 1;
21258 fra.me.REG[0] = NIT_NULL;
21259 fra.me.REG[0] = p0;
21260 stack_frame_head = fra.me.prev;
21261 init_table[itpos127] = 1;
21262 return;
21263 }
21264 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){
21265 int itpos128 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssertExpr].i;
21266 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
21267 val_t REGB0;
21268 val_t REGB1;
21269 val_t tmp;
21270 if (init_table[itpos128]) return;
21271 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21272 fra.me.file = LOCATE_parser___parser_prod;
21273 fra.me.line = 3951;
21274 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___init_aassertexpr;
21275 fra.me.has_broke = 0;
21276 fra.me.REG_size = 6;
21277 fra.me.REG[0] = NIT_NULL;
21278 fra.me.REG[1] = NIT_NULL;
21279 fra.me.REG[2] = NIT_NULL;
21280 fra.me.REG[3] = NIT_NULL;
21281 fra.me.REG[4] = NIT_NULL;
21282 fra.me.REG[5] = NIT_NULL;
21283 fra.me.REG[0] = p0;
21284 fra.me.REG[1] = p1;
21285 fra.me.REG[2] = p2;
21286 fra.me.REG[3] = p3;
21287 fra.me.REG[4] = p4;
21288 /* ./parser//parser_prod.nit:3951 */
21289 fra.me.REG[5] = fra.me.REG[0];
21290 /* ./parser//parser_prod.nit:3958 */
21291 CALL_parser___parser_prod___AAssertExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
21292 /* ./parser//parser_prod.nit:3959 */
21293 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21294 if (UNTAG_Bool(REGB0)) {
21295 } else {
21296 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3959);
21297 }
21298 ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[5]) = fra.me.REG[1];
21299 /* ./parser//parser_prod.nit:3960 */
21300 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21301 if (UNTAG_Bool(REGB0)) {
21302 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3960);
21303 }
21304 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
21305 /* ./parser//parser_prod.nit:3961 */
21306 ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
21307 /* ./parser//parser_prod.nit:3962 */
21308 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21309 if (UNTAG_Bool(REGB0)) {
21310 } else {
21311 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21312 if (UNTAG_Bool(REGB1)) {
21313 REGB1 = TAG_Bool(false);
21314 REGB0 = REGB1;
21315 } else {
21316 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21317 REGB0 = REGB1;
21318 }
21319 }
21320 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21321 if (UNTAG_Bool(REGB0)) {
21322 /* ./parser//parser_prod.nit:3963 */
21323 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21324 if (UNTAG_Bool(REGB0)) {
21325 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3963);
21326 }
21327 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
21328 }
21329 /* ./parser//parser_prod.nit:3965 */
21330 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
21331 if (UNTAG_Bool(REGB0)) {
21332 } else {
21333 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3965);
21334 }
21335 ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[5]) = fra.me.REG[3];
21336 /* ./parser//parser_prod.nit:3966 */
21337 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21338 if (UNTAG_Bool(REGB0)) {
21339 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3966);
21340 }
21341 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
21342 /* ./parser//parser_prod.nit:3967 */
21343 ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[5]) = fra.me.REG[4];
21344 /* ./parser//parser_prod.nit:3968 */
21345 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
21346 if (UNTAG_Bool(REGB0)) {
21347 } else {
21348 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
21349 if (UNTAG_Bool(REGB1)) {
21350 REGB1 = TAG_Bool(false);
21351 REGB0 = REGB1;
21352 } else {
21353 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
21354 REGB0 = REGB1;
21355 }
21356 }
21357 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21358 if (UNTAG_Bool(REGB0)) {
21359 /* ./parser//parser_prod.nit:3969 */
21360 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
21361 if (UNTAG_Bool(REGB0)) {
21362 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3969);
21363 }
21364 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
21365 }
21366 stack_frame_head = fra.me.prev;
21367 init_table[itpos128] = 1;
21368 return;
21369 }
21370 void parser___parser_prod___AAssertExpr___replace_child(val_t p0, val_t p1, val_t p2){
21371 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21372 val_t REGB0;
21373 val_t REGB1;
21374 val_t tmp;
21375 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21376 fra.me.file = LOCATE_parser___parser_prod;
21377 fra.me.line = 3973;
21378 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___replace_child;
21379 fra.me.has_broke = 0;
21380 fra.me.REG_size = 4;
21381 fra.me.REG[0] = NIT_NULL;
21382 fra.me.REG[1] = NIT_NULL;
21383 fra.me.REG[2] = NIT_NULL;
21384 fra.me.REG[3] = NIT_NULL;
21385 fra.me.REG[0] = p0;
21386 fra.me.REG[1] = p1;
21387 fra.me.REG[2] = p2;
21388 /* ./parser//parser_prod.nit:3975 */
21389 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0])!=NIT_NULL);
21390 if (UNTAG_Bool(REGB0)) {
21391 } else {
21392 nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser___parser_prod, 3975);
21393 }
21394 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]);
21395 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21396 if (UNTAG_Bool(REGB0)) {
21397 } else {
21398 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21399 REGB0 = REGB1;
21400 }
21401 if (UNTAG_Bool(REGB0)) {
21402 /* ./parser//parser_prod.nit:3976 */
21403 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21404 if (UNTAG_Bool(REGB0)) {
21405 } else {
21406 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21407 if (UNTAG_Bool(REGB1)) {
21408 REGB1 = TAG_Bool(false);
21409 REGB0 = REGB1;
21410 } else {
21411 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21412 REGB0 = REGB1;
21413 }
21414 }
21415 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21416 if (UNTAG_Bool(REGB0)) {
21417 /* ./parser//parser_prod.nit:3977 */
21418 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21419 if (UNTAG_Bool(REGB0)) {
21420 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3977);
21421 }
21422 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21423 /* ./parser//parser_prod.nit:3978 */
21424 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*/;
21425 if (UNTAG_Bool(REGB0)) {
21426 } else {
21427 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3978);
21428 }
21429 /* ./parser//parser_prod.nit:3979 */
21430 ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]) = fra.me.REG[2];
21431 } else {
21432 /* ./parser//parser_prod.nit:3981 */
21433 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3981);
21434 }
21435 /* ./parser//parser_prod.nit:3983 */
21436 goto label1;
21437 }
21438 /* ./parser//parser_prod.nit:3985 */
21439 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]);
21440 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21441 if (UNTAG_Bool(REGB0)) {
21442 } else {
21443 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21444 if (UNTAG_Bool(REGB1)) {
21445 REGB1 = TAG_Bool(false);
21446 REGB0 = REGB1;
21447 } else {
21448 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21449 REGB0 = REGB1;
21450 }
21451 }
21452 if (UNTAG_Bool(REGB0)) {
21453 /* ./parser//parser_prod.nit:3986 */
21454 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21455 if (UNTAG_Bool(REGB0)) {
21456 } else {
21457 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21458 if (UNTAG_Bool(REGB1)) {
21459 REGB1 = TAG_Bool(false);
21460 REGB0 = REGB1;
21461 } else {
21462 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21463 REGB0 = REGB1;
21464 }
21465 }
21466 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21467 if (UNTAG_Bool(REGB0)) {
21468 /* ./parser//parser_prod.nit:3987 */
21469 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21470 if (UNTAG_Bool(REGB0)) {
21471 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3987);
21472 }
21473 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21474 /* ./parser//parser_prod.nit:3988 */
21475 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*/;
21476 if (UNTAG_Bool(REGB0)) {
21477 } else {
21478 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3988);
21479 }
21480 /* ./parser//parser_prod.nit:3989 */
21481 ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
21482 } else {
21483 /* ./parser//parser_prod.nit:3991 */
21484 ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = NIT_NULL;
21485 }
21486 /* ./parser//parser_prod.nit:3993 */
21487 goto label1;
21488 }
21489 /* ./parser//parser_prod.nit:3995 */
21490 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21491 if (UNTAG_Bool(REGB0)) {
21492 } else {
21493 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3995);
21494 }
21495 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]);
21496 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21497 if (UNTAG_Bool(REGB0)) {
21498 } else {
21499 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21500 REGB0 = REGB1;
21501 }
21502 if (UNTAG_Bool(REGB0)) {
21503 /* ./parser//parser_prod.nit:3996 */
21504 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21505 if (UNTAG_Bool(REGB0)) {
21506 } else {
21507 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21508 if (UNTAG_Bool(REGB1)) {
21509 REGB1 = TAG_Bool(false);
21510 REGB0 = REGB1;
21511 } else {
21512 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21513 REGB0 = REGB1;
21514 }
21515 }
21516 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21517 if (UNTAG_Bool(REGB0)) {
21518 /* ./parser//parser_prod.nit:3997 */
21519 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21520 if (UNTAG_Bool(REGB0)) {
21521 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3997);
21522 }
21523 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21524 /* ./parser//parser_prod.nit:3998 */
21525 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21526 if (UNTAG_Bool(REGB0)) {
21527 } else {
21528 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3998);
21529 }
21530 /* ./parser//parser_prod.nit:3999 */
21531 ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21532 } else {
21533 /* ./parser//parser_prod.nit:4001 */
21534 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4001);
21535 }
21536 /* ./parser//parser_prod.nit:4003 */
21537 goto label1;
21538 }
21539 /* ./parser//parser_prod.nit:4005 */
21540 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]);
21541 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21542 if (UNTAG_Bool(REGB0)) {
21543 } else {
21544 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21545 if (UNTAG_Bool(REGB1)) {
21546 REGB1 = TAG_Bool(false);
21547 REGB0 = REGB1;
21548 } else {
21549 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21550 REGB0 = REGB1;
21551 }
21552 }
21553 if (UNTAG_Bool(REGB0)) {
21554 /* ./parser//parser_prod.nit:4006 */
21555 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21556 if (UNTAG_Bool(REGB0)) {
21557 } else {
21558 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21559 if (UNTAG_Bool(REGB1)) {
21560 REGB1 = TAG_Bool(false);
21561 REGB0 = REGB1;
21562 } else {
21563 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21564 REGB0 = REGB1;
21565 }
21566 }
21567 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21568 if (UNTAG_Bool(REGB0)) {
21569 /* ./parser//parser_prod.nit:4007 */
21570 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21571 if (UNTAG_Bool(REGB0)) {
21572 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4007);
21573 }
21574 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21575 /* ./parser//parser_prod.nit:4008 */
21576 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21577 if (UNTAG_Bool(REGB0)) {
21578 } else {
21579 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4008);
21580 }
21581 /* ./parser//parser_prod.nit:4009 */
21582 ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
21583 } else {
21584 /* ./parser//parser_prod.nit:4011 */
21585 ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = NIT_NULL;
21586 }
21587 /* ./parser//parser_prod.nit:4013 */
21588 goto label1;
21589 }
21590 label1: while(0);
21591 stack_frame_head = fra.me.prev;
21592 return;
21593 }
21594 void parser___parser_prod___AAssertExpr___visit_all(val_t p0, val_t p1){
21595 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21596 val_t REGB0;
21597 val_t REGB1;
21598 val_t tmp;
21599 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21600 fra.me.file = LOCATE_parser___parser_prod;
21601 fra.me.line = 4017;
21602 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___visit_all;
21603 fra.me.has_broke = 0;
21604 fra.me.REG_size = 4;
21605 fra.me.REG[0] = NIT_NULL;
21606 fra.me.REG[1] = NIT_NULL;
21607 fra.me.REG[2] = NIT_NULL;
21608 fra.me.REG[3] = NIT_NULL;
21609 fra.me.REG[0] = p0;
21610 fra.me.REG[1] = p1;
21611 /* ./parser//parser_prod.nit:4017 */
21612 fra.me.REG[2] = fra.me.REG[0];
21613 /* ./parser//parser_prod.nit:4019 */
21614 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[2])!=NIT_NULL);
21615 if (UNTAG_Bool(REGB0)) {
21616 } else {
21617 nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser___parser_prod, 4019);
21618 }
21619 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[2]);
21620 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21621 /* ./parser//parser_prod.nit:4020 */
21622 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[2]);
21623 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21624 if (UNTAG_Bool(REGB0)) {
21625 } else {
21626 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21627 if (UNTAG_Bool(REGB1)) {
21628 REGB1 = TAG_Bool(false);
21629 REGB0 = REGB1;
21630 } else {
21631 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21632 REGB0 = REGB1;
21633 }
21634 }
21635 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21636 if (UNTAG_Bool(REGB0)) {
21637 /* ./parser//parser_prod.nit:4021 */
21638 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[2]);
21639 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*/;
21640 if (UNTAG_Bool(REGB0)) {
21641 } else {
21642 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4021);
21643 }
21644 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21645 }
21646 /* ./parser//parser_prod.nit:4023 */
21647 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
21648 if (UNTAG_Bool(REGB0)) {
21649 } else {
21650 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4023);
21651 }
21652 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[2]);
21653 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21654 /* ./parser//parser_prod.nit:4024 */
21655 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[2]);
21656 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21657 if (UNTAG_Bool(REGB0)) {
21658 } else {
21659 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21660 if (UNTAG_Bool(REGB1)) {
21661 REGB1 = TAG_Bool(false);
21662 REGB0 = REGB1;
21663 } else {
21664 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21665 REGB0 = REGB1;
21666 }
21667 }
21668 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21669 if (UNTAG_Bool(REGB0)) {
21670 /* ./parser//parser_prod.nit:4025 */
21671 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[2]);
21672 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21673 if (UNTAG_Bool(REGB0)) {
21674 } else {
21675 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4025);
21676 }
21677 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21678 }
21679 stack_frame_head = fra.me.prev;
21680 return;
21681 }
21682 void parser___parser_prod___AOnceExpr___empty_init(val_t p0, int* init_table){
21683 int itpos129 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOnceExpr].i;
21684 struct {struct stack_frame_t me;} fra;
21685 val_t tmp;
21686 if (init_table[itpos129]) return;
21687 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21688 fra.me.file = LOCATE_parser___parser_prod;
21689 fra.me.line = 4030;
21690 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___empty_init;
21691 fra.me.has_broke = 0;
21692 fra.me.REG_size = 1;
21693 fra.me.REG[0] = NIT_NULL;
21694 fra.me.REG[0] = p0;
21695 stack_frame_head = fra.me.prev;
21696 init_table[itpos129] = 1;
21697 return;
21698 }
21699 void parser___parser_prod___AOnceExpr___init_aonceexpr(val_t p0, val_t p1, val_t p2, int* init_table){
21700 int itpos130 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOnceExpr].i;
21701 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21702 val_t REGB0;
21703 val_t tmp;
21704 if (init_table[itpos130]) return;
21705 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21706 fra.me.file = LOCATE_parser___parser_prod;
21707 fra.me.line = 4032;
21708 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___init_aonceexpr;
21709 fra.me.has_broke = 0;
21710 fra.me.REG_size = 4;
21711 fra.me.REG[0] = NIT_NULL;
21712 fra.me.REG[1] = NIT_NULL;
21713 fra.me.REG[2] = NIT_NULL;
21714 fra.me.REG[3] = NIT_NULL;
21715 fra.me.REG[0] = p0;
21716 fra.me.REG[1] = p1;
21717 fra.me.REG[2] = p2;
21718 /* ./parser//parser_prod.nit:4032 */
21719 fra.me.REG[3] = fra.me.REG[0];
21720 /* ./parser//parser_prod.nit:4037 */
21721 CALL_parser___parser_prod___AOnceExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
21722 /* ./parser//parser_prod.nit:4038 */
21723 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21724 if (UNTAG_Bool(REGB0)) {
21725 } else {
21726 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4038);
21727 }
21728 ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[3]) = fra.me.REG[1];
21729 /* ./parser//parser_prod.nit:4039 */
21730 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21731 if (UNTAG_Bool(REGB0)) {
21732 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4039);
21733 }
21734 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21735 /* ./parser//parser_prod.nit:4040 */
21736 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
21737 if (UNTAG_Bool(REGB0)) {
21738 } else {
21739 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4040);
21740 }
21741 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
21742 /* ./parser//parser_prod.nit:4041 */
21743 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21744 if (UNTAG_Bool(REGB0)) {
21745 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4041);
21746 }
21747 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
21748 stack_frame_head = fra.me.prev;
21749 init_table[itpos130] = 1;
21750 return;
21751 }
21752 void parser___parser_prod___AOnceExpr___replace_child(val_t p0, val_t p1, val_t p2){
21753 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21754 val_t REGB0;
21755 val_t REGB1;
21756 val_t tmp;
21757 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21758 fra.me.file = LOCATE_parser___parser_prod;
21759 fra.me.line = 4044;
21760 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___replace_child;
21761 fra.me.has_broke = 0;
21762 fra.me.REG_size = 4;
21763 fra.me.REG[0] = NIT_NULL;
21764 fra.me.REG[1] = NIT_NULL;
21765 fra.me.REG[2] = NIT_NULL;
21766 fra.me.REG[3] = NIT_NULL;
21767 fra.me.REG[0] = p0;
21768 fra.me.REG[1] = p1;
21769 fra.me.REG[2] = p2;
21770 /* ./parser//parser_prod.nit:4046 */
21771 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
21772 if (UNTAG_Bool(REGB0)) {
21773 } else {
21774 nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser___parser_prod, 4046);
21775 }
21776 fra.me.REG[3] = ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]);
21777 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21778 if (UNTAG_Bool(REGB0)) {
21779 } else {
21780 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21781 REGB0 = REGB1;
21782 }
21783 if (UNTAG_Bool(REGB0)) {
21784 /* ./parser//parser_prod.nit:4047 */
21785 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21786 if (UNTAG_Bool(REGB0)) {
21787 } else {
21788 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21789 if (UNTAG_Bool(REGB1)) {
21790 REGB1 = TAG_Bool(false);
21791 REGB0 = REGB1;
21792 } else {
21793 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21794 REGB0 = REGB1;
21795 }
21796 }
21797 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21798 if (UNTAG_Bool(REGB0)) {
21799 /* ./parser//parser_prod.nit:4048 */
21800 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21801 if (UNTAG_Bool(REGB0)) {
21802 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4048);
21803 }
21804 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21805 /* ./parser//parser_prod.nit:4049 */
21806 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*/;
21807 if (UNTAG_Bool(REGB0)) {
21808 } else {
21809 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4049);
21810 }
21811 /* ./parser//parser_prod.nit:4050 */
21812 ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]) = fra.me.REG[2];
21813 } else {
21814 /* ./parser//parser_prod.nit:4052 */
21815 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4052);
21816 }
21817 /* ./parser//parser_prod.nit:4054 */
21818 goto label1;
21819 }
21820 /* ./parser//parser_prod.nit:4056 */
21821 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21822 if (UNTAG_Bool(REGB0)) {
21823 } else {
21824 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4056);
21825 }
21826 fra.me.REG[3] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
21827 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21828 if (UNTAG_Bool(REGB0)) {
21829 } else {
21830 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21831 REGB0 = REGB1;
21832 }
21833 if (UNTAG_Bool(REGB0)) {
21834 /* ./parser//parser_prod.nit:4057 */
21835 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21836 if (UNTAG_Bool(REGB0)) {
21837 } else {
21838 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21839 if (UNTAG_Bool(REGB1)) {
21840 REGB1 = TAG_Bool(false);
21841 REGB0 = REGB1;
21842 } else {
21843 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21844 REGB0 = REGB1;
21845 }
21846 }
21847 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21848 if (UNTAG_Bool(REGB0)) {
21849 /* ./parser//parser_prod.nit:4058 */
21850 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21851 if (UNTAG_Bool(REGB0)) {
21852 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4058);
21853 }
21854 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21855 /* ./parser//parser_prod.nit:4059 */
21856 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21857 if (UNTAG_Bool(REGB0)) {
21858 } else {
21859 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4059);
21860 }
21861 /* ./parser//parser_prod.nit:4060 */
21862 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21863 } else {
21864 /* ./parser//parser_prod.nit:4062 */
21865 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4062);
21866 }
21867 /* ./parser//parser_prod.nit:4064 */
21868 goto label1;
21869 }
21870 label1: while(0);
21871 stack_frame_head = fra.me.prev;
21872 return;
21873 }
21874 void parser___parser_prod___AOnceExpr___visit_all(val_t p0, val_t p1){
21875 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
21876 val_t REGB0;
21877 val_t tmp;
21878 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21879 fra.me.file = LOCATE_parser___parser_prod;
21880 fra.me.line = 4068;
21881 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___visit_all;
21882 fra.me.has_broke = 0;
21883 fra.me.REG_size = 3;
21884 fra.me.REG[0] = NIT_NULL;
21885 fra.me.REG[1] = NIT_NULL;
21886 fra.me.REG[2] = NIT_NULL;
21887 fra.me.REG[0] = p0;
21888 fra.me.REG[1] = p1;
21889 /* ./parser//parser_prod.nit:4070 */
21890 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
21891 if (UNTAG_Bool(REGB0)) {
21892 } else {
21893 nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser___parser_prod, 4070);
21894 }
21895 fra.me.REG[2] = ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]);
21896 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21897 /* ./parser//parser_prod.nit:4071 */
21898 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21899 if (UNTAG_Bool(REGB0)) {
21900 } else {
21901 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4071);
21902 }
21903 fra.me.REG[0] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
21904 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21905 stack_frame_head = fra.me.prev;
21906 return;
21907 }
21908 void parser___parser_prod___ASendExpr___empty_init(val_t p0, int* init_table){
21909 int itpos131 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASendExpr].i;
21910 struct {struct stack_frame_t me;} fra;
21911 val_t tmp;
21912 if (init_table[itpos131]) return;
21913 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21914 fra.me.file = LOCATE_parser___parser_prod;
21915 fra.me.line = 4075;
21916 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___empty_init;
21917 fra.me.has_broke = 0;
21918 fra.me.REG_size = 1;
21919 fra.me.REG[0] = NIT_NULL;
21920 fra.me.REG[0] = p0;
21921 stack_frame_head = fra.me.prev;
21922 init_table[itpos131] = 1;
21923 return;
21924 }
21925 void parser___parser_prod___ASendExpr___init_asendexpr(val_t p0, val_t p1, int* init_table){
21926 int itpos132 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASendExpr].i;
21927 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
21928 val_t REGB0;
21929 val_t tmp;
21930 if (init_table[itpos132]) return;
21931 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21932 fra.me.file = LOCATE_parser___parser_prod;
21933 fra.me.line = 4077;
21934 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___init_asendexpr;
21935 fra.me.has_broke = 0;
21936 fra.me.REG_size = 3;
21937 fra.me.REG[0] = NIT_NULL;
21938 fra.me.REG[1] = NIT_NULL;
21939 fra.me.REG[2] = NIT_NULL;
21940 fra.me.REG[0] = p0;
21941 fra.me.REG[1] = p1;
21942 /* ./parser//parser_prod.nit:4077 */
21943 fra.me.REG[2] = fra.me.REG[0];
21944 /* ./parser//parser_prod.nit:4081 */
21945 CALL_parser___parser_prod___ASendExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
21946 /* ./parser//parser_prod.nit:4082 */
21947 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21948 if (UNTAG_Bool(REGB0)) {
21949 } else {
21950 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4082);
21951 }
21952 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[2]) = fra.me.REG[1];
21953 /* ./parser//parser_prod.nit:4083 */
21954 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21955 if (UNTAG_Bool(REGB0)) {
21956 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4083);
21957 }
21958 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21959 stack_frame_head = fra.me.prev;
21960 init_table[itpos132] = 1;
21961 return;
21962 }
21963 void parser___parser_prod___ASendExpr___replace_child(val_t p0, val_t p1, val_t p2){
21964 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21965 val_t REGB0;
21966 val_t REGB1;
21967 val_t tmp;
21968 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21969 fra.me.file = LOCATE_parser___parser_prod;
21970 fra.me.line = 4086;
21971 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___replace_child;
21972 fra.me.has_broke = 0;
21973 fra.me.REG_size = 4;
21974 fra.me.REG[0] = NIT_NULL;
21975 fra.me.REG[1] = NIT_NULL;
21976 fra.me.REG[2] = NIT_NULL;
21977 fra.me.REG[3] = NIT_NULL;
21978 fra.me.REG[0] = p0;
21979 fra.me.REG[1] = p1;
21980 fra.me.REG[2] = p2;
21981 /* ./parser//parser_prod.nit:4088 */
21982 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____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___ASendExpr____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___ASendExpr____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 label1: while(0);
22032 stack_frame_head = fra.me.prev;
22033 return;
22034 }
22035 void parser___parser_prod___ASendExpr___visit_all(val_t p0, val_t p1){
22036 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
22037 val_t REGB0;
22038 val_t tmp;
22039 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22040 fra.me.file = LOCATE_parser___parser_prod;
22041 fra.me.line = 4100;
22042 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___visit_all;
22043 fra.me.has_broke = 0;
22044 fra.me.REG_size = 2;
22045 fra.me.REG[0] = NIT_NULL;
22046 fra.me.REG[1] = NIT_NULL;
22047 fra.me.REG[0] = p0;
22048 fra.me.REG[1] = p1;
22049 /* ./parser//parser_prod.nit:4102 */
22050 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22051 if (UNTAG_Bool(REGB0)) {
22052 } else {
22053 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4102);
22054 }
22055 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
22056 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22057 stack_frame_head = fra.me.prev;
22058 return;
22059 }
22060 void parser___parser_prod___ABinopExpr___empty_init(val_t p0, int* init_table){
22061 int itpos133 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABinopExpr].i;
22062 struct {struct stack_frame_t me;} fra;
22063 val_t tmp;
22064 if (init_table[itpos133]) return;
22065 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22066 fra.me.file = LOCATE_parser___parser_prod;
22067 fra.me.line = 4106;
22068 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___empty_init;
22069 fra.me.has_broke = 0;
22070 fra.me.REG_size = 1;
22071 fra.me.REG[0] = NIT_NULL;
22072 fra.me.REG[0] = p0;
22073 stack_frame_head = fra.me.prev;
22074 init_table[itpos133] = 1;
22075 return;
22076 }
22077 void parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1, val_t p2, int* init_table){
22078 int itpos134 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABinopExpr].i;
22079 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22080 val_t REGB0;
22081 val_t tmp;
22082 if (init_table[itpos134]) return;
22083 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22084 fra.me.file = LOCATE_parser___parser_prod;
22085 fra.me.line = 4108;
22086 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___init_abinopexpr;
22087 fra.me.has_broke = 0;
22088 fra.me.REG_size = 4;
22089 fra.me.REG[0] = NIT_NULL;
22090 fra.me.REG[1] = NIT_NULL;
22091 fra.me.REG[2] = NIT_NULL;
22092 fra.me.REG[3] = NIT_NULL;
22093 fra.me.REG[0] = p0;
22094 fra.me.REG[1] = p1;
22095 fra.me.REG[2] = p2;
22096 /* ./parser//parser_prod.nit:4108 */
22097 fra.me.REG[3] = fra.me.REG[0];
22098 /* ./parser//parser_prod.nit:4113 */
22099 CALL_parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
22100 /* ./parser//parser_prod.nit:4114 */
22101 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22102 if (UNTAG_Bool(REGB0)) {
22103 } else {
22104 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4114);
22105 }
22106 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
22107 /* ./parser//parser_prod.nit:4115 */
22108 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22109 if (UNTAG_Bool(REGB0)) {
22110 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4115);
22111 }
22112 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22113 /* ./parser//parser_prod.nit:4116 */
22114 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
22115 if (UNTAG_Bool(REGB0)) {
22116 } else {
22117 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4116);
22118 }
22119 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
22120 /* ./parser//parser_prod.nit:4117 */
22121 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22122 if (UNTAG_Bool(REGB0)) {
22123 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4117);
22124 }
22125 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
22126 stack_frame_head = fra.me.prev;
22127 init_table[itpos134] = 1;
22128 return;
22129 }
22130 void parser___parser_prod___ABinopExpr___replace_child(val_t p0, val_t p1, val_t p2){
22131 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22132 val_t REGB0;
22133 val_t REGB1;
22134 val_t tmp;
22135 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22136 fra.me.file = LOCATE_parser___parser_prod;
22137 fra.me.line = 4120;
22138 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___replace_child;
22139 fra.me.has_broke = 0;
22140 fra.me.REG_size = 4;
22141 fra.me.REG[0] = NIT_NULL;
22142 fra.me.REG[1] = NIT_NULL;
22143 fra.me.REG[2] = NIT_NULL;
22144 fra.me.REG[3] = NIT_NULL;
22145 fra.me.REG[0] = p0;
22146 fra.me.REG[1] = p1;
22147 fra.me.REG[2] = p2;
22148 /* ./parser//parser_prod.nit:4122 */
22149 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22150 if (UNTAG_Bool(REGB0)) {
22151 } else {
22152 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4122);
22153 }
22154 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
22155 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22156 if (UNTAG_Bool(REGB0)) {
22157 } else {
22158 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22159 REGB0 = REGB1;
22160 }
22161 if (UNTAG_Bool(REGB0)) {
22162 /* ./parser//parser_prod.nit:4123 */
22163 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22164 if (UNTAG_Bool(REGB0)) {
22165 } else {
22166 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22167 if (UNTAG_Bool(REGB1)) {
22168 REGB1 = TAG_Bool(false);
22169 REGB0 = REGB1;
22170 } else {
22171 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22172 REGB0 = REGB1;
22173 }
22174 }
22175 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22176 if (UNTAG_Bool(REGB0)) {
22177 /* ./parser//parser_prod.nit:4124 */
22178 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22179 if (UNTAG_Bool(REGB0)) {
22180 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4124);
22181 }
22182 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22183 /* ./parser//parser_prod.nit:4125 */
22184 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22185 if (UNTAG_Bool(REGB0)) {
22186 } else {
22187 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4125);
22188 }
22189 /* ./parser//parser_prod.nit:4126 */
22190 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22191 } else {
22192 /* ./parser//parser_prod.nit:4128 */
22193 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4128);
22194 }
22195 /* ./parser//parser_prod.nit:4130 */
22196 goto label1;
22197 }
22198 /* ./parser//parser_prod.nit:4132 */
22199 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22200 if (UNTAG_Bool(REGB0)) {
22201 } else {
22202 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4132);
22203 }
22204 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
22205 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22206 if (UNTAG_Bool(REGB0)) {
22207 } else {
22208 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22209 REGB0 = REGB1;
22210 }
22211 if (UNTAG_Bool(REGB0)) {
22212 /* ./parser//parser_prod.nit:4133 */
22213 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22214 if (UNTAG_Bool(REGB0)) {
22215 } else {
22216 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22217 if (UNTAG_Bool(REGB1)) {
22218 REGB1 = TAG_Bool(false);
22219 REGB0 = REGB1;
22220 } else {
22221 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22222 REGB0 = REGB1;
22223 }
22224 }
22225 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22226 if (UNTAG_Bool(REGB0)) {
22227 /* ./parser//parser_prod.nit:4134 */
22228 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22229 if (UNTAG_Bool(REGB0)) {
22230 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4134);
22231 }
22232 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22233 /* ./parser//parser_prod.nit:4135 */
22234 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22235 if (UNTAG_Bool(REGB0)) {
22236 } else {
22237 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4135);
22238 }
22239 /* ./parser//parser_prod.nit:4136 */
22240 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
22241 } else {
22242 /* ./parser//parser_prod.nit:4138 */
22243 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4138);
22244 }
22245 /* ./parser//parser_prod.nit:4140 */
22246 goto label1;
22247 }
22248 label1: while(0);
22249 stack_frame_head = fra.me.prev;
22250 return;
22251 }
22252 void parser___parser_prod___ABinopExpr___visit_all(val_t p0, val_t p1){
22253 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22254 val_t REGB0;
22255 val_t tmp;
22256 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22257 fra.me.file = LOCATE_parser___parser_prod;
22258 fra.me.line = 4144;
22259 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___visit_all;
22260 fra.me.has_broke = 0;
22261 fra.me.REG_size = 3;
22262 fra.me.REG[0] = NIT_NULL;
22263 fra.me.REG[1] = NIT_NULL;
22264 fra.me.REG[2] = NIT_NULL;
22265 fra.me.REG[0] = p0;
22266 fra.me.REG[1] = p1;
22267 /* ./parser//parser_prod.nit:4146 */
22268 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22269 if (UNTAG_Bool(REGB0)) {
22270 } else {
22271 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4146);
22272 }
22273 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
22274 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22275 /* ./parser//parser_prod.nit:4147 */
22276 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22277 if (UNTAG_Bool(REGB0)) {
22278 } else {
22279 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4147);
22280 }
22281 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
22282 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22283 stack_frame_head = fra.me.prev;
22284 return;
22285 }
22286 void parser___parser_prod___AOrExpr___empty_init(val_t p0, int* init_table){
22287 int itpos135 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrExpr].i;
22288 struct {struct stack_frame_t me;} fra;
22289 val_t tmp;
22290 if (init_table[itpos135]) return;
22291 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22292 fra.me.file = LOCATE_parser___parser_prod;
22293 fra.me.line = 4151;
22294 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___empty_init;
22295 fra.me.has_broke = 0;
22296 fra.me.REG_size = 1;
22297 fra.me.REG[0] = NIT_NULL;
22298 fra.me.REG[0] = p0;
22299 stack_frame_head = fra.me.prev;
22300 init_table[itpos135] = 1;
22301 return;
22302 }
22303 void parser___parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t p1, val_t p2, int* init_table){
22304 int itpos136 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrExpr].i;
22305 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22306 val_t REGB0;
22307 val_t tmp;
22308 if (init_table[itpos136]) return;
22309 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22310 fra.me.file = LOCATE_parser___parser_prod;
22311 fra.me.line = 4153;
22312 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___init_aorexpr;
22313 fra.me.has_broke = 0;
22314 fra.me.REG_size = 4;
22315 fra.me.REG[0] = NIT_NULL;
22316 fra.me.REG[1] = NIT_NULL;
22317 fra.me.REG[2] = NIT_NULL;
22318 fra.me.REG[3] = NIT_NULL;
22319 fra.me.REG[0] = p0;
22320 fra.me.REG[1] = p1;
22321 fra.me.REG[2] = p2;
22322 /* ./parser//parser_prod.nit:4153 */
22323 fra.me.REG[3] = fra.me.REG[0];
22324 /* ./parser//parser_prod.nit:4158 */
22325 CALL_parser___parser_prod___AOrExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
22326 /* ./parser//parser_prod.nit:4159 */
22327 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22328 if (UNTAG_Bool(REGB0)) {
22329 } else {
22330 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4159);
22331 }
22332 ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
22333 /* ./parser//parser_prod.nit:4160 */
22334 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22335 if (UNTAG_Bool(REGB0)) {
22336 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4160);
22337 }
22338 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22339 /* ./parser//parser_prod.nit:4161 */
22340 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
22341 if (UNTAG_Bool(REGB0)) {
22342 } else {
22343 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4161);
22344 }
22345 ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
22346 /* ./parser//parser_prod.nit:4162 */
22347 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22348 if (UNTAG_Bool(REGB0)) {
22349 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4162);
22350 }
22351 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
22352 stack_frame_head = fra.me.prev;
22353 init_table[itpos136] = 1;
22354 return;
22355 }
22356 void parser___parser_prod___AOrExpr___replace_child(val_t p0, val_t p1, val_t p2){
22357 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22358 val_t REGB0;
22359 val_t REGB1;
22360 val_t tmp;
22361 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22362 fra.me.file = LOCATE_parser___parser_prod;
22363 fra.me.line = 4165;
22364 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___replace_child;
22365 fra.me.has_broke = 0;
22366 fra.me.REG_size = 4;
22367 fra.me.REG[0] = NIT_NULL;
22368 fra.me.REG[1] = NIT_NULL;
22369 fra.me.REG[2] = NIT_NULL;
22370 fra.me.REG[3] = NIT_NULL;
22371 fra.me.REG[0] = p0;
22372 fra.me.REG[1] = p1;
22373 fra.me.REG[2] = p2;
22374 /* ./parser//parser_prod.nit:4167 */
22375 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22376 if (UNTAG_Bool(REGB0)) {
22377 } else {
22378 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4167);
22379 }
22380 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]);
22381 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22382 if (UNTAG_Bool(REGB0)) {
22383 } else {
22384 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22385 REGB0 = REGB1;
22386 }
22387 if (UNTAG_Bool(REGB0)) {
22388 /* ./parser//parser_prod.nit:4168 */
22389 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22390 if (UNTAG_Bool(REGB0)) {
22391 } else {
22392 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22393 if (UNTAG_Bool(REGB1)) {
22394 REGB1 = TAG_Bool(false);
22395 REGB0 = REGB1;
22396 } else {
22397 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22398 REGB0 = REGB1;
22399 }
22400 }
22401 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22402 if (UNTAG_Bool(REGB0)) {
22403 /* ./parser//parser_prod.nit:4169 */
22404 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22405 if (UNTAG_Bool(REGB0)) {
22406 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4169);
22407 }
22408 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22409 /* ./parser//parser_prod.nit:4170 */
22410 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22411 if (UNTAG_Bool(REGB0)) {
22412 } else {
22413 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4170);
22414 }
22415 /* ./parser//parser_prod.nit:4171 */
22416 ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22417 } else {
22418 /* ./parser//parser_prod.nit:4173 */
22419 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4173);
22420 }
22421 /* ./parser//parser_prod.nit:4175 */
22422 goto label1;
22423 }
22424 /* ./parser//parser_prod.nit:4177 */
22425 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22426 if (UNTAG_Bool(REGB0)) {
22427 } else {
22428 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4177);
22429 }
22430 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]);
22431 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22432 if (UNTAG_Bool(REGB0)) {
22433 } else {
22434 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22435 REGB0 = REGB1;
22436 }
22437 if (UNTAG_Bool(REGB0)) {
22438 /* ./parser//parser_prod.nit:4178 */
22439 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22440 if (UNTAG_Bool(REGB0)) {
22441 } else {
22442 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22443 if (UNTAG_Bool(REGB1)) {
22444 REGB1 = TAG_Bool(false);
22445 REGB0 = REGB1;
22446 } else {
22447 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22448 REGB0 = REGB1;
22449 }
22450 }
22451 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22452 if (UNTAG_Bool(REGB0)) {
22453 /* ./parser//parser_prod.nit:4179 */
22454 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22455 if (UNTAG_Bool(REGB0)) {
22456 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4179);
22457 }
22458 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22459 /* ./parser//parser_prod.nit:4180 */
22460 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22461 if (UNTAG_Bool(REGB0)) {
22462 } else {
22463 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4180);
22464 }
22465 /* ./parser//parser_prod.nit:4181 */
22466 ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
22467 } else {
22468 /* ./parser//parser_prod.nit:4183 */
22469 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4183);
22470 }
22471 /* ./parser//parser_prod.nit:4185 */
22472 goto label1;
22473 }
22474 label1: while(0);
22475 stack_frame_head = fra.me.prev;
22476 return;
22477 }
22478 void parser___parser_prod___AOrExpr___visit_all(val_t p0, val_t p1){
22479 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22480 val_t REGB0;
22481 val_t tmp;
22482 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22483 fra.me.file = LOCATE_parser___parser_prod;
22484 fra.me.line = 4189;
22485 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___visit_all;
22486 fra.me.has_broke = 0;
22487 fra.me.REG_size = 3;
22488 fra.me.REG[0] = NIT_NULL;
22489 fra.me.REG[1] = NIT_NULL;
22490 fra.me.REG[2] = NIT_NULL;
22491 fra.me.REG[0] = p0;
22492 fra.me.REG[1] = p1;
22493 /* ./parser//parser_prod.nit:4191 */
22494 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22495 if (UNTAG_Bool(REGB0)) {
22496 } else {
22497 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4191);
22498 }
22499 fra.me.REG[2] = ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]);
22500 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22501 /* ./parser//parser_prod.nit:4192 */
22502 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22503 if (UNTAG_Bool(REGB0)) {
22504 } else {
22505 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4192);
22506 }
22507 fra.me.REG[0] = ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]);
22508 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22509 stack_frame_head = fra.me.prev;
22510 return;
22511 }
22512 void parser___parser_prod___AAndExpr___empty_init(val_t p0, int* init_table){
22513 int itpos137 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAndExpr].i;
22514 struct {struct stack_frame_t me;} fra;
22515 val_t tmp;
22516 if (init_table[itpos137]) return;
22517 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22518 fra.me.file = LOCATE_parser___parser_prod;
22519 fra.me.line = 4196;
22520 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___empty_init;
22521 fra.me.has_broke = 0;
22522 fra.me.REG_size = 1;
22523 fra.me.REG[0] = NIT_NULL;
22524 fra.me.REG[0] = p0;
22525 stack_frame_head = fra.me.prev;
22526 init_table[itpos137] = 1;
22527 return;
22528 }
22529 void parser___parser_prod___AAndExpr___init_aandexpr(val_t p0, val_t p1, val_t p2, int* init_table){
22530 int itpos138 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAndExpr].i;
22531 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22532 val_t REGB0;
22533 val_t tmp;
22534 if (init_table[itpos138]) return;
22535 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22536 fra.me.file = LOCATE_parser___parser_prod;
22537 fra.me.line = 4198;
22538 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___init_aandexpr;
22539 fra.me.has_broke = 0;
22540 fra.me.REG_size = 4;
22541 fra.me.REG[0] = NIT_NULL;
22542 fra.me.REG[1] = NIT_NULL;
22543 fra.me.REG[2] = NIT_NULL;
22544 fra.me.REG[3] = NIT_NULL;
22545 fra.me.REG[0] = p0;
22546 fra.me.REG[1] = p1;
22547 fra.me.REG[2] = p2;
22548 /* ./parser//parser_prod.nit:4198 */
22549 fra.me.REG[3] = fra.me.REG[0];
22550 /* ./parser//parser_prod.nit:4203 */
22551 CALL_parser___parser_prod___AAndExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
22552 /* ./parser//parser_prod.nit:4204 */
22553 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22554 if (UNTAG_Bool(REGB0)) {
22555 } else {
22556 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4204);
22557 }
22558 ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
22559 /* ./parser//parser_prod.nit:4205 */
22560 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22561 if (UNTAG_Bool(REGB0)) {
22562 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4205);
22563 }
22564 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22565 /* ./parser//parser_prod.nit:4206 */
22566 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
22567 if (UNTAG_Bool(REGB0)) {
22568 } else {
22569 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4206);
22570 }
22571 ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
22572 /* ./parser//parser_prod.nit:4207 */
22573 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22574 if (UNTAG_Bool(REGB0)) {
22575 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4207);
22576 }
22577 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
22578 stack_frame_head = fra.me.prev;
22579 init_table[itpos138] = 1;
22580 return;
22581 }
22582 void parser___parser_prod___AAndExpr___replace_child(val_t p0, val_t p1, val_t p2){
22583 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22584 val_t REGB0;
22585 val_t REGB1;
22586 val_t tmp;
22587 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22588 fra.me.file = LOCATE_parser___parser_prod;
22589 fra.me.line = 4210;
22590 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___replace_child;
22591 fra.me.has_broke = 0;
22592 fra.me.REG_size = 4;
22593 fra.me.REG[0] = NIT_NULL;
22594 fra.me.REG[1] = NIT_NULL;
22595 fra.me.REG[2] = NIT_NULL;
22596 fra.me.REG[3] = NIT_NULL;
22597 fra.me.REG[0] = p0;
22598 fra.me.REG[1] = p1;
22599 fra.me.REG[2] = p2;
22600 /* ./parser//parser_prod.nit:4212 */
22601 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22602 if (UNTAG_Bool(REGB0)) {
22603 } else {
22604 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4212);
22605 }
22606 fra.me.REG[3] = ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]);
22607 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22608 if (UNTAG_Bool(REGB0)) {
22609 } else {
22610 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22611 REGB0 = REGB1;
22612 }
22613 if (UNTAG_Bool(REGB0)) {
22614 /* ./parser//parser_prod.nit:4213 */
22615 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22616 if (UNTAG_Bool(REGB0)) {
22617 } else {
22618 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22619 if (UNTAG_Bool(REGB1)) {
22620 REGB1 = TAG_Bool(false);
22621 REGB0 = REGB1;
22622 } else {
22623 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22624 REGB0 = REGB1;
22625 }
22626 }
22627 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22628 if (UNTAG_Bool(REGB0)) {
22629 /* ./parser//parser_prod.nit:4214 */
22630 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22631 if (UNTAG_Bool(REGB0)) {
22632 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4214);
22633 }
22634 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22635 /* ./parser//parser_prod.nit:4215 */
22636 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22637 if (UNTAG_Bool(REGB0)) {
22638 } else {
22639 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4215);
22640 }
22641 /* ./parser//parser_prod.nit:4216 */
22642 ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22643 } else {
22644 /* ./parser//parser_prod.nit:4218 */
22645 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4218);
22646 }
22647 /* ./parser//parser_prod.nit:4220 */
22648 goto label1;
22649 }
22650 /* ./parser//parser_prod.nit:4222 */
22651 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22652 if (UNTAG_Bool(REGB0)) {
22653 } else {
22654 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4222);
22655 }
22656 fra.me.REG[3] = ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]);
22657 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22658 if (UNTAG_Bool(REGB0)) {
22659 } else {
22660 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22661 REGB0 = REGB1;
22662 }
22663 if (UNTAG_Bool(REGB0)) {
22664 /* ./parser//parser_prod.nit:4223 */
22665 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22666 if (UNTAG_Bool(REGB0)) {
22667 } else {
22668 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22669 if (UNTAG_Bool(REGB1)) {
22670 REGB1 = TAG_Bool(false);
22671 REGB0 = REGB1;
22672 } else {
22673 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22674 REGB0 = REGB1;
22675 }
22676 }
22677 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22678 if (UNTAG_Bool(REGB0)) {
22679 /* ./parser//parser_prod.nit:4224 */
22680 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22681 if (UNTAG_Bool(REGB0)) {
22682 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4224);
22683 }
22684 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22685 /* ./parser//parser_prod.nit:4225 */
22686 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22687 if (UNTAG_Bool(REGB0)) {
22688 } else {
22689 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4225);
22690 }
22691 /* ./parser//parser_prod.nit:4226 */
22692 ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
22693 } else {
22694 /* ./parser//parser_prod.nit:4228 */
22695 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4228);
22696 }
22697 /* ./parser//parser_prod.nit:4230 */
22698 goto label1;
22699 }
22700 label1: while(0);
22701 stack_frame_head = fra.me.prev;
22702 return;
22703 }
22704 void parser___parser_prod___AAndExpr___visit_all(val_t p0, val_t p1){
22705 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22706 val_t REGB0;
22707 val_t tmp;
22708 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22709 fra.me.file = LOCATE_parser___parser_prod;
22710 fra.me.line = 4234;
22711 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___visit_all;
22712 fra.me.has_broke = 0;
22713 fra.me.REG_size = 3;
22714 fra.me.REG[0] = NIT_NULL;
22715 fra.me.REG[1] = NIT_NULL;
22716 fra.me.REG[2] = NIT_NULL;
22717 fra.me.REG[0] = p0;
22718 fra.me.REG[1] = p1;
22719 /* ./parser//parser_prod.nit:4236 */
22720 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22721 if (UNTAG_Bool(REGB0)) {
22722 } else {
22723 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4236);
22724 }
22725 fra.me.REG[2] = ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]);
22726 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22727 /* ./parser//parser_prod.nit:4237 */
22728 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22729 if (UNTAG_Bool(REGB0)) {
22730 } else {
22731 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4237);
22732 }
22733 fra.me.REG[0] = ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]);
22734 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22735 stack_frame_head = fra.me.prev;
22736 return;
22737 }
22738 void parser___parser_prod___AOrElseExpr___empty_init(val_t p0, int* init_table){
22739 int itpos139 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrElseExpr].i;
22740 struct {struct stack_frame_t me;} fra;
22741 val_t tmp;
22742 if (init_table[itpos139]) return;
22743 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22744 fra.me.file = LOCATE_parser___parser_prod;
22745 fra.me.line = 4241;
22746 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___empty_init;
22747 fra.me.has_broke = 0;
22748 fra.me.REG_size = 1;
22749 fra.me.REG[0] = NIT_NULL;
22750 fra.me.REG[0] = p0;
22751 stack_frame_head = fra.me.prev;
22752 init_table[itpos139] = 1;
22753 return;
22754 }
22755 void parser___parser_prod___AOrElseExpr___init_aorelseexpr(val_t p0, val_t p1, val_t p2, int* init_table){
22756 int itpos140 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrElseExpr].i;
22757 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22758 val_t REGB0;
22759 val_t tmp;
22760 if (init_table[itpos140]) return;
22761 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22762 fra.me.file = LOCATE_parser___parser_prod;
22763 fra.me.line = 4243;
22764 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___init_aorelseexpr;
22765 fra.me.has_broke = 0;
22766 fra.me.REG_size = 4;
22767 fra.me.REG[0] = NIT_NULL;
22768 fra.me.REG[1] = NIT_NULL;
22769 fra.me.REG[2] = NIT_NULL;
22770 fra.me.REG[3] = NIT_NULL;
22771 fra.me.REG[0] = p0;
22772 fra.me.REG[1] = p1;
22773 fra.me.REG[2] = p2;
22774 /* ./parser//parser_prod.nit:4243 */
22775 fra.me.REG[3] = fra.me.REG[0];
22776 /* ./parser//parser_prod.nit:4248 */
22777 CALL_parser___parser_prod___AOrElseExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
22778 /* ./parser//parser_prod.nit:4249 */
22779 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22780 if (UNTAG_Bool(REGB0)) {
22781 } else {
22782 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4249);
22783 }
22784 ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
22785 /* ./parser//parser_prod.nit:4250 */
22786 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22787 if (UNTAG_Bool(REGB0)) {
22788 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4250);
22789 }
22790 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22791 /* ./parser//parser_prod.nit:4251 */
22792 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
22793 if (UNTAG_Bool(REGB0)) {
22794 } else {
22795 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4251);
22796 }
22797 ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
22798 /* ./parser//parser_prod.nit:4252 */
22799 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22800 if (UNTAG_Bool(REGB0)) {
22801 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4252);
22802 }
22803 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
22804 stack_frame_head = fra.me.prev;
22805 init_table[itpos140] = 1;
22806 return;
22807 }
22808 void parser___parser_prod___AOrElseExpr___replace_child(val_t p0, val_t p1, val_t p2){
22809 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22810 val_t REGB0;
22811 val_t REGB1;
22812 val_t tmp;
22813 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22814 fra.me.file = LOCATE_parser___parser_prod;
22815 fra.me.line = 4255;
22816 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___replace_child;
22817 fra.me.has_broke = 0;
22818 fra.me.REG_size = 4;
22819 fra.me.REG[0] = NIT_NULL;
22820 fra.me.REG[1] = NIT_NULL;
22821 fra.me.REG[2] = NIT_NULL;
22822 fra.me.REG[3] = NIT_NULL;
22823 fra.me.REG[0] = p0;
22824 fra.me.REG[1] = p1;
22825 fra.me.REG[2] = p2;
22826 /* ./parser//parser_prod.nit:4257 */
22827 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22828 if (UNTAG_Bool(REGB0)) {
22829 } else {
22830 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4257);
22831 }
22832 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]);
22833 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22834 if (UNTAG_Bool(REGB0)) {
22835 } else {
22836 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22837 REGB0 = REGB1;
22838 }
22839 if (UNTAG_Bool(REGB0)) {
22840 /* ./parser//parser_prod.nit:4258 */
22841 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22842 if (UNTAG_Bool(REGB0)) {
22843 } else {
22844 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22845 if (UNTAG_Bool(REGB1)) {
22846 REGB1 = TAG_Bool(false);
22847 REGB0 = REGB1;
22848 } else {
22849 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22850 REGB0 = REGB1;
22851 }
22852 }
22853 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22854 if (UNTAG_Bool(REGB0)) {
22855 /* ./parser//parser_prod.nit:4259 */
22856 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22857 if (UNTAG_Bool(REGB0)) {
22858 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4259);
22859 }
22860 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22861 /* ./parser//parser_prod.nit:4260 */
22862 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22863 if (UNTAG_Bool(REGB0)) {
22864 } else {
22865 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4260);
22866 }
22867 /* ./parser//parser_prod.nit:4261 */
22868 ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22869 } else {
22870 /* ./parser//parser_prod.nit:4263 */
22871 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4263);
22872 }
22873 /* ./parser//parser_prod.nit:4265 */
22874 goto label1;
22875 }
22876 /* ./parser//parser_prod.nit:4267 */
22877 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22878 if (UNTAG_Bool(REGB0)) {
22879 } else {
22880 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4267);
22881 }
22882 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]);
22883 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22884 if (UNTAG_Bool(REGB0)) {
22885 } else {
22886 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22887 REGB0 = REGB1;
22888 }
22889 if (UNTAG_Bool(REGB0)) {
22890 /* ./parser//parser_prod.nit:4268 */
22891 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22892 if (UNTAG_Bool(REGB0)) {
22893 } else {
22894 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22895 if (UNTAG_Bool(REGB1)) {
22896 REGB1 = TAG_Bool(false);
22897 REGB0 = REGB1;
22898 } else {
22899 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22900 REGB0 = REGB1;
22901 }
22902 }
22903 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22904 if (UNTAG_Bool(REGB0)) {
22905 /* ./parser//parser_prod.nit:4269 */
22906 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22907 if (UNTAG_Bool(REGB0)) {
22908 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4269);
22909 }
22910 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22911 /* ./parser//parser_prod.nit:4270 */
22912 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22913 if (UNTAG_Bool(REGB0)) {
22914 } else {
22915 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4270);
22916 }
22917 /* ./parser//parser_prod.nit:4271 */
22918 ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
22919 } else {
22920 /* ./parser//parser_prod.nit:4273 */
22921 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4273);
22922 }
22923 /* ./parser//parser_prod.nit:4275 */
22924 goto label1;
22925 }
22926 label1: while(0);
22927 stack_frame_head = fra.me.prev;
22928 return;
22929 }
22930 void parser___parser_prod___AOrElseExpr___visit_all(val_t p0, val_t p1){
22931 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22932 val_t REGB0;
22933 val_t tmp;
22934 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22935 fra.me.file = LOCATE_parser___parser_prod;
22936 fra.me.line = 4279;
22937 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___visit_all;
22938 fra.me.has_broke = 0;
22939 fra.me.REG_size = 3;
22940 fra.me.REG[0] = NIT_NULL;
22941 fra.me.REG[1] = NIT_NULL;
22942 fra.me.REG[2] = NIT_NULL;
22943 fra.me.REG[0] = p0;
22944 fra.me.REG[1] = p1;
22945 /* ./parser//parser_prod.nit:4281 */
22946 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22947 if (UNTAG_Bool(REGB0)) {
22948 } else {
22949 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4281);
22950 }
22951 fra.me.REG[2] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]);
22952 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22953 /* ./parser//parser_prod.nit:4282 */
22954 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22955 if (UNTAG_Bool(REGB0)) {
22956 } else {
22957 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4282);
22958 }
22959 fra.me.REG[0] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]);
22960 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22961 stack_frame_head = fra.me.prev;
22962 return;
22963 }
22964 void parser___parser_prod___ANotExpr___empty_init(val_t p0, int* init_table){
22965 int itpos141 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANotExpr].i;
22966 struct {struct stack_frame_t me;} fra;
22967 val_t tmp;
22968 if (init_table[itpos141]) return;
22969 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22970 fra.me.file = LOCATE_parser___parser_prod;
22971 fra.me.line = 4286;
22972 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___empty_init;
22973 fra.me.has_broke = 0;
22974 fra.me.REG_size = 1;
22975 fra.me.REG[0] = NIT_NULL;
22976 fra.me.REG[0] = p0;
22977 stack_frame_head = fra.me.prev;
22978 init_table[itpos141] = 1;
22979 return;
22980 }
22981 void parser___parser_prod___ANotExpr___init_anotexpr(val_t p0, val_t p1, val_t p2, int* init_table){
22982 int itpos142 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANotExpr].i;
22983 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22984 val_t REGB0;
22985 val_t tmp;
22986 if (init_table[itpos142]) return;
22987 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22988 fra.me.file = LOCATE_parser___parser_prod;
22989 fra.me.line = 4288;
22990 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___init_anotexpr;
22991 fra.me.has_broke = 0;
22992 fra.me.REG_size = 4;
22993 fra.me.REG[0] = NIT_NULL;
22994 fra.me.REG[1] = NIT_NULL;
22995 fra.me.REG[2] = NIT_NULL;
22996 fra.me.REG[3] = NIT_NULL;
22997 fra.me.REG[0] = p0;
22998 fra.me.REG[1] = p1;
22999 fra.me.REG[2] = p2;
23000 /* ./parser//parser_prod.nit:4288 */
23001 fra.me.REG[3] = fra.me.REG[0];
23002 /* ./parser//parser_prod.nit:4293 */
23003 CALL_parser___parser_prod___ANotExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
23004 /* ./parser//parser_prod.nit:4294 */
23005 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23006 if (UNTAG_Bool(REGB0)) {
23007 } else {
23008 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4294);
23009 }
23010 ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[3]) = fra.me.REG[1];
23011 /* ./parser//parser_prod.nit:4295 */
23012 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23013 if (UNTAG_Bool(REGB0)) {
23014 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4295);
23015 }
23016 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23017 /* ./parser//parser_prod.nit:4296 */
23018 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23019 if (UNTAG_Bool(REGB0)) {
23020 } else {
23021 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4296);
23022 }
23023 ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
23024 /* ./parser//parser_prod.nit:4297 */
23025 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23026 if (UNTAG_Bool(REGB0)) {
23027 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4297);
23028 }
23029 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
23030 stack_frame_head = fra.me.prev;
23031 init_table[itpos142] = 1;
23032 return;
23033 }
23034 void parser___parser_prod___ANotExpr___replace_child(val_t p0, val_t p1, val_t p2){
23035 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23036 val_t REGB0;
23037 val_t REGB1;
23038 val_t tmp;
23039 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23040 fra.me.file = LOCATE_parser___parser_prod;
23041 fra.me.line = 4300;
23042 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___replace_child;
23043 fra.me.has_broke = 0;
23044 fra.me.REG_size = 4;
23045 fra.me.REG[0] = NIT_NULL;
23046 fra.me.REG[1] = NIT_NULL;
23047 fra.me.REG[2] = NIT_NULL;
23048 fra.me.REG[3] = NIT_NULL;
23049 fra.me.REG[0] = p0;
23050 fra.me.REG[1] = p1;
23051 fra.me.REG[2] = p2;
23052 /* ./parser//parser_prod.nit:4302 */
23053 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
23054 if (UNTAG_Bool(REGB0)) {
23055 } else {
23056 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 4302);
23057 }
23058 fra.me.REG[3] = ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]);
23059 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23060 if (UNTAG_Bool(REGB0)) {
23061 } else {
23062 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23063 REGB0 = REGB1;
23064 }
23065 if (UNTAG_Bool(REGB0)) {
23066 /* ./parser//parser_prod.nit:4303 */
23067 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23068 if (UNTAG_Bool(REGB0)) {
23069 } else {
23070 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23071 if (UNTAG_Bool(REGB1)) {
23072 REGB1 = TAG_Bool(false);
23073 REGB0 = REGB1;
23074 } else {
23075 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23076 REGB0 = REGB1;
23077 }
23078 }
23079 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23080 if (UNTAG_Bool(REGB0)) {
23081 /* ./parser//parser_prod.nit:4304 */
23082 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23083 if (UNTAG_Bool(REGB0)) {
23084 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4304);
23085 }
23086 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23087 /* ./parser//parser_prod.nit:4305 */
23088 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*/;
23089 if (UNTAG_Bool(REGB0)) {
23090 } else {
23091 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4305);
23092 }
23093 /* ./parser//parser_prod.nit:4306 */
23094 ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
23095 } else {
23096 /* ./parser//parser_prod.nit:4308 */
23097 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4308);
23098 }
23099 /* ./parser//parser_prod.nit:4310 */
23100 goto label1;
23101 }
23102 /* ./parser//parser_prod.nit:4312 */
23103 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23104 if (UNTAG_Bool(REGB0)) {
23105 } else {
23106 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4312);
23107 }
23108 fra.me.REG[3] = ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]);
23109 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23110 if (UNTAG_Bool(REGB0)) {
23111 } else {
23112 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23113 REGB0 = REGB1;
23114 }
23115 if (UNTAG_Bool(REGB0)) {
23116 /* ./parser//parser_prod.nit:4313 */
23117 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23118 if (UNTAG_Bool(REGB0)) {
23119 } else {
23120 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23121 if (UNTAG_Bool(REGB1)) {
23122 REGB1 = TAG_Bool(false);
23123 REGB0 = REGB1;
23124 } else {
23125 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23126 REGB0 = REGB1;
23127 }
23128 }
23129 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23130 if (UNTAG_Bool(REGB0)) {
23131 /* ./parser//parser_prod.nit:4314 */
23132 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23133 if (UNTAG_Bool(REGB0)) {
23134 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4314);
23135 }
23136 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23137 /* ./parser//parser_prod.nit:4315 */
23138 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23139 if (UNTAG_Bool(REGB0)) {
23140 } else {
23141 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4315);
23142 }
23143 /* ./parser//parser_prod.nit:4316 */
23144 ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23145 } else {
23146 /* ./parser//parser_prod.nit:4318 */
23147 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4318);
23148 }
23149 /* ./parser//parser_prod.nit:4320 */
23150 goto label1;
23151 }
23152 label1: while(0);
23153 stack_frame_head = fra.me.prev;
23154 return;
23155 }
23156 void parser___parser_prod___ANotExpr___visit_all(val_t p0, val_t p1){
23157 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23158 val_t REGB0;
23159 val_t tmp;
23160 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23161 fra.me.file = LOCATE_parser___parser_prod;
23162 fra.me.line = 4324;
23163 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___visit_all;
23164 fra.me.has_broke = 0;
23165 fra.me.REG_size = 3;
23166 fra.me.REG[0] = NIT_NULL;
23167 fra.me.REG[1] = NIT_NULL;
23168 fra.me.REG[2] = NIT_NULL;
23169 fra.me.REG[0] = p0;
23170 fra.me.REG[1] = p1;
23171 /* ./parser//parser_prod.nit:4326 */
23172 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
23173 if (UNTAG_Bool(REGB0)) {
23174 } else {
23175 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 4326);
23176 }
23177 fra.me.REG[2] = ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]);
23178 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23179 /* ./parser//parser_prod.nit:4327 */
23180 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23181 if (UNTAG_Bool(REGB0)) {
23182 } else {
23183 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4327);
23184 }
23185 fra.me.REG[0] = ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]);
23186 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23187 stack_frame_head = fra.me.prev;
23188 return;
23189 }
23190 void parser___parser_prod___AEqExpr___empty_init(val_t p0, int* init_table){
23191 int itpos143 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqExpr].i;
23192 struct {struct stack_frame_t me;} fra;
23193 val_t tmp;
23194 if (init_table[itpos143]) return;
23195 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23196 fra.me.file = LOCATE_parser___parser_prod;
23197 fra.me.line = 4331;
23198 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___empty_init;
23199 fra.me.has_broke = 0;
23200 fra.me.REG_size = 1;
23201 fra.me.REG[0] = NIT_NULL;
23202 fra.me.REG[0] = p0;
23203 stack_frame_head = fra.me.prev;
23204 init_table[itpos143] = 1;
23205 return;
23206 }
23207 void parser___parser_prod___AEqExpr___init_aeqexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23208 int itpos144 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqExpr].i;
23209 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23210 val_t REGB0;
23211 val_t tmp;
23212 if (init_table[itpos144]) return;
23213 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23214 fra.me.file = LOCATE_parser___parser_prod;
23215 fra.me.line = 4333;
23216 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___init_aeqexpr;
23217 fra.me.has_broke = 0;
23218 fra.me.REG_size = 4;
23219 fra.me.REG[0] = NIT_NULL;
23220 fra.me.REG[1] = NIT_NULL;
23221 fra.me.REG[2] = NIT_NULL;
23222 fra.me.REG[3] = NIT_NULL;
23223 fra.me.REG[0] = p0;
23224 fra.me.REG[1] = p1;
23225 fra.me.REG[2] = p2;
23226 /* ./parser//parser_prod.nit:4333 */
23227 fra.me.REG[3] = fra.me.REG[0];
23228 /* ./parser//parser_prod.nit:4338 */
23229 CALL_parser___parser_prod___AEqExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
23230 /* ./parser//parser_prod.nit:4339 */
23231 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23232 if (UNTAG_Bool(REGB0)) {
23233 } else {
23234 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4339);
23235 }
23236 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
23237 /* ./parser//parser_prod.nit:4340 */
23238 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23239 if (UNTAG_Bool(REGB0)) {
23240 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4340);
23241 }
23242 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23243 /* ./parser//parser_prod.nit:4341 */
23244 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23245 if (UNTAG_Bool(REGB0)) {
23246 } else {
23247 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4341);
23248 }
23249 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
23250 /* ./parser//parser_prod.nit:4342 */
23251 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23252 if (UNTAG_Bool(REGB0)) {
23253 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4342);
23254 }
23255 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
23256 stack_frame_head = fra.me.prev;
23257 init_table[itpos144] = 1;
23258 return;
23259 }
23260 void parser___parser_prod___AEqExpr___replace_child(val_t p0, val_t p1, val_t p2){
23261 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23262 val_t REGB0;
23263 val_t REGB1;
23264 val_t tmp;
23265 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23266 fra.me.file = LOCATE_parser___parser_prod;
23267 fra.me.line = 4345;
23268 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___replace_child;
23269 fra.me.has_broke = 0;
23270 fra.me.REG_size = 4;
23271 fra.me.REG[0] = NIT_NULL;
23272 fra.me.REG[1] = NIT_NULL;
23273 fra.me.REG[2] = NIT_NULL;
23274 fra.me.REG[3] = NIT_NULL;
23275 fra.me.REG[0] = p0;
23276 fra.me.REG[1] = p1;
23277 fra.me.REG[2] = p2;
23278 /* ./parser//parser_prod.nit:4347 */
23279 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23280 if (UNTAG_Bool(REGB0)) {
23281 } else {
23282 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4347);
23283 }
23284 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23285 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23286 if (UNTAG_Bool(REGB0)) {
23287 } else {
23288 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23289 REGB0 = REGB1;
23290 }
23291 if (UNTAG_Bool(REGB0)) {
23292 /* ./parser//parser_prod.nit:4348 */
23293 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23294 if (UNTAG_Bool(REGB0)) {
23295 } else {
23296 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23297 if (UNTAG_Bool(REGB1)) {
23298 REGB1 = TAG_Bool(false);
23299 REGB0 = REGB1;
23300 } else {
23301 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23302 REGB0 = REGB1;
23303 }
23304 }
23305 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23306 if (UNTAG_Bool(REGB0)) {
23307 /* ./parser//parser_prod.nit:4349 */
23308 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23309 if (UNTAG_Bool(REGB0)) {
23310 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4349);
23311 }
23312 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23313 /* ./parser//parser_prod.nit:4350 */
23314 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23315 if (UNTAG_Bool(REGB0)) {
23316 } else {
23317 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4350);
23318 }
23319 /* ./parser//parser_prod.nit:4351 */
23320 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23321 } else {
23322 /* ./parser//parser_prod.nit:4353 */
23323 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4353);
23324 }
23325 /* ./parser//parser_prod.nit:4355 */
23326 goto label1;
23327 }
23328 /* ./parser//parser_prod.nit:4357 */
23329 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23330 if (UNTAG_Bool(REGB0)) {
23331 } else {
23332 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4357);
23333 }
23334 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23335 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23336 if (UNTAG_Bool(REGB0)) {
23337 } else {
23338 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23339 REGB0 = REGB1;
23340 }
23341 if (UNTAG_Bool(REGB0)) {
23342 /* ./parser//parser_prod.nit:4358 */
23343 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23344 if (UNTAG_Bool(REGB0)) {
23345 } else {
23346 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23347 if (UNTAG_Bool(REGB1)) {
23348 REGB1 = TAG_Bool(false);
23349 REGB0 = REGB1;
23350 } else {
23351 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23352 REGB0 = REGB1;
23353 }
23354 }
23355 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23356 if (UNTAG_Bool(REGB0)) {
23357 /* ./parser//parser_prod.nit:4359 */
23358 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23359 if (UNTAG_Bool(REGB0)) {
23360 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4359);
23361 }
23362 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23363 /* ./parser//parser_prod.nit:4360 */
23364 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23365 if (UNTAG_Bool(REGB0)) {
23366 } else {
23367 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4360);
23368 }
23369 /* ./parser//parser_prod.nit:4361 */
23370 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23371 } else {
23372 /* ./parser//parser_prod.nit:4363 */
23373 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4363);
23374 }
23375 /* ./parser//parser_prod.nit:4365 */
23376 goto label1;
23377 }
23378 label1: while(0);
23379 stack_frame_head = fra.me.prev;
23380 return;
23381 }
23382 void parser___parser_prod___AEqExpr___visit_all(val_t p0, val_t p1){
23383 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23384 val_t REGB0;
23385 val_t tmp;
23386 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23387 fra.me.file = LOCATE_parser___parser_prod;
23388 fra.me.line = 4369;
23389 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___visit_all;
23390 fra.me.has_broke = 0;
23391 fra.me.REG_size = 3;
23392 fra.me.REG[0] = NIT_NULL;
23393 fra.me.REG[1] = NIT_NULL;
23394 fra.me.REG[2] = NIT_NULL;
23395 fra.me.REG[0] = p0;
23396 fra.me.REG[1] = p1;
23397 /* ./parser//parser_prod.nit:4371 */
23398 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23399 if (UNTAG_Bool(REGB0)) {
23400 } else {
23401 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4371);
23402 }
23403 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23404 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23405 /* ./parser//parser_prod.nit:4372 */
23406 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23407 if (UNTAG_Bool(REGB0)) {
23408 } else {
23409 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4372);
23410 }
23411 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23412 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23413 stack_frame_head = fra.me.prev;
23414 return;
23415 }
23416 void parser___parser_prod___AEeExpr___empty_init(val_t p0, int* init_table){
23417 int itpos145 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEeExpr].i;
23418 struct {struct stack_frame_t me;} fra;
23419 val_t tmp;
23420 if (init_table[itpos145]) return;
23421 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23422 fra.me.file = LOCATE_parser___parser_prod;
23423 fra.me.line = 4376;
23424 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___empty_init;
23425 fra.me.has_broke = 0;
23426 fra.me.REG_size = 1;
23427 fra.me.REG[0] = NIT_NULL;
23428 fra.me.REG[0] = p0;
23429 stack_frame_head = fra.me.prev;
23430 init_table[itpos145] = 1;
23431 return;
23432 }
23433 void parser___parser_prod___AEeExpr___init_aeeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23434 int itpos146 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEeExpr].i;
23435 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23436 val_t REGB0;
23437 val_t tmp;
23438 if (init_table[itpos146]) return;
23439 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23440 fra.me.file = LOCATE_parser___parser_prod;
23441 fra.me.line = 4378;
23442 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___init_aeeexpr;
23443 fra.me.has_broke = 0;
23444 fra.me.REG_size = 4;
23445 fra.me.REG[0] = NIT_NULL;
23446 fra.me.REG[1] = NIT_NULL;
23447 fra.me.REG[2] = NIT_NULL;
23448 fra.me.REG[3] = NIT_NULL;
23449 fra.me.REG[0] = p0;
23450 fra.me.REG[1] = p1;
23451 fra.me.REG[2] = p2;
23452 /* ./parser//parser_prod.nit:4378 */
23453 fra.me.REG[3] = fra.me.REG[0];
23454 /* ./parser//parser_prod.nit:4383 */
23455 CALL_parser___parser_prod___AEeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
23456 /* ./parser//parser_prod.nit:4384 */
23457 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23458 if (UNTAG_Bool(REGB0)) {
23459 } else {
23460 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4384);
23461 }
23462 ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
23463 /* ./parser//parser_prod.nit:4385 */
23464 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23465 if (UNTAG_Bool(REGB0)) {
23466 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4385);
23467 }
23468 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23469 /* ./parser//parser_prod.nit:4386 */
23470 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23471 if (UNTAG_Bool(REGB0)) {
23472 } else {
23473 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4386);
23474 }
23475 ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
23476 /* ./parser//parser_prod.nit:4387 */
23477 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23478 if (UNTAG_Bool(REGB0)) {
23479 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4387);
23480 }
23481 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
23482 stack_frame_head = fra.me.prev;
23483 init_table[itpos146] = 1;
23484 return;
23485 }
23486 void parser___parser_prod___AEeExpr___replace_child(val_t p0, val_t p1, val_t p2){
23487 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23488 val_t REGB0;
23489 val_t REGB1;
23490 val_t tmp;
23491 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23492 fra.me.file = LOCATE_parser___parser_prod;
23493 fra.me.line = 4390;
23494 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___replace_child;
23495 fra.me.has_broke = 0;
23496 fra.me.REG_size = 4;
23497 fra.me.REG[0] = NIT_NULL;
23498 fra.me.REG[1] = NIT_NULL;
23499 fra.me.REG[2] = NIT_NULL;
23500 fra.me.REG[3] = NIT_NULL;
23501 fra.me.REG[0] = p0;
23502 fra.me.REG[1] = p1;
23503 fra.me.REG[2] = p2;
23504 /* ./parser//parser_prod.nit:4392 */
23505 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23506 if (UNTAG_Bool(REGB0)) {
23507 } else {
23508 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4392);
23509 }
23510 fra.me.REG[3] = ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]);
23511 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23512 if (UNTAG_Bool(REGB0)) {
23513 } else {
23514 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23515 REGB0 = REGB1;
23516 }
23517 if (UNTAG_Bool(REGB0)) {
23518 /* ./parser//parser_prod.nit:4393 */
23519 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23520 if (UNTAG_Bool(REGB0)) {
23521 } else {
23522 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23523 if (UNTAG_Bool(REGB1)) {
23524 REGB1 = TAG_Bool(false);
23525 REGB0 = REGB1;
23526 } else {
23527 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23528 REGB0 = REGB1;
23529 }
23530 }
23531 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23532 if (UNTAG_Bool(REGB0)) {
23533 /* ./parser//parser_prod.nit:4394 */
23534 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23535 if (UNTAG_Bool(REGB0)) {
23536 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4394);
23537 }
23538 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23539 /* ./parser//parser_prod.nit:4395 */
23540 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23541 if (UNTAG_Bool(REGB0)) {
23542 } else {
23543 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4395);
23544 }
23545 /* ./parser//parser_prod.nit:4396 */
23546 ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23547 } else {
23548 /* ./parser//parser_prod.nit:4398 */
23549 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4398);
23550 }
23551 /* ./parser//parser_prod.nit:4400 */
23552 goto label1;
23553 }
23554 /* ./parser//parser_prod.nit:4402 */
23555 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23556 if (UNTAG_Bool(REGB0)) {
23557 } else {
23558 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4402);
23559 }
23560 fra.me.REG[3] = ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]);
23561 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23562 if (UNTAG_Bool(REGB0)) {
23563 } else {
23564 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23565 REGB0 = REGB1;
23566 }
23567 if (UNTAG_Bool(REGB0)) {
23568 /* ./parser//parser_prod.nit:4403 */
23569 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23570 if (UNTAG_Bool(REGB0)) {
23571 } else {
23572 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23573 if (UNTAG_Bool(REGB1)) {
23574 REGB1 = TAG_Bool(false);
23575 REGB0 = REGB1;
23576 } else {
23577 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23578 REGB0 = REGB1;
23579 }
23580 }
23581 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23582 if (UNTAG_Bool(REGB0)) {
23583 /* ./parser//parser_prod.nit:4404 */
23584 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23585 if (UNTAG_Bool(REGB0)) {
23586 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4404);
23587 }
23588 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23589 /* ./parser//parser_prod.nit:4405 */
23590 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23591 if (UNTAG_Bool(REGB0)) {
23592 } else {
23593 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4405);
23594 }
23595 /* ./parser//parser_prod.nit:4406 */
23596 ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23597 } else {
23598 /* ./parser//parser_prod.nit:4408 */
23599 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4408);
23600 }
23601 /* ./parser//parser_prod.nit:4410 */
23602 goto label1;
23603 }
23604 label1: while(0);
23605 stack_frame_head = fra.me.prev;
23606 return;
23607 }
23608 void parser___parser_prod___AEeExpr___visit_all(val_t p0, val_t p1){
23609 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23610 val_t REGB0;
23611 val_t tmp;
23612 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23613 fra.me.file = LOCATE_parser___parser_prod;
23614 fra.me.line = 4414;
23615 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___visit_all;
23616 fra.me.has_broke = 0;
23617 fra.me.REG_size = 3;
23618 fra.me.REG[0] = NIT_NULL;
23619 fra.me.REG[1] = NIT_NULL;
23620 fra.me.REG[2] = NIT_NULL;
23621 fra.me.REG[0] = p0;
23622 fra.me.REG[1] = p1;
23623 /* ./parser//parser_prod.nit:4416 */
23624 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23625 if (UNTAG_Bool(REGB0)) {
23626 } else {
23627 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4416);
23628 }
23629 fra.me.REG[2] = ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]);
23630 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23631 /* ./parser//parser_prod.nit:4417 */
23632 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23633 if (UNTAG_Bool(REGB0)) {
23634 } else {
23635 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4417);
23636 }
23637 fra.me.REG[0] = ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]);
23638 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23639 stack_frame_head = fra.me.prev;
23640 return;
23641 }
23642 void parser___parser_prod___ANeExpr___empty_init(val_t p0, int* init_table){
23643 int itpos147 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeExpr].i;
23644 struct {struct stack_frame_t me;} fra;
23645 val_t tmp;
23646 if (init_table[itpos147]) return;
23647 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23648 fra.me.file = LOCATE_parser___parser_prod;
23649 fra.me.line = 4421;
23650 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___empty_init;
23651 fra.me.has_broke = 0;
23652 fra.me.REG_size = 1;
23653 fra.me.REG[0] = NIT_NULL;
23654 fra.me.REG[0] = p0;
23655 stack_frame_head = fra.me.prev;
23656 init_table[itpos147] = 1;
23657 return;
23658 }
23659 void parser___parser_prod___ANeExpr___init_aneexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23660 int itpos148 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeExpr].i;
23661 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23662 val_t REGB0;
23663 val_t tmp;
23664 if (init_table[itpos148]) return;
23665 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23666 fra.me.file = LOCATE_parser___parser_prod;
23667 fra.me.line = 4423;
23668 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___init_aneexpr;
23669 fra.me.has_broke = 0;
23670 fra.me.REG_size = 4;
23671 fra.me.REG[0] = NIT_NULL;
23672 fra.me.REG[1] = NIT_NULL;
23673 fra.me.REG[2] = NIT_NULL;
23674 fra.me.REG[3] = NIT_NULL;
23675 fra.me.REG[0] = p0;
23676 fra.me.REG[1] = p1;
23677 fra.me.REG[2] = p2;
23678 /* ./parser//parser_prod.nit:4423 */
23679 fra.me.REG[3] = fra.me.REG[0];
23680 /* ./parser//parser_prod.nit:4428 */
23681 CALL_parser___parser_prod___ANeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
23682 /* ./parser//parser_prod.nit:4429 */
23683 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23684 if (UNTAG_Bool(REGB0)) {
23685 } else {
23686 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4429);
23687 }
23688 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
23689 /* ./parser//parser_prod.nit:4430 */
23690 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23691 if (UNTAG_Bool(REGB0)) {
23692 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4430);
23693 }
23694 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23695 /* ./parser//parser_prod.nit:4431 */
23696 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23697 if (UNTAG_Bool(REGB0)) {
23698 } else {
23699 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4431);
23700 }
23701 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
23702 /* ./parser//parser_prod.nit:4432 */
23703 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23704 if (UNTAG_Bool(REGB0)) {
23705 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4432);
23706 }
23707 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
23708 stack_frame_head = fra.me.prev;
23709 init_table[itpos148] = 1;
23710 return;
23711 }
23712 void parser___parser_prod___ANeExpr___replace_child(val_t p0, val_t p1, val_t p2){
23713 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23714 val_t REGB0;
23715 val_t REGB1;
23716 val_t tmp;
23717 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23718 fra.me.file = LOCATE_parser___parser_prod;
23719 fra.me.line = 4435;
23720 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___replace_child;
23721 fra.me.has_broke = 0;
23722 fra.me.REG_size = 4;
23723 fra.me.REG[0] = NIT_NULL;
23724 fra.me.REG[1] = NIT_NULL;
23725 fra.me.REG[2] = NIT_NULL;
23726 fra.me.REG[3] = NIT_NULL;
23727 fra.me.REG[0] = p0;
23728 fra.me.REG[1] = p1;
23729 fra.me.REG[2] = p2;
23730 /* ./parser//parser_prod.nit:4437 */
23731 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23732 if (UNTAG_Bool(REGB0)) {
23733 } else {
23734 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4437);
23735 }
23736 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23737 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23738 if (UNTAG_Bool(REGB0)) {
23739 } else {
23740 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23741 REGB0 = REGB1;
23742 }
23743 if (UNTAG_Bool(REGB0)) {
23744 /* ./parser//parser_prod.nit:4438 */
23745 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23746 if (UNTAG_Bool(REGB0)) {
23747 } else {
23748 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23749 if (UNTAG_Bool(REGB1)) {
23750 REGB1 = TAG_Bool(false);
23751 REGB0 = REGB1;
23752 } else {
23753 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23754 REGB0 = REGB1;
23755 }
23756 }
23757 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23758 if (UNTAG_Bool(REGB0)) {
23759 /* ./parser//parser_prod.nit:4439 */
23760 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23761 if (UNTAG_Bool(REGB0)) {
23762 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4439);
23763 }
23764 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23765 /* ./parser//parser_prod.nit:4440 */
23766 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23767 if (UNTAG_Bool(REGB0)) {
23768 } else {
23769 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4440);
23770 }
23771 /* ./parser//parser_prod.nit:4441 */
23772 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23773 } else {
23774 /* ./parser//parser_prod.nit:4443 */
23775 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4443);
23776 }
23777 /* ./parser//parser_prod.nit:4445 */
23778 goto label1;
23779 }
23780 /* ./parser//parser_prod.nit:4447 */
23781 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23782 if (UNTAG_Bool(REGB0)) {
23783 } else {
23784 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4447);
23785 }
23786 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23787 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23788 if (UNTAG_Bool(REGB0)) {
23789 } else {
23790 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23791 REGB0 = REGB1;
23792 }
23793 if (UNTAG_Bool(REGB0)) {
23794 /* ./parser//parser_prod.nit:4448 */
23795 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23796 if (UNTAG_Bool(REGB0)) {
23797 } else {
23798 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23799 if (UNTAG_Bool(REGB1)) {
23800 REGB1 = TAG_Bool(false);
23801 REGB0 = REGB1;
23802 } else {
23803 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23804 REGB0 = REGB1;
23805 }
23806 }
23807 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23808 if (UNTAG_Bool(REGB0)) {
23809 /* ./parser//parser_prod.nit:4449 */
23810 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23811 if (UNTAG_Bool(REGB0)) {
23812 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4449);
23813 }
23814 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23815 /* ./parser//parser_prod.nit:4450 */
23816 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23817 if (UNTAG_Bool(REGB0)) {
23818 } else {
23819 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4450);
23820 }
23821 /* ./parser//parser_prod.nit:4451 */
23822 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23823 } else {
23824 /* ./parser//parser_prod.nit:4453 */
23825 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4453);
23826 }
23827 /* ./parser//parser_prod.nit:4455 */
23828 goto label1;
23829 }
23830 label1: while(0);
23831 stack_frame_head = fra.me.prev;
23832 return;
23833 }
23834 void parser___parser_prod___ANeExpr___visit_all(val_t p0, val_t p1){
23835 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23836 val_t REGB0;
23837 val_t tmp;
23838 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23839 fra.me.file = LOCATE_parser___parser_prod;
23840 fra.me.line = 4459;
23841 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___visit_all;
23842 fra.me.has_broke = 0;
23843 fra.me.REG_size = 3;
23844 fra.me.REG[0] = NIT_NULL;
23845 fra.me.REG[1] = NIT_NULL;
23846 fra.me.REG[2] = NIT_NULL;
23847 fra.me.REG[0] = p0;
23848 fra.me.REG[1] = p1;
23849 /* ./parser//parser_prod.nit:4461 */
23850 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23851 if (UNTAG_Bool(REGB0)) {
23852 } else {
23853 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4461);
23854 }
23855 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23856 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23857 /* ./parser//parser_prod.nit:4462 */
23858 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23859 if (UNTAG_Bool(REGB0)) {
23860 } else {
23861 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4462);
23862 }
23863 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23864 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23865 stack_frame_head = fra.me.prev;
23866 return;
23867 }
23868 void parser___parser_prod___ALtExpr___empty_init(val_t p0, int* init_table){
23869 int itpos149 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtExpr].i;
23870 struct {struct stack_frame_t me;} fra;
23871 val_t tmp;
23872 if (init_table[itpos149]) return;
23873 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23874 fra.me.file = LOCATE_parser___parser_prod;
23875 fra.me.line = 4466;
23876 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___empty_init;
23877 fra.me.has_broke = 0;
23878 fra.me.REG_size = 1;
23879 fra.me.REG[0] = NIT_NULL;
23880 fra.me.REG[0] = p0;
23881 stack_frame_head = fra.me.prev;
23882 init_table[itpos149] = 1;
23883 return;
23884 }
23885 void parser___parser_prod___ALtExpr___init_altexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23886 int itpos150 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtExpr].i;
23887 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23888 val_t REGB0;
23889 val_t tmp;
23890 if (init_table[itpos150]) return;
23891 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23892 fra.me.file = LOCATE_parser___parser_prod;
23893 fra.me.line = 4468;
23894 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___init_altexpr;
23895 fra.me.has_broke = 0;
23896 fra.me.REG_size = 4;
23897 fra.me.REG[0] = NIT_NULL;
23898 fra.me.REG[1] = NIT_NULL;
23899 fra.me.REG[2] = NIT_NULL;
23900 fra.me.REG[3] = NIT_NULL;
23901 fra.me.REG[0] = p0;
23902 fra.me.REG[1] = p1;
23903 fra.me.REG[2] = p2;
23904 /* ./parser//parser_prod.nit:4468 */
23905 fra.me.REG[3] = fra.me.REG[0];
23906 /* ./parser//parser_prod.nit:4473 */
23907 CALL_parser___parser_prod___ALtExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
23908 /* ./parser//parser_prod.nit:4474 */
23909 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23910 if (UNTAG_Bool(REGB0)) {
23911 } else {
23912 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4474);
23913 }
23914 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
23915 /* ./parser//parser_prod.nit:4475 */
23916 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23917 if (UNTAG_Bool(REGB0)) {
23918 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4475);
23919 }
23920 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23921 /* ./parser//parser_prod.nit:4476 */
23922 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23923 if (UNTAG_Bool(REGB0)) {
23924 } else {
23925 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4476);
23926 }
23927 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
23928 /* ./parser//parser_prod.nit:4477 */
23929 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23930 if (UNTAG_Bool(REGB0)) {
23931 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4477);
23932 }
23933 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
23934 stack_frame_head = fra.me.prev;
23935 init_table[itpos150] = 1;
23936 return;
23937 }
23938 void parser___parser_prod___ALtExpr___replace_child(val_t p0, val_t p1, val_t p2){
23939 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23940 val_t REGB0;
23941 val_t REGB1;
23942 val_t tmp;
23943 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23944 fra.me.file = LOCATE_parser___parser_prod;
23945 fra.me.line = 4480;
23946 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___replace_child;
23947 fra.me.has_broke = 0;
23948 fra.me.REG_size = 4;
23949 fra.me.REG[0] = NIT_NULL;
23950 fra.me.REG[1] = NIT_NULL;
23951 fra.me.REG[2] = NIT_NULL;
23952 fra.me.REG[3] = NIT_NULL;
23953 fra.me.REG[0] = p0;
23954 fra.me.REG[1] = p1;
23955 fra.me.REG[2] = p2;
23956 /* ./parser//parser_prod.nit:4482 */
23957 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23958 if (UNTAG_Bool(REGB0)) {
23959 } else {
23960 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4482);
23961 }
23962 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23963 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23964 if (UNTAG_Bool(REGB0)) {
23965 } else {
23966 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23967 REGB0 = REGB1;
23968 }
23969 if (UNTAG_Bool(REGB0)) {
23970 /* ./parser//parser_prod.nit:4483 */
23971 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23972 if (UNTAG_Bool(REGB0)) {
23973 } else {
23974 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23975 if (UNTAG_Bool(REGB1)) {
23976 REGB1 = TAG_Bool(false);
23977 REGB0 = REGB1;
23978 } else {
23979 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23980 REGB0 = REGB1;
23981 }
23982 }
23983 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23984 if (UNTAG_Bool(REGB0)) {
23985 /* ./parser//parser_prod.nit:4484 */
23986 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23987 if (UNTAG_Bool(REGB0)) {
23988 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4484);
23989 }
23990 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23991 /* ./parser//parser_prod.nit:4485 */
23992 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23993 if (UNTAG_Bool(REGB0)) {
23994 } else {
23995 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4485);
23996 }
23997 /* ./parser//parser_prod.nit:4486 */
23998 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23999 } else {
24000 /* ./parser//parser_prod.nit:4488 */
24001 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4488);
24002 }
24003 /* ./parser//parser_prod.nit:4490 */
24004 goto label1;
24005 }
24006 /* ./parser//parser_prod.nit:4492 */
24007 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24008 if (UNTAG_Bool(REGB0)) {
24009 } else {
24010 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4492);
24011 }
24012 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24013 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24014 if (UNTAG_Bool(REGB0)) {
24015 } else {
24016 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24017 REGB0 = REGB1;
24018 }
24019 if (UNTAG_Bool(REGB0)) {
24020 /* ./parser//parser_prod.nit:4493 */
24021 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24022 if (UNTAG_Bool(REGB0)) {
24023 } else {
24024 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24025 if (UNTAG_Bool(REGB1)) {
24026 REGB1 = TAG_Bool(false);
24027 REGB0 = REGB1;
24028 } else {
24029 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24030 REGB0 = REGB1;
24031 }
24032 }
24033 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24034 if (UNTAG_Bool(REGB0)) {
24035 /* ./parser//parser_prod.nit:4494 */
24036 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24037 if (UNTAG_Bool(REGB0)) {
24038 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4494);
24039 }
24040 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24041 /* ./parser//parser_prod.nit:4495 */
24042 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24043 if (UNTAG_Bool(REGB0)) {
24044 } else {
24045 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4495);
24046 }
24047 /* ./parser//parser_prod.nit:4496 */
24048 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24049 } else {
24050 /* ./parser//parser_prod.nit:4498 */
24051 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4498);
24052 }
24053 /* ./parser//parser_prod.nit:4500 */
24054 goto label1;
24055 }
24056 label1: while(0);
24057 stack_frame_head = fra.me.prev;
24058 return;
24059 }
24060 void parser___parser_prod___ALtExpr___visit_all(val_t p0, val_t p1){
24061 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24062 val_t REGB0;
24063 val_t tmp;
24064 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24065 fra.me.file = LOCATE_parser___parser_prod;
24066 fra.me.line = 4504;
24067 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___visit_all;
24068 fra.me.has_broke = 0;
24069 fra.me.REG_size = 3;
24070 fra.me.REG[0] = NIT_NULL;
24071 fra.me.REG[1] = NIT_NULL;
24072 fra.me.REG[2] = NIT_NULL;
24073 fra.me.REG[0] = p0;
24074 fra.me.REG[1] = p1;
24075 /* ./parser//parser_prod.nit:4506 */
24076 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24077 if (UNTAG_Bool(REGB0)) {
24078 } else {
24079 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4506);
24080 }
24081 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24082 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24083 /* ./parser//parser_prod.nit:4507 */
24084 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24085 if (UNTAG_Bool(REGB0)) {
24086 } else {
24087 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4507);
24088 }
24089 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24090 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24091 stack_frame_head = fra.me.prev;
24092 return;
24093 }
24094 void parser___parser_prod___ALeExpr___empty_init(val_t p0, int* init_table){
24095 int itpos151 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeExpr].i;
24096 struct {struct stack_frame_t me;} fra;
24097 val_t tmp;
24098 if (init_table[itpos151]) return;
24099 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24100 fra.me.file = LOCATE_parser___parser_prod;
24101 fra.me.line = 4511;
24102 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___empty_init;
24103 fra.me.has_broke = 0;
24104 fra.me.REG_size = 1;
24105 fra.me.REG[0] = NIT_NULL;
24106 fra.me.REG[0] = p0;
24107 stack_frame_head = fra.me.prev;
24108 init_table[itpos151] = 1;
24109 return;
24110 }
24111 void parser___parser_prod___ALeExpr___init_aleexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24112 int itpos152 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeExpr].i;
24113 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24114 val_t REGB0;
24115 val_t tmp;
24116 if (init_table[itpos152]) return;
24117 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24118 fra.me.file = LOCATE_parser___parser_prod;
24119 fra.me.line = 4513;
24120 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___init_aleexpr;
24121 fra.me.has_broke = 0;
24122 fra.me.REG_size = 4;
24123 fra.me.REG[0] = NIT_NULL;
24124 fra.me.REG[1] = NIT_NULL;
24125 fra.me.REG[2] = NIT_NULL;
24126 fra.me.REG[3] = NIT_NULL;
24127 fra.me.REG[0] = p0;
24128 fra.me.REG[1] = p1;
24129 fra.me.REG[2] = p2;
24130 /* ./parser//parser_prod.nit:4513 */
24131 fra.me.REG[3] = fra.me.REG[0];
24132 /* ./parser//parser_prod.nit:4518 */
24133 CALL_parser___parser_prod___ALeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
24134 /* ./parser//parser_prod.nit:4519 */
24135 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24136 if (UNTAG_Bool(REGB0)) {
24137 } else {
24138 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4519);
24139 }
24140 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
24141 /* ./parser//parser_prod.nit:4520 */
24142 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24143 if (UNTAG_Bool(REGB0)) {
24144 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4520);
24145 }
24146 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24147 /* ./parser//parser_prod.nit:4521 */
24148 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24149 if (UNTAG_Bool(REGB0)) {
24150 } else {
24151 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4521);
24152 }
24153 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
24154 /* ./parser//parser_prod.nit:4522 */
24155 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24156 if (UNTAG_Bool(REGB0)) {
24157 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4522);
24158 }
24159 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
24160 stack_frame_head = fra.me.prev;
24161 init_table[itpos152] = 1;
24162 return;
24163 }
24164 void parser___parser_prod___ALeExpr___replace_child(val_t p0, val_t p1, val_t p2){
24165 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24166 val_t REGB0;
24167 val_t REGB1;
24168 val_t tmp;
24169 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24170 fra.me.file = LOCATE_parser___parser_prod;
24171 fra.me.line = 4525;
24172 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___replace_child;
24173 fra.me.has_broke = 0;
24174 fra.me.REG_size = 4;
24175 fra.me.REG[0] = NIT_NULL;
24176 fra.me.REG[1] = NIT_NULL;
24177 fra.me.REG[2] = NIT_NULL;
24178 fra.me.REG[3] = NIT_NULL;
24179 fra.me.REG[0] = p0;
24180 fra.me.REG[1] = p1;
24181 fra.me.REG[2] = p2;
24182 /* ./parser//parser_prod.nit:4527 */
24183 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24184 if (UNTAG_Bool(REGB0)) {
24185 } else {
24186 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4527);
24187 }
24188 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24189 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24190 if (UNTAG_Bool(REGB0)) {
24191 } else {
24192 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24193 REGB0 = REGB1;
24194 }
24195 if (UNTAG_Bool(REGB0)) {
24196 /* ./parser//parser_prod.nit:4528 */
24197 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24198 if (UNTAG_Bool(REGB0)) {
24199 } else {
24200 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24201 if (UNTAG_Bool(REGB1)) {
24202 REGB1 = TAG_Bool(false);
24203 REGB0 = REGB1;
24204 } else {
24205 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24206 REGB0 = REGB1;
24207 }
24208 }
24209 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24210 if (UNTAG_Bool(REGB0)) {
24211 /* ./parser//parser_prod.nit:4529 */
24212 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24213 if (UNTAG_Bool(REGB0)) {
24214 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4529);
24215 }
24216 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24217 /* ./parser//parser_prod.nit:4530 */
24218 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24219 if (UNTAG_Bool(REGB0)) {
24220 } else {
24221 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4530);
24222 }
24223 /* ./parser//parser_prod.nit:4531 */
24224 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24225 } else {
24226 /* ./parser//parser_prod.nit:4533 */
24227 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4533);
24228 }
24229 /* ./parser//parser_prod.nit:4535 */
24230 goto label1;
24231 }
24232 /* ./parser//parser_prod.nit:4537 */
24233 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24234 if (UNTAG_Bool(REGB0)) {
24235 } else {
24236 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4537);
24237 }
24238 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24239 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24240 if (UNTAG_Bool(REGB0)) {
24241 } else {
24242 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24243 REGB0 = REGB1;
24244 }
24245 if (UNTAG_Bool(REGB0)) {
24246 /* ./parser//parser_prod.nit:4538 */
24247 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24248 if (UNTAG_Bool(REGB0)) {
24249 } else {
24250 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24251 if (UNTAG_Bool(REGB1)) {
24252 REGB1 = TAG_Bool(false);
24253 REGB0 = REGB1;
24254 } else {
24255 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24256 REGB0 = REGB1;
24257 }
24258 }
24259 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24260 if (UNTAG_Bool(REGB0)) {
24261 /* ./parser//parser_prod.nit:4539 */
24262 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24263 if (UNTAG_Bool(REGB0)) {
24264 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4539);
24265 }
24266 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24267 /* ./parser//parser_prod.nit:4540 */
24268 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24269 if (UNTAG_Bool(REGB0)) {
24270 } else {
24271 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4540);
24272 }
24273 /* ./parser//parser_prod.nit:4541 */
24274 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24275 } else {
24276 /* ./parser//parser_prod.nit:4543 */
24277 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4543);
24278 }
24279 /* ./parser//parser_prod.nit:4545 */
24280 goto label1;
24281 }
24282 label1: while(0);
24283 stack_frame_head = fra.me.prev;
24284 return;
24285 }
24286 void parser___parser_prod___ALeExpr___visit_all(val_t p0, val_t p1){
24287 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24288 val_t REGB0;
24289 val_t tmp;
24290 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24291 fra.me.file = LOCATE_parser___parser_prod;
24292 fra.me.line = 4549;
24293 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___visit_all;
24294 fra.me.has_broke = 0;
24295 fra.me.REG_size = 3;
24296 fra.me.REG[0] = NIT_NULL;
24297 fra.me.REG[1] = NIT_NULL;
24298 fra.me.REG[2] = NIT_NULL;
24299 fra.me.REG[0] = p0;
24300 fra.me.REG[1] = p1;
24301 /* ./parser//parser_prod.nit:4551 */
24302 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24303 if (UNTAG_Bool(REGB0)) {
24304 } else {
24305 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4551);
24306 }
24307 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24308 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24309 /* ./parser//parser_prod.nit:4552 */
24310 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24311 if (UNTAG_Bool(REGB0)) {
24312 } else {
24313 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4552);
24314 }
24315 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24316 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24317 stack_frame_head = fra.me.prev;
24318 return;
24319 }
24320 void parser___parser_prod___ALlExpr___empty_init(val_t p0, int* init_table){
24321 int itpos153 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlExpr].i;
24322 struct {struct stack_frame_t me;} fra;
24323 val_t tmp;
24324 if (init_table[itpos153]) return;
24325 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24326 fra.me.file = LOCATE_parser___parser_prod;
24327 fra.me.line = 4556;
24328 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___empty_init;
24329 fra.me.has_broke = 0;
24330 fra.me.REG_size = 1;
24331 fra.me.REG[0] = NIT_NULL;
24332 fra.me.REG[0] = p0;
24333 stack_frame_head = fra.me.prev;
24334 init_table[itpos153] = 1;
24335 return;
24336 }
24337 void parser___parser_prod___ALlExpr___init_allexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24338 int itpos154 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlExpr].i;
24339 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24340 val_t REGB0;
24341 val_t tmp;
24342 if (init_table[itpos154]) return;
24343 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24344 fra.me.file = LOCATE_parser___parser_prod;
24345 fra.me.line = 4558;
24346 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___init_allexpr;
24347 fra.me.has_broke = 0;
24348 fra.me.REG_size = 4;
24349 fra.me.REG[0] = NIT_NULL;
24350 fra.me.REG[1] = NIT_NULL;
24351 fra.me.REG[2] = NIT_NULL;
24352 fra.me.REG[3] = NIT_NULL;
24353 fra.me.REG[0] = p0;
24354 fra.me.REG[1] = p1;
24355 fra.me.REG[2] = p2;
24356 /* ./parser//parser_prod.nit:4558 */
24357 fra.me.REG[3] = fra.me.REG[0];
24358 /* ./parser//parser_prod.nit:4563 */
24359 CALL_parser___parser_prod___ALlExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
24360 /* ./parser//parser_prod.nit:4564 */
24361 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24362 if (UNTAG_Bool(REGB0)) {
24363 } else {
24364 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4564);
24365 }
24366 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
24367 /* ./parser//parser_prod.nit:4565 */
24368 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24369 if (UNTAG_Bool(REGB0)) {
24370 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4565);
24371 }
24372 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24373 /* ./parser//parser_prod.nit:4566 */
24374 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24375 if (UNTAG_Bool(REGB0)) {
24376 } else {
24377 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4566);
24378 }
24379 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
24380 /* ./parser//parser_prod.nit:4567 */
24381 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24382 if (UNTAG_Bool(REGB0)) {
24383 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4567);
24384 }
24385 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
24386 stack_frame_head = fra.me.prev;
24387 init_table[itpos154] = 1;
24388 return;
24389 }
24390 void parser___parser_prod___ALlExpr___replace_child(val_t p0, val_t p1, val_t p2){
24391 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24392 val_t REGB0;
24393 val_t REGB1;
24394 val_t tmp;
24395 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24396 fra.me.file = LOCATE_parser___parser_prod;
24397 fra.me.line = 4570;
24398 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___replace_child;
24399 fra.me.has_broke = 0;
24400 fra.me.REG_size = 4;
24401 fra.me.REG[0] = NIT_NULL;
24402 fra.me.REG[1] = NIT_NULL;
24403 fra.me.REG[2] = NIT_NULL;
24404 fra.me.REG[3] = NIT_NULL;
24405 fra.me.REG[0] = p0;
24406 fra.me.REG[1] = p1;
24407 fra.me.REG[2] = p2;
24408 /* ./parser//parser_prod.nit:4572 */
24409 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24410 if (UNTAG_Bool(REGB0)) {
24411 } else {
24412 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4572);
24413 }
24414 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24415 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24416 if (UNTAG_Bool(REGB0)) {
24417 } else {
24418 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24419 REGB0 = REGB1;
24420 }
24421 if (UNTAG_Bool(REGB0)) {
24422 /* ./parser//parser_prod.nit:4573 */
24423 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24424 if (UNTAG_Bool(REGB0)) {
24425 } else {
24426 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24427 if (UNTAG_Bool(REGB1)) {
24428 REGB1 = TAG_Bool(false);
24429 REGB0 = REGB1;
24430 } else {
24431 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24432 REGB0 = REGB1;
24433 }
24434 }
24435 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24436 if (UNTAG_Bool(REGB0)) {
24437 /* ./parser//parser_prod.nit:4574 */
24438 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24439 if (UNTAG_Bool(REGB0)) {
24440 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4574);
24441 }
24442 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24443 /* ./parser//parser_prod.nit:4575 */
24444 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24445 if (UNTAG_Bool(REGB0)) {
24446 } else {
24447 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4575);
24448 }
24449 /* ./parser//parser_prod.nit:4576 */
24450 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24451 } else {
24452 /* ./parser//parser_prod.nit:4578 */
24453 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4578);
24454 }
24455 /* ./parser//parser_prod.nit:4580 */
24456 goto label1;
24457 }
24458 /* ./parser//parser_prod.nit:4582 */
24459 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24460 if (UNTAG_Bool(REGB0)) {
24461 } else {
24462 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4582);
24463 }
24464 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24465 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24466 if (UNTAG_Bool(REGB0)) {
24467 } else {
24468 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24469 REGB0 = REGB1;
24470 }
24471 if (UNTAG_Bool(REGB0)) {
24472 /* ./parser//parser_prod.nit:4583 */
24473 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24474 if (UNTAG_Bool(REGB0)) {
24475 } else {
24476 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24477 if (UNTAG_Bool(REGB1)) {
24478 REGB1 = TAG_Bool(false);
24479 REGB0 = REGB1;
24480 } else {
24481 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24482 REGB0 = REGB1;
24483 }
24484 }
24485 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24486 if (UNTAG_Bool(REGB0)) {
24487 /* ./parser//parser_prod.nit:4584 */
24488 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24489 if (UNTAG_Bool(REGB0)) {
24490 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4584);
24491 }
24492 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24493 /* ./parser//parser_prod.nit:4585 */
24494 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24495 if (UNTAG_Bool(REGB0)) {
24496 } else {
24497 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4585);
24498 }
24499 /* ./parser//parser_prod.nit:4586 */
24500 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24501 } else {
24502 /* ./parser//parser_prod.nit:4588 */
24503 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4588);
24504 }
24505 /* ./parser//parser_prod.nit:4590 */
24506 goto label1;
24507 }
24508 label1: while(0);
24509 stack_frame_head = fra.me.prev;
24510 return;
24511 }
24512 void parser___parser_prod___ALlExpr___visit_all(val_t p0, val_t p1){
24513 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24514 val_t REGB0;
24515 val_t tmp;
24516 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24517 fra.me.file = LOCATE_parser___parser_prod;
24518 fra.me.line = 4594;
24519 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___visit_all;
24520 fra.me.has_broke = 0;
24521 fra.me.REG_size = 3;
24522 fra.me.REG[0] = NIT_NULL;
24523 fra.me.REG[1] = NIT_NULL;
24524 fra.me.REG[2] = NIT_NULL;
24525 fra.me.REG[0] = p0;
24526 fra.me.REG[1] = p1;
24527 /* ./parser//parser_prod.nit:4596 */
24528 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24529 if (UNTAG_Bool(REGB0)) {
24530 } else {
24531 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4596);
24532 }
24533 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24534 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24535 /* ./parser//parser_prod.nit:4597 */
24536 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24537 if (UNTAG_Bool(REGB0)) {
24538 } else {
24539 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4597);
24540 }
24541 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24542 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24543 stack_frame_head = fra.me.prev;
24544 return;
24545 }
24546 void parser___parser_prod___AGtExpr___empty_init(val_t p0, int* init_table){
24547 int itpos155 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtExpr].i;
24548 struct {struct stack_frame_t me;} fra;
24549 val_t tmp;
24550 if (init_table[itpos155]) return;
24551 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24552 fra.me.file = LOCATE_parser___parser_prod;
24553 fra.me.line = 4601;
24554 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___empty_init;
24555 fra.me.has_broke = 0;
24556 fra.me.REG_size = 1;
24557 fra.me.REG[0] = NIT_NULL;
24558 fra.me.REG[0] = p0;
24559 stack_frame_head = fra.me.prev;
24560 init_table[itpos155] = 1;
24561 return;
24562 }
24563 void parser___parser_prod___AGtExpr___init_agtexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24564 int itpos156 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtExpr].i;
24565 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24566 val_t REGB0;
24567 val_t tmp;
24568 if (init_table[itpos156]) return;
24569 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24570 fra.me.file = LOCATE_parser___parser_prod;
24571 fra.me.line = 4603;
24572 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___init_agtexpr;
24573 fra.me.has_broke = 0;
24574 fra.me.REG_size = 4;
24575 fra.me.REG[0] = NIT_NULL;
24576 fra.me.REG[1] = NIT_NULL;
24577 fra.me.REG[2] = NIT_NULL;
24578 fra.me.REG[3] = NIT_NULL;
24579 fra.me.REG[0] = p0;
24580 fra.me.REG[1] = p1;
24581 fra.me.REG[2] = p2;
24582 /* ./parser//parser_prod.nit:4603 */
24583 fra.me.REG[3] = fra.me.REG[0];
24584 /* ./parser//parser_prod.nit:4608 */
24585 CALL_parser___parser_prod___AGtExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
24586 /* ./parser//parser_prod.nit:4609 */
24587 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24588 if (UNTAG_Bool(REGB0)) {
24589 } else {
24590 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4609);
24591 }
24592 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
24593 /* ./parser//parser_prod.nit:4610 */
24594 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24595 if (UNTAG_Bool(REGB0)) {
24596 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4610);
24597 }
24598 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24599 /* ./parser//parser_prod.nit:4611 */
24600 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24601 if (UNTAG_Bool(REGB0)) {
24602 } else {
24603 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4611);
24604 }
24605 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
24606 /* ./parser//parser_prod.nit:4612 */
24607 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24608 if (UNTAG_Bool(REGB0)) {
24609 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4612);
24610 }
24611 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
24612 stack_frame_head = fra.me.prev;
24613 init_table[itpos156] = 1;
24614 return;
24615 }
24616 void parser___parser_prod___AGtExpr___replace_child(val_t p0, val_t p1, val_t p2){
24617 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24618 val_t REGB0;
24619 val_t REGB1;
24620 val_t tmp;
24621 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24622 fra.me.file = LOCATE_parser___parser_prod;
24623 fra.me.line = 4615;
24624 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___replace_child;
24625 fra.me.has_broke = 0;
24626 fra.me.REG_size = 4;
24627 fra.me.REG[0] = NIT_NULL;
24628 fra.me.REG[1] = NIT_NULL;
24629 fra.me.REG[2] = NIT_NULL;
24630 fra.me.REG[3] = NIT_NULL;
24631 fra.me.REG[0] = p0;
24632 fra.me.REG[1] = p1;
24633 fra.me.REG[2] = p2;
24634 /* ./parser//parser_prod.nit:4617 */
24635 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24636 if (UNTAG_Bool(REGB0)) {
24637 } else {
24638 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4617);
24639 }
24640 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24641 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24642 if (UNTAG_Bool(REGB0)) {
24643 } else {
24644 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24645 REGB0 = REGB1;
24646 }
24647 if (UNTAG_Bool(REGB0)) {
24648 /* ./parser//parser_prod.nit:4618 */
24649 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24650 if (UNTAG_Bool(REGB0)) {
24651 } else {
24652 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24653 if (UNTAG_Bool(REGB1)) {
24654 REGB1 = TAG_Bool(false);
24655 REGB0 = REGB1;
24656 } else {
24657 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24658 REGB0 = REGB1;
24659 }
24660 }
24661 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24662 if (UNTAG_Bool(REGB0)) {
24663 /* ./parser//parser_prod.nit:4619 */
24664 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24665 if (UNTAG_Bool(REGB0)) {
24666 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4619);
24667 }
24668 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24669 /* ./parser//parser_prod.nit:4620 */
24670 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24671 if (UNTAG_Bool(REGB0)) {
24672 } else {
24673 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4620);
24674 }
24675 /* ./parser//parser_prod.nit:4621 */
24676 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24677 } else {
24678 /* ./parser//parser_prod.nit:4623 */
24679 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4623);
24680 }
24681 /* ./parser//parser_prod.nit:4625 */
24682 goto label1;
24683 }
24684 /* ./parser//parser_prod.nit:4627 */
24685 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24686 if (UNTAG_Bool(REGB0)) {
24687 } else {
24688 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4627);
24689 }
24690 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24691 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24692 if (UNTAG_Bool(REGB0)) {
24693 } else {
24694 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24695 REGB0 = REGB1;
24696 }
24697 if (UNTAG_Bool(REGB0)) {
24698 /* ./parser//parser_prod.nit:4628 */
24699 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24700 if (UNTAG_Bool(REGB0)) {
24701 } else {
24702 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24703 if (UNTAG_Bool(REGB1)) {
24704 REGB1 = TAG_Bool(false);
24705 REGB0 = REGB1;
24706 } else {
24707 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24708 REGB0 = REGB1;
24709 }
24710 }
24711 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24712 if (UNTAG_Bool(REGB0)) {
24713 /* ./parser//parser_prod.nit:4629 */
24714 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24715 if (UNTAG_Bool(REGB0)) {
24716 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4629);
24717 }
24718 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24719 /* ./parser//parser_prod.nit:4630 */
24720 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24721 if (UNTAG_Bool(REGB0)) {
24722 } else {
24723 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4630);
24724 }
24725 /* ./parser//parser_prod.nit:4631 */
24726 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24727 } else {
24728 /* ./parser//parser_prod.nit:4633 */
24729 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4633);
24730 }
24731 /* ./parser//parser_prod.nit:4635 */
24732 goto label1;
24733 }
24734 label1: while(0);
24735 stack_frame_head = fra.me.prev;
24736 return;
24737 }
24738 void parser___parser_prod___AGtExpr___visit_all(val_t p0, val_t p1){
24739 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24740 val_t REGB0;
24741 val_t tmp;
24742 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24743 fra.me.file = LOCATE_parser___parser_prod;
24744 fra.me.line = 4639;
24745 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___visit_all;
24746 fra.me.has_broke = 0;
24747 fra.me.REG_size = 3;
24748 fra.me.REG[0] = NIT_NULL;
24749 fra.me.REG[1] = NIT_NULL;
24750 fra.me.REG[2] = NIT_NULL;
24751 fra.me.REG[0] = p0;
24752 fra.me.REG[1] = p1;
24753 /* ./parser//parser_prod.nit:4641 */
24754 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24755 if (UNTAG_Bool(REGB0)) {
24756 } else {
24757 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4641);
24758 }
24759 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24760 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24761 /* ./parser//parser_prod.nit:4642 */
24762 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24763 if (UNTAG_Bool(REGB0)) {
24764 } else {
24765 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4642);
24766 }
24767 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24768 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24769 stack_frame_head = fra.me.prev;
24770 return;
24771 }
24772 void parser___parser_prod___AGeExpr___empty_init(val_t p0, int* init_table){
24773 int itpos157 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeExpr].i;
24774 struct {struct stack_frame_t me;} fra;
24775 val_t tmp;
24776 if (init_table[itpos157]) return;
24777 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24778 fra.me.file = LOCATE_parser___parser_prod;
24779 fra.me.line = 4646;
24780 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___empty_init;
24781 fra.me.has_broke = 0;
24782 fra.me.REG_size = 1;
24783 fra.me.REG[0] = NIT_NULL;
24784 fra.me.REG[0] = p0;
24785 stack_frame_head = fra.me.prev;
24786 init_table[itpos157] = 1;
24787 return;
24788 }
24789 void parser___parser_prod___AGeExpr___init_ageexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24790 int itpos158 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeExpr].i;
24791 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24792 val_t REGB0;
24793 val_t tmp;
24794 if (init_table[itpos158]) return;
24795 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24796 fra.me.file = LOCATE_parser___parser_prod;
24797 fra.me.line = 4648;
24798 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___init_ageexpr;
24799 fra.me.has_broke = 0;
24800 fra.me.REG_size = 4;
24801 fra.me.REG[0] = NIT_NULL;
24802 fra.me.REG[1] = NIT_NULL;
24803 fra.me.REG[2] = NIT_NULL;
24804 fra.me.REG[3] = NIT_NULL;
24805 fra.me.REG[0] = p0;
24806 fra.me.REG[1] = p1;
24807 fra.me.REG[2] = p2;
24808 /* ./parser//parser_prod.nit:4648 */
24809 fra.me.REG[3] = fra.me.REG[0];
24810 /* ./parser//parser_prod.nit:4653 */
24811 CALL_parser___parser_prod___AGeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
24812 /* ./parser//parser_prod.nit:4654 */
24813 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24814 if (UNTAG_Bool(REGB0)) {
24815 } else {
24816 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4654);
24817 }
24818 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
24819 /* ./parser//parser_prod.nit:4655 */
24820 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24821 if (UNTAG_Bool(REGB0)) {
24822 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4655);
24823 }
24824 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24825 /* ./parser//parser_prod.nit:4656 */
24826 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24827 if (UNTAG_Bool(REGB0)) {
24828 } else {
24829 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4656);
24830 }
24831 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
24832 /* ./parser//parser_prod.nit:4657 */
24833 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24834 if (UNTAG_Bool(REGB0)) {
24835 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4657);
24836 }
24837 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
24838 stack_frame_head = fra.me.prev;
24839 init_table[itpos158] = 1;
24840 return;
24841 }
24842 void parser___parser_prod___AGeExpr___replace_child(val_t p0, val_t p1, val_t p2){
24843 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24844 val_t REGB0;
24845 val_t REGB1;
24846 val_t tmp;
24847 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24848 fra.me.file = LOCATE_parser___parser_prod;
24849 fra.me.line = 4660;
24850 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___replace_child;
24851 fra.me.has_broke = 0;
24852 fra.me.REG_size = 4;
24853 fra.me.REG[0] = NIT_NULL;
24854 fra.me.REG[1] = NIT_NULL;
24855 fra.me.REG[2] = NIT_NULL;
24856 fra.me.REG[3] = NIT_NULL;
24857 fra.me.REG[0] = p0;
24858 fra.me.REG[1] = p1;
24859 fra.me.REG[2] = p2;
24860 /* ./parser//parser_prod.nit:4662 */
24861 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24862 if (UNTAG_Bool(REGB0)) {
24863 } else {
24864 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4662);
24865 }
24866 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24867 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24868 if (UNTAG_Bool(REGB0)) {
24869 } else {
24870 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24871 REGB0 = REGB1;
24872 }
24873 if (UNTAG_Bool(REGB0)) {
24874 /* ./parser//parser_prod.nit:4663 */
24875 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24876 if (UNTAG_Bool(REGB0)) {
24877 } else {
24878 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24879 if (UNTAG_Bool(REGB1)) {
24880 REGB1 = TAG_Bool(false);
24881 REGB0 = REGB1;
24882 } else {
24883 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24884 REGB0 = REGB1;
24885 }
24886 }
24887 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24888 if (UNTAG_Bool(REGB0)) {
24889 /* ./parser//parser_prod.nit:4664 */
24890 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24891 if (UNTAG_Bool(REGB0)) {
24892 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4664);
24893 }
24894 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24895 /* ./parser//parser_prod.nit:4665 */
24896 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24897 if (UNTAG_Bool(REGB0)) {
24898 } else {
24899 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4665);
24900 }
24901 /* ./parser//parser_prod.nit:4666 */
24902 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24903 } else {
24904 /* ./parser//parser_prod.nit:4668 */
24905 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4668);
24906 }
24907 /* ./parser//parser_prod.nit:4670 */
24908 goto label1;
24909 }
24910 /* ./parser//parser_prod.nit:4672 */
24911 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24912 if (UNTAG_Bool(REGB0)) {
24913 } else {
24914 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4672);
24915 }
24916 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24917 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24918 if (UNTAG_Bool(REGB0)) {
24919 } else {
24920 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24921 REGB0 = REGB1;
24922 }
24923 if (UNTAG_Bool(REGB0)) {
24924 /* ./parser//parser_prod.nit:4673 */
24925 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24926 if (UNTAG_Bool(REGB0)) {
24927 } else {
24928 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24929 if (UNTAG_Bool(REGB1)) {
24930 REGB1 = TAG_Bool(false);
24931 REGB0 = REGB1;
24932 } else {
24933 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24934 REGB0 = REGB1;
24935 }
24936 }
24937 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24938 if (UNTAG_Bool(REGB0)) {
24939 /* ./parser//parser_prod.nit:4674 */
24940 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24941 if (UNTAG_Bool(REGB0)) {
24942 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4674);
24943 }
24944 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24945 /* ./parser//parser_prod.nit:4675 */
24946 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24947 if (UNTAG_Bool(REGB0)) {
24948 } else {
24949 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4675);
24950 }
24951 /* ./parser//parser_prod.nit:4676 */
24952 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24953 } else {
24954 /* ./parser//parser_prod.nit:4678 */
24955 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4678);
24956 }
24957 /* ./parser//parser_prod.nit:4680 */
24958 goto label1;
24959 }
24960 label1: while(0);
24961 stack_frame_head = fra.me.prev;
24962 return;
24963 }
24964 void parser___parser_prod___AGeExpr___visit_all(val_t p0, val_t p1){
24965 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24966 val_t REGB0;
24967 val_t tmp;
24968 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24969 fra.me.file = LOCATE_parser___parser_prod;
24970 fra.me.line = 4684;
24971 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___visit_all;
24972 fra.me.has_broke = 0;
24973 fra.me.REG_size = 3;
24974 fra.me.REG[0] = NIT_NULL;
24975 fra.me.REG[1] = NIT_NULL;
24976 fra.me.REG[2] = NIT_NULL;
24977 fra.me.REG[0] = p0;
24978 fra.me.REG[1] = p1;
24979 /* ./parser//parser_prod.nit:4686 */
24980 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24981 if (UNTAG_Bool(REGB0)) {
24982 } else {
24983 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4686);
24984 }
24985 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24986 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24987 /* ./parser//parser_prod.nit:4687 */
24988 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24989 if (UNTAG_Bool(REGB0)) {
24990 } else {
24991 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4687);
24992 }
24993 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24994 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24995 stack_frame_head = fra.me.prev;
24996 return;
24997 }
24998 void parser___parser_prod___AGgExpr___empty_init(val_t p0, int* init_table){
24999 int itpos159 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgExpr].i;
25000 struct {struct stack_frame_t me;} fra;
25001 val_t tmp;
25002 if (init_table[itpos159]) return;
25003 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25004 fra.me.file = LOCATE_parser___parser_prod;
25005 fra.me.line = 4691;
25006 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___empty_init;
25007 fra.me.has_broke = 0;
25008 fra.me.REG_size = 1;
25009 fra.me.REG[0] = NIT_NULL;
25010 fra.me.REG[0] = p0;
25011 stack_frame_head = fra.me.prev;
25012 init_table[itpos159] = 1;
25013 return;
25014 }
25015 void parser___parser_prod___AGgExpr___init_aggexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25016 int itpos160 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgExpr].i;
25017 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25018 val_t REGB0;
25019 val_t tmp;
25020 if (init_table[itpos160]) return;
25021 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25022 fra.me.file = LOCATE_parser___parser_prod;
25023 fra.me.line = 4693;
25024 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___init_aggexpr;
25025 fra.me.has_broke = 0;
25026 fra.me.REG_size = 4;
25027 fra.me.REG[0] = NIT_NULL;
25028 fra.me.REG[1] = NIT_NULL;
25029 fra.me.REG[2] = NIT_NULL;
25030 fra.me.REG[3] = NIT_NULL;
25031 fra.me.REG[0] = p0;
25032 fra.me.REG[1] = p1;
25033 fra.me.REG[2] = p2;
25034 /* ./parser//parser_prod.nit:4693 */
25035 fra.me.REG[3] = fra.me.REG[0];
25036 /* ./parser//parser_prod.nit:4698 */
25037 CALL_parser___parser_prod___AGgExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25038 /* ./parser//parser_prod.nit:4699 */
25039 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25040 if (UNTAG_Bool(REGB0)) {
25041 } else {
25042 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4699);
25043 }
25044 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25045 /* ./parser//parser_prod.nit:4700 */
25046 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25047 if (UNTAG_Bool(REGB0)) {
25048 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4700);
25049 }
25050 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25051 /* ./parser//parser_prod.nit:4701 */
25052 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25053 if (UNTAG_Bool(REGB0)) {
25054 } else {
25055 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4701);
25056 }
25057 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25058 /* ./parser//parser_prod.nit:4702 */
25059 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25060 if (UNTAG_Bool(REGB0)) {
25061 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4702);
25062 }
25063 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25064 stack_frame_head = fra.me.prev;
25065 init_table[itpos160] = 1;
25066 return;
25067 }
25068 void parser___parser_prod___AGgExpr___replace_child(val_t p0, val_t p1, val_t p2){
25069 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25070 val_t REGB0;
25071 val_t REGB1;
25072 val_t tmp;
25073 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25074 fra.me.file = LOCATE_parser___parser_prod;
25075 fra.me.line = 4705;
25076 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___replace_child;
25077 fra.me.has_broke = 0;
25078 fra.me.REG_size = 4;
25079 fra.me.REG[0] = NIT_NULL;
25080 fra.me.REG[1] = NIT_NULL;
25081 fra.me.REG[2] = NIT_NULL;
25082 fra.me.REG[3] = NIT_NULL;
25083 fra.me.REG[0] = p0;
25084 fra.me.REG[1] = p1;
25085 fra.me.REG[2] = p2;
25086 /* ./parser//parser_prod.nit:4707 */
25087 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25088 if (UNTAG_Bool(REGB0)) {
25089 } else {
25090 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4707);
25091 }
25092 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25093 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25094 if (UNTAG_Bool(REGB0)) {
25095 } else {
25096 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25097 REGB0 = REGB1;
25098 }
25099 if (UNTAG_Bool(REGB0)) {
25100 /* ./parser//parser_prod.nit:4708 */
25101 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25102 if (UNTAG_Bool(REGB0)) {
25103 } else {
25104 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25105 if (UNTAG_Bool(REGB1)) {
25106 REGB1 = TAG_Bool(false);
25107 REGB0 = REGB1;
25108 } else {
25109 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25110 REGB0 = REGB1;
25111 }
25112 }
25113 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25114 if (UNTAG_Bool(REGB0)) {
25115 /* ./parser//parser_prod.nit:4709 */
25116 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25117 if (UNTAG_Bool(REGB0)) {
25118 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4709);
25119 }
25120 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25121 /* ./parser//parser_prod.nit:4710 */
25122 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25123 if (UNTAG_Bool(REGB0)) {
25124 } else {
25125 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4710);
25126 }
25127 /* ./parser//parser_prod.nit:4711 */
25128 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25129 } else {
25130 /* ./parser//parser_prod.nit:4713 */
25131 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4713);
25132 }
25133 /* ./parser//parser_prod.nit:4715 */
25134 goto label1;
25135 }
25136 /* ./parser//parser_prod.nit:4717 */
25137 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25138 if (UNTAG_Bool(REGB0)) {
25139 } else {
25140 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4717);
25141 }
25142 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25143 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25144 if (UNTAG_Bool(REGB0)) {
25145 } else {
25146 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25147 REGB0 = REGB1;
25148 }
25149 if (UNTAG_Bool(REGB0)) {
25150 /* ./parser//parser_prod.nit:4718 */
25151 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25152 if (UNTAG_Bool(REGB0)) {
25153 } else {
25154 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25155 if (UNTAG_Bool(REGB1)) {
25156 REGB1 = TAG_Bool(false);
25157 REGB0 = REGB1;
25158 } else {
25159 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25160 REGB0 = REGB1;
25161 }
25162 }
25163 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25164 if (UNTAG_Bool(REGB0)) {
25165 /* ./parser//parser_prod.nit:4719 */
25166 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25167 if (UNTAG_Bool(REGB0)) {
25168 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4719);
25169 }
25170 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25171 /* ./parser//parser_prod.nit:4720 */
25172 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25173 if (UNTAG_Bool(REGB0)) {
25174 } else {
25175 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4720);
25176 }
25177 /* ./parser//parser_prod.nit:4721 */
25178 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25179 } else {
25180 /* ./parser//parser_prod.nit:4723 */
25181 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4723);
25182 }
25183 /* ./parser//parser_prod.nit:4725 */
25184 goto label1;
25185 }
25186 label1: while(0);
25187 stack_frame_head = fra.me.prev;
25188 return;
25189 }
25190 void parser___parser_prod___AGgExpr___visit_all(val_t p0, val_t p1){
25191 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25192 val_t REGB0;
25193 val_t tmp;
25194 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25195 fra.me.file = LOCATE_parser___parser_prod;
25196 fra.me.line = 4729;
25197 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___visit_all;
25198 fra.me.has_broke = 0;
25199 fra.me.REG_size = 3;
25200 fra.me.REG[0] = NIT_NULL;
25201 fra.me.REG[1] = NIT_NULL;
25202 fra.me.REG[2] = NIT_NULL;
25203 fra.me.REG[0] = p0;
25204 fra.me.REG[1] = p1;
25205 /* ./parser//parser_prod.nit:4731 */
25206 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25207 if (UNTAG_Bool(REGB0)) {
25208 } else {
25209 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4731);
25210 }
25211 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25212 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25213 /* ./parser//parser_prod.nit:4732 */
25214 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25215 if (UNTAG_Bool(REGB0)) {
25216 } else {
25217 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4732);
25218 }
25219 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25220 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25221 stack_frame_head = fra.me.prev;
25222 return;
25223 }
25224 void parser___parser_prod___AIsaExpr___empty_init(val_t p0, int* init_table){
25225 int itpos161 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIsaExpr].i;
25226 struct {struct stack_frame_t me;} fra;
25227 val_t tmp;
25228 if (init_table[itpos161]) return;
25229 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25230 fra.me.file = LOCATE_parser___parser_prod;
25231 fra.me.line = 4736;
25232 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___empty_init;
25233 fra.me.has_broke = 0;
25234 fra.me.REG_size = 1;
25235 fra.me.REG[0] = NIT_NULL;
25236 fra.me.REG[0] = p0;
25237 stack_frame_head = fra.me.prev;
25238 init_table[itpos161] = 1;
25239 return;
25240 }
25241 void parser___parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25242 int itpos162 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIsaExpr].i;
25243 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25244 val_t REGB0;
25245 val_t tmp;
25246 if (init_table[itpos162]) return;
25247 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25248 fra.me.file = LOCATE_parser___parser_prod;
25249 fra.me.line = 4738;
25250 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___init_aisaexpr;
25251 fra.me.has_broke = 0;
25252 fra.me.REG_size = 4;
25253 fra.me.REG[0] = NIT_NULL;
25254 fra.me.REG[1] = NIT_NULL;
25255 fra.me.REG[2] = NIT_NULL;
25256 fra.me.REG[3] = NIT_NULL;
25257 fra.me.REG[0] = p0;
25258 fra.me.REG[1] = p1;
25259 fra.me.REG[2] = p2;
25260 /* ./parser//parser_prod.nit:4738 */
25261 fra.me.REG[3] = fra.me.REG[0];
25262 /* ./parser//parser_prod.nit:4743 */
25263 CALL_parser___parser_prod___AIsaExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25264 /* ./parser//parser_prod.nit:4744 */
25265 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25266 if (UNTAG_Bool(REGB0)) {
25267 } else {
25268 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4744);
25269 }
25270 ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25271 /* ./parser//parser_prod.nit:4745 */
25272 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25273 if (UNTAG_Bool(REGB0)) {
25274 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4745);
25275 }
25276 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25277 /* ./parser//parser_prod.nit:4746 */
25278 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25279 if (UNTAG_Bool(REGB0)) {
25280 } else {
25281 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4746);
25282 }
25283 ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[3]) = fra.me.REG[2];
25284 /* ./parser//parser_prod.nit:4747 */
25285 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25286 if (UNTAG_Bool(REGB0)) {
25287 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4747);
25288 }
25289 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25290 stack_frame_head = fra.me.prev;
25291 init_table[itpos162] = 1;
25292 return;
25293 }
25294 void parser___parser_prod___AIsaExpr___replace_child(val_t p0, val_t p1, val_t p2){
25295 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25296 val_t REGB0;
25297 val_t REGB1;
25298 val_t tmp;
25299 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25300 fra.me.file = LOCATE_parser___parser_prod;
25301 fra.me.line = 4750;
25302 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___replace_child;
25303 fra.me.has_broke = 0;
25304 fra.me.REG_size = 4;
25305 fra.me.REG[0] = NIT_NULL;
25306 fra.me.REG[1] = NIT_NULL;
25307 fra.me.REG[2] = NIT_NULL;
25308 fra.me.REG[3] = NIT_NULL;
25309 fra.me.REG[0] = p0;
25310 fra.me.REG[1] = p1;
25311 fra.me.REG[2] = p2;
25312 /* ./parser//parser_prod.nit:4752 */
25313 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25314 if (UNTAG_Bool(REGB0)) {
25315 } else {
25316 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4752);
25317 }
25318 fra.me.REG[3] = ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]);
25319 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25320 if (UNTAG_Bool(REGB0)) {
25321 } else {
25322 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25323 REGB0 = REGB1;
25324 }
25325 if (UNTAG_Bool(REGB0)) {
25326 /* ./parser//parser_prod.nit:4753 */
25327 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25328 if (UNTAG_Bool(REGB0)) {
25329 } else {
25330 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25331 if (UNTAG_Bool(REGB1)) {
25332 REGB1 = TAG_Bool(false);
25333 REGB0 = REGB1;
25334 } else {
25335 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25336 REGB0 = REGB1;
25337 }
25338 }
25339 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25340 if (UNTAG_Bool(REGB0)) {
25341 /* ./parser//parser_prod.nit:4754 */
25342 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25343 if (UNTAG_Bool(REGB0)) {
25344 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4754);
25345 }
25346 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25347 /* ./parser//parser_prod.nit:4755 */
25348 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25349 if (UNTAG_Bool(REGB0)) {
25350 } else {
25351 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4755);
25352 }
25353 /* ./parser//parser_prod.nit:4756 */
25354 ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25355 } else {
25356 /* ./parser//parser_prod.nit:4758 */
25357 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4758);
25358 }
25359 /* ./parser//parser_prod.nit:4760 */
25360 goto label1;
25361 }
25362 /* ./parser//parser_prod.nit:4762 */
25363 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0])!=NIT_NULL);
25364 if (UNTAG_Bool(REGB0)) {
25365 } else {
25366 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 4762);
25367 }
25368 fra.me.REG[3] = ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]);
25369 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25370 if (UNTAG_Bool(REGB0)) {
25371 } else {
25372 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25373 REGB0 = REGB1;
25374 }
25375 if (UNTAG_Bool(REGB0)) {
25376 /* ./parser//parser_prod.nit:4763 */
25377 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25378 if (UNTAG_Bool(REGB0)) {
25379 } else {
25380 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25381 if (UNTAG_Bool(REGB1)) {
25382 REGB1 = TAG_Bool(false);
25383 REGB0 = REGB1;
25384 } else {
25385 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25386 REGB0 = REGB1;
25387 }
25388 }
25389 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25390 if (UNTAG_Bool(REGB0)) {
25391 /* ./parser//parser_prod.nit:4764 */
25392 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25393 if (UNTAG_Bool(REGB0)) {
25394 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4764);
25395 }
25396 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25397 /* ./parser//parser_prod.nit:4765 */
25398 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*/;
25399 if (UNTAG_Bool(REGB0)) {
25400 } else {
25401 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4765);
25402 }
25403 /* ./parser//parser_prod.nit:4766 */
25404 ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
25405 } else {
25406 /* ./parser//parser_prod.nit:4768 */
25407 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4768);
25408 }
25409 /* ./parser//parser_prod.nit:4770 */
25410 goto label1;
25411 }
25412 label1: while(0);
25413 stack_frame_head = fra.me.prev;
25414 return;
25415 }
25416 void parser___parser_prod___AIsaExpr___visit_all(val_t p0, val_t p1){
25417 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25418 val_t REGB0;
25419 val_t tmp;
25420 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25421 fra.me.file = LOCATE_parser___parser_prod;
25422 fra.me.line = 4774;
25423 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___visit_all;
25424 fra.me.has_broke = 0;
25425 fra.me.REG_size = 3;
25426 fra.me.REG[0] = NIT_NULL;
25427 fra.me.REG[1] = NIT_NULL;
25428 fra.me.REG[2] = NIT_NULL;
25429 fra.me.REG[0] = p0;
25430 fra.me.REG[1] = p1;
25431 /* ./parser//parser_prod.nit:4776 */
25432 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25433 if (UNTAG_Bool(REGB0)) {
25434 } else {
25435 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4776);
25436 }
25437 fra.me.REG[2] = ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]);
25438 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25439 /* ./parser//parser_prod.nit:4777 */
25440 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0])!=NIT_NULL);
25441 if (UNTAG_Bool(REGB0)) {
25442 } else {
25443 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 4777);
25444 }
25445 fra.me.REG[0] = ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]);
25446 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25447 stack_frame_head = fra.me.prev;
25448 return;
25449 }
25450 void parser___parser_prod___APlusExpr___empty_init(val_t p0, int* init_table){
25451 int itpos163 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusExpr].i;
25452 struct {struct stack_frame_t me;} fra;
25453 val_t tmp;
25454 if (init_table[itpos163]) return;
25455 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25456 fra.me.file = LOCATE_parser___parser_prod;
25457 fra.me.line = 4781;
25458 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___empty_init;
25459 fra.me.has_broke = 0;
25460 fra.me.REG_size = 1;
25461 fra.me.REG[0] = NIT_NULL;
25462 fra.me.REG[0] = p0;
25463 stack_frame_head = fra.me.prev;
25464 init_table[itpos163] = 1;
25465 return;
25466 }
25467 void parser___parser_prod___APlusExpr___init_aplusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25468 int itpos164 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusExpr].i;
25469 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25470 val_t REGB0;
25471 val_t tmp;
25472 if (init_table[itpos164]) return;
25473 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25474 fra.me.file = LOCATE_parser___parser_prod;
25475 fra.me.line = 4783;
25476 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___init_aplusexpr;
25477 fra.me.has_broke = 0;
25478 fra.me.REG_size = 4;
25479 fra.me.REG[0] = NIT_NULL;
25480 fra.me.REG[1] = NIT_NULL;
25481 fra.me.REG[2] = NIT_NULL;
25482 fra.me.REG[3] = NIT_NULL;
25483 fra.me.REG[0] = p0;
25484 fra.me.REG[1] = p1;
25485 fra.me.REG[2] = p2;
25486 /* ./parser//parser_prod.nit:4783 */
25487 fra.me.REG[3] = fra.me.REG[0];
25488 /* ./parser//parser_prod.nit:4788 */
25489 CALL_parser___parser_prod___APlusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25490 /* ./parser//parser_prod.nit:4789 */
25491 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25492 if (UNTAG_Bool(REGB0)) {
25493 } else {
25494 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4789);
25495 }
25496 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25497 /* ./parser//parser_prod.nit:4790 */
25498 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25499 if (UNTAG_Bool(REGB0)) {
25500 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4790);
25501 }
25502 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25503 /* ./parser//parser_prod.nit:4791 */
25504 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25505 if (UNTAG_Bool(REGB0)) {
25506 } else {
25507 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4791);
25508 }
25509 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25510 /* ./parser//parser_prod.nit:4792 */
25511 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25512 if (UNTAG_Bool(REGB0)) {
25513 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4792);
25514 }
25515 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25516 stack_frame_head = fra.me.prev;
25517 init_table[itpos164] = 1;
25518 return;
25519 }
25520 void parser___parser_prod___APlusExpr___replace_child(val_t p0, val_t p1, val_t p2){
25521 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25522 val_t REGB0;
25523 val_t REGB1;
25524 val_t tmp;
25525 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25526 fra.me.file = LOCATE_parser___parser_prod;
25527 fra.me.line = 4795;
25528 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___replace_child;
25529 fra.me.has_broke = 0;
25530 fra.me.REG_size = 4;
25531 fra.me.REG[0] = NIT_NULL;
25532 fra.me.REG[1] = NIT_NULL;
25533 fra.me.REG[2] = NIT_NULL;
25534 fra.me.REG[3] = NIT_NULL;
25535 fra.me.REG[0] = p0;
25536 fra.me.REG[1] = p1;
25537 fra.me.REG[2] = p2;
25538 /* ./parser//parser_prod.nit:4797 */
25539 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25540 if (UNTAG_Bool(REGB0)) {
25541 } else {
25542 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4797);
25543 }
25544 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25545 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25546 if (UNTAG_Bool(REGB0)) {
25547 } else {
25548 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25549 REGB0 = REGB1;
25550 }
25551 if (UNTAG_Bool(REGB0)) {
25552 /* ./parser//parser_prod.nit:4798 */
25553 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25554 if (UNTAG_Bool(REGB0)) {
25555 } else {
25556 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25557 if (UNTAG_Bool(REGB1)) {
25558 REGB1 = TAG_Bool(false);
25559 REGB0 = REGB1;
25560 } else {
25561 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25562 REGB0 = REGB1;
25563 }
25564 }
25565 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25566 if (UNTAG_Bool(REGB0)) {
25567 /* ./parser//parser_prod.nit:4799 */
25568 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25569 if (UNTAG_Bool(REGB0)) {
25570 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4799);
25571 }
25572 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25573 /* ./parser//parser_prod.nit:4800 */
25574 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25575 if (UNTAG_Bool(REGB0)) {
25576 } else {
25577 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4800);
25578 }
25579 /* ./parser//parser_prod.nit:4801 */
25580 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25581 } else {
25582 /* ./parser//parser_prod.nit:4803 */
25583 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4803);
25584 }
25585 /* ./parser//parser_prod.nit:4805 */
25586 goto label1;
25587 }
25588 /* ./parser//parser_prod.nit:4807 */
25589 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25590 if (UNTAG_Bool(REGB0)) {
25591 } else {
25592 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4807);
25593 }
25594 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25595 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25596 if (UNTAG_Bool(REGB0)) {
25597 } else {
25598 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25599 REGB0 = REGB1;
25600 }
25601 if (UNTAG_Bool(REGB0)) {
25602 /* ./parser//parser_prod.nit:4808 */
25603 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25604 if (UNTAG_Bool(REGB0)) {
25605 } else {
25606 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25607 if (UNTAG_Bool(REGB1)) {
25608 REGB1 = TAG_Bool(false);
25609 REGB0 = REGB1;
25610 } else {
25611 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25612 REGB0 = REGB1;
25613 }
25614 }
25615 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25616 if (UNTAG_Bool(REGB0)) {
25617 /* ./parser//parser_prod.nit:4809 */
25618 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25619 if (UNTAG_Bool(REGB0)) {
25620 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4809);
25621 }
25622 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25623 /* ./parser//parser_prod.nit:4810 */
25624 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25625 if (UNTAG_Bool(REGB0)) {
25626 } else {
25627 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4810);
25628 }
25629 /* ./parser//parser_prod.nit:4811 */
25630 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25631 } else {
25632 /* ./parser//parser_prod.nit:4813 */
25633 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4813);
25634 }
25635 /* ./parser//parser_prod.nit:4815 */
25636 goto label1;
25637 }
25638 label1: while(0);
25639 stack_frame_head = fra.me.prev;
25640 return;
25641 }
25642 void parser___parser_prod___APlusExpr___visit_all(val_t p0, val_t p1){
25643 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25644 val_t REGB0;
25645 val_t tmp;
25646 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25647 fra.me.file = LOCATE_parser___parser_prod;
25648 fra.me.line = 4819;
25649 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___visit_all;
25650 fra.me.has_broke = 0;
25651 fra.me.REG_size = 3;
25652 fra.me.REG[0] = NIT_NULL;
25653 fra.me.REG[1] = NIT_NULL;
25654 fra.me.REG[2] = NIT_NULL;
25655 fra.me.REG[0] = p0;
25656 fra.me.REG[1] = p1;
25657 /* ./parser//parser_prod.nit:4821 */
25658 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25659 if (UNTAG_Bool(REGB0)) {
25660 } else {
25661 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4821);
25662 }
25663 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25664 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25665 /* ./parser//parser_prod.nit:4822 */
25666 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25667 if (UNTAG_Bool(REGB0)) {
25668 } else {
25669 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4822);
25670 }
25671 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25672 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25673 stack_frame_head = fra.me.prev;
25674 return;
25675 }
25676 void parser___parser_prod___AMinusExpr___empty_init(val_t p0, int* init_table){
25677 int itpos165 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusExpr].i;
25678 struct {struct stack_frame_t me;} fra;
25679 val_t tmp;
25680 if (init_table[itpos165]) return;
25681 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25682 fra.me.file = LOCATE_parser___parser_prod;
25683 fra.me.line = 4826;
25684 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___empty_init;
25685 fra.me.has_broke = 0;
25686 fra.me.REG_size = 1;
25687 fra.me.REG[0] = NIT_NULL;
25688 fra.me.REG[0] = p0;
25689 stack_frame_head = fra.me.prev;
25690 init_table[itpos165] = 1;
25691 return;
25692 }
25693 void parser___parser_prod___AMinusExpr___init_aminusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25694 int itpos166 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusExpr].i;
25695 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25696 val_t REGB0;
25697 val_t tmp;
25698 if (init_table[itpos166]) return;
25699 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25700 fra.me.file = LOCATE_parser___parser_prod;
25701 fra.me.line = 4828;
25702 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___init_aminusexpr;
25703 fra.me.has_broke = 0;
25704 fra.me.REG_size = 4;
25705 fra.me.REG[0] = NIT_NULL;
25706 fra.me.REG[1] = NIT_NULL;
25707 fra.me.REG[2] = NIT_NULL;
25708 fra.me.REG[3] = NIT_NULL;
25709 fra.me.REG[0] = p0;
25710 fra.me.REG[1] = p1;
25711 fra.me.REG[2] = p2;
25712 /* ./parser//parser_prod.nit:4828 */
25713 fra.me.REG[3] = fra.me.REG[0];
25714 /* ./parser//parser_prod.nit:4833 */
25715 CALL_parser___parser_prod___AMinusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25716 /* ./parser//parser_prod.nit:4834 */
25717 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25718 if (UNTAG_Bool(REGB0)) {
25719 } else {
25720 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4834);
25721 }
25722 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25723 /* ./parser//parser_prod.nit:4835 */
25724 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25725 if (UNTAG_Bool(REGB0)) {
25726 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4835);
25727 }
25728 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25729 /* ./parser//parser_prod.nit:4836 */
25730 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25731 if (UNTAG_Bool(REGB0)) {
25732 } else {
25733 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4836);
25734 }
25735 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25736 /* ./parser//parser_prod.nit:4837 */
25737 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25738 if (UNTAG_Bool(REGB0)) {
25739 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4837);
25740 }
25741 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25742 stack_frame_head = fra.me.prev;
25743 init_table[itpos166] = 1;
25744 return;
25745 }
25746 void parser___parser_prod___AMinusExpr___replace_child(val_t p0, val_t p1, val_t p2){
25747 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25748 val_t REGB0;
25749 val_t REGB1;
25750 val_t tmp;
25751 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25752 fra.me.file = LOCATE_parser___parser_prod;
25753 fra.me.line = 4840;
25754 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___replace_child;
25755 fra.me.has_broke = 0;
25756 fra.me.REG_size = 4;
25757 fra.me.REG[0] = NIT_NULL;
25758 fra.me.REG[1] = NIT_NULL;
25759 fra.me.REG[2] = NIT_NULL;
25760 fra.me.REG[3] = NIT_NULL;
25761 fra.me.REG[0] = p0;
25762 fra.me.REG[1] = p1;
25763 fra.me.REG[2] = p2;
25764 /* ./parser//parser_prod.nit:4842 */
25765 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25766 if (UNTAG_Bool(REGB0)) {
25767 } else {
25768 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4842);
25769 }
25770 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25771 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25772 if (UNTAG_Bool(REGB0)) {
25773 } else {
25774 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25775 REGB0 = REGB1;
25776 }
25777 if (UNTAG_Bool(REGB0)) {
25778 /* ./parser//parser_prod.nit:4843 */
25779 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25780 if (UNTAG_Bool(REGB0)) {
25781 } else {
25782 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25783 if (UNTAG_Bool(REGB1)) {
25784 REGB1 = TAG_Bool(false);
25785 REGB0 = REGB1;
25786 } else {
25787 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25788 REGB0 = REGB1;
25789 }
25790 }
25791 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25792 if (UNTAG_Bool(REGB0)) {
25793 /* ./parser//parser_prod.nit:4844 */
25794 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25795 if (UNTAG_Bool(REGB0)) {
25796 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4844);
25797 }
25798 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25799 /* ./parser//parser_prod.nit:4845 */
25800 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25801 if (UNTAG_Bool(REGB0)) {
25802 } else {
25803 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4845);
25804 }
25805 /* ./parser//parser_prod.nit:4846 */
25806 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25807 } else {
25808 /* ./parser//parser_prod.nit:4848 */
25809 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4848);
25810 }
25811 /* ./parser//parser_prod.nit:4850 */
25812 goto label1;
25813 }
25814 /* ./parser//parser_prod.nit:4852 */
25815 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25816 if (UNTAG_Bool(REGB0)) {
25817 } else {
25818 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4852);
25819 }
25820 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25821 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25822 if (UNTAG_Bool(REGB0)) {
25823 } else {
25824 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25825 REGB0 = REGB1;
25826 }
25827 if (UNTAG_Bool(REGB0)) {
25828 /* ./parser//parser_prod.nit:4853 */
25829 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25830 if (UNTAG_Bool(REGB0)) {
25831 } else {
25832 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25833 if (UNTAG_Bool(REGB1)) {
25834 REGB1 = TAG_Bool(false);
25835 REGB0 = REGB1;
25836 } else {
25837 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25838 REGB0 = REGB1;
25839 }
25840 }
25841 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25842 if (UNTAG_Bool(REGB0)) {
25843 /* ./parser//parser_prod.nit:4854 */
25844 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25845 if (UNTAG_Bool(REGB0)) {
25846 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4854);
25847 }
25848 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25849 /* ./parser//parser_prod.nit:4855 */
25850 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25851 if (UNTAG_Bool(REGB0)) {
25852 } else {
25853 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4855);
25854 }
25855 /* ./parser//parser_prod.nit:4856 */
25856 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25857 } else {
25858 /* ./parser//parser_prod.nit:4858 */
25859 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4858);
25860 }
25861 /* ./parser//parser_prod.nit:4860 */
25862 goto label1;
25863 }
25864 label1: while(0);
25865 stack_frame_head = fra.me.prev;
25866 return;
25867 }
25868 void parser___parser_prod___AMinusExpr___visit_all(val_t p0, val_t p1){
25869 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25870 val_t REGB0;
25871 val_t tmp;
25872 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25873 fra.me.file = LOCATE_parser___parser_prod;
25874 fra.me.line = 4864;
25875 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___visit_all;
25876 fra.me.has_broke = 0;
25877 fra.me.REG_size = 3;
25878 fra.me.REG[0] = NIT_NULL;
25879 fra.me.REG[1] = NIT_NULL;
25880 fra.me.REG[2] = NIT_NULL;
25881 fra.me.REG[0] = p0;
25882 fra.me.REG[1] = p1;
25883 /* ./parser//parser_prod.nit:4866 */
25884 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25885 if (UNTAG_Bool(REGB0)) {
25886 } else {
25887 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4866);
25888 }
25889 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25890 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25891 /* ./parser//parser_prod.nit:4867 */
25892 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25893 if (UNTAG_Bool(REGB0)) {
25894 } else {
25895 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4867);
25896 }
25897 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25898 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25899 stack_frame_head = fra.me.prev;
25900 return;
25901 }
25902 void parser___parser_prod___AStarshipExpr___empty_init(val_t p0, int* init_table){
25903 int itpos167 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipExpr].i;
25904 struct {struct stack_frame_t me;} fra;
25905 val_t tmp;
25906 if (init_table[itpos167]) return;
25907 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25908 fra.me.file = LOCATE_parser___parser_prod;
25909 fra.me.line = 4871;
25910 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___empty_init;
25911 fra.me.has_broke = 0;
25912 fra.me.REG_size = 1;
25913 fra.me.REG[0] = NIT_NULL;
25914 fra.me.REG[0] = p0;
25915 stack_frame_head = fra.me.prev;
25916 init_table[itpos167] = 1;
25917 return;
25918 }
25919 void parser___parser_prod___AStarshipExpr___init_astarshipexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25920 int itpos168 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipExpr].i;
25921 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25922 val_t REGB0;
25923 val_t tmp;
25924 if (init_table[itpos168]) return;
25925 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25926 fra.me.file = LOCATE_parser___parser_prod;
25927 fra.me.line = 4873;
25928 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___init_astarshipexpr;
25929 fra.me.has_broke = 0;
25930 fra.me.REG_size = 4;
25931 fra.me.REG[0] = NIT_NULL;
25932 fra.me.REG[1] = NIT_NULL;
25933 fra.me.REG[2] = NIT_NULL;
25934 fra.me.REG[3] = NIT_NULL;
25935 fra.me.REG[0] = p0;
25936 fra.me.REG[1] = p1;
25937 fra.me.REG[2] = p2;
25938 /* ./parser//parser_prod.nit:4873 */
25939 fra.me.REG[3] = fra.me.REG[0];
25940 /* ./parser//parser_prod.nit:4878 */
25941 CALL_parser___parser_prod___AStarshipExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25942 /* ./parser//parser_prod.nit:4879 */
25943 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25944 if (UNTAG_Bool(REGB0)) {
25945 } else {
25946 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4879);
25947 }
25948 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25949 /* ./parser//parser_prod.nit:4880 */
25950 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25951 if (UNTAG_Bool(REGB0)) {
25952 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4880);
25953 }
25954 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25955 /* ./parser//parser_prod.nit:4881 */
25956 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25957 if (UNTAG_Bool(REGB0)) {
25958 } else {
25959 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4881);
25960 }
25961 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25962 /* ./parser//parser_prod.nit:4882 */
25963 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25964 if (UNTAG_Bool(REGB0)) {
25965 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4882);
25966 }
25967 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25968 stack_frame_head = fra.me.prev;
25969 init_table[itpos168] = 1;
25970 return;
25971 }
25972 void parser___parser_prod___AStarshipExpr___replace_child(val_t p0, val_t p1, val_t p2){
25973 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25974 val_t REGB0;
25975 val_t REGB1;
25976 val_t tmp;
25977 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25978 fra.me.file = LOCATE_parser___parser_prod;
25979 fra.me.line = 4885;
25980 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___replace_child;
25981 fra.me.has_broke = 0;
25982 fra.me.REG_size = 4;
25983 fra.me.REG[0] = NIT_NULL;
25984 fra.me.REG[1] = NIT_NULL;
25985 fra.me.REG[2] = NIT_NULL;
25986 fra.me.REG[3] = NIT_NULL;
25987 fra.me.REG[0] = p0;
25988 fra.me.REG[1] = p1;
25989 fra.me.REG[2] = p2;
25990 /* ./parser//parser_prod.nit:4887 */
25991 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25992 if (UNTAG_Bool(REGB0)) {
25993 } else {
25994 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4887);
25995 }
25996 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25997 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25998 if (UNTAG_Bool(REGB0)) {
25999 } else {
26000 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26001 REGB0 = REGB1;
26002 }
26003 if (UNTAG_Bool(REGB0)) {
26004 /* ./parser//parser_prod.nit:4888 */
26005 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26006 if (UNTAG_Bool(REGB0)) {
26007 } else {
26008 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26009 if (UNTAG_Bool(REGB1)) {
26010 REGB1 = TAG_Bool(false);
26011 REGB0 = REGB1;
26012 } else {
26013 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26014 REGB0 = REGB1;
26015 }
26016 }
26017 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26018 if (UNTAG_Bool(REGB0)) {
26019 /* ./parser//parser_prod.nit:4889 */
26020 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26021 if (UNTAG_Bool(REGB0)) {
26022 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4889);
26023 }
26024 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26025 /* ./parser//parser_prod.nit:4890 */
26026 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26027 if (UNTAG_Bool(REGB0)) {
26028 } else {
26029 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4890);
26030 }
26031 /* ./parser//parser_prod.nit:4891 */
26032 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26033 } else {
26034 /* ./parser//parser_prod.nit:4893 */
26035 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4893);
26036 }
26037 /* ./parser//parser_prod.nit:4895 */
26038 goto label1;
26039 }
26040 /* ./parser//parser_prod.nit:4897 */
26041 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26042 if (UNTAG_Bool(REGB0)) {
26043 } else {
26044 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4897);
26045 }
26046 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26047 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26048 if (UNTAG_Bool(REGB0)) {
26049 } else {
26050 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26051 REGB0 = REGB1;
26052 }
26053 if (UNTAG_Bool(REGB0)) {
26054 /* ./parser//parser_prod.nit:4898 */
26055 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26056 if (UNTAG_Bool(REGB0)) {
26057 } else {
26058 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26059 if (UNTAG_Bool(REGB1)) {
26060 REGB1 = TAG_Bool(false);
26061 REGB0 = REGB1;
26062 } else {
26063 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26064 REGB0 = REGB1;
26065 }
26066 }
26067 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26068 if (UNTAG_Bool(REGB0)) {
26069 /* ./parser//parser_prod.nit:4899 */
26070 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26071 if (UNTAG_Bool(REGB0)) {
26072 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4899);
26073 }
26074 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26075 /* ./parser//parser_prod.nit:4900 */
26076 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26077 if (UNTAG_Bool(REGB0)) {
26078 } else {
26079 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4900);
26080 }
26081 /* ./parser//parser_prod.nit:4901 */
26082 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26083 } else {
26084 /* ./parser//parser_prod.nit:4903 */
26085 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4903);
26086 }
26087 /* ./parser//parser_prod.nit:4905 */
26088 goto label1;
26089 }
26090 label1: while(0);
26091 stack_frame_head = fra.me.prev;
26092 return;
26093 }
26094 void parser___parser_prod___AStarshipExpr___visit_all(val_t p0, val_t p1){
26095 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26096 val_t REGB0;
26097 val_t tmp;
26098 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26099 fra.me.file = LOCATE_parser___parser_prod;
26100 fra.me.line = 4909;
26101 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___visit_all;
26102 fra.me.has_broke = 0;
26103 fra.me.REG_size = 3;
26104 fra.me.REG[0] = NIT_NULL;
26105 fra.me.REG[1] = NIT_NULL;
26106 fra.me.REG[2] = NIT_NULL;
26107 fra.me.REG[0] = p0;
26108 fra.me.REG[1] = p1;
26109 /* ./parser//parser_prod.nit:4911 */
26110 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26111 if (UNTAG_Bool(REGB0)) {
26112 } else {
26113 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4911);
26114 }
26115 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26116 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26117 /* ./parser//parser_prod.nit:4912 */
26118 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26119 if (UNTAG_Bool(REGB0)) {
26120 } else {
26121 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4912);
26122 }
26123 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26124 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26125 stack_frame_head = fra.me.prev;
26126 return;
26127 }
26128 void parser___parser_prod___AStarExpr___empty_init(val_t p0, int* init_table){
26129 int itpos169 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarExpr].i;
26130 struct {struct stack_frame_t me;} fra;
26131 val_t tmp;
26132 if (init_table[itpos169]) return;
26133 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26134 fra.me.file = LOCATE_parser___parser_prod;
26135 fra.me.line = 4916;
26136 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___empty_init;
26137 fra.me.has_broke = 0;
26138 fra.me.REG_size = 1;
26139 fra.me.REG[0] = NIT_NULL;
26140 fra.me.REG[0] = p0;
26141 stack_frame_head = fra.me.prev;
26142 init_table[itpos169] = 1;
26143 return;
26144 }
26145 void parser___parser_prod___AStarExpr___init_astarexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26146 int itpos170 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarExpr].i;
26147 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26148 val_t REGB0;
26149 val_t tmp;
26150 if (init_table[itpos170]) return;
26151 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26152 fra.me.file = LOCATE_parser___parser_prod;
26153 fra.me.line = 4918;
26154 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___init_astarexpr;
26155 fra.me.has_broke = 0;
26156 fra.me.REG_size = 4;
26157 fra.me.REG[0] = NIT_NULL;
26158 fra.me.REG[1] = NIT_NULL;
26159 fra.me.REG[2] = NIT_NULL;
26160 fra.me.REG[3] = NIT_NULL;
26161 fra.me.REG[0] = p0;
26162 fra.me.REG[1] = p1;
26163 fra.me.REG[2] = p2;
26164 /* ./parser//parser_prod.nit:4918 */
26165 fra.me.REG[3] = fra.me.REG[0];
26166 /* ./parser//parser_prod.nit:4923 */
26167 CALL_parser___parser_prod___AStarExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26168 /* ./parser//parser_prod.nit:4924 */
26169 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26170 if (UNTAG_Bool(REGB0)) {
26171 } else {
26172 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4924);
26173 }
26174 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26175 /* ./parser//parser_prod.nit:4925 */
26176 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26177 if (UNTAG_Bool(REGB0)) {
26178 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4925);
26179 }
26180 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26181 /* ./parser//parser_prod.nit:4926 */
26182 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26183 if (UNTAG_Bool(REGB0)) {
26184 } else {
26185 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4926);
26186 }
26187 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26188 /* ./parser//parser_prod.nit:4927 */
26189 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26190 if (UNTAG_Bool(REGB0)) {
26191 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4927);
26192 }
26193 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26194 stack_frame_head = fra.me.prev;
26195 init_table[itpos170] = 1;
26196 return;
26197 }
26198 void parser___parser_prod___AStarExpr___replace_child(val_t p0, val_t p1, val_t p2){
26199 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26200 val_t REGB0;
26201 val_t REGB1;
26202 val_t tmp;
26203 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26204 fra.me.file = LOCATE_parser___parser_prod;
26205 fra.me.line = 4930;
26206 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___replace_child;
26207 fra.me.has_broke = 0;
26208 fra.me.REG_size = 4;
26209 fra.me.REG[0] = NIT_NULL;
26210 fra.me.REG[1] = NIT_NULL;
26211 fra.me.REG[2] = NIT_NULL;
26212 fra.me.REG[3] = NIT_NULL;
26213 fra.me.REG[0] = p0;
26214 fra.me.REG[1] = p1;
26215 fra.me.REG[2] = p2;
26216 /* ./parser//parser_prod.nit:4932 */
26217 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26218 if (UNTAG_Bool(REGB0)) {
26219 } else {
26220 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4932);
26221 }
26222 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26223 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26224 if (UNTAG_Bool(REGB0)) {
26225 } else {
26226 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26227 REGB0 = REGB1;
26228 }
26229 if (UNTAG_Bool(REGB0)) {
26230 /* ./parser//parser_prod.nit:4933 */
26231 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26232 if (UNTAG_Bool(REGB0)) {
26233 } else {
26234 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26235 if (UNTAG_Bool(REGB1)) {
26236 REGB1 = TAG_Bool(false);
26237 REGB0 = REGB1;
26238 } else {
26239 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26240 REGB0 = REGB1;
26241 }
26242 }
26243 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26244 if (UNTAG_Bool(REGB0)) {
26245 /* ./parser//parser_prod.nit:4934 */
26246 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26247 if (UNTAG_Bool(REGB0)) {
26248 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4934);
26249 }
26250 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26251 /* ./parser//parser_prod.nit:4935 */
26252 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26253 if (UNTAG_Bool(REGB0)) {
26254 } else {
26255 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4935);
26256 }
26257 /* ./parser//parser_prod.nit:4936 */
26258 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26259 } else {
26260 /* ./parser//parser_prod.nit:4938 */
26261 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4938);
26262 }
26263 /* ./parser//parser_prod.nit:4940 */
26264 goto label1;
26265 }
26266 /* ./parser//parser_prod.nit:4942 */
26267 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26268 if (UNTAG_Bool(REGB0)) {
26269 } else {
26270 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4942);
26271 }
26272 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26273 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26274 if (UNTAG_Bool(REGB0)) {
26275 } else {
26276 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26277 REGB0 = REGB1;
26278 }
26279 if (UNTAG_Bool(REGB0)) {
26280 /* ./parser//parser_prod.nit:4943 */
26281 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26282 if (UNTAG_Bool(REGB0)) {
26283 } else {
26284 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26285 if (UNTAG_Bool(REGB1)) {
26286 REGB1 = TAG_Bool(false);
26287 REGB0 = REGB1;
26288 } else {
26289 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26290 REGB0 = REGB1;
26291 }
26292 }
26293 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26294 if (UNTAG_Bool(REGB0)) {
26295 /* ./parser//parser_prod.nit:4944 */
26296 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26297 if (UNTAG_Bool(REGB0)) {
26298 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4944);
26299 }
26300 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26301 /* ./parser//parser_prod.nit:4945 */
26302 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26303 if (UNTAG_Bool(REGB0)) {
26304 } else {
26305 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4945);
26306 }
26307 /* ./parser//parser_prod.nit:4946 */
26308 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26309 } else {
26310 /* ./parser//parser_prod.nit:4948 */
26311 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4948);
26312 }
26313 /* ./parser//parser_prod.nit:4950 */
26314 goto label1;
26315 }
26316 label1: while(0);
26317 stack_frame_head = fra.me.prev;
26318 return;
26319 }
26320 void parser___parser_prod___AStarExpr___visit_all(val_t p0, val_t p1){
26321 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26322 val_t REGB0;
26323 val_t tmp;
26324 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26325 fra.me.file = LOCATE_parser___parser_prod;
26326 fra.me.line = 4954;
26327 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___visit_all;
26328 fra.me.has_broke = 0;
26329 fra.me.REG_size = 3;
26330 fra.me.REG[0] = NIT_NULL;
26331 fra.me.REG[1] = NIT_NULL;
26332 fra.me.REG[2] = NIT_NULL;
26333 fra.me.REG[0] = p0;
26334 fra.me.REG[1] = p1;
26335 /* ./parser//parser_prod.nit:4956 */
26336 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26337 if (UNTAG_Bool(REGB0)) {
26338 } else {
26339 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4956);
26340 }
26341 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26342 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26343 /* ./parser//parser_prod.nit:4957 */
26344 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26345 if (UNTAG_Bool(REGB0)) {
26346 } else {
26347 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4957);
26348 }
26349 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26350 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26351 stack_frame_head = fra.me.prev;
26352 return;
26353 }
26354 void parser___parser_prod___ASlashExpr___empty_init(val_t p0, int* init_table){
26355 int itpos171 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashExpr].i;
26356 struct {struct stack_frame_t me;} fra;
26357 val_t tmp;
26358 if (init_table[itpos171]) return;
26359 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26360 fra.me.file = LOCATE_parser___parser_prod;
26361 fra.me.line = 4961;
26362 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___empty_init;
26363 fra.me.has_broke = 0;
26364 fra.me.REG_size = 1;
26365 fra.me.REG[0] = NIT_NULL;
26366 fra.me.REG[0] = p0;
26367 stack_frame_head = fra.me.prev;
26368 init_table[itpos171] = 1;
26369 return;
26370 }
26371 void parser___parser_prod___ASlashExpr___init_aslashexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26372 int itpos172 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashExpr].i;
26373 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26374 val_t REGB0;
26375 val_t tmp;
26376 if (init_table[itpos172]) return;
26377 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26378 fra.me.file = LOCATE_parser___parser_prod;
26379 fra.me.line = 4963;
26380 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___init_aslashexpr;
26381 fra.me.has_broke = 0;
26382 fra.me.REG_size = 4;
26383 fra.me.REG[0] = NIT_NULL;
26384 fra.me.REG[1] = NIT_NULL;
26385 fra.me.REG[2] = NIT_NULL;
26386 fra.me.REG[3] = NIT_NULL;
26387 fra.me.REG[0] = p0;
26388 fra.me.REG[1] = p1;
26389 fra.me.REG[2] = p2;
26390 /* ./parser//parser_prod.nit:4963 */
26391 fra.me.REG[3] = fra.me.REG[0];
26392 /* ./parser//parser_prod.nit:4968 */
26393 CALL_parser___parser_prod___ASlashExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26394 /* ./parser//parser_prod.nit:4969 */
26395 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26396 if (UNTAG_Bool(REGB0)) {
26397 } else {
26398 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4969);
26399 }
26400 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26401 /* ./parser//parser_prod.nit:4970 */
26402 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26403 if (UNTAG_Bool(REGB0)) {
26404 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4970);
26405 }
26406 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26407 /* ./parser//parser_prod.nit:4971 */
26408 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26409 if (UNTAG_Bool(REGB0)) {
26410 } else {
26411 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4971);
26412 }
26413 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26414 /* ./parser//parser_prod.nit:4972 */
26415 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26416 if (UNTAG_Bool(REGB0)) {
26417 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4972);
26418 }
26419 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26420 stack_frame_head = fra.me.prev;
26421 init_table[itpos172] = 1;
26422 return;
26423 }
26424 void parser___parser_prod___ASlashExpr___replace_child(val_t p0, val_t p1, val_t p2){
26425 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26426 val_t REGB0;
26427 val_t REGB1;
26428 val_t tmp;
26429 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26430 fra.me.file = LOCATE_parser___parser_prod;
26431 fra.me.line = 4975;
26432 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___replace_child;
26433 fra.me.has_broke = 0;
26434 fra.me.REG_size = 4;
26435 fra.me.REG[0] = NIT_NULL;
26436 fra.me.REG[1] = NIT_NULL;
26437 fra.me.REG[2] = NIT_NULL;
26438 fra.me.REG[3] = NIT_NULL;
26439 fra.me.REG[0] = p0;
26440 fra.me.REG[1] = p1;
26441 fra.me.REG[2] = p2;
26442 /* ./parser//parser_prod.nit:4977 */
26443 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26444 if (UNTAG_Bool(REGB0)) {
26445 } else {
26446 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4977);
26447 }
26448 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26449 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26450 if (UNTAG_Bool(REGB0)) {
26451 } else {
26452 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26453 REGB0 = REGB1;
26454 }
26455 if (UNTAG_Bool(REGB0)) {
26456 /* ./parser//parser_prod.nit:4978 */
26457 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26458 if (UNTAG_Bool(REGB0)) {
26459 } else {
26460 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26461 if (UNTAG_Bool(REGB1)) {
26462 REGB1 = TAG_Bool(false);
26463 REGB0 = REGB1;
26464 } else {
26465 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26466 REGB0 = REGB1;
26467 }
26468 }
26469 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26470 if (UNTAG_Bool(REGB0)) {
26471 /* ./parser//parser_prod.nit:4979 */
26472 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26473 if (UNTAG_Bool(REGB0)) {
26474 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4979);
26475 }
26476 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26477 /* ./parser//parser_prod.nit:4980 */
26478 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26479 if (UNTAG_Bool(REGB0)) {
26480 } else {
26481 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4980);
26482 }
26483 /* ./parser//parser_prod.nit:4981 */
26484 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26485 } else {
26486 /* ./parser//parser_prod.nit:4983 */
26487 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4983);
26488 }
26489 /* ./parser//parser_prod.nit:4985 */
26490 goto label1;
26491 }
26492 /* ./parser//parser_prod.nit:4987 */
26493 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26494 if (UNTAG_Bool(REGB0)) {
26495 } else {
26496 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4987);
26497 }
26498 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26499 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26500 if (UNTAG_Bool(REGB0)) {
26501 } else {
26502 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26503 REGB0 = REGB1;
26504 }
26505 if (UNTAG_Bool(REGB0)) {
26506 /* ./parser//parser_prod.nit:4988 */
26507 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26508 if (UNTAG_Bool(REGB0)) {
26509 } else {
26510 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26511 if (UNTAG_Bool(REGB1)) {
26512 REGB1 = TAG_Bool(false);
26513 REGB0 = REGB1;
26514 } else {
26515 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26516 REGB0 = REGB1;
26517 }
26518 }
26519 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26520 if (UNTAG_Bool(REGB0)) {
26521 /* ./parser//parser_prod.nit:4989 */
26522 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26523 if (UNTAG_Bool(REGB0)) {
26524 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4989);
26525 }
26526 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26527 /* ./parser//parser_prod.nit:4990 */
26528 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26529 if (UNTAG_Bool(REGB0)) {
26530 } else {
26531 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4990);
26532 }
26533 /* ./parser//parser_prod.nit:4991 */
26534 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26535 } else {
26536 /* ./parser//parser_prod.nit:4993 */
26537 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4993);
26538 }
26539 /* ./parser//parser_prod.nit:4995 */
26540 goto label1;
26541 }
26542 label1: while(0);
26543 stack_frame_head = fra.me.prev;
26544 return;
26545 }
26546 void parser___parser_prod___ASlashExpr___visit_all(val_t p0, val_t p1){
26547 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26548 val_t REGB0;
26549 val_t tmp;
26550 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26551 fra.me.file = LOCATE_parser___parser_prod;
26552 fra.me.line = 4999;
26553 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___visit_all;
26554 fra.me.has_broke = 0;
26555 fra.me.REG_size = 3;
26556 fra.me.REG[0] = NIT_NULL;
26557 fra.me.REG[1] = NIT_NULL;
26558 fra.me.REG[2] = NIT_NULL;
26559 fra.me.REG[0] = p0;
26560 fra.me.REG[1] = p1;
26561 /* ./parser//parser_prod.nit:5001 */
26562 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26563 if (UNTAG_Bool(REGB0)) {
26564 } else {
26565 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5001);
26566 }
26567 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26568 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26569 /* ./parser//parser_prod.nit:5002 */
26570 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26571 if (UNTAG_Bool(REGB0)) {
26572 } else {
26573 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5002);
26574 }
26575 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26576 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26577 stack_frame_head = fra.me.prev;
26578 return;
26579 }
26580 void parser___parser_prod___APercentExpr___empty_init(val_t p0, int* init_table){
26581 int itpos173 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentExpr].i;
26582 struct {struct stack_frame_t me;} fra;
26583 val_t tmp;
26584 if (init_table[itpos173]) return;
26585 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26586 fra.me.file = LOCATE_parser___parser_prod;
26587 fra.me.line = 5006;
26588 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___empty_init;
26589 fra.me.has_broke = 0;
26590 fra.me.REG_size = 1;
26591 fra.me.REG[0] = NIT_NULL;
26592 fra.me.REG[0] = p0;
26593 stack_frame_head = fra.me.prev;
26594 init_table[itpos173] = 1;
26595 return;
26596 }
26597 void parser___parser_prod___APercentExpr___init_apercentexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26598 int itpos174 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentExpr].i;
26599 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26600 val_t REGB0;
26601 val_t tmp;
26602 if (init_table[itpos174]) return;
26603 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26604 fra.me.file = LOCATE_parser___parser_prod;
26605 fra.me.line = 5008;
26606 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___init_apercentexpr;
26607 fra.me.has_broke = 0;
26608 fra.me.REG_size = 4;
26609 fra.me.REG[0] = NIT_NULL;
26610 fra.me.REG[1] = NIT_NULL;
26611 fra.me.REG[2] = NIT_NULL;
26612 fra.me.REG[3] = NIT_NULL;
26613 fra.me.REG[0] = p0;
26614 fra.me.REG[1] = p1;
26615 fra.me.REG[2] = p2;
26616 /* ./parser//parser_prod.nit:5008 */
26617 fra.me.REG[3] = fra.me.REG[0];
26618 /* ./parser//parser_prod.nit:5013 */
26619 CALL_parser___parser_prod___APercentExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26620 /* ./parser//parser_prod.nit:5014 */
26621 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26622 if (UNTAG_Bool(REGB0)) {
26623 } else {
26624 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5014);
26625 }
26626 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26627 /* ./parser//parser_prod.nit:5015 */
26628 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26629 if (UNTAG_Bool(REGB0)) {
26630 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5015);
26631 }
26632 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26633 /* ./parser//parser_prod.nit:5016 */
26634 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26635 if (UNTAG_Bool(REGB0)) {
26636 } else {
26637 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5016);
26638 }
26639 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26640 /* ./parser//parser_prod.nit:5017 */
26641 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26642 if (UNTAG_Bool(REGB0)) {
26643 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5017);
26644 }
26645 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26646 stack_frame_head = fra.me.prev;
26647 init_table[itpos174] = 1;
26648 return;
26649 }
26650 void parser___parser_prod___APercentExpr___replace_child(val_t p0, val_t p1, val_t p2){
26651 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26652 val_t REGB0;
26653 val_t REGB1;
26654 val_t tmp;
26655 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26656 fra.me.file = LOCATE_parser___parser_prod;
26657 fra.me.line = 5020;
26658 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___replace_child;
26659 fra.me.has_broke = 0;
26660 fra.me.REG_size = 4;
26661 fra.me.REG[0] = NIT_NULL;
26662 fra.me.REG[1] = NIT_NULL;
26663 fra.me.REG[2] = NIT_NULL;
26664 fra.me.REG[3] = NIT_NULL;
26665 fra.me.REG[0] = p0;
26666 fra.me.REG[1] = p1;
26667 fra.me.REG[2] = p2;
26668 /* ./parser//parser_prod.nit:5022 */
26669 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26670 if (UNTAG_Bool(REGB0)) {
26671 } else {
26672 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5022);
26673 }
26674 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26675 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26676 if (UNTAG_Bool(REGB0)) {
26677 } else {
26678 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26679 REGB0 = REGB1;
26680 }
26681 if (UNTAG_Bool(REGB0)) {
26682 /* ./parser//parser_prod.nit:5023 */
26683 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26684 if (UNTAG_Bool(REGB0)) {
26685 } else {
26686 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26687 if (UNTAG_Bool(REGB1)) {
26688 REGB1 = TAG_Bool(false);
26689 REGB0 = REGB1;
26690 } else {
26691 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26692 REGB0 = REGB1;
26693 }
26694 }
26695 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26696 if (UNTAG_Bool(REGB0)) {
26697 /* ./parser//parser_prod.nit:5024 */
26698 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26699 if (UNTAG_Bool(REGB0)) {
26700 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5024);
26701 }
26702 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26703 /* ./parser//parser_prod.nit:5025 */
26704 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26705 if (UNTAG_Bool(REGB0)) {
26706 } else {
26707 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5025);
26708 }
26709 /* ./parser//parser_prod.nit:5026 */
26710 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26711 } else {
26712 /* ./parser//parser_prod.nit:5028 */
26713 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5028);
26714 }
26715 /* ./parser//parser_prod.nit:5030 */
26716 goto label1;
26717 }
26718 /* ./parser//parser_prod.nit:5032 */
26719 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26720 if (UNTAG_Bool(REGB0)) {
26721 } else {
26722 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5032);
26723 }
26724 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26725 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26726 if (UNTAG_Bool(REGB0)) {
26727 } else {
26728 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26729 REGB0 = REGB1;
26730 }
26731 if (UNTAG_Bool(REGB0)) {
26732 /* ./parser//parser_prod.nit:5033 */
26733 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26734 if (UNTAG_Bool(REGB0)) {
26735 } else {
26736 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26737 if (UNTAG_Bool(REGB1)) {
26738 REGB1 = TAG_Bool(false);
26739 REGB0 = REGB1;
26740 } else {
26741 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26742 REGB0 = REGB1;
26743 }
26744 }
26745 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26746 if (UNTAG_Bool(REGB0)) {
26747 /* ./parser//parser_prod.nit:5034 */
26748 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26749 if (UNTAG_Bool(REGB0)) {
26750 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5034);
26751 }
26752 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26753 /* ./parser//parser_prod.nit:5035 */
26754 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26755 if (UNTAG_Bool(REGB0)) {
26756 } else {
26757 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5035);
26758 }
26759 /* ./parser//parser_prod.nit:5036 */
26760 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26761 } else {
26762 /* ./parser//parser_prod.nit:5038 */
26763 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5038);
26764 }
26765 /* ./parser//parser_prod.nit:5040 */
26766 goto label1;
26767 }
26768 label1: while(0);
26769 stack_frame_head = fra.me.prev;
26770 return;
26771 }
26772 void parser___parser_prod___APercentExpr___visit_all(val_t p0, val_t p1){
26773 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26774 val_t REGB0;
26775 val_t tmp;
26776 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26777 fra.me.file = LOCATE_parser___parser_prod;
26778 fra.me.line = 5044;
26779 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___visit_all;
26780 fra.me.has_broke = 0;
26781 fra.me.REG_size = 3;
26782 fra.me.REG[0] = NIT_NULL;
26783 fra.me.REG[1] = NIT_NULL;
26784 fra.me.REG[2] = NIT_NULL;
26785 fra.me.REG[0] = p0;
26786 fra.me.REG[1] = p1;
26787 /* ./parser//parser_prod.nit:5046 */
26788 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26789 if (UNTAG_Bool(REGB0)) {
26790 } else {
26791 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5046);
26792 }
26793 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26794 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26795 /* ./parser//parser_prod.nit:5047 */
26796 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26797 if (UNTAG_Bool(REGB0)) {
26798 } else {
26799 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5047);
26800 }
26801 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26802 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26803 stack_frame_head = fra.me.prev;
26804 return;
26805 }
26806 void parser___parser_prod___AUminusExpr___empty_init(val_t p0, int* init_table){
26807 int itpos175 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AUminusExpr].i;
26808 struct {struct stack_frame_t me;} fra;
26809 val_t tmp;
26810 if (init_table[itpos175]) return;
26811 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26812 fra.me.file = LOCATE_parser___parser_prod;
26813 fra.me.line = 5051;
26814 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___empty_init;
26815 fra.me.has_broke = 0;
26816 fra.me.REG_size = 1;
26817 fra.me.REG[0] = NIT_NULL;
26818 fra.me.REG[0] = p0;
26819 stack_frame_head = fra.me.prev;
26820 init_table[itpos175] = 1;
26821 return;
26822 }
26823 void parser___parser_prod___AUminusExpr___init_auminusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26824 int itpos176 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AUminusExpr].i;
26825 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26826 val_t REGB0;
26827 val_t tmp;
26828 if (init_table[itpos176]) return;
26829 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26830 fra.me.file = LOCATE_parser___parser_prod;
26831 fra.me.line = 5053;
26832 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___init_auminusexpr;
26833 fra.me.has_broke = 0;
26834 fra.me.REG_size = 4;
26835 fra.me.REG[0] = NIT_NULL;
26836 fra.me.REG[1] = NIT_NULL;
26837 fra.me.REG[2] = NIT_NULL;
26838 fra.me.REG[3] = NIT_NULL;
26839 fra.me.REG[0] = p0;
26840 fra.me.REG[1] = p1;
26841 fra.me.REG[2] = p2;
26842 /* ./parser//parser_prod.nit:5053 */
26843 fra.me.REG[3] = fra.me.REG[0];
26844 /* ./parser//parser_prod.nit:5058 */
26845 CALL_parser___parser_prod___AUminusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26846 /* ./parser//parser_prod.nit:5059 */
26847 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26848 if (UNTAG_Bool(REGB0)) {
26849 } else {
26850 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5059);
26851 }
26852 ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[3]) = fra.me.REG[1];
26853 /* ./parser//parser_prod.nit:5060 */
26854 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26855 if (UNTAG_Bool(REGB0)) {
26856 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5060);
26857 }
26858 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26859 /* ./parser//parser_prod.nit:5061 */
26860 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26861 if (UNTAG_Bool(REGB0)) {
26862 } else {
26863 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5061);
26864 }
26865 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
26866 /* ./parser//parser_prod.nit:5062 */
26867 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26868 if (UNTAG_Bool(REGB0)) {
26869 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5062);
26870 }
26871 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26872 stack_frame_head = fra.me.prev;
26873 init_table[itpos176] = 1;
26874 return;
26875 }
26876 void parser___parser_prod___AUminusExpr___replace_child(val_t p0, val_t p1, val_t p2){
26877 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26878 val_t REGB0;
26879 val_t REGB1;
26880 val_t tmp;
26881 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26882 fra.me.file = LOCATE_parser___parser_prod;
26883 fra.me.line = 5065;
26884 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___replace_child;
26885 fra.me.has_broke = 0;
26886 fra.me.REG_size = 4;
26887 fra.me.REG[0] = NIT_NULL;
26888 fra.me.REG[1] = NIT_NULL;
26889 fra.me.REG[2] = NIT_NULL;
26890 fra.me.REG[3] = NIT_NULL;
26891 fra.me.REG[0] = p0;
26892 fra.me.REG[1] = p1;
26893 fra.me.REG[2] = p2;
26894 /* ./parser//parser_prod.nit:5067 */
26895 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0])!=NIT_NULL);
26896 if (UNTAG_Bool(REGB0)) {
26897 } else {
26898 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 5067);
26899 }
26900 fra.me.REG[3] = ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]);
26901 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26902 if (UNTAG_Bool(REGB0)) {
26903 } else {
26904 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26905 REGB0 = REGB1;
26906 }
26907 if (UNTAG_Bool(REGB0)) {
26908 /* ./parser//parser_prod.nit:5068 */
26909 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26910 if (UNTAG_Bool(REGB0)) {
26911 } else {
26912 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26913 if (UNTAG_Bool(REGB1)) {
26914 REGB1 = TAG_Bool(false);
26915 REGB0 = REGB1;
26916 } else {
26917 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26918 REGB0 = REGB1;
26919 }
26920 }
26921 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26922 if (UNTAG_Bool(REGB0)) {
26923 /* ./parser//parser_prod.nit:5069 */
26924 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26925 if (UNTAG_Bool(REGB0)) {
26926 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5069);
26927 }
26928 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26929 /* ./parser//parser_prod.nit:5070 */
26930 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*/;
26931 if (UNTAG_Bool(REGB0)) {
26932 } else {
26933 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5070);
26934 }
26935 /* ./parser//parser_prod.nit:5071 */
26936 ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]) = fra.me.REG[2];
26937 } else {
26938 /* ./parser//parser_prod.nit:5073 */
26939 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5073);
26940 }
26941 /* ./parser//parser_prod.nit:5075 */
26942 goto label1;
26943 }
26944 /* ./parser//parser_prod.nit:5077 */
26945 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26946 if (UNTAG_Bool(REGB0)) {
26947 } else {
26948 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5077);
26949 }
26950 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26951 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26952 if (UNTAG_Bool(REGB0)) {
26953 } else {
26954 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26955 REGB0 = REGB1;
26956 }
26957 if (UNTAG_Bool(REGB0)) {
26958 /* ./parser//parser_prod.nit:5078 */
26959 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26960 if (UNTAG_Bool(REGB0)) {
26961 } else {
26962 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26963 if (UNTAG_Bool(REGB1)) {
26964 REGB1 = TAG_Bool(false);
26965 REGB0 = REGB1;
26966 } else {
26967 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26968 REGB0 = REGB1;
26969 }
26970 }
26971 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26972 if (UNTAG_Bool(REGB0)) {
26973 /* ./parser//parser_prod.nit:5079 */
26974 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26975 if (UNTAG_Bool(REGB0)) {
26976 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5079);
26977 }
26978 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26979 /* ./parser//parser_prod.nit:5080 */
26980 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26981 if (UNTAG_Bool(REGB0)) {
26982 } else {
26983 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5080);
26984 }
26985 /* ./parser//parser_prod.nit:5081 */
26986 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26987 } else {
26988 /* ./parser//parser_prod.nit:5083 */
26989 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5083);
26990 }
26991 /* ./parser//parser_prod.nit:5085 */
26992 goto label1;
26993 }
26994 label1: while(0);
26995 stack_frame_head = fra.me.prev;
26996 return;
26997 }
26998 void parser___parser_prod___AUminusExpr___visit_all(val_t p0, val_t p1){
26999 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27000 val_t REGB0;
27001 val_t tmp;
27002 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27003 fra.me.file = LOCATE_parser___parser_prod;
27004 fra.me.line = 5089;
27005 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___visit_all;
27006 fra.me.has_broke = 0;
27007 fra.me.REG_size = 3;
27008 fra.me.REG[0] = NIT_NULL;
27009 fra.me.REG[1] = NIT_NULL;
27010 fra.me.REG[2] = NIT_NULL;
27011 fra.me.REG[0] = p0;
27012 fra.me.REG[1] = p1;
27013 /* ./parser//parser_prod.nit:5091 */
27014 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0])!=NIT_NULL);
27015 if (UNTAG_Bool(REGB0)) {
27016 } else {
27017 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 5091);
27018 }
27019 fra.me.REG[2] = ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]);
27020 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27021 /* ./parser//parser_prod.nit:5092 */
27022 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27023 if (UNTAG_Bool(REGB0)) {
27024 } else {
27025 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5092);
27026 }
27027 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27028 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27029 stack_frame_head = fra.me.prev;
27030 return;
27031 }
27032 void parser___parser_prod___ANewExpr___empty_init(val_t p0, int* init_table){
27033 int itpos177 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANewExpr].i;
27034 struct {struct stack_frame_t me;} fra;
27035 val_t tmp;
27036 if (init_table[itpos177]) return;
27037 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27038 fra.me.file = LOCATE_parser___parser_prod;
27039 fra.me.line = 5096;
27040 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___empty_init;
27041 fra.me.has_broke = 0;
27042 fra.me.REG_size = 1;
27043 fra.me.REG[0] = NIT_NULL;
27044 fra.me.REG[0] = p0;
27045 stack_frame_head = fra.me.prev;
27046 init_table[itpos177] = 1;
27047 return;
27048 }
27049 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){
27050 int itpos178 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANewExpr].i;
27051 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
27052 val_t REGB0;
27053 val_t REGB1;
27054 val_t tmp;
27055 if (init_table[itpos178]) return;
27056 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27057 fra.me.file = LOCATE_parser___parser_prod;
27058 fra.me.line = 5098;
27059 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___init_anewexpr;
27060 fra.me.has_broke = 0;
27061 fra.me.REG_size = 6;
27062 fra.me.REG[0] = NIT_NULL;
27063 fra.me.REG[1] = NIT_NULL;
27064 fra.me.REG[2] = NIT_NULL;
27065 fra.me.REG[3] = NIT_NULL;
27066 fra.me.REG[4] = NIT_NULL;
27067 fra.me.REG[5] = NIT_NULL;
27068 fra.me.REG[0] = p0;
27069 fra.me.REG[1] = p1;
27070 fra.me.REG[2] = p2;
27071 fra.me.REG[3] = p3;
27072 fra.me.REG[4] = p4;
27073 /* ./parser//parser_prod.nit:5098 */
27074 fra.me.REG[5] = fra.me.REG[0];
27075 /* ./parser//parser_prod.nit:5105 */
27076 CALL_parser___parser_prod___ANewExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
27077 /* ./parser//parser_prod.nit:5106 */
27078 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27079 if (UNTAG_Bool(REGB0)) {
27080 } else {
27081 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5106);
27082 }
27083 ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[5]) = fra.me.REG[1];
27084 /* ./parser//parser_prod.nit:5107 */
27085 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27086 if (UNTAG_Bool(REGB0)) {
27087 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5107);
27088 }
27089 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
27090 /* ./parser//parser_prod.nit:5108 */
27091 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27092 if (UNTAG_Bool(REGB0)) {
27093 } else {
27094 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5108);
27095 }
27096 ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[5]) = fra.me.REG[2];
27097 /* ./parser//parser_prod.nit:5109 */
27098 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27099 if (UNTAG_Bool(REGB0)) {
27100 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5109);
27101 }
27102 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
27103 /* ./parser//parser_prod.nit:5110 */
27104 ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[5]) = fra.me.REG[3];
27105 /* ./parser//parser_prod.nit:5111 */
27106 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
27107 if (UNTAG_Bool(REGB0)) {
27108 } else {
27109 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
27110 if (UNTAG_Bool(REGB1)) {
27111 REGB1 = TAG_Bool(false);
27112 REGB0 = REGB1;
27113 } else {
27114 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
27115 REGB0 = REGB1;
27116 }
27117 }
27118 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27119 if (UNTAG_Bool(REGB0)) {
27120 /* ./parser//parser_prod.nit:5112 */
27121 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
27122 if (UNTAG_Bool(REGB0)) {
27123 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5112);
27124 }
27125 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
27126 }
27127 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));
27128 stack_frame_head = fra.me.prev;
27129 init_table[itpos178] = 1;
27130 return;
27131 }
27132 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){
27133 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
27134 val_t REGB0;
27135 fun_t CREG[1];
27136 val_t tmp;
27137 /* ./parser//parser_prod.nit:5114 */
27138 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27139 fra.me.file = LOCATE_parser___parser_prod;
27140 fra.me.line = 0;
27141 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___init_anewexpr;
27142 fra.me.has_broke = 0;
27143 fra.me.REG_size = 2;
27144 fra.me.REG[0] = NIT_NULL;
27145 fra.me.REG[1] = NIT_NULL;
27146 fra.me.closure_ctx = closctx_param;
27147 fra.me.closure_funs = CREG;
27148 fra.me.REG[0] = p0;
27149 CREG[0] = clos_fun0;
27150 /* ./parser//parser_prod.nit:5115 */
27151 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27152 if (UNTAG_Bool(REGB0)) {
27153 } else {
27154 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5115);
27155 }
27156 /* ./parser//parser_prod.nit:5116 */
27157 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(closctx->REG[5])!=NIT_NULL);
27158 if (UNTAG_Bool(REGB0)) {
27159 } else {
27160 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5116);
27161 }
27162 fra.me.REG[1] = ATTR_parser___parser_nodes___ANewExpr____n_args(closctx->REG[5]);
27163 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27164 /* ./parser//parser_prod.nit:5117 */
27165 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
27166 stack_frame_head = fra.me.prev;
27167 return;
27168 }
27169 void parser___parser_prod___ANewExpr___replace_child(val_t p0, val_t p1, val_t p2){
27170 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27171 val_t REGB0;
27172 val_t REGB1;
27173 val_t REGB2;
27174 val_t REGB3;
27175 val_t REGB4;
27176 val_t tmp;
27177 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27178 fra.me.file = LOCATE_parser___parser_prod;
27179 fra.me.line = 5121;
27180 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___replace_child;
27181 fra.me.has_broke = 0;
27182 fra.me.REG_size = 4;
27183 fra.me.REG[0] = NIT_NULL;
27184 fra.me.REG[1] = NIT_NULL;
27185 fra.me.REG[2] = NIT_NULL;
27186 fra.me.REG[3] = NIT_NULL;
27187 fra.me.REG[0] = p0;
27188 fra.me.REG[1] = p1;
27189 fra.me.REG[2] = p2;
27190 /* ./parser//parser_prod.nit:5123 */
27191 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0])!=NIT_NULL);
27192 if (UNTAG_Bool(REGB0)) {
27193 } else {
27194 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 5123);
27195 }
27196 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]);
27197 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27198 if (UNTAG_Bool(REGB0)) {
27199 } else {
27200 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27201 REGB0 = REGB1;
27202 }
27203 if (UNTAG_Bool(REGB0)) {
27204 /* ./parser//parser_prod.nit:5124 */
27205 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27206 if (UNTAG_Bool(REGB0)) {
27207 } else {
27208 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27209 if (UNTAG_Bool(REGB1)) {
27210 REGB1 = TAG_Bool(false);
27211 REGB0 = REGB1;
27212 } else {
27213 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27214 REGB0 = REGB1;
27215 }
27216 }
27217 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27218 if (UNTAG_Bool(REGB0)) {
27219 /* ./parser//parser_prod.nit:5125 */
27220 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27221 if (UNTAG_Bool(REGB0)) {
27222 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5125);
27223 }
27224 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27225 /* ./parser//parser_prod.nit:5126 */
27226 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*/;
27227 if (UNTAG_Bool(REGB0)) {
27228 } else {
27229 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5126);
27230 }
27231 /* ./parser//parser_prod.nit:5127 */
27232 ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]) = fra.me.REG[2];
27233 } else {
27234 /* ./parser//parser_prod.nit:5129 */
27235 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5129);
27236 }
27237 /* ./parser//parser_prod.nit:5131 */
27238 goto label1;
27239 }
27240 /* ./parser//parser_prod.nit:5133 */
27241 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0])!=NIT_NULL);
27242 if (UNTAG_Bool(REGB0)) {
27243 } else {
27244 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5133);
27245 }
27246 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0]);
27247 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27248 if (UNTAG_Bool(REGB0)) {
27249 } else {
27250 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27251 REGB0 = REGB1;
27252 }
27253 if (UNTAG_Bool(REGB0)) {
27254 /* ./parser//parser_prod.nit:5134 */
27255 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27256 if (UNTAG_Bool(REGB0)) {
27257 } else {
27258 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27259 if (UNTAG_Bool(REGB1)) {
27260 REGB1 = TAG_Bool(false);
27261 REGB0 = REGB1;
27262 } else {
27263 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27264 REGB0 = REGB1;
27265 }
27266 }
27267 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27268 if (UNTAG_Bool(REGB0)) {
27269 /* ./parser//parser_prod.nit:5135 */
27270 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27271 if (UNTAG_Bool(REGB0)) {
27272 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5135);
27273 }
27274 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27275 /* ./parser//parser_prod.nit:5136 */
27276 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*/;
27277 if (UNTAG_Bool(REGB0)) {
27278 } else {
27279 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5136);
27280 }
27281 /* ./parser//parser_prod.nit:5137 */
27282 ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
27283 } else {
27284 /* ./parser//parser_prod.nit:5139 */
27285 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5139);
27286 }
27287 /* ./parser//parser_prod.nit:5141 */
27288 goto label1;
27289 }
27290 /* ./parser//parser_prod.nit:5143 */
27291 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]);
27292 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
27293 if (UNTAG_Bool(REGB0)) {
27294 } else {
27295 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
27296 if (UNTAG_Bool(REGB1)) {
27297 REGB1 = TAG_Bool(false);
27298 REGB0 = REGB1;
27299 } else {
27300 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27301 REGB0 = REGB1;
27302 }
27303 }
27304 if (UNTAG_Bool(REGB0)) {
27305 /* ./parser//parser_prod.nit:5144 */
27306 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27307 if (UNTAG_Bool(REGB0)) {
27308 } else {
27309 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27310 if (UNTAG_Bool(REGB1)) {
27311 REGB1 = TAG_Bool(false);
27312 REGB0 = REGB1;
27313 } else {
27314 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27315 REGB0 = REGB1;
27316 }
27317 }
27318 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27319 if (UNTAG_Bool(REGB0)) {
27320 /* ./parser//parser_prod.nit:5145 */
27321 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27322 if (UNTAG_Bool(REGB0)) {
27323 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5145);
27324 }
27325 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27326 /* ./parser//parser_prod.nit:5146 */
27327 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*/;
27328 if (UNTAG_Bool(REGB0)) {
27329 } else {
27330 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5146);
27331 }
27332 /* ./parser//parser_prod.nit:5147 */
27333 ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
27334 } else {
27335 /* ./parser//parser_prod.nit:5149 */
27336 ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = NIT_NULL;
27337 }
27338 /* ./parser//parser_prod.nit:5151 */
27339 goto label1;
27340 }
27341 /* ./parser//parser_prod.nit:5153 */
27342 REGB0 = TAG_Int(0);
27343 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
27344 if (UNTAG_Bool(REGB1)) {
27345 } else {
27346 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5153);
27347 }
27348 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
27349 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
27350 /* ./../lib/standard//kernel.nit:335 */
27351 while(1) {
27352 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
27353 if (UNTAG_Bool(REGB2)) {
27354 } else {
27355 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
27356 }
27357 /* ./../lib/standard//kernel.nit:215 */
27358 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
27359 /* ./../lib/standard//kernel.nit:335 */
27360 if (UNTAG_Bool(REGB2)) {
27361 /* ./parser//parser_prod.nit:5153 */
27362 REGB2 = REGB0;
27363 /* ./parser//parser_prod.nit:5154 */
27364 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
27365 if (UNTAG_Bool(REGB3)) {
27366 } else {
27367 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5154);
27368 }
27369 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
27370 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
27371 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
27372 if (UNTAG_Bool(REGB3)) {
27373 } else {
27374 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
27375 if (UNTAG_Bool(REGB4)) {
27376 REGB4 = TAG_Bool(false);
27377 REGB3 = REGB4;
27378 } else {
27379 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27380 REGB3 = REGB4;
27381 }
27382 }
27383 if (UNTAG_Bool(REGB3)) {
27384 /* ./parser//parser_prod.nit:5155 */
27385 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27386 if (UNTAG_Bool(REGB3)) {
27387 } else {
27388 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27389 if (UNTAG_Bool(REGB4)) {
27390 REGB4 = TAG_Bool(false);
27391 REGB3 = REGB4;
27392 } else {
27393 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27394 REGB3 = REGB4;
27395 }
27396 }
27397 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
27398 if (UNTAG_Bool(REGB3)) {
27399 /* ./parser//parser_prod.nit:5156 */
27400 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*/;
27401 if (UNTAG_Bool(REGB3)) {
27402 } else {
27403 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5156);
27404 }
27405 /* ./parser//parser_prod.nit:5157 */
27406 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
27407 if (UNTAG_Bool(REGB3)) {
27408 } else {
27409 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5157);
27410 }
27411 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
27412 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
27413 /* ./parser//parser_prod.nit:5158 */
27414 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27415 if (UNTAG_Bool(REGB3)) {
27416 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5158);
27417 }
27418 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27419 } else {
27420 /* ./parser//parser_prod.nit:5160 */
27421 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
27422 if (UNTAG_Bool(REGB3)) {
27423 } else {
27424 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5160);
27425 }
27426 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
27427 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
27428 }
27429 /* ./parser//parser_prod.nit:5162 */
27430 goto label1;
27431 }
27432 /* ./../lib/standard//kernel.nit:337 */
27433 REGB2 = TAG_Int(1);
27434 /* ./../lib/standard//kernel.nit:218 */
27435 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
27436 /* ./../lib/standard//kernel.nit:337 */
27437 REGB0 = REGB2;
27438 } else {
27439 /* ./../lib/standard//kernel.nit:335 */
27440 goto label2;
27441 }
27442 }
27443 label2: while(0);
27444 label1: while(0);
27445 stack_frame_head = fra.me.prev;
27446 return;
27447 }
27448 void parser___parser_prod___ANewExpr___visit_all(val_t p0, val_t p1){
27449 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27450 val_t REGB0;
27451 val_t REGB1;
27452 val_t tmp;
27453 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27454 fra.me.file = LOCATE_parser___parser_prod;
27455 fra.me.line = 5167;
27456 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___visit_all;
27457 fra.me.has_broke = 0;
27458 fra.me.REG_size = 4;
27459 fra.me.REG[0] = NIT_NULL;
27460 fra.me.REG[1] = NIT_NULL;
27461 fra.me.REG[2] = NIT_NULL;
27462 fra.me.REG[3] = NIT_NULL;
27463 fra.me.REG[0] = p0;
27464 fra.me.REG[1] = p1;
27465 /* ./parser//parser_prod.nit:5167 */
27466 fra.me.REG[2] = fra.me.REG[0];
27467 /* ./parser//parser_prod.nit:5169 */
27468 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[2])!=NIT_NULL);
27469 if (UNTAG_Bool(REGB0)) {
27470 } else {
27471 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 5169);
27472 }
27473 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[2]);
27474 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27475 /* ./parser//parser_prod.nit:5170 */
27476 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[2])!=NIT_NULL);
27477 if (UNTAG_Bool(REGB0)) {
27478 } else {
27479 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5170);
27480 }
27481 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[2]);
27482 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27483 /* ./parser//parser_prod.nit:5171 */
27484 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[2]);
27485 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
27486 if (UNTAG_Bool(REGB0)) {
27487 } else {
27488 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
27489 if (UNTAG_Bool(REGB1)) {
27490 REGB1 = TAG_Bool(false);
27491 REGB0 = REGB1;
27492 } else {
27493 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
27494 REGB0 = REGB1;
27495 }
27496 }
27497 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27498 if (UNTAG_Bool(REGB0)) {
27499 /* ./parser//parser_prod.nit:5172 */
27500 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[2]);
27501 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*/;
27502 if (UNTAG_Bool(REGB0)) {
27503 } else {
27504 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5172);
27505 }
27506 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27507 }
27508 /* ./parser//parser_prod.nit:5174 */
27509 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[2])!=NIT_NULL);
27510 if (UNTAG_Bool(REGB0)) {
27511 } else {
27512 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5174);
27513 }
27514 fra.me.REG[2] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[2]);
27515 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));
27516 stack_frame_head = fra.me.prev;
27517 return;
27518 }
27519 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){
27520 struct {struct stack_frame_t me;} fra;
27521 fun_t CREG[1];
27522 val_t tmp;
27523 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27524 fra.me.file = LOCATE_parser___parser_prod;
27525 fra.me.line = 0;
27526 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___visit_all;
27527 fra.me.has_broke = 0;
27528 fra.me.REG_size = 1;
27529 fra.me.REG[0] = NIT_NULL;
27530 fra.me.closure_ctx = closctx_param;
27531 fra.me.closure_funs = CREG;
27532 fra.me.REG[0] = p0;
27533 CREG[0] = clos_fun0;
27534 /* ./parser//parser_prod.nit:5175 */
27535 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
27536 stack_frame_head = fra.me.prev;
27537 return;
27538 }
27539 void parser___parser_prod___AAttrExpr___empty_init(val_t p0, int* init_table){
27540 int itpos179 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrExpr].i;
27541 struct {struct stack_frame_t me;} fra;
27542 val_t tmp;
27543 if (init_table[itpos179]) return;
27544 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27545 fra.me.file = LOCATE_parser___parser_prod;
27546 fra.me.line = 5180;
27547 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___empty_init;
27548 fra.me.has_broke = 0;
27549 fra.me.REG_size = 1;
27550 fra.me.REG[0] = NIT_NULL;
27551 fra.me.REG[0] = p0;
27552 stack_frame_head = fra.me.prev;
27553 init_table[itpos179] = 1;
27554 return;
27555 }
27556 void parser___parser_prod___AAttrExpr___init_aattrexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27557 int itpos180 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrExpr].i;
27558 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27559 val_t REGB0;
27560 val_t tmp;
27561 if (init_table[itpos180]) return;
27562 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27563 fra.me.file = LOCATE_parser___parser_prod;
27564 fra.me.line = 5182;
27565 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___init_aattrexpr;
27566 fra.me.has_broke = 0;
27567 fra.me.REG_size = 4;
27568 fra.me.REG[0] = NIT_NULL;
27569 fra.me.REG[1] = NIT_NULL;
27570 fra.me.REG[2] = NIT_NULL;
27571 fra.me.REG[3] = NIT_NULL;
27572 fra.me.REG[0] = p0;
27573 fra.me.REG[1] = p1;
27574 fra.me.REG[2] = p2;
27575 /* ./parser//parser_prod.nit:5182 */
27576 fra.me.REG[3] = fra.me.REG[0];
27577 /* ./parser//parser_prod.nit:5187 */
27578 CALL_parser___parser_prod___AAttrExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27579 /* ./parser//parser_prod.nit:5188 */
27580 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27581 if (UNTAG_Bool(REGB0)) {
27582 } else {
27583 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5188);
27584 }
27585 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27586 /* ./parser//parser_prod.nit:5189 */
27587 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27588 if (UNTAG_Bool(REGB0)) {
27589 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5189);
27590 }
27591 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27592 /* ./parser//parser_prod.nit:5190 */
27593 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27594 if (UNTAG_Bool(REGB0)) {
27595 } else {
27596 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5190);
27597 }
27598 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[3]) = fra.me.REG[2];
27599 /* ./parser//parser_prod.nit:5191 */
27600 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27601 if (UNTAG_Bool(REGB0)) {
27602 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5191);
27603 }
27604 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27605 stack_frame_head = fra.me.prev;
27606 init_table[itpos180] = 1;
27607 return;
27608 }
27609 void parser___parser_prod___AAttrExpr___replace_child(val_t p0, val_t p1, val_t p2){
27610 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27611 val_t REGB0;
27612 val_t REGB1;
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 = 5194;
27617 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___replace_child;
27618 fra.me.has_broke = 0;
27619 fra.me.REG_size = 4;
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[3] = NIT_NULL;
27624 fra.me.REG[0] = p0;
27625 fra.me.REG[1] = p1;
27626 fra.me.REG[2] = p2;
27627 /* ./parser//parser_prod.nit:5196 */
27628 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27629 if (UNTAG_Bool(REGB0)) {
27630 } else {
27631 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5196);
27632 }
27633 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
27634 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27635 if (UNTAG_Bool(REGB0)) {
27636 } else {
27637 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27638 REGB0 = REGB1;
27639 }
27640 if (UNTAG_Bool(REGB0)) {
27641 /* ./parser//parser_prod.nit:5197 */
27642 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27643 if (UNTAG_Bool(REGB0)) {
27644 } else {
27645 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27646 if (UNTAG_Bool(REGB1)) {
27647 REGB1 = TAG_Bool(false);
27648 REGB0 = REGB1;
27649 } else {
27650 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27651 REGB0 = REGB1;
27652 }
27653 }
27654 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27655 if (UNTAG_Bool(REGB0)) {
27656 /* ./parser//parser_prod.nit:5198 */
27657 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27658 if (UNTAG_Bool(REGB0)) {
27659 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5198);
27660 }
27661 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27662 /* ./parser//parser_prod.nit:5199 */
27663 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27664 if (UNTAG_Bool(REGB0)) {
27665 } else {
27666 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5199);
27667 }
27668 /* ./parser//parser_prod.nit:5200 */
27669 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27670 } else {
27671 /* ./parser//parser_prod.nit:5202 */
27672 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5202);
27673 }
27674 /* ./parser//parser_prod.nit:5204 */
27675 goto label1;
27676 }
27677 /* ./parser//parser_prod.nit:5206 */
27678 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
27679 if (UNTAG_Bool(REGB0)) {
27680 } else {
27681 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5206);
27682 }
27683 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
27684 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27685 if (UNTAG_Bool(REGB0)) {
27686 } else {
27687 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27688 REGB0 = REGB1;
27689 }
27690 if (UNTAG_Bool(REGB0)) {
27691 /* ./parser//parser_prod.nit:5207 */
27692 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27693 if (UNTAG_Bool(REGB0)) {
27694 } else {
27695 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27696 if (UNTAG_Bool(REGB1)) {
27697 REGB1 = TAG_Bool(false);
27698 REGB0 = REGB1;
27699 } else {
27700 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27701 REGB0 = REGB1;
27702 }
27703 }
27704 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27705 if (UNTAG_Bool(REGB0)) {
27706 /* ./parser//parser_prod.nit:5208 */
27707 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27708 if (UNTAG_Bool(REGB0)) {
27709 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5208);
27710 }
27711 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27712 /* ./parser//parser_prod.nit:5209 */
27713 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*/;
27714 if (UNTAG_Bool(REGB0)) {
27715 } else {
27716 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5209);
27717 }
27718 /* ./parser//parser_prod.nit:5210 */
27719 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
27720 } else {
27721 /* ./parser//parser_prod.nit:5212 */
27722 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5212);
27723 }
27724 /* ./parser//parser_prod.nit:5214 */
27725 goto label1;
27726 }
27727 label1: while(0);
27728 stack_frame_head = fra.me.prev;
27729 return;
27730 }
27731 void parser___parser_prod___AAttrExpr___visit_all(val_t p0, val_t p1){
27732 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27733 val_t REGB0;
27734 val_t tmp;
27735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27736 fra.me.file = LOCATE_parser___parser_prod;
27737 fra.me.line = 5218;
27738 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___visit_all;
27739 fra.me.has_broke = 0;
27740 fra.me.REG_size = 3;
27741 fra.me.REG[0] = NIT_NULL;
27742 fra.me.REG[1] = NIT_NULL;
27743 fra.me.REG[2] = NIT_NULL;
27744 fra.me.REG[0] = p0;
27745 fra.me.REG[1] = p1;
27746 /* ./parser//parser_prod.nit:5220 */
27747 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27748 if (UNTAG_Bool(REGB0)) {
27749 } else {
27750 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5220);
27751 }
27752 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
27753 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27754 /* ./parser//parser_prod.nit:5221 */
27755 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
27756 if (UNTAG_Bool(REGB0)) {
27757 } else {
27758 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5221);
27759 }
27760 fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
27761 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27762 stack_frame_head = fra.me.prev;
27763 return;
27764 }
27765 void parser___parser_prod___AAttrAssignExpr___empty_init(val_t p0, int* init_table){
27766 int itpos181 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrAssignExpr].i;
27767 struct {struct stack_frame_t me;} fra;
27768 val_t tmp;
27769 if (init_table[itpos181]) return;
27770 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27771 fra.me.file = LOCATE_parser___parser_prod;
27772 fra.me.line = 5225;
27773 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___empty_init;
27774 fra.me.has_broke = 0;
27775 fra.me.REG_size = 1;
27776 fra.me.REG[0] = NIT_NULL;
27777 fra.me.REG[0] = p0;
27778 stack_frame_head = fra.me.prev;
27779 init_table[itpos181] = 1;
27780 return;
27781 }
27782 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){
27783 int itpos182 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrAssignExpr].i;
27784 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
27785 val_t REGB0;
27786 val_t tmp;
27787 if (init_table[itpos182]) return;
27788 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27789 fra.me.file = LOCATE_parser___parser_prod;
27790 fra.me.line = 5227;
27791 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr;
27792 fra.me.has_broke = 0;
27793 fra.me.REG_size = 6;
27794 fra.me.REG[0] = NIT_NULL;
27795 fra.me.REG[1] = NIT_NULL;
27796 fra.me.REG[2] = NIT_NULL;
27797 fra.me.REG[3] = NIT_NULL;
27798 fra.me.REG[4] = NIT_NULL;
27799 fra.me.REG[5] = NIT_NULL;
27800 fra.me.REG[0] = p0;
27801 fra.me.REG[1] = p1;
27802 fra.me.REG[2] = p2;
27803 fra.me.REG[3] = p3;
27804 fra.me.REG[4] = p4;
27805 /* ./parser//parser_prod.nit:5227 */
27806 fra.me.REG[5] = fra.me.REG[0];
27807 /* ./parser//parser_prod.nit:5234 */
27808 CALL_parser___parser_prod___AAttrAssignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
27809 /* ./parser//parser_prod.nit:5235 */
27810 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27811 if (UNTAG_Bool(REGB0)) {
27812 } else {
27813 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5235);
27814 }
27815 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
27816 /* ./parser//parser_prod.nit:5236 */
27817 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27818 if (UNTAG_Bool(REGB0)) {
27819 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5236);
27820 }
27821 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
27822 /* ./parser//parser_prod.nit:5237 */
27823 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27824 if (UNTAG_Bool(REGB0)) {
27825 } else {
27826 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5237);
27827 }
27828 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
27829 /* ./parser//parser_prod.nit:5238 */
27830 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27831 if (UNTAG_Bool(REGB0)) {
27832 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5238);
27833 }
27834 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
27835 /* ./parser//parser_prod.nit:5239 */
27836 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
27837 if (UNTAG_Bool(REGB0)) {
27838 } else {
27839 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5239);
27840 }
27841 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[5]) = fra.me.REG[3];
27842 /* ./parser//parser_prod.nit:5240 */
27843 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
27844 if (UNTAG_Bool(REGB0)) {
27845 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5240);
27846 }
27847 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
27848 /* ./parser//parser_prod.nit:5241 */
27849 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
27850 if (UNTAG_Bool(REGB0)) {
27851 } else {
27852 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5241);
27853 }
27854 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
27855 /* ./parser//parser_prod.nit:5242 */
27856 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
27857 if (UNTAG_Bool(REGB0)) {
27858 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5242);
27859 }
27860 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
27861 stack_frame_head = fra.me.prev;
27862 init_table[itpos182] = 1;
27863 return;
27864 }
27865 void parser___parser_prod___AAttrAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
27866 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27867 val_t REGB0;
27868 val_t REGB1;
27869 val_t tmp;
27870 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27871 fra.me.file = LOCATE_parser___parser_prod;
27872 fra.me.line = 5245;
27873 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___replace_child;
27874 fra.me.has_broke = 0;
27875 fra.me.REG_size = 4;
27876 fra.me.REG[0] = NIT_NULL;
27877 fra.me.REG[1] = NIT_NULL;
27878 fra.me.REG[2] = NIT_NULL;
27879 fra.me.REG[3] = NIT_NULL;
27880 fra.me.REG[0] = p0;
27881 fra.me.REG[1] = p1;
27882 fra.me.REG[2] = p2;
27883 /* ./parser//parser_prod.nit:5247 */
27884 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27885 if (UNTAG_Bool(REGB0)) {
27886 } else {
27887 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5247);
27888 }
27889 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
27890 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27891 if (UNTAG_Bool(REGB0)) {
27892 } else {
27893 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27894 REGB0 = REGB1;
27895 }
27896 if (UNTAG_Bool(REGB0)) {
27897 /* ./parser//parser_prod.nit:5248 */
27898 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27899 if (UNTAG_Bool(REGB0)) {
27900 } else {
27901 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27902 if (UNTAG_Bool(REGB1)) {
27903 REGB1 = TAG_Bool(false);
27904 REGB0 = REGB1;
27905 } else {
27906 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27907 REGB0 = REGB1;
27908 }
27909 }
27910 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27911 if (UNTAG_Bool(REGB0)) {
27912 /* ./parser//parser_prod.nit:5249 */
27913 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27914 if (UNTAG_Bool(REGB0)) {
27915 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5249);
27916 }
27917 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27918 /* ./parser//parser_prod.nit:5250 */
27919 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27920 if (UNTAG_Bool(REGB0)) {
27921 } else {
27922 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5250);
27923 }
27924 /* ./parser//parser_prod.nit:5251 */
27925 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27926 } else {
27927 /* ./parser//parser_prod.nit:5253 */
27928 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5253);
27929 }
27930 /* ./parser//parser_prod.nit:5255 */
27931 goto label1;
27932 }
27933 /* ./parser//parser_prod.nit:5257 */
27934 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
27935 if (UNTAG_Bool(REGB0)) {
27936 } else {
27937 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5257);
27938 }
27939 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
27940 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27941 if (UNTAG_Bool(REGB0)) {
27942 } else {
27943 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27944 REGB0 = REGB1;
27945 }
27946 if (UNTAG_Bool(REGB0)) {
27947 /* ./parser//parser_prod.nit:5258 */
27948 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27949 if (UNTAG_Bool(REGB0)) {
27950 } else {
27951 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27952 if (UNTAG_Bool(REGB1)) {
27953 REGB1 = TAG_Bool(false);
27954 REGB0 = REGB1;
27955 } else {
27956 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27957 REGB0 = REGB1;
27958 }
27959 }
27960 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27961 if (UNTAG_Bool(REGB0)) {
27962 /* ./parser//parser_prod.nit:5259 */
27963 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27964 if (UNTAG_Bool(REGB0)) {
27965 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5259);
27966 }
27967 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27968 /* ./parser//parser_prod.nit:5260 */
27969 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*/;
27970 if (UNTAG_Bool(REGB0)) {
27971 } else {
27972 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5260);
27973 }
27974 /* ./parser//parser_prod.nit:5261 */
27975 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
27976 } else {
27977 /* ./parser//parser_prod.nit:5263 */
27978 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5263);
27979 }
27980 /* ./parser//parser_prod.nit:5265 */
27981 goto label1;
27982 }
27983 /* ./parser//parser_prod.nit:5267 */
27984 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
27985 if (UNTAG_Bool(REGB0)) {
27986 } else {
27987 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5267);
27988 }
27989 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
27990 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27991 if (UNTAG_Bool(REGB0)) {
27992 } else {
27993 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27994 REGB0 = REGB1;
27995 }
27996 if (UNTAG_Bool(REGB0)) {
27997 /* ./parser//parser_prod.nit:5268 */
27998 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27999 if (UNTAG_Bool(REGB0)) {
28000 } else {
28001 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28002 if (UNTAG_Bool(REGB1)) {
28003 REGB1 = TAG_Bool(false);
28004 REGB0 = REGB1;
28005 } else {
28006 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28007 REGB0 = REGB1;
28008 }
28009 }
28010 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28011 if (UNTAG_Bool(REGB0)) {
28012 /* ./parser//parser_prod.nit:5269 */
28013 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28014 if (UNTAG_Bool(REGB0)) {
28015 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5269);
28016 }
28017 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28018 /* ./parser//parser_prod.nit:5270 */
28019 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*/;
28020 if (UNTAG_Bool(REGB0)) {
28021 } else {
28022 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5270);
28023 }
28024 /* ./parser//parser_prod.nit:5271 */
28025 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
28026 } else {
28027 /* ./parser//parser_prod.nit:5273 */
28028 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5273);
28029 }
28030 /* ./parser//parser_prod.nit:5275 */
28031 goto label1;
28032 }
28033 /* ./parser//parser_prod.nit:5277 */
28034 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
28035 if (UNTAG_Bool(REGB0)) {
28036 } else {
28037 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5277);
28038 }
28039 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
28040 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28041 if (UNTAG_Bool(REGB0)) {
28042 } else {
28043 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28044 REGB0 = REGB1;
28045 }
28046 if (UNTAG_Bool(REGB0)) {
28047 /* ./parser//parser_prod.nit:5278 */
28048 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28049 if (UNTAG_Bool(REGB0)) {
28050 } else {
28051 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28052 if (UNTAG_Bool(REGB1)) {
28053 REGB1 = TAG_Bool(false);
28054 REGB0 = REGB1;
28055 } else {
28056 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28057 REGB0 = REGB1;
28058 }
28059 }
28060 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28061 if (UNTAG_Bool(REGB0)) {
28062 /* ./parser//parser_prod.nit:5279 */
28063 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28064 if (UNTAG_Bool(REGB0)) {
28065 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5279);
28066 }
28067 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28068 /* ./parser//parser_prod.nit:5280 */
28069 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28070 if (UNTAG_Bool(REGB0)) {
28071 } else {
28072 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5280);
28073 }
28074 /* ./parser//parser_prod.nit:5281 */
28075 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
28076 } else {
28077 /* ./parser//parser_prod.nit:5283 */
28078 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5283);
28079 }
28080 /* ./parser//parser_prod.nit:5285 */
28081 goto label1;
28082 }
28083 label1: while(0);
28084 stack_frame_head = fra.me.prev;
28085 return;
28086 }
28087 void parser___parser_prod___AAttrAssignExpr___visit_all(val_t p0, val_t p1){
28088 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28089 val_t REGB0;
28090 val_t tmp;
28091 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28092 fra.me.file = LOCATE_parser___parser_prod;
28093 fra.me.line = 5289;
28094 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___visit_all;
28095 fra.me.has_broke = 0;
28096 fra.me.REG_size = 3;
28097 fra.me.REG[0] = NIT_NULL;
28098 fra.me.REG[1] = NIT_NULL;
28099 fra.me.REG[2] = NIT_NULL;
28100 fra.me.REG[0] = p0;
28101 fra.me.REG[1] = p1;
28102 /* ./parser//parser_prod.nit:5291 */
28103 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28104 if (UNTAG_Bool(REGB0)) {
28105 } else {
28106 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5291);
28107 }
28108 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
28109 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28110 /* ./parser//parser_prod.nit:5292 */
28111 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
28112 if (UNTAG_Bool(REGB0)) {
28113 } else {
28114 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5292);
28115 }
28116 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
28117 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28118 /* ./parser//parser_prod.nit:5293 */
28119 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
28120 if (UNTAG_Bool(REGB0)) {
28121 } else {
28122 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5293);
28123 }
28124 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
28125 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28126 /* ./parser//parser_prod.nit:5294 */
28127 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
28128 if (UNTAG_Bool(REGB0)) {
28129 } else {
28130 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5294);
28131 }
28132 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
28133 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28134 stack_frame_head = fra.me.prev;
28135 return;
28136 }
28137 void parser___parser_prod___AAttrReassignExpr___empty_init(val_t p0, int* init_table){
28138 int itpos183 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrReassignExpr].i;
28139 struct {struct stack_frame_t me;} fra;
28140 val_t tmp;
28141 if (init_table[itpos183]) return;
28142 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28143 fra.me.file = LOCATE_parser___parser_prod;
28144 fra.me.line = 5298;
28145 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___empty_init;
28146 fra.me.has_broke = 0;
28147 fra.me.REG_size = 1;
28148 fra.me.REG[0] = NIT_NULL;
28149 fra.me.REG[0] = p0;
28150 stack_frame_head = fra.me.prev;
28151 init_table[itpos183] = 1;
28152 return;
28153 }
28154 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){
28155 int itpos184 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrReassignExpr].i;
28156 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
28157 val_t REGB0;
28158 val_t tmp;
28159 if (init_table[itpos184]) return;
28160 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28161 fra.me.file = LOCATE_parser___parser_prod;
28162 fra.me.line = 5300;
28163 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr;
28164 fra.me.has_broke = 0;
28165 fra.me.REG_size = 6;
28166 fra.me.REG[0] = NIT_NULL;
28167 fra.me.REG[1] = NIT_NULL;
28168 fra.me.REG[2] = NIT_NULL;
28169 fra.me.REG[3] = NIT_NULL;
28170 fra.me.REG[4] = NIT_NULL;
28171 fra.me.REG[5] = NIT_NULL;
28172 fra.me.REG[0] = p0;
28173 fra.me.REG[1] = p1;
28174 fra.me.REG[2] = p2;
28175 fra.me.REG[3] = p3;
28176 fra.me.REG[4] = p4;
28177 /* ./parser//parser_prod.nit:5300 */
28178 fra.me.REG[5] = fra.me.REG[0];
28179 /* ./parser//parser_prod.nit:5307 */
28180 CALL_parser___parser_prod___AAttrReassignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
28181 /* ./parser//parser_prod.nit:5308 */
28182 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28183 if (UNTAG_Bool(REGB0)) {
28184 } else {
28185 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5308);
28186 }
28187 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
28188 /* ./parser//parser_prod.nit:5309 */
28189 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28190 if (UNTAG_Bool(REGB0)) {
28191 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5309);
28192 }
28193 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
28194 /* ./parser//parser_prod.nit:5310 */
28195 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28196 if (UNTAG_Bool(REGB0)) {
28197 } else {
28198 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5310);
28199 }
28200 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
28201 /* ./parser//parser_prod.nit:5311 */
28202 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28203 if (UNTAG_Bool(REGB0)) {
28204 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5311);
28205 }
28206 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
28207 /* ./parser//parser_prod.nit:5312 */
28208 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
28209 if (UNTAG_Bool(REGB0)) {
28210 } else {
28211 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5312);
28212 }
28213 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[5]) = fra.me.REG[3];
28214 /* ./parser//parser_prod.nit:5313 */
28215 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28216 if (UNTAG_Bool(REGB0)) {
28217 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5313);
28218 }
28219 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
28220 /* ./parser//parser_prod.nit:5314 */
28221 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
28222 if (UNTAG_Bool(REGB0)) {
28223 } else {
28224 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5314);
28225 }
28226 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
28227 /* ./parser//parser_prod.nit:5315 */
28228 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
28229 if (UNTAG_Bool(REGB0)) {
28230 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5315);
28231 }
28232 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
28233 stack_frame_head = fra.me.prev;
28234 init_table[itpos184] = 1;
28235 return;
28236 }
28237 void parser___parser_prod___AAttrReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
28238 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28239 val_t REGB0;
28240 val_t REGB1;
28241 val_t tmp;
28242 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28243 fra.me.file = LOCATE_parser___parser_prod;
28244 fra.me.line = 5318;
28245 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___replace_child;
28246 fra.me.has_broke = 0;
28247 fra.me.REG_size = 4;
28248 fra.me.REG[0] = NIT_NULL;
28249 fra.me.REG[1] = NIT_NULL;
28250 fra.me.REG[2] = NIT_NULL;
28251 fra.me.REG[3] = NIT_NULL;
28252 fra.me.REG[0] = p0;
28253 fra.me.REG[1] = p1;
28254 fra.me.REG[2] = p2;
28255 /* ./parser//parser_prod.nit:5320 */
28256 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28257 if (UNTAG_Bool(REGB0)) {
28258 } else {
28259 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5320);
28260 }
28261 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
28262 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28263 if (UNTAG_Bool(REGB0)) {
28264 } else {
28265 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28266 REGB0 = REGB1;
28267 }
28268 if (UNTAG_Bool(REGB0)) {
28269 /* ./parser//parser_prod.nit:5321 */
28270 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28271 if (UNTAG_Bool(REGB0)) {
28272 } else {
28273 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28274 if (UNTAG_Bool(REGB1)) {
28275 REGB1 = TAG_Bool(false);
28276 REGB0 = REGB1;
28277 } else {
28278 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28279 REGB0 = REGB1;
28280 }
28281 }
28282 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28283 if (UNTAG_Bool(REGB0)) {
28284 /* ./parser//parser_prod.nit:5322 */
28285 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28286 if (UNTAG_Bool(REGB0)) {
28287 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5322);
28288 }
28289 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28290 /* ./parser//parser_prod.nit:5323 */
28291 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28292 if (UNTAG_Bool(REGB0)) {
28293 } else {
28294 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5323);
28295 }
28296 /* ./parser//parser_prod.nit:5324 */
28297 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28298 } else {
28299 /* ./parser//parser_prod.nit:5326 */
28300 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5326);
28301 }
28302 /* ./parser//parser_prod.nit:5328 */
28303 goto label1;
28304 }
28305 /* ./parser//parser_prod.nit:5330 */
28306 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
28307 if (UNTAG_Bool(REGB0)) {
28308 } else {
28309 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5330);
28310 }
28311 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
28312 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28313 if (UNTAG_Bool(REGB0)) {
28314 } else {
28315 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28316 REGB0 = REGB1;
28317 }
28318 if (UNTAG_Bool(REGB0)) {
28319 /* ./parser//parser_prod.nit:5331 */
28320 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28321 if (UNTAG_Bool(REGB0)) {
28322 } else {
28323 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28324 if (UNTAG_Bool(REGB1)) {
28325 REGB1 = TAG_Bool(false);
28326 REGB0 = REGB1;
28327 } else {
28328 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28329 REGB0 = REGB1;
28330 }
28331 }
28332 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28333 if (UNTAG_Bool(REGB0)) {
28334 /* ./parser//parser_prod.nit:5332 */
28335 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28336 if (UNTAG_Bool(REGB0)) {
28337 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5332);
28338 }
28339 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28340 /* ./parser//parser_prod.nit:5333 */
28341 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*/;
28342 if (UNTAG_Bool(REGB0)) {
28343 } else {
28344 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5333);
28345 }
28346 /* ./parser//parser_prod.nit:5334 */
28347 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
28348 } else {
28349 /* ./parser//parser_prod.nit:5336 */
28350 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5336);
28351 }
28352 /* ./parser//parser_prod.nit:5338 */
28353 goto label1;
28354 }
28355 /* ./parser//parser_prod.nit:5340 */
28356 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
28357 if (UNTAG_Bool(REGB0)) {
28358 } else {
28359 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5340);
28360 }
28361 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
28362 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28363 if (UNTAG_Bool(REGB0)) {
28364 } else {
28365 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28366 REGB0 = REGB1;
28367 }
28368 if (UNTAG_Bool(REGB0)) {
28369 /* ./parser//parser_prod.nit:5341 */
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:5342 */
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, 5342);
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:5343 */
28391 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*/;
28392 if (UNTAG_Bool(REGB0)) {
28393 } else {
28394 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5343);
28395 }
28396 /* ./parser//parser_prod.nit:5344 */
28397 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
28398 } else {
28399 /* ./parser//parser_prod.nit:5346 */
28400 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5346);
28401 }
28402 /* ./parser//parser_prod.nit:5348 */
28403 goto label1;
28404 }
28405 /* ./parser//parser_prod.nit:5350 */
28406 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
28407 if (UNTAG_Bool(REGB0)) {
28408 } else {
28409 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5350);
28410 }
28411 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
28412 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28413 if (UNTAG_Bool(REGB0)) {
28414 } else {
28415 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28416 REGB0 = REGB1;
28417 }
28418 if (UNTAG_Bool(REGB0)) {
28419 /* ./parser//parser_prod.nit:5351 */
28420 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28421 if (UNTAG_Bool(REGB0)) {
28422 } else {
28423 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28424 if (UNTAG_Bool(REGB1)) {
28425 REGB1 = TAG_Bool(false);
28426 REGB0 = REGB1;
28427 } else {
28428 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28429 REGB0 = REGB1;
28430 }
28431 }
28432 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28433 if (UNTAG_Bool(REGB0)) {
28434 /* ./parser//parser_prod.nit:5352 */
28435 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28436 if (UNTAG_Bool(REGB0)) {
28437 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5352);
28438 }
28439 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28440 /* ./parser//parser_prod.nit:5353 */
28441 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28442 if (UNTAG_Bool(REGB0)) {
28443 } else {
28444 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5353);
28445 }
28446 /* ./parser//parser_prod.nit:5354 */
28447 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
28448 } else {
28449 /* ./parser//parser_prod.nit:5356 */
28450 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5356);
28451 }
28452 /* ./parser//parser_prod.nit:5358 */
28453 goto label1;
28454 }
28455 label1: while(0);
28456 stack_frame_head = fra.me.prev;
28457 return;
28458 }
28459 void parser___parser_prod___AAttrReassignExpr___visit_all(val_t p0, val_t p1){
28460 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28461 val_t REGB0;
28462 val_t tmp;
28463 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28464 fra.me.file = LOCATE_parser___parser_prod;
28465 fra.me.line = 5362;
28466 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___visit_all;
28467 fra.me.has_broke = 0;
28468 fra.me.REG_size = 3;
28469 fra.me.REG[0] = NIT_NULL;
28470 fra.me.REG[1] = NIT_NULL;
28471 fra.me.REG[2] = NIT_NULL;
28472 fra.me.REG[0] = p0;
28473 fra.me.REG[1] = p1;
28474 /* ./parser//parser_prod.nit:5364 */
28475 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28476 if (UNTAG_Bool(REGB0)) {
28477 } else {
28478 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5364);
28479 }
28480 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
28481 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28482 /* ./parser//parser_prod.nit:5365 */
28483 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
28484 if (UNTAG_Bool(REGB0)) {
28485 } else {
28486 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5365);
28487 }
28488 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
28489 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28490 /* ./parser//parser_prod.nit:5366 */
28491 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
28492 if (UNTAG_Bool(REGB0)) {
28493 } else {
28494 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5366);
28495 }
28496 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
28497 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28498 /* ./parser//parser_prod.nit:5367 */
28499 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
28500 if (UNTAG_Bool(REGB0)) {
28501 } else {
28502 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5367);
28503 }
28504 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
28505 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28506 stack_frame_head = fra.me.prev;
28507 return;
28508 }
28509 void parser___parser_prod___ACallExpr___empty_init(val_t p0, int* init_table){
28510 int itpos185 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallExpr].i;
28511 struct {struct stack_frame_t me;} fra;
28512 val_t tmp;
28513 if (init_table[itpos185]) return;
28514 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28515 fra.me.file = LOCATE_parser___parser_prod;
28516 fra.me.line = 5371;
28517 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___empty_init;
28518 fra.me.has_broke = 0;
28519 fra.me.REG_size = 1;
28520 fra.me.REG[0] = NIT_NULL;
28521 fra.me.REG[0] = p0;
28522 stack_frame_head = fra.me.prev;
28523 init_table[itpos185] = 1;
28524 return;
28525 }
28526 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){
28527 int itpos186 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallExpr].i;
28528 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
28529 val_t REGB0;
28530 val_t tmp;
28531 if (init_table[itpos186]) return;
28532 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28533 fra.me.file = LOCATE_parser___parser_prod;
28534 fra.me.line = 5373;
28535 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___init_acallexpr;
28536 fra.me.has_broke = 0;
28537 fra.me.REG_size = 6;
28538 fra.me.REG[0] = NIT_NULL;
28539 fra.me.REG[1] = NIT_NULL;
28540 fra.me.REG[2] = NIT_NULL;
28541 fra.me.REG[3] = NIT_NULL;
28542 fra.me.REG[4] = NIT_NULL;
28543 fra.me.REG[5] = NIT_NULL;
28544 fra.me.REG[0] = p0;
28545 fra.me.REG[1] = p1;
28546 fra.me.REG[2] = p2;
28547 fra.me.REG[3] = p3;
28548 fra.me.REG[4] = p4;
28549 /* ./parser//parser_prod.nit:5373 */
28550 fra.me.REG[5] = fra.me.REG[0];
28551 /* ./parser//parser_prod.nit:5380 */
28552 CALL_parser___parser_prod___ACallExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
28553 /* ./parser//parser_prod.nit:5381 */
28554 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28555 if (UNTAG_Bool(REGB0)) {
28556 } else {
28557 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5381);
28558 }
28559 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
28560 /* ./parser//parser_prod.nit:5382 */
28561 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28562 if (UNTAG_Bool(REGB0)) {
28563 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5382);
28564 }
28565 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
28566 /* ./parser//parser_prod.nit:5383 */
28567 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28568 if (UNTAG_Bool(REGB0)) {
28569 } else {
28570 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5383);
28571 }
28572 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
28573 /* ./parser//parser_prod.nit:5384 */
28574 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28575 if (UNTAG_Bool(REGB0)) {
28576 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5384);
28577 }
28578 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
28579 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));
28580 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));
28581 stack_frame_head = fra.me.prev;
28582 init_table[itpos186] = 1;
28583 return;
28584 }
28585 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){
28586 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28587 val_t REGB0;
28588 fun_t CREG[1];
28589 val_t tmp;
28590 /* ./parser//parser_prod.nit:5385 */
28591 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28592 fra.me.file = LOCATE_parser___parser_prod;
28593 fra.me.line = 0;
28594 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___init_acallexpr;
28595 fra.me.has_broke = 0;
28596 fra.me.REG_size = 2;
28597 fra.me.REG[0] = NIT_NULL;
28598 fra.me.REG[1] = NIT_NULL;
28599 fra.me.closure_ctx = closctx_param;
28600 fra.me.closure_funs = CREG;
28601 fra.me.REG[0] = p0;
28602 CREG[0] = clos_fun0;
28603 /* ./parser//parser_prod.nit:5386 */
28604 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28605 if (UNTAG_Bool(REGB0)) {
28606 } else {
28607 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5386);
28608 }
28609 /* ./parser//parser_prod.nit:5387 */
28610 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[5])!=NIT_NULL);
28611 if (UNTAG_Bool(REGB0)) {
28612 } else {
28613 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5387);
28614 }
28615 fra.me.REG[1] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[5]);
28616 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28617 /* ./parser//parser_prod.nit:5388 */
28618 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
28619 stack_frame_head = fra.me.prev;
28620 return;
28621 }
28622 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){
28623 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28624 val_t REGB0;
28625 fun_t CREG[1];
28626 val_t tmp;
28627 /* ./parser//parser_prod.nit:5390 */
28628 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28629 fra.me.file = LOCATE_parser___parser_prod;
28630 fra.me.line = 0;
28631 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___init_acallexpr;
28632 fra.me.has_broke = 0;
28633 fra.me.REG_size = 2;
28634 fra.me.REG[0] = NIT_NULL;
28635 fra.me.REG[1] = NIT_NULL;
28636 fra.me.closure_ctx = closctx_param;
28637 fra.me.closure_funs = CREG;
28638 fra.me.REG[0] = p0;
28639 CREG[0] = clos_fun0;
28640 /* ./parser//parser_prod.nit:5391 */
28641 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
28642 if (UNTAG_Bool(REGB0)) {
28643 } else {
28644 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5391);
28645 }
28646 /* ./parser//parser_prod.nit:5392 */
28647 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[5])!=NIT_NULL);
28648 if (UNTAG_Bool(REGB0)) {
28649 } else {
28650 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5392);
28651 }
28652 fra.me.REG[1] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[5]);
28653 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28654 /* ./parser//parser_prod.nit:5393 */
28655 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
28656 stack_frame_head = fra.me.prev;
28657 return;
28658 }
28659 void parser___parser_prod___ACallExpr___replace_child(val_t p0, val_t p1, val_t p2){
28660 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28661 val_t REGB0;
28662 val_t REGB1;
28663 val_t REGB2;
28664 val_t REGB3;
28665 val_t REGB4;
28666 val_t tmp;
28667 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28668 fra.me.file = LOCATE_parser___parser_prod;
28669 fra.me.line = 5397;
28670 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___replace_child;
28671 fra.me.has_broke = 0;
28672 fra.me.REG_size = 4;
28673 fra.me.REG[0] = NIT_NULL;
28674 fra.me.REG[1] = NIT_NULL;
28675 fra.me.REG[2] = NIT_NULL;
28676 fra.me.REG[3] = NIT_NULL;
28677 fra.me.REG[0] = p0;
28678 fra.me.REG[1] = p1;
28679 fra.me.REG[2] = p2;
28680 /* ./parser//parser_prod.nit:5399 */
28681 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28682 if (UNTAG_Bool(REGB0)) {
28683 } else {
28684 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5399);
28685 }
28686 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28687 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28688 if (UNTAG_Bool(REGB0)) {
28689 } else {
28690 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28691 REGB0 = REGB1;
28692 }
28693 if (UNTAG_Bool(REGB0)) {
28694 /* ./parser//parser_prod.nit:5400 */
28695 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28696 if (UNTAG_Bool(REGB0)) {
28697 } else {
28698 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28699 if (UNTAG_Bool(REGB1)) {
28700 REGB1 = TAG_Bool(false);
28701 REGB0 = REGB1;
28702 } else {
28703 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28704 REGB0 = REGB1;
28705 }
28706 }
28707 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28708 if (UNTAG_Bool(REGB0)) {
28709 /* ./parser//parser_prod.nit:5401 */
28710 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28711 if (UNTAG_Bool(REGB0)) {
28712 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5401);
28713 }
28714 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28715 /* ./parser//parser_prod.nit:5402 */
28716 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28717 if (UNTAG_Bool(REGB0)) {
28718 } else {
28719 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5402);
28720 }
28721 /* ./parser//parser_prod.nit:5403 */
28722 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28723 } else {
28724 /* ./parser//parser_prod.nit:5405 */
28725 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5405);
28726 }
28727 /* ./parser//parser_prod.nit:5407 */
28728 goto label1;
28729 }
28730 /* ./parser//parser_prod.nit:5409 */
28731 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
28732 if (UNTAG_Bool(REGB0)) {
28733 } else {
28734 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5409);
28735 }
28736 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
28737 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28738 if (UNTAG_Bool(REGB0)) {
28739 } else {
28740 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28741 REGB0 = REGB1;
28742 }
28743 if (UNTAG_Bool(REGB0)) {
28744 /* ./parser//parser_prod.nit:5410 */
28745 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28746 if (UNTAG_Bool(REGB0)) {
28747 } else {
28748 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28749 if (UNTAG_Bool(REGB1)) {
28750 REGB1 = TAG_Bool(false);
28751 REGB0 = REGB1;
28752 } else {
28753 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28754 REGB0 = REGB1;
28755 }
28756 }
28757 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28758 if (UNTAG_Bool(REGB0)) {
28759 /* ./parser//parser_prod.nit:5411 */
28760 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28761 if (UNTAG_Bool(REGB0)) {
28762 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5411);
28763 }
28764 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28765 /* ./parser//parser_prod.nit:5412 */
28766 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*/;
28767 if (UNTAG_Bool(REGB0)) {
28768 } else {
28769 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5412);
28770 }
28771 /* ./parser//parser_prod.nit:5413 */
28772 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
28773 } else {
28774 /* ./parser//parser_prod.nit:5415 */
28775 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5415);
28776 }
28777 /* ./parser//parser_prod.nit:5417 */
28778 goto label1;
28779 }
28780 /* ./parser//parser_prod.nit:5419 */
28781 REGB0 = TAG_Int(0);
28782 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28783 if (UNTAG_Bool(REGB1)) {
28784 } else {
28785 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5419);
28786 }
28787 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28788 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
28789 /* ./../lib/standard//kernel.nit:335 */
28790 while(1) {
28791 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
28792 if (UNTAG_Bool(REGB2)) {
28793 } else {
28794 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
28795 }
28796 /* ./../lib/standard//kernel.nit:215 */
28797 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
28798 /* ./../lib/standard//kernel.nit:335 */
28799 if (UNTAG_Bool(REGB2)) {
28800 /* ./parser//parser_prod.nit:5419 */
28801 REGB2 = REGB0;
28802 /* ./parser//parser_prod.nit:5420 */
28803 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28804 if (UNTAG_Bool(REGB3)) {
28805 } else {
28806 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5420);
28807 }
28808 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28809 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
28810 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
28811 if (UNTAG_Bool(REGB3)) {
28812 } else {
28813 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28814 if (UNTAG_Bool(REGB4)) {
28815 REGB4 = TAG_Bool(false);
28816 REGB3 = REGB4;
28817 } else {
28818 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28819 REGB3 = REGB4;
28820 }
28821 }
28822 if (UNTAG_Bool(REGB3)) {
28823 /* ./parser//parser_prod.nit:5421 */
28824 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28825 if (UNTAG_Bool(REGB3)) {
28826 } else {
28827 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28828 if (UNTAG_Bool(REGB4)) {
28829 REGB4 = TAG_Bool(false);
28830 REGB3 = REGB4;
28831 } else {
28832 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28833 REGB3 = REGB4;
28834 }
28835 }
28836 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
28837 if (UNTAG_Bool(REGB3)) {
28838 /* ./parser//parser_prod.nit:5422 */
28839 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*/;
28840 if (UNTAG_Bool(REGB3)) {
28841 } else {
28842 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5422);
28843 }
28844 /* ./parser//parser_prod.nit:5423 */
28845 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28846 if (UNTAG_Bool(REGB3)) {
28847 } else {
28848 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5423);
28849 }
28850 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28851 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
28852 /* ./parser//parser_prod.nit:5424 */
28853 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28854 if (UNTAG_Bool(REGB3)) {
28855 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5424);
28856 }
28857 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28858 } else {
28859 /* ./parser//parser_prod.nit:5426 */
28860 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28861 if (UNTAG_Bool(REGB3)) {
28862 } else {
28863 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5426);
28864 }
28865 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28866 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
28867 }
28868 /* ./parser//parser_prod.nit:5428 */
28869 goto label1;
28870 }
28871 /* ./../lib/standard//kernel.nit:337 */
28872 REGB2 = TAG_Int(1);
28873 /* ./../lib/standard//kernel.nit:218 */
28874 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
28875 /* ./../lib/standard//kernel.nit:337 */
28876 REGB0 = REGB2;
28877 } else {
28878 /* ./../lib/standard//kernel.nit:335 */
28879 goto label2;
28880 }
28881 }
28882 label2: while(0);
28883 /* ./parser//parser_prod.nit:5431 */
28884 REGB0 = TAG_Int(0);
28885 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
28886 if (UNTAG_Bool(REGB1)) {
28887 } else {
28888 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5431);
28889 }
28890 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
28891 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
28892 /* ./../lib/standard//kernel.nit:335 */
28893 while(1) {
28894 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
28895 if (UNTAG_Bool(REGB2)) {
28896 } else {
28897 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
28898 }
28899 /* ./../lib/standard//kernel.nit:215 */
28900 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
28901 /* ./../lib/standard//kernel.nit:335 */
28902 if (UNTAG_Bool(REGB2)) {
28903 /* ./parser//parser_prod.nit:5431 */
28904 REGB2 = REGB0;
28905 /* ./parser//parser_prod.nit:5432 */
28906 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
28907 if (UNTAG_Bool(REGB3)) {
28908 } else {
28909 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5432);
28910 }
28911 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
28912 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
28913 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
28914 if (UNTAG_Bool(REGB3)) {
28915 } else {
28916 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28917 if (UNTAG_Bool(REGB4)) {
28918 REGB4 = TAG_Bool(false);
28919 REGB3 = REGB4;
28920 } else {
28921 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28922 REGB3 = REGB4;
28923 }
28924 }
28925 if (UNTAG_Bool(REGB3)) {
28926 /* ./parser//parser_prod.nit:5433 */
28927 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28928 if (UNTAG_Bool(REGB3)) {
28929 } else {
28930 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28931 if (UNTAG_Bool(REGB4)) {
28932 REGB4 = TAG_Bool(false);
28933 REGB3 = REGB4;
28934 } else {
28935 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28936 REGB3 = REGB4;
28937 }
28938 }
28939 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
28940 if (UNTAG_Bool(REGB3)) {
28941 /* ./parser//parser_prod.nit:5434 */
28942 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*/;
28943 if (UNTAG_Bool(REGB3)) {
28944 } else {
28945 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5434);
28946 }
28947 /* ./parser//parser_prod.nit:5435 */
28948 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
28949 if (UNTAG_Bool(REGB3)) {
28950 } else {
28951 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5435);
28952 }
28953 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
28954 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
28955 /* ./parser//parser_prod.nit:5436 */
28956 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28957 if (UNTAG_Bool(REGB3)) {
28958 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5436);
28959 }
28960 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28961 } else {
28962 /* ./parser//parser_prod.nit:5438 */
28963 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
28964 if (UNTAG_Bool(REGB3)) {
28965 } else {
28966 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5438);
28967 }
28968 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
28969 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
28970 }
28971 /* ./parser//parser_prod.nit:5440 */
28972 goto label1;
28973 }
28974 /* ./../lib/standard//kernel.nit:337 */
28975 REGB2 = TAG_Int(1);
28976 /* ./../lib/standard//kernel.nit:218 */
28977 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
28978 /* ./../lib/standard//kernel.nit:337 */
28979 REGB0 = REGB2;
28980 } else {
28981 /* ./../lib/standard//kernel.nit:335 */
28982 goto label3;
28983 }
28984 }
28985 label3: while(0);
28986 label1: while(0);
28987 stack_frame_head = fra.me.prev;
28988 return;
28989 }
28990 void parser___parser_prod___ACallExpr___visit_all(val_t p0, val_t p1){
28991 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28992 val_t REGB0;
28993 val_t tmp;
28994 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28995 fra.me.file = LOCATE_parser___parser_prod;
28996 fra.me.line = 5445;
28997 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___visit_all;
28998 fra.me.has_broke = 0;
28999 fra.me.REG_size = 3;
29000 fra.me.REG[0] = NIT_NULL;
29001 fra.me.REG[1] = NIT_NULL;
29002 fra.me.REG[2] = NIT_NULL;
29003 fra.me.REG[0] = p0;
29004 fra.me.REG[1] = p1;
29005 /* ./parser//parser_prod.nit:5447 */
29006 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29007 if (UNTAG_Bool(REGB0)) {
29008 } else {
29009 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5447);
29010 }
29011 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29012 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29013 /* ./parser//parser_prod.nit:5448 */
29014 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29015 if (UNTAG_Bool(REGB0)) {
29016 } else {
29017 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5448);
29018 }
29019 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
29020 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29021 /* ./parser//parser_prod.nit:5449 */
29022 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29023 if (UNTAG_Bool(REGB0)) {
29024 } else {
29025 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5449);
29026 }
29027 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29028 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));
29029 /* ./parser//parser_prod.nit:5452 */
29030 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
29031 if (UNTAG_Bool(REGB0)) {
29032 } else {
29033 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5452);
29034 }
29035 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
29036 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));
29037 stack_frame_head = fra.me.prev;
29038 return;
29039 }
29040 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){
29041 struct {struct stack_frame_t me;} fra;
29042 fun_t CREG[1];
29043 val_t tmp;
29044 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29045 fra.me.file = LOCATE_parser___parser_prod;
29046 fra.me.line = 0;
29047 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___visit_all;
29048 fra.me.has_broke = 0;
29049 fra.me.REG_size = 1;
29050 fra.me.REG[0] = NIT_NULL;
29051 fra.me.closure_ctx = closctx_param;
29052 fra.me.closure_funs = CREG;
29053 fra.me.REG[0] = p0;
29054 CREG[0] = clos_fun0;
29055 /* ./parser//parser_prod.nit:5450 */
29056 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
29057 stack_frame_head = fra.me.prev;
29058 return;
29059 }
29060 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){
29061 struct {struct stack_frame_t me;} fra;
29062 fun_t CREG[1];
29063 val_t tmp;
29064 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29065 fra.me.file = LOCATE_parser___parser_prod;
29066 fra.me.line = 0;
29067 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___visit_all;
29068 fra.me.has_broke = 0;
29069 fra.me.REG_size = 1;
29070 fra.me.REG[0] = NIT_NULL;
29071 fra.me.closure_ctx = closctx_param;
29072 fra.me.closure_funs = CREG;
29073 fra.me.REG[0] = p0;
29074 CREG[0] = clos_fun0;
29075 /* ./parser//parser_prod.nit:5453 */
29076 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
29077 stack_frame_head = fra.me.prev;
29078 return;
29079 }
29080 void parser___parser_prod___ACallAssignExpr___empty_init(val_t p0, int* init_table){
29081 int itpos187 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallAssignExpr].i;
29082 struct {struct stack_frame_t me;} fra;
29083 val_t tmp;
29084 if (init_table[itpos187]) return;
29085 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29086 fra.me.file = LOCATE_parser___parser_prod;
29087 fra.me.line = 5458;
29088 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___empty_init;
29089 fra.me.has_broke = 0;
29090 fra.me.REG_size = 1;
29091 fra.me.REG[0] = NIT_NULL;
29092 fra.me.REG[0] = p0;
29093 stack_frame_head = fra.me.prev;
29094 init_table[itpos187] = 1;
29095 return;
29096 }
29097 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){
29098 int itpos188 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallAssignExpr].i;
29099 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
29100 val_t REGB0;
29101 val_t tmp;
29102 if (init_table[itpos188]) return;
29103 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29104 fra.me.file = LOCATE_parser___parser_prod;
29105 fra.me.line = 5460;
29106 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___init_acallassignexpr;
29107 fra.me.has_broke = 0;
29108 fra.me.REG_size = 7;
29109 fra.me.REG[0] = NIT_NULL;
29110 fra.me.REG[1] = NIT_NULL;
29111 fra.me.REG[2] = NIT_NULL;
29112 fra.me.REG[3] = NIT_NULL;
29113 fra.me.REG[4] = NIT_NULL;
29114 fra.me.REG[5] = NIT_NULL;
29115 fra.me.REG[6] = NIT_NULL;
29116 fra.me.REG[0] = p0;
29117 fra.me.REG[1] = p1;
29118 fra.me.REG[2] = p2;
29119 fra.me.REG[3] = p3;
29120 fra.me.REG[4] = p4;
29121 fra.me.REG[5] = p5;
29122 /* ./parser//parser_prod.nit:5460 */
29123 fra.me.REG[6] = fra.me.REG[0];
29124 /* ./parser//parser_prod.nit:5468 */
29125 CALL_parser___parser_prod___ACallAssignExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
29126 /* ./parser//parser_prod.nit:5469 */
29127 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
29128 if (UNTAG_Bool(REGB0)) {
29129 } else {
29130 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5469);
29131 }
29132 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[6]) = fra.me.REG[1];
29133 /* ./parser//parser_prod.nit:5470 */
29134 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29135 if (UNTAG_Bool(REGB0)) {
29136 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5470);
29137 }
29138 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
29139 /* ./parser//parser_prod.nit:5471 */
29140 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29141 if (UNTAG_Bool(REGB0)) {
29142 } else {
29143 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5471);
29144 }
29145 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[6]) = fra.me.REG[2];
29146 /* ./parser//parser_prod.nit:5472 */
29147 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29148 if (UNTAG_Bool(REGB0)) {
29149 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5472);
29150 }
29151 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
29152 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));
29153 /* ./parser//parser_prod.nit:5478 */
29154 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
29155 if (UNTAG_Bool(REGB0)) {
29156 } else {
29157 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5478);
29158 }
29159 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[6]) = fra.me.REG[4];
29160 /* ./parser//parser_prod.nit:5479 */
29161 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
29162 if (UNTAG_Bool(REGB0)) {
29163 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5479);
29164 }
29165 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
29166 /* ./parser//parser_prod.nit:5480 */
29167 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
29168 if (UNTAG_Bool(REGB0)) {
29169 } else {
29170 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5480);
29171 }
29172 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[6]) = fra.me.REG[5];
29173 /* ./parser//parser_prod.nit:5481 */
29174 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
29175 if (UNTAG_Bool(REGB0)) {
29176 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5481);
29177 }
29178 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
29179 stack_frame_head = fra.me.prev;
29180 init_table[itpos188] = 1;
29181 return;
29182 }
29183 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){
29184 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29185 val_t REGB0;
29186 fun_t CREG[1];
29187 val_t tmp;
29188 /* ./parser//parser_prod.nit:5473 */
29189 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29190 fra.me.file = LOCATE_parser___parser_prod;
29191 fra.me.line = 0;
29192 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___init_acallassignexpr;
29193 fra.me.has_broke = 0;
29194 fra.me.REG_size = 2;
29195 fra.me.REG[0] = NIT_NULL;
29196 fra.me.REG[1] = NIT_NULL;
29197 fra.me.closure_ctx = closctx_param;
29198 fra.me.closure_funs = CREG;
29199 fra.me.REG[0] = p0;
29200 CREG[0] = clos_fun0;
29201 /* ./parser//parser_prod.nit:5474 */
29202 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29203 if (UNTAG_Bool(REGB0)) {
29204 } else {
29205 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5474);
29206 }
29207 /* ./parser//parser_prod.nit:5475 */
29208 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[6])!=NIT_NULL);
29209 if (UNTAG_Bool(REGB0)) {
29210 } else {
29211 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5475);
29212 }
29213 fra.me.REG[1] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[6]);
29214 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29215 /* ./parser//parser_prod.nit:5476 */
29216 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[6]);
29217 stack_frame_head = fra.me.prev;
29218 return;
29219 }
29220 void parser___parser_prod___ACallAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
29221 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29222 val_t REGB0;
29223 val_t REGB1;
29224 val_t REGB2;
29225 val_t REGB3;
29226 val_t REGB4;
29227 val_t tmp;
29228 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29229 fra.me.file = LOCATE_parser___parser_prod;
29230 fra.me.line = 5484;
29231 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___replace_child;
29232 fra.me.has_broke = 0;
29233 fra.me.REG_size = 4;
29234 fra.me.REG[0] = NIT_NULL;
29235 fra.me.REG[1] = NIT_NULL;
29236 fra.me.REG[2] = NIT_NULL;
29237 fra.me.REG[3] = NIT_NULL;
29238 fra.me.REG[0] = p0;
29239 fra.me.REG[1] = p1;
29240 fra.me.REG[2] = p2;
29241 /* ./parser//parser_prod.nit:5486 */
29242 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29243 if (UNTAG_Bool(REGB0)) {
29244 } else {
29245 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5486);
29246 }
29247 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29248 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29249 if (UNTAG_Bool(REGB0)) {
29250 } else {
29251 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29252 REGB0 = REGB1;
29253 }
29254 if (UNTAG_Bool(REGB0)) {
29255 /* ./parser//parser_prod.nit:5487 */
29256 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29257 if (UNTAG_Bool(REGB0)) {
29258 } else {
29259 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29260 if (UNTAG_Bool(REGB1)) {
29261 REGB1 = TAG_Bool(false);
29262 REGB0 = REGB1;
29263 } else {
29264 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29265 REGB0 = REGB1;
29266 }
29267 }
29268 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29269 if (UNTAG_Bool(REGB0)) {
29270 /* ./parser//parser_prod.nit:5488 */
29271 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29272 if (UNTAG_Bool(REGB0)) {
29273 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5488);
29274 }
29275 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29276 /* ./parser//parser_prod.nit:5489 */
29277 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29278 if (UNTAG_Bool(REGB0)) {
29279 } else {
29280 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5489);
29281 }
29282 /* ./parser//parser_prod.nit:5490 */
29283 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
29284 } else {
29285 /* ./parser//parser_prod.nit:5492 */
29286 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5492);
29287 }
29288 /* ./parser//parser_prod.nit:5494 */
29289 goto label1;
29290 }
29291 /* ./parser//parser_prod.nit:5496 */
29292 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29293 if (UNTAG_Bool(REGB0)) {
29294 } else {
29295 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5496);
29296 }
29297 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
29298 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29299 if (UNTAG_Bool(REGB0)) {
29300 } else {
29301 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29302 REGB0 = REGB1;
29303 }
29304 if (UNTAG_Bool(REGB0)) {
29305 /* ./parser//parser_prod.nit:5497 */
29306 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29307 if (UNTAG_Bool(REGB0)) {
29308 } else {
29309 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29310 if (UNTAG_Bool(REGB1)) {
29311 REGB1 = TAG_Bool(false);
29312 REGB0 = REGB1;
29313 } else {
29314 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29315 REGB0 = REGB1;
29316 }
29317 }
29318 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29319 if (UNTAG_Bool(REGB0)) {
29320 /* ./parser//parser_prod.nit:5498 */
29321 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29322 if (UNTAG_Bool(REGB0)) {
29323 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5498);
29324 }
29325 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29326 /* ./parser//parser_prod.nit:5499 */
29327 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*/;
29328 if (UNTAG_Bool(REGB0)) {
29329 } else {
29330 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5499);
29331 }
29332 /* ./parser//parser_prod.nit:5500 */
29333 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
29334 } else {
29335 /* ./parser//parser_prod.nit:5502 */
29336 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5502);
29337 }
29338 /* ./parser//parser_prod.nit:5504 */
29339 goto label1;
29340 }
29341 /* ./parser//parser_prod.nit:5506 */
29342 REGB0 = TAG_Int(0);
29343 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29344 if (UNTAG_Bool(REGB1)) {
29345 } else {
29346 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5506);
29347 }
29348 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29349 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
29350 /* ./../lib/standard//kernel.nit:335 */
29351 while(1) {
29352 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
29353 if (UNTAG_Bool(REGB2)) {
29354 } else {
29355 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
29356 }
29357 /* ./../lib/standard//kernel.nit:215 */
29358 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
29359 /* ./../lib/standard//kernel.nit:335 */
29360 if (UNTAG_Bool(REGB2)) {
29361 /* ./parser//parser_prod.nit:5506 */
29362 REGB2 = REGB0;
29363 /* ./parser//parser_prod.nit:5507 */
29364 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29365 if (UNTAG_Bool(REGB3)) {
29366 } else {
29367 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5507);
29368 }
29369 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29370 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
29371 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
29372 if (UNTAG_Bool(REGB3)) {
29373 } else {
29374 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29375 if (UNTAG_Bool(REGB4)) {
29376 REGB4 = TAG_Bool(false);
29377 REGB3 = REGB4;
29378 } else {
29379 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29380 REGB3 = REGB4;
29381 }
29382 }
29383 if (UNTAG_Bool(REGB3)) {
29384 /* ./parser//parser_prod.nit:5508 */
29385 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29386 if (UNTAG_Bool(REGB3)) {
29387 } else {
29388 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29389 if (UNTAG_Bool(REGB4)) {
29390 REGB4 = TAG_Bool(false);
29391 REGB3 = REGB4;
29392 } else {
29393 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29394 REGB3 = REGB4;
29395 }
29396 }
29397 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
29398 if (UNTAG_Bool(REGB3)) {
29399 /* ./parser//parser_prod.nit:5509 */
29400 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*/;
29401 if (UNTAG_Bool(REGB3)) {
29402 } else {
29403 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5509);
29404 }
29405 /* ./parser//parser_prod.nit:5510 */
29406 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29407 if (UNTAG_Bool(REGB3)) {
29408 } else {
29409 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5510);
29410 }
29411 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29412 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
29413 /* ./parser//parser_prod.nit:5511 */
29414 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29415 if (UNTAG_Bool(REGB3)) {
29416 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5511);
29417 }
29418 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29419 } else {
29420 /* ./parser//parser_prod.nit:5513 */
29421 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29422 if (UNTAG_Bool(REGB3)) {
29423 } else {
29424 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5513);
29425 }
29426 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29427 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
29428 }
29429 /* ./parser//parser_prod.nit:5515 */
29430 goto label1;
29431 }
29432 /* ./../lib/standard//kernel.nit:337 */
29433 REGB2 = TAG_Int(1);
29434 /* ./../lib/standard//kernel.nit:218 */
29435 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
29436 /* ./../lib/standard//kernel.nit:337 */
29437 REGB0 = REGB2;
29438 } else {
29439 /* ./../lib/standard//kernel.nit:335 */
29440 goto label2;
29441 }
29442 }
29443 label2: while(0);
29444 /* ./parser//parser_prod.nit:5518 */
29445 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
29446 if (UNTAG_Bool(REGB0)) {
29447 } else {
29448 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5518);
29449 }
29450 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
29451 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29452 if (UNTAG_Bool(REGB0)) {
29453 } else {
29454 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29455 REGB0 = REGB1;
29456 }
29457 if (UNTAG_Bool(REGB0)) {
29458 /* ./parser//parser_prod.nit:5519 */
29459 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29460 if (UNTAG_Bool(REGB0)) {
29461 } else {
29462 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29463 if (UNTAG_Bool(REGB1)) {
29464 REGB1 = TAG_Bool(false);
29465 REGB0 = REGB1;
29466 } else {
29467 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29468 REGB0 = REGB1;
29469 }
29470 }
29471 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29472 if (UNTAG_Bool(REGB0)) {
29473 /* ./parser//parser_prod.nit:5520 */
29474 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29475 if (UNTAG_Bool(REGB0)) {
29476 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5520);
29477 }
29478 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29479 /* ./parser//parser_prod.nit:5521 */
29480 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*/;
29481 if (UNTAG_Bool(REGB0)) {
29482 } else {
29483 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5521);
29484 }
29485 /* ./parser//parser_prod.nit:5522 */
29486 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
29487 } else {
29488 /* ./parser//parser_prod.nit:5524 */
29489 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5524);
29490 }
29491 /* ./parser//parser_prod.nit:5526 */
29492 goto label1;
29493 }
29494 /* ./parser//parser_prod.nit:5528 */
29495 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
29496 if (UNTAG_Bool(REGB0)) {
29497 } else {
29498 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5528);
29499 }
29500 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
29501 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29502 if (UNTAG_Bool(REGB0)) {
29503 } else {
29504 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29505 REGB0 = REGB1;
29506 }
29507 if (UNTAG_Bool(REGB0)) {
29508 /* ./parser//parser_prod.nit:5529 */
29509 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29510 if (UNTAG_Bool(REGB0)) {
29511 } else {
29512 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29513 if (UNTAG_Bool(REGB1)) {
29514 REGB1 = TAG_Bool(false);
29515 REGB0 = REGB1;
29516 } else {
29517 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29518 REGB0 = REGB1;
29519 }
29520 }
29521 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29522 if (UNTAG_Bool(REGB0)) {
29523 /* ./parser//parser_prod.nit:5530 */
29524 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29525 if (UNTAG_Bool(REGB0)) {
29526 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5530);
29527 }
29528 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29529 /* ./parser//parser_prod.nit:5531 */
29530 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29531 if (UNTAG_Bool(REGB0)) {
29532 } else {
29533 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5531);
29534 }
29535 /* ./parser//parser_prod.nit:5532 */
29536 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
29537 } else {
29538 /* ./parser//parser_prod.nit:5534 */
29539 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5534);
29540 }
29541 /* ./parser//parser_prod.nit:5536 */
29542 goto label1;
29543 }
29544 label1: while(0);
29545 stack_frame_head = fra.me.prev;
29546 return;
29547 }
29548 void parser___parser_prod___ACallAssignExpr___visit_all(val_t p0, val_t p1){
29549 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
29550 val_t REGB0;
29551 val_t tmp;
29552 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29553 fra.me.file = LOCATE_parser___parser_prod;
29554 fra.me.line = 5540;
29555 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___visit_all;
29556 fra.me.has_broke = 0;
29557 fra.me.REG_size = 3;
29558 fra.me.REG[0] = NIT_NULL;
29559 fra.me.REG[1] = NIT_NULL;
29560 fra.me.REG[2] = NIT_NULL;
29561 fra.me.REG[0] = p0;
29562 fra.me.REG[1] = p1;
29563 /* ./parser//parser_prod.nit:5542 */
29564 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29565 if (UNTAG_Bool(REGB0)) {
29566 } else {
29567 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5542);
29568 }
29569 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29570 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29571 /* ./parser//parser_prod.nit:5543 */
29572 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29573 if (UNTAG_Bool(REGB0)) {
29574 } else {
29575 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5543);
29576 }
29577 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
29578 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29579 /* ./parser//parser_prod.nit:5544 */
29580 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29581 if (UNTAG_Bool(REGB0)) {
29582 } else {
29583 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5544);
29584 }
29585 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29586 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));
29587 /* ./parser//parser_prod.nit:5547 */
29588 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
29589 if (UNTAG_Bool(REGB0)) {
29590 } else {
29591 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5547);
29592 }
29593 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
29594 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29595 /* ./parser//parser_prod.nit:5548 */
29596 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
29597 if (UNTAG_Bool(REGB0)) {
29598 } else {
29599 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5548);
29600 }
29601 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
29602 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29603 stack_frame_head = fra.me.prev;
29604 return;
29605 }
29606 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){
29607 struct {struct stack_frame_t me;} fra;
29608 fun_t CREG[1];
29609 val_t tmp;
29610 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29611 fra.me.file = LOCATE_parser___parser_prod;
29612 fra.me.line = 0;
29613 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___visit_all;
29614 fra.me.has_broke = 0;
29615 fra.me.REG_size = 1;
29616 fra.me.REG[0] = NIT_NULL;
29617 fra.me.closure_ctx = closctx_param;
29618 fra.me.closure_funs = CREG;
29619 fra.me.REG[0] = p0;
29620 CREG[0] = clos_fun0;
29621 /* ./parser//parser_prod.nit:5545 */
29622 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
29623 stack_frame_head = fra.me.prev;
29624 return;
29625 }
29626 void parser___parser_prod___ACallReassignExpr___empty_init(val_t p0, int* init_table){
29627 int itpos189 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallReassignExpr].i;
29628 struct {struct stack_frame_t me;} fra;
29629 val_t tmp;
29630 if (init_table[itpos189]) return;
29631 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29632 fra.me.file = LOCATE_parser___parser_prod;
29633 fra.me.line = 5552;
29634 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___empty_init;
29635 fra.me.has_broke = 0;
29636 fra.me.REG_size = 1;
29637 fra.me.REG[0] = NIT_NULL;
29638 fra.me.REG[0] = p0;
29639 stack_frame_head = fra.me.prev;
29640 init_table[itpos189] = 1;
29641 return;
29642 }
29643 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){
29644 int itpos190 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallReassignExpr].i;
29645 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
29646 val_t REGB0;
29647 val_t tmp;
29648 if (init_table[itpos190]) return;
29649 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29650 fra.me.file = LOCATE_parser___parser_prod;
29651 fra.me.line = 5554;
29652 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr;
29653 fra.me.has_broke = 0;
29654 fra.me.REG_size = 7;
29655 fra.me.REG[0] = NIT_NULL;
29656 fra.me.REG[1] = NIT_NULL;
29657 fra.me.REG[2] = NIT_NULL;
29658 fra.me.REG[3] = NIT_NULL;
29659 fra.me.REG[4] = NIT_NULL;
29660 fra.me.REG[5] = NIT_NULL;
29661 fra.me.REG[6] = NIT_NULL;
29662 fra.me.REG[0] = p0;
29663 fra.me.REG[1] = p1;
29664 fra.me.REG[2] = p2;
29665 fra.me.REG[3] = p3;
29666 fra.me.REG[4] = p4;
29667 fra.me.REG[5] = p5;
29668 /* ./parser//parser_prod.nit:5554 */
29669 fra.me.REG[6] = fra.me.REG[0];
29670 /* ./parser//parser_prod.nit:5562 */
29671 CALL_parser___parser_prod___ACallReassignExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
29672 /* ./parser//parser_prod.nit:5563 */
29673 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
29674 if (UNTAG_Bool(REGB0)) {
29675 } else {
29676 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5563);
29677 }
29678 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[6]) = fra.me.REG[1];
29679 /* ./parser//parser_prod.nit:5564 */
29680 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29681 if (UNTAG_Bool(REGB0)) {
29682 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5564);
29683 }
29684 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
29685 /* ./parser//parser_prod.nit:5565 */
29686 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29687 if (UNTAG_Bool(REGB0)) {
29688 } else {
29689 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5565);
29690 }
29691 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[6]) = fra.me.REG[2];
29692 /* ./parser//parser_prod.nit:5566 */
29693 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29694 if (UNTAG_Bool(REGB0)) {
29695 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5566);
29696 }
29697 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
29698 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));
29699 /* ./parser//parser_prod.nit:5572 */
29700 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
29701 if (UNTAG_Bool(REGB0)) {
29702 } else {
29703 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5572);
29704 }
29705 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[6]) = fra.me.REG[4];
29706 /* ./parser//parser_prod.nit:5573 */
29707 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
29708 if (UNTAG_Bool(REGB0)) {
29709 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5573);
29710 }
29711 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
29712 /* ./parser//parser_prod.nit:5574 */
29713 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
29714 if (UNTAG_Bool(REGB0)) {
29715 } else {
29716 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5574);
29717 }
29718 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[6]) = fra.me.REG[5];
29719 /* ./parser//parser_prod.nit:5575 */
29720 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
29721 if (UNTAG_Bool(REGB0)) {
29722 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5575);
29723 }
29724 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
29725 stack_frame_head = fra.me.prev;
29726 init_table[itpos190] = 1;
29727 return;
29728 }
29729 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){
29730 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29731 val_t REGB0;
29732 fun_t CREG[1];
29733 val_t tmp;
29734 /* ./parser//parser_prod.nit:5567 */
29735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29736 fra.me.file = LOCATE_parser___parser_prod;
29737 fra.me.line = 0;
29738 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr;
29739 fra.me.has_broke = 0;
29740 fra.me.REG_size = 2;
29741 fra.me.REG[0] = NIT_NULL;
29742 fra.me.REG[1] = NIT_NULL;
29743 fra.me.closure_ctx = closctx_param;
29744 fra.me.closure_funs = CREG;
29745 fra.me.REG[0] = p0;
29746 CREG[0] = clos_fun0;
29747 /* ./parser//parser_prod.nit:5568 */
29748 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29749 if (UNTAG_Bool(REGB0)) {
29750 } else {
29751 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5568);
29752 }
29753 /* ./parser//parser_prod.nit:5569 */
29754 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[6])!=NIT_NULL);
29755 if (UNTAG_Bool(REGB0)) {
29756 } else {
29757 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5569);
29758 }
29759 fra.me.REG[1] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[6]);
29760 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29761 /* ./parser//parser_prod.nit:5570 */
29762 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[6]);
29763 stack_frame_head = fra.me.prev;
29764 return;
29765 }
29766 void parser___parser_prod___ACallReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
29767 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29768 val_t REGB0;
29769 val_t REGB1;
29770 val_t REGB2;
29771 val_t REGB3;
29772 val_t REGB4;
29773 val_t tmp;
29774 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29775 fra.me.file = LOCATE_parser___parser_prod;
29776 fra.me.line = 5578;
29777 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___replace_child;
29778 fra.me.has_broke = 0;
29779 fra.me.REG_size = 4;
29780 fra.me.REG[0] = NIT_NULL;
29781 fra.me.REG[1] = NIT_NULL;
29782 fra.me.REG[2] = NIT_NULL;
29783 fra.me.REG[3] = NIT_NULL;
29784 fra.me.REG[0] = p0;
29785 fra.me.REG[1] = p1;
29786 fra.me.REG[2] = p2;
29787 /* ./parser//parser_prod.nit:5580 */
29788 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29789 if (UNTAG_Bool(REGB0)) {
29790 } else {
29791 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5580);
29792 }
29793 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29794 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29795 if (UNTAG_Bool(REGB0)) {
29796 } else {
29797 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29798 REGB0 = REGB1;
29799 }
29800 if (UNTAG_Bool(REGB0)) {
29801 /* ./parser//parser_prod.nit:5581 */
29802 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29803 if (UNTAG_Bool(REGB0)) {
29804 } else {
29805 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29806 if (UNTAG_Bool(REGB1)) {
29807 REGB1 = TAG_Bool(false);
29808 REGB0 = REGB1;
29809 } else {
29810 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29811 REGB0 = REGB1;
29812 }
29813 }
29814 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29815 if (UNTAG_Bool(REGB0)) {
29816 /* ./parser//parser_prod.nit:5582 */
29817 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29818 if (UNTAG_Bool(REGB0)) {
29819 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5582);
29820 }
29821 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29822 /* ./parser//parser_prod.nit:5583 */
29823 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29824 if (UNTAG_Bool(REGB0)) {
29825 } else {
29826 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5583);
29827 }
29828 /* ./parser//parser_prod.nit:5584 */
29829 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
29830 } else {
29831 /* ./parser//parser_prod.nit:5586 */
29832 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5586);
29833 }
29834 /* ./parser//parser_prod.nit:5588 */
29835 goto label1;
29836 }
29837 /* ./parser//parser_prod.nit:5590 */
29838 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29839 if (UNTAG_Bool(REGB0)) {
29840 } else {
29841 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5590);
29842 }
29843 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
29844 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29845 if (UNTAG_Bool(REGB0)) {
29846 } else {
29847 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29848 REGB0 = REGB1;
29849 }
29850 if (UNTAG_Bool(REGB0)) {
29851 /* ./parser//parser_prod.nit:5591 */
29852 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29853 if (UNTAG_Bool(REGB0)) {
29854 } else {
29855 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29856 if (UNTAG_Bool(REGB1)) {
29857 REGB1 = TAG_Bool(false);
29858 REGB0 = REGB1;
29859 } else {
29860 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29861 REGB0 = REGB1;
29862 }
29863 }
29864 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29865 if (UNTAG_Bool(REGB0)) {
29866 /* ./parser//parser_prod.nit:5592 */
29867 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29868 if (UNTAG_Bool(REGB0)) {
29869 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5592);
29870 }
29871 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29872 /* ./parser//parser_prod.nit:5593 */
29873 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*/;
29874 if (UNTAG_Bool(REGB0)) {
29875 } else {
29876 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5593);
29877 }
29878 /* ./parser//parser_prod.nit:5594 */
29879 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
29880 } else {
29881 /* ./parser//parser_prod.nit:5596 */
29882 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5596);
29883 }
29884 /* ./parser//parser_prod.nit:5598 */
29885 goto label1;
29886 }
29887 /* ./parser//parser_prod.nit:5600 */
29888 REGB0 = TAG_Int(0);
29889 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29890 if (UNTAG_Bool(REGB1)) {
29891 } else {
29892 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5600);
29893 }
29894 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29895 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
29896 /* ./../lib/standard//kernel.nit:335 */
29897 while(1) {
29898 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
29899 if (UNTAG_Bool(REGB2)) {
29900 } else {
29901 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
29902 }
29903 /* ./../lib/standard//kernel.nit:215 */
29904 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
29905 /* ./../lib/standard//kernel.nit:335 */
29906 if (UNTAG_Bool(REGB2)) {
29907 /* ./parser//parser_prod.nit:5600 */
29908 REGB2 = REGB0;
29909 /* ./parser//parser_prod.nit:5601 */
29910 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29911 if (UNTAG_Bool(REGB3)) {
29912 } else {
29913 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5601);
29914 }
29915 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29916 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
29917 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
29918 if (UNTAG_Bool(REGB3)) {
29919 } else {
29920 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29921 if (UNTAG_Bool(REGB4)) {
29922 REGB4 = TAG_Bool(false);
29923 REGB3 = REGB4;
29924 } else {
29925 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29926 REGB3 = REGB4;
29927 }
29928 }
29929 if (UNTAG_Bool(REGB3)) {
29930 /* ./parser//parser_prod.nit:5602 */
29931 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29932 if (UNTAG_Bool(REGB3)) {
29933 } else {
29934 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29935 if (UNTAG_Bool(REGB4)) {
29936 REGB4 = TAG_Bool(false);
29937 REGB3 = REGB4;
29938 } else {
29939 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29940 REGB3 = REGB4;
29941 }
29942 }
29943 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
29944 if (UNTAG_Bool(REGB3)) {
29945 /* ./parser//parser_prod.nit:5603 */
29946 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*/;
29947 if (UNTAG_Bool(REGB3)) {
29948 } else {
29949 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5603);
29950 }
29951 /* ./parser//parser_prod.nit:5604 */
29952 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29953 if (UNTAG_Bool(REGB3)) {
29954 } else {
29955 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5604);
29956 }
29957 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29958 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
29959 /* ./parser//parser_prod.nit:5605 */
29960 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29961 if (UNTAG_Bool(REGB3)) {
29962 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5605);
29963 }
29964 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29965 } else {
29966 /* ./parser//parser_prod.nit:5607 */
29967 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29968 if (UNTAG_Bool(REGB3)) {
29969 } else {
29970 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5607);
29971 }
29972 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29973 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
29974 }
29975 /* ./parser//parser_prod.nit:5609 */
29976 goto label1;
29977 }
29978 /* ./../lib/standard//kernel.nit:337 */
29979 REGB2 = TAG_Int(1);
29980 /* ./../lib/standard//kernel.nit:218 */
29981 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
29982 /* ./../lib/standard//kernel.nit:337 */
29983 REGB0 = REGB2;
29984 } else {
29985 /* ./../lib/standard//kernel.nit:335 */
29986 goto label2;
29987 }
29988 }
29989 label2: while(0);
29990 /* ./parser//parser_prod.nit:5612 */
29991 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
29992 if (UNTAG_Bool(REGB0)) {
29993 } else {
29994 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5612);
29995 }
29996 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
29997 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29998 if (UNTAG_Bool(REGB0)) {
29999 } else {
30000 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30001 REGB0 = REGB1;
30002 }
30003 if (UNTAG_Bool(REGB0)) {
30004 /* ./parser//parser_prod.nit:5613 */
30005 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30006 if (UNTAG_Bool(REGB0)) {
30007 } else {
30008 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30009 if (UNTAG_Bool(REGB1)) {
30010 REGB1 = TAG_Bool(false);
30011 REGB0 = REGB1;
30012 } else {
30013 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30014 REGB0 = REGB1;
30015 }
30016 }
30017 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30018 if (UNTAG_Bool(REGB0)) {
30019 /* ./parser//parser_prod.nit:5614 */
30020 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30021 if (UNTAG_Bool(REGB0)) {
30022 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5614);
30023 }
30024 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30025 /* ./parser//parser_prod.nit:5615 */
30026 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*/;
30027 if (UNTAG_Bool(REGB0)) {
30028 } else {
30029 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5615);
30030 }
30031 /* ./parser//parser_prod.nit:5616 */
30032 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
30033 } else {
30034 /* ./parser//parser_prod.nit:5618 */
30035 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5618);
30036 }
30037 /* ./parser//parser_prod.nit:5620 */
30038 goto label1;
30039 }
30040 /* ./parser//parser_prod.nit:5622 */
30041 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
30042 if (UNTAG_Bool(REGB0)) {
30043 } else {
30044 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5622);
30045 }
30046 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
30047 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30048 if (UNTAG_Bool(REGB0)) {
30049 } else {
30050 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30051 REGB0 = REGB1;
30052 }
30053 if (UNTAG_Bool(REGB0)) {
30054 /* ./parser//parser_prod.nit:5623 */
30055 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30056 if (UNTAG_Bool(REGB0)) {
30057 } else {
30058 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30059 if (UNTAG_Bool(REGB1)) {
30060 REGB1 = TAG_Bool(false);
30061 REGB0 = REGB1;
30062 } else {
30063 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30064 REGB0 = REGB1;
30065 }
30066 }
30067 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30068 if (UNTAG_Bool(REGB0)) {
30069 /* ./parser//parser_prod.nit:5624 */
30070 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30071 if (UNTAG_Bool(REGB0)) {
30072 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5624);
30073 }
30074 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30075 /* ./parser//parser_prod.nit:5625 */
30076 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30077 if (UNTAG_Bool(REGB0)) {
30078 } else {
30079 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5625);
30080 }
30081 /* ./parser//parser_prod.nit:5626 */
30082 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
30083 } else {
30084 /* ./parser//parser_prod.nit:5628 */
30085 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5628);
30086 }
30087 /* ./parser//parser_prod.nit:5630 */
30088 goto label1;
30089 }
30090 label1: while(0);
30091 stack_frame_head = fra.me.prev;
30092 return;
30093 }
30094 void parser___parser_prod___ACallReassignExpr___visit_all(val_t p0, val_t p1){
30095 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
30096 val_t REGB0;
30097 val_t tmp;
30098 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30099 fra.me.file = LOCATE_parser___parser_prod;
30100 fra.me.line = 5634;
30101 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___visit_all;
30102 fra.me.has_broke = 0;
30103 fra.me.REG_size = 3;
30104 fra.me.REG[0] = NIT_NULL;
30105 fra.me.REG[1] = NIT_NULL;
30106 fra.me.REG[2] = NIT_NULL;
30107 fra.me.REG[0] = p0;
30108 fra.me.REG[1] = p1;
30109 /* ./parser//parser_prod.nit:5636 */
30110 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30111 if (UNTAG_Bool(REGB0)) {
30112 } else {
30113 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5636);
30114 }
30115 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30116 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30117 /* ./parser//parser_prod.nit:5637 */
30118 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
30119 if (UNTAG_Bool(REGB0)) {
30120 } else {
30121 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5637);
30122 }
30123 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
30124 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30125 /* ./parser//parser_prod.nit:5638 */
30126 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30127 if (UNTAG_Bool(REGB0)) {
30128 } else {
30129 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5638);
30130 }
30131 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
30132 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));
30133 /* ./parser//parser_prod.nit:5641 */
30134 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
30135 if (UNTAG_Bool(REGB0)) {
30136 } else {
30137 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5641);
30138 }
30139 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
30140 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30141 /* ./parser//parser_prod.nit:5642 */
30142 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
30143 if (UNTAG_Bool(REGB0)) {
30144 } else {
30145 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5642);
30146 }
30147 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
30148 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30149 stack_frame_head = fra.me.prev;
30150 return;
30151 }
30152 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){
30153 struct {struct stack_frame_t me;} fra;
30154 fun_t CREG[1];
30155 val_t tmp;
30156 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30157 fra.me.file = LOCATE_parser___parser_prod;
30158 fra.me.line = 0;
30159 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___visit_all;
30160 fra.me.has_broke = 0;
30161 fra.me.REG_size = 1;
30162 fra.me.REG[0] = NIT_NULL;
30163 fra.me.closure_ctx = closctx_param;
30164 fra.me.closure_funs = CREG;
30165 fra.me.REG[0] = p0;
30166 CREG[0] = clos_fun0;
30167 /* ./parser//parser_prod.nit:5639 */
30168 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
30169 stack_frame_head = fra.me.prev;
30170 return;
30171 }
30172 void parser___parser_prod___ASuperExpr___empty_init(val_t p0, int* init_table){
30173 int itpos191 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExpr].i;
30174 struct {struct stack_frame_t me;} fra;
30175 val_t tmp;
30176 if (init_table[itpos191]) return;
30177 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30178 fra.me.file = LOCATE_parser___parser_prod;
30179 fra.me.line = 5646;
30180 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___empty_init;
30181 fra.me.has_broke = 0;
30182 fra.me.REG_size = 1;
30183 fra.me.REG[0] = NIT_NULL;
30184 fra.me.REG[0] = p0;
30185 stack_frame_head = fra.me.prev;
30186 init_table[itpos191] = 1;
30187 return;
30188 }
30189 void parser___parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
30190 int itpos192 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExpr].i;
30191 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
30192 val_t REGB0;
30193 val_t REGB1;
30194 val_t tmp;
30195 if (init_table[itpos192]) return;
30196 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30197 fra.me.file = LOCATE_parser___parser_prod;
30198 fra.me.line = 5648;
30199 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___init_asuperexpr;
30200 fra.me.has_broke = 0;
30201 fra.me.REG_size = 5;
30202 fra.me.REG[0] = NIT_NULL;
30203 fra.me.REG[1] = NIT_NULL;
30204 fra.me.REG[2] = NIT_NULL;
30205 fra.me.REG[3] = NIT_NULL;
30206 fra.me.REG[4] = NIT_NULL;
30207 fra.me.REG[0] = p0;
30208 fra.me.REG[1] = p1;
30209 fra.me.REG[2] = p2;
30210 fra.me.REG[3] = p3;
30211 /* ./parser//parser_prod.nit:5648 */
30212 fra.me.REG[4] = fra.me.REG[0];
30213 /* ./parser//parser_prod.nit:5654 */
30214 CALL_parser___parser_prod___ASuperExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
30215 /* ./parser//parser_prod.nit:5655 */
30216 ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[4]) = fra.me.REG[1];
30217 /* ./parser//parser_prod.nit:5656 */
30218 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30219 if (UNTAG_Bool(REGB0)) {
30220 } else {
30221 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30222 if (UNTAG_Bool(REGB1)) {
30223 REGB1 = TAG_Bool(false);
30224 REGB0 = REGB1;
30225 } else {
30226 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
30227 REGB0 = REGB1;
30228 }
30229 }
30230 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30231 if (UNTAG_Bool(REGB0)) {
30232 /* ./parser//parser_prod.nit:5657 */
30233 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30234 if (UNTAG_Bool(REGB0)) {
30235 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5657);
30236 }
30237 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
30238 }
30239 /* ./parser//parser_prod.nit:5659 */
30240 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
30241 if (UNTAG_Bool(REGB0)) {
30242 } else {
30243 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5659);
30244 }
30245 ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[4]) = fra.me.REG[2];
30246 /* ./parser//parser_prod.nit:5660 */
30247 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30248 if (UNTAG_Bool(REGB0)) {
30249 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5660);
30250 }
30251 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
30252 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));
30253 stack_frame_head = fra.me.prev;
30254 init_table[itpos192] = 1;
30255 return;
30256 }
30257 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){
30258 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30259 val_t REGB0;
30260 fun_t CREG[1];
30261 val_t tmp;
30262 /* ./parser//parser_prod.nit:5661 */
30263 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30264 fra.me.file = LOCATE_parser___parser_prod;
30265 fra.me.line = 0;
30266 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___init_asuperexpr;
30267 fra.me.has_broke = 0;
30268 fra.me.REG_size = 2;
30269 fra.me.REG[0] = NIT_NULL;
30270 fra.me.REG[1] = NIT_NULL;
30271 fra.me.closure_ctx = closctx_param;
30272 fra.me.closure_funs = CREG;
30273 fra.me.REG[0] = p0;
30274 CREG[0] = clos_fun0;
30275 /* ./parser//parser_prod.nit:5662 */
30276 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30277 if (UNTAG_Bool(REGB0)) {
30278 } else {
30279 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5662);
30280 }
30281 /* ./parser//parser_prod.nit:5663 */
30282 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(closctx->REG[4])!=NIT_NULL);
30283 if (UNTAG_Bool(REGB0)) {
30284 } else {
30285 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5663);
30286 }
30287 fra.me.REG[1] = ATTR_parser___parser_nodes___ASuperExpr____n_args(closctx->REG[4]);
30288 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30289 /* ./parser//parser_prod.nit:5664 */
30290 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
30291 stack_frame_head = fra.me.prev;
30292 return;
30293 }
30294 void parser___parser_prod___ASuperExpr___replace_child(val_t p0, val_t p1, val_t p2){
30295 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30296 val_t REGB0;
30297 val_t REGB1;
30298 val_t REGB2;
30299 val_t REGB3;
30300 val_t REGB4;
30301 val_t tmp;
30302 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30303 fra.me.file = LOCATE_parser___parser_prod;
30304 fra.me.line = 5668;
30305 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___replace_child;
30306 fra.me.has_broke = 0;
30307 fra.me.REG_size = 4;
30308 fra.me.REG[0] = NIT_NULL;
30309 fra.me.REG[1] = NIT_NULL;
30310 fra.me.REG[2] = NIT_NULL;
30311 fra.me.REG[3] = NIT_NULL;
30312 fra.me.REG[0] = p0;
30313 fra.me.REG[1] = p1;
30314 fra.me.REG[2] = p2;
30315 /* ./parser//parser_prod.nit:5670 */
30316 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]);
30317 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
30318 if (UNTAG_Bool(REGB0)) {
30319 } else {
30320 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30321 if (UNTAG_Bool(REGB1)) {
30322 REGB1 = TAG_Bool(false);
30323 REGB0 = REGB1;
30324 } else {
30325 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30326 REGB0 = REGB1;
30327 }
30328 }
30329 if (UNTAG_Bool(REGB0)) {
30330 /* ./parser//parser_prod.nit:5671 */
30331 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30332 if (UNTAG_Bool(REGB0)) {
30333 } else {
30334 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30335 if (UNTAG_Bool(REGB1)) {
30336 REGB1 = TAG_Bool(false);
30337 REGB0 = REGB1;
30338 } else {
30339 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30340 REGB0 = REGB1;
30341 }
30342 }
30343 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30344 if (UNTAG_Bool(REGB0)) {
30345 /* ./parser//parser_prod.nit:5672 */
30346 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30347 if (UNTAG_Bool(REGB0)) {
30348 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5672);
30349 }
30350 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30351 /* ./parser//parser_prod.nit:5673 */
30352 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*/;
30353 if (UNTAG_Bool(REGB0)) {
30354 } else {
30355 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5673);
30356 }
30357 /* ./parser//parser_prod.nit:5674 */
30358 ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = fra.me.REG[2];
30359 } else {
30360 /* ./parser//parser_prod.nit:5676 */
30361 ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = NIT_NULL;
30362 }
30363 /* ./parser//parser_prod.nit:5678 */
30364 goto label1;
30365 }
30366 /* ./parser//parser_prod.nit:5680 */
30367 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
30368 if (UNTAG_Bool(REGB0)) {
30369 } else {
30370 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 5680);
30371 }
30372 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]);
30373 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30374 if (UNTAG_Bool(REGB0)) {
30375 } else {
30376 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30377 REGB0 = REGB1;
30378 }
30379 if (UNTAG_Bool(REGB0)) {
30380 /* ./parser//parser_prod.nit:5681 */
30381 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30382 if (UNTAG_Bool(REGB0)) {
30383 } else {
30384 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30385 if (UNTAG_Bool(REGB1)) {
30386 REGB1 = TAG_Bool(false);
30387 REGB0 = REGB1;
30388 } else {
30389 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30390 REGB0 = REGB1;
30391 }
30392 }
30393 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30394 if (UNTAG_Bool(REGB0)) {
30395 /* ./parser//parser_prod.nit:5682 */
30396 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30397 if (UNTAG_Bool(REGB0)) {
30398 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5682);
30399 }
30400 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30401 /* ./parser//parser_prod.nit:5683 */
30402 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*/;
30403 if (UNTAG_Bool(REGB0)) {
30404 } else {
30405 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5683);
30406 }
30407 /* ./parser//parser_prod.nit:5684 */
30408 ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
30409 } else {
30410 /* ./parser//parser_prod.nit:5686 */
30411 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5686);
30412 }
30413 /* ./parser//parser_prod.nit:5688 */
30414 goto label1;
30415 }
30416 /* ./parser//parser_prod.nit:5690 */
30417 REGB0 = TAG_Int(0);
30418 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30419 if (UNTAG_Bool(REGB1)) {
30420 } else {
30421 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5690);
30422 }
30423 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
30424 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
30425 /* ./../lib/standard//kernel.nit:335 */
30426 while(1) {
30427 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
30428 if (UNTAG_Bool(REGB2)) {
30429 } else {
30430 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
30431 }
30432 /* ./../lib/standard//kernel.nit:215 */
30433 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
30434 /* ./../lib/standard//kernel.nit:335 */
30435 if (UNTAG_Bool(REGB2)) {
30436 /* ./parser//parser_prod.nit:5690 */
30437 REGB2 = REGB0;
30438 /* ./parser//parser_prod.nit:5691 */
30439 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30440 if (UNTAG_Bool(REGB3)) {
30441 } else {
30442 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5691);
30443 }
30444 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
30445 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
30446 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
30447 if (UNTAG_Bool(REGB3)) {
30448 } else {
30449 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30450 if (UNTAG_Bool(REGB4)) {
30451 REGB4 = TAG_Bool(false);
30452 REGB3 = REGB4;
30453 } else {
30454 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30455 REGB3 = REGB4;
30456 }
30457 }
30458 if (UNTAG_Bool(REGB3)) {
30459 /* ./parser//parser_prod.nit:5692 */
30460 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30461 if (UNTAG_Bool(REGB3)) {
30462 } else {
30463 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30464 if (UNTAG_Bool(REGB4)) {
30465 REGB4 = TAG_Bool(false);
30466 REGB3 = REGB4;
30467 } else {
30468 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30469 REGB3 = REGB4;
30470 }
30471 }
30472 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
30473 if (UNTAG_Bool(REGB3)) {
30474 /* ./parser//parser_prod.nit:5693 */
30475 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*/;
30476 if (UNTAG_Bool(REGB3)) {
30477 } else {
30478 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5693);
30479 }
30480 /* ./parser//parser_prod.nit:5694 */
30481 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30482 if (UNTAG_Bool(REGB3)) {
30483 } else {
30484 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5694);
30485 }
30486 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
30487 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
30488 /* ./parser//parser_prod.nit:5695 */
30489 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30490 if (UNTAG_Bool(REGB3)) {
30491 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5695);
30492 }
30493 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30494 } else {
30495 /* ./parser//parser_prod.nit:5697 */
30496 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30497 if (UNTAG_Bool(REGB3)) {
30498 } else {
30499 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5697);
30500 }
30501 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
30502 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
30503 }
30504 /* ./parser//parser_prod.nit:5699 */
30505 goto label1;
30506 }
30507 /* ./../lib/standard//kernel.nit:337 */
30508 REGB2 = TAG_Int(1);
30509 /* ./../lib/standard//kernel.nit:218 */
30510 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
30511 /* ./../lib/standard//kernel.nit:337 */
30512 REGB0 = REGB2;
30513 } else {
30514 /* ./../lib/standard//kernel.nit:335 */
30515 goto label2;
30516 }
30517 }
30518 label2: while(0);
30519 label1: while(0);
30520 stack_frame_head = fra.me.prev;
30521 return;
30522 }
30523 void parser___parser_prod___ASuperExpr___visit_all(val_t p0, val_t p1){
30524 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30525 val_t REGB0;
30526 val_t REGB1;
30527 val_t tmp;
30528 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30529 fra.me.file = LOCATE_parser___parser_prod;
30530 fra.me.line = 5704;
30531 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___visit_all;
30532 fra.me.has_broke = 0;
30533 fra.me.REG_size = 4;
30534 fra.me.REG[0] = NIT_NULL;
30535 fra.me.REG[1] = NIT_NULL;
30536 fra.me.REG[2] = NIT_NULL;
30537 fra.me.REG[3] = NIT_NULL;
30538 fra.me.REG[0] = p0;
30539 fra.me.REG[1] = p1;
30540 /* ./parser//parser_prod.nit:5704 */
30541 fra.me.REG[2] = fra.me.REG[0];
30542 /* ./parser//parser_prod.nit:5706 */
30543 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[2]);
30544 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30545 if (UNTAG_Bool(REGB0)) {
30546 } else {
30547 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30548 if (UNTAG_Bool(REGB1)) {
30549 REGB1 = TAG_Bool(false);
30550 REGB0 = REGB1;
30551 } else {
30552 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
30553 REGB0 = REGB1;
30554 }
30555 }
30556 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30557 if (UNTAG_Bool(REGB0)) {
30558 /* ./parser//parser_prod.nit:5707 */
30559 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[2]);
30560 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*/;
30561 if (UNTAG_Bool(REGB0)) {
30562 } else {
30563 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5707);
30564 }
30565 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
30566 }
30567 /* ./parser//parser_prod.nit:5709 */
30568 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[2])!=NIT_NULL);
30569 if (UNTAG_Bool(REGB0)) {
30570 } else {
30571 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 5709);
30572 }
30573 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[2]);
30574 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
30575 /* ./parser//parser_prod.nit:5710 */
30576 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[2])!=NIT_NULL);
30577 if (UNTAG_Bool(REGB0)) {
30578 } else {
30579 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5710);
30580 }
30581 fra.me.REG[2] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[2]);
30582 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));
30583 stack_frame_head = fra.me.prev;
30584 return;
30585 }
30586 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){
30587 struct {struct stack_frame_t me;} fra;
30588 fun_t CREG[1];
30589 val_t tmp;
30590 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30591 fra.me.file = LOCATE_parser___parser_prod;
30592 fra.me.line = 0;
30593 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___visit_all;
30594 fra.me.has_broke = 0;
30595 fra.me.REG_size = 1;
30596 fra.me.REG[0] = NIT_NULL;
30597 fra.me.closure_ctx = closctx_param;
30598 fra.me.closure_funs = CREG;
30599 fra.me.REG[0] = p0;
30600 CREG[0] = clos_fun0;
30601 /* ./parser//parser_prod.nit:5711 */
30602 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
30603 stack_frame_head = fra.me.prev;
30604 return;
30605 }
30606 void parser___parser_prod___AInitExpr___empty_init(val_t p0, int* init_table){
30607 int itpos193 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitExpr].i;
30608 struct {struct stack_frame_t me;} fra;
30609 val_t tmp;
30610 if (init_table[itpos193]) return;
30611 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30612 fra.me.file = LOCATE_parser___parser_prod;
30613 fra.me.line = 5716;
30614 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___empty_init;
30615 fra.me.has_broke = 0;
30616 fra.me.REG_size = 1;
30617 fra.me.REG[0] = NIT_NULL;
30618 fra.me.REG[0] = p0;
30619 stack_frame_head = fra.me.prev;
30620 init_table[itpos193] = 1;
30621 return;
30622 }
30623 void parser___parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
30624 int itpos194 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitExpr].i;
30625 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
30626 val_t REGB0;
30627 val_t tmp;
30628 if (init_table[itpos194]) return;
30629 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30630 fra.me.file = LOCATE_parser___parser_prod;
30631 fra.me.line = 5718;
30632 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___init_ainitexpr;
30633 fra.me.has_broke = 0;
30634 fra.me.REG_size = 5;
30635 fra.me.REG[0] = NIT_NULL;
30636 fra.me.REG[1] = NIT_NULL;
30637 fra.me.REG[2] = NIT_NULL;
30638 fra.me.REG[3] = NIT_NULL;
30639 fra.me.REG[4] = NIT_NULL;
30640 fra.me.REG[0] = p0;
30641 fra.me.REG[1] = p1;
30642 fra.me.REG[2] = p2;
30643 fra.me.REG[3] = p3;
30644 /* ./parser//parser_prod.nit:5718 */
30645 fra.me.REG[4] = fra.me.REG[0];
30646 /* ./parser//parser_prod.nit:5724 */
30647 CALL_parser___parser_prod___AInitExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
30648 /* ./parser//parser_prod.nit:5725 */
30649 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
30650 if (UNTAG_Bool(REGB0)) {
30651 } else {
30652 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5725);
30653 }
30654 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[4]) = fra.me.REG[1];
30655 /* ./parser//parser_prod.nit:5726 */
30656 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30657 if (UNTAG_Bool(REGB0)) {
30658 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5726);
30659 }
30660 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
30661 /* ./parser//parser_prod.nit:5727 */
30662 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
30663 if (UNTAG_Bool(REGB0)) {
30664 } else {
30665 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5727);
30666 }
30667 ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[4]) = fra.me.REG[2];
30668 /* ./parser//parser_prod.nit:5728 */
30669 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30670 if (UNTAG_Bool(REGB0)) {
30671 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5728);
30672 }
30673 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
30674 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));
30675 stack_frame_head = fra.me.prev;
30676 init_table[itpos194] = 1;
30677 return;
30678 }
30679 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){
30680 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30681 val_t REGB0;
30682 fun_t CREG[1];
30683 val_t tmp;
30684 /* ./parser//parser_prod.nit:5729 */
30685 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30686 fra.me.file = LOCATE_parser___parser_prod;
30687 fra.me.line = 0;
30688 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___init_ainitexpr;
30689 fra.me.has_broke = 0;
30690 fra.me.REG_size = 2;
30691 fra.me.REG[0] = NIT_NULL;
30692 fra.me.REG[1] = NIT_NULL;
30693 fra.me.closure_ctx = closctx_param;
30694 fra.me.closure_funs = CREG;
30695 fra.me.REG[0] = p0;
30696 CREG[0] = clos_fun0;
30697 /* ./parser//parser_prod.nit:5730 */
30698 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30699 if (UNTAG_Bool(REGB0)) {
30700 } else {
30701 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5730);
30702 }
30703 /* ./parser//parser_prod.nit:5731 */
30704 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(closctx->REG[4])!=NIT_NULL);
30705 if (UNTAG_Bool(REGB0)) {
30706 } else {
30707 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5731);
30708 }
30709 fra.me.REG[1] = ATTR_parser___parser_nodes___AInitExpr____n_args(closctx->REG[4]);
30710 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30711 /* ./parser//parser_prod.nit:5732 */
30712 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
30713 stack_frame_head = fra.me.prev;
30714 return;
30715 }
30716 void parser___parser_prod___AInitExpr___replace_child(val_t p0, val_t p1, val_t p2){
30717 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30718 val_t REGB0;
30719 val_t REGB1;
30720 val_t REGB2;
30721 val_t REGB3;
30722 val_t REGB4;
30723 val_t tmp;
30724 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30725 fra.me.file = LOCATE_parser___parser_prod;
30726 fra.me.line = 5736;
30727 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___replace_child;
30728 fra.me.has_broke = 0;
30729 fra.me.REG_size = 4;
30730 fra.me.REG[0] = NIT_NULL;
30731 fra.me.REG[1] = NIT_NULL;
30732 fra.me.REG[2] = NIT_NULL;
30733 fra.me.REG[3] = NIT_NULL;
30734 fra.me.REG[0] = p0;
30735 fra.me.REG[1] = p1;
30736 fra.me.REG[2] = p2;
30737 /* ./parser//parser_prod.nit:5738 */
30738 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30739 if (UNTAG_Bool(REGB0)) {
30740 } else {
30741 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5738);
30742 }
30743 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30744 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30745 if (UNTAG_Bool(REGB0)) {
30746 } else {
30747 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30748 REGB0 = REGB1;
30749 }
30750 if (UNTAG_Bool(REGB0)) {
30751 /* ./parser//parser_prod.nit:5739 */
30752 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30753 if (UNTAG_Bool(REGB0)) {
30754 } else {
30755 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30756 if (UNTAG_Bool(REGB1)) {
30757 REGB1 = TAG_Bool(false);
30758 REGB0 = REGB1;
30759 } else {
30760 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30761 REGB0 = REGB1;
30762 }
30763 }
30764 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30765 if (UNTAG_Bool(REGB0)) {
30766 /* ./parser//parser_prod.nit:5740 */
30767 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30768 if (UNTAG_Bool(REGB0)) {
30769 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5740);
30770 }
30771 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30772 /* ./parser//parser_prod.nit:5741 */
30773 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30774 if (UNTAG_Bool(REGB0)) {
30775 } else {
30776 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5741);
30777 }
30778 /* ./parser//parser_prod.nit:5742 */
30779 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
30780 } else {
30781 /* ./parser//parser_prod.nit:5744 */
30782 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5744);
30783 }
30784 /* ./parser//parser_prod.nit:5746 */
30785 goto label1;
30786 }
30787 /* ./parser//parser_prod.nit:5748 */
30788 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
30789 if (UNTAG_Bool(REGB0)) {
30790 } else {
30791 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 5748);
30792 }
30793 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]);
30794 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30795 if (UNTAG_Bool(REGB0)) {
30796 } else {
30797 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30798 REGB0 = REGB1;
30799 }
30800 if (UNTAG_Bool(REGB0)) {
30801 /* ./parser//parser_prod.nit:5749 */
30802 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30803 if (UNTAG_Bool(REGB0)) {
30804 } else {
30805 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30806 if (UNTAG_Bool(REGB1)) {
30807 REGB1 = TAG_Bool(false);
30808 REGB0 = REGB1;
30809 } else {
30810 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30811 REGB0 = REGB1;
30812 }
30813 }
30814 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30815 if (UNTAG_Bool(REGB0)) {
30816 /* ./parser//parser_prod.nit:5750 */
30817 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30818 if (UNTAG_Bool(REGB0)) {
30819 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5750);
30820 }
30821 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30822 /* ./parser//parser_prod.nit:5751 */
30823 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*/;
30824 if (UNTAG_Bool(REGB0)) {
30825 } else {
30826 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5751);
30827 }
30828 /* ./parser//parser_prod.nit:5752 */
30829 ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]) = fra.me.REG[2];
30830 } else {
30831 /* ./parser//parser_prod.nit:5754 */
30832 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5754);
30833 }
30834 /* ./parser//parser_prod.nit:5756 */
30835 goto label1;
30836 }
30837 /* ./parser//parser_prod.nit:5758 */
30838 REGB0 = TAG_Int(0);
30839 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30840 if (UNTAG_Bool(REGB1)) {
30841 } else {
30842 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5758);
30843 }
30844 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
30845 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
30846 /* ./../lib/standard//kernel.nit:335 */
30847 while(1) {
30848 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
30849 if (UNTAG_Bool(REGB2)) {
30850 } else {
30851 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
30852 }
30853 /* ./../lib/standard//kernel.nit:215 */
30854 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
30855 /* ./../lib/standard//kernel.nit:335 */
30856 if (UNTAG_Bool(REGB2)) {
30857 /* ./parser//parser_prod.nit:5758 */
30858 REGB2 = REGB0;
30859 /* ./parser//parser_prod.nit:5759 */
30860 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30861 if (UNTAG_Bool(REGB3)) {
30862 } else {
30863 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5759);
30864 }
30865 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
30866 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
30867 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
30868 if (UNTAG_Bool(REGB3)) {
30869 } else {
30870 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30871 if (UNTAG_Bool(REGB4)) {
30872 REGB4 = TAG_Bool(false);
30873 REGB3 = REGB4;
30874 } else {
30875 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30876 REGB3 = REGB4;
30877 }
30878 }
30879 if (UNTAG_Bool(REGB3)) {
30880 /* ./parser//parser_prod.nit:5760 */
30881 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30882 if (UNTAG_Bool(REGB3)) {
30883 } else {
30884 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30885 if (UNTAG_Bool(REGB4)) {
30886 REGB4 = TAG_Bool(false);
30887 REGB3 = REGB4;
30888 } else {
30889 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30890 REGB3 = REGB4;
30891 }
30892 }
30893 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
30894 if (UNTAG_Bool(REGB3)) {
30895 /* ./parser//parser_prod.nit:5761 */
30896 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*/;
30897 if (UNTAG_Bool(REGB3)) {
30898 } else {
30899 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5761);
30900 }
30901 /* ./parser//parser_prod.nit:5762 */
30902 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30903 if (UNTAG_Bool(REGB3)) {
30904 } else {
30905 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5762);
30906 }
30907 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
30908 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
30909 /* ./parser//parser_prod.nit:5763 */
30910 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30911 if (UNTAG_Bool(REGB3)) {
30912 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5763);
30913 }
30914 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30915 } else {
30916 /* ./parser//parser_prod.nit:5765 */
30917 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30918 if (UNTAG_Bool(REGB3)) {
30919 } else {
30920 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5765);
30921 }
30922 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
30923 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
30924 }
30925 /* ./parser//parser_prod.nit:5767 */
30926 goto label1;
30927 }
30928 /* ./../lib/standard//kernel.nit:337 */
30929 REGB2 = TAG_Int(1);
30930 /* ./../lib/standard//kernel.nit:218 */
30931 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
30932 /* ./../lib/standard//kernel.nit:337 */
30933 REGB0 = REGB2;
30934 } else {
30935 /* ./../lib/standard//kernel.nit:335 */
30936 goto label2;
30937 }
30938 }
30939 label2: while(0);
30940 label1: while(0);
30941 stack_frame_head = fra.me.prev;
30942 return;
30943 }
30944 void parser___parser_prod___AInitExpr___visit_all(val_t p0, val_t p1){
30945 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
30946 val_t REGB0;
30947 val_t tmp;
30948 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30949 fra.me.file = LOCATE_parser___parser_prod;
30950 fra.me.line = 5772;
30951 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___visit_all;
30952 fra.me.has_broke = 0;
30953 fra.me.REG_size = 3;
30954 fra.me.REG[0] = NIT_NULL;
30955 fra.me.REG[1] = NIT_NULL;
30956 fra.me.REG[2] = NIT_NULL;
30957 fra.me.REG[0] = p0;
30958 fra.me.REG[1] = p1;
30959 /* ./parser//parser_prod.nit:5774 */
30960 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30961 if (UNTAG_Bool(REGB0)) {
30962 } else {
30963 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5774);
30964 }
30965 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30966 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30967 /* ./parser//parser_prod.nit:5775 */
30968 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
30969 if (UNTAG_Bool(REGB0)) {
30970 } else {
30971 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 5775);
30972 }
30973 fra.me.REG[2] = ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]);
30974 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30975 /* ./parser//parser_prod.nit:5776 */
30976 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30977 if (UNTAG_Bool(REGB0)) {
30978 } else {
30979 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5776);
30980 }
30981 fra.me.REG[0] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
30982 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));
30983 stack_frame_head = fra.me.prev;
30984 return;
30985 }
30986 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){
30987 struct {struct stack_frame_t me;} fra;
30988 fun_t CREG[1];
30989 val_t tmp;
30990 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30991 fra.me.file = LOCATE_parser___parser_prod;
30992 fra.me.line = 0;
30993 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___visit_all;
30994 fra.me.has_broke = 0;
30995 fra.me.REG_size = 1;
30996 fra.me.REG[0] = NIT_NULL;
30997 fra.me.closure_ctx = closctx_param;
30998 fra.me.closure_funs = CREG;
30999 fra.me.REG[0] = p0;
31000 CREG[0] = clos_fun0;
31001 /* ./parser//parser_prod.nit:5777 */
31002 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
31003 stack_frame_head = fra.me.prev;
31004 return;
31005 }
31006 void parser___parser_prod___ABraExpr___empty_init(val_t p0, int* init_table){
31007 int itpos195 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExpr].i;
31008 struct {struct stack_frame_t me;} fra;
31009 val_t tmp;
31010 if (init_table[itpos195]) return;
31011 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31012 fra.me.file = LOCATE_parser___parser_prod;
31013 fra.me.line = 5782;
31014 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___empty_init;
31015 fra.me.has_broke = 0;
31016 fra.me.REG_size = 1;
31017 fra.me.REG[0] = NIT_NULL;
31018 fra.me.REG[0] = p0;
31019 stack_frame_head = fra.me.prev;
31020 init_table[itpos195] = 1;
31021 return;
31022 }
31023 void parser___parser_prod___ABraExpr___init_abraexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
31024 int itpos196 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExpr].i;
31025 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
31026 val_t REGB0;
31027 val_t tmp;
31028 if (init_table[itpos196]) return;
31029 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31030 fra.me.file = LOCATE_parser___parser_prod;
31031 fra.me.line = 5784;
31032 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___init_abraexpr;
31033 fra.me.has_broke = 0;
31034 fra.me.REG_size = 5;
31035 fra.me.REG[0] = NIT_NULL;
31036 fra.me.REG[1] = NIT_NULL;
31037 fra.me.REG[2] = NIT_NULL;
31038 fra.me.REG[3] = NIT_NULL;
31039 fra.me.REG[4] = NIT_NULL;
31040 fra.me.REG[0] = p0;
31041 fra.me.REG[1] = p1;
31042 fra.me.REG[2] = p2;
31043 fra.me.REG[3] = p3;
31044 /* ./parser//parser_prod.nit:5784 */
31045 fra.me.REG[4] = fra.me.REG[0];
31046 /* ./parser//parser_prod.nit:5790 */
31047 CALL_parser___parser_prod___ABraExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
31048 /* ./parser//parser_prod.nit:5791 */
31049 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
31050 if (UNTAG_Bool(REGB0)) {
31051 } else {
31052 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5791);
31053 }
31054 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[4]) = fra.me.REG[1];
31055 /* ./parser//parser_prod.nit:5792 */
31056 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31057 if (UNTAG_Bool(REGB0)) {
31058 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5792);
31059 }
31060 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
31061 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));
31062 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));
31063 stack_frame_head = fra.me.prev;
31064 init_table[itpos196] = 1;
31065 return;
31066 }
31067 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){
31068 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31069 val_t REGB0;
31070 fun_t CREG[1];
31071 val_t tmp;
31072 /* ./parser//parser_prod.nit:5793 */
31073 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31074 fra.me.file = LOCATE_parser___parser_prod;
31075 fra.me.line = 0;
31076 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___init_abraexpr;
31077 fra.me.has_broke = 0;
31078 fra.me.REG_size = 2;
31079 fra.me.REG[0] = NIT_NULL;
31080 fra.me.REG[1] = NIT_NULL;
31081 fra.me.closure_ctx = closctx_param;
31082 fra.me.closure_funs = CREG;
31083 fra.me.REG[0] = p0;
31084 CREG[0] = clos_fun0;
31085 /* ./parser//parser_prod.nit:5794 */
31086 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31087 if (UNTAG_Bool(REGB0)) {
31088 } else {
31089 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5794);
31090 }
31091 /* ./parser//parser_prod.nit:5795 */
31092 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[4])!=NIT_NULL);
31093 if (UNTAG_Bool(REGB0)) {
31094 } else {
31095 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5795);
31096 }
31097 fra.me.REG[1] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[4]);
31098 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31099 /* ./parser//parser_prod.nit:5796 */
31100 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
31101 stack_frame_head = fra.me.prev;
31102 return;
31103 }
31104 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){
31105 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31106 val_t REGB0;
31107 fun_t CREG[1];
31108 val_t tmp;
31109 /* ./parser//parser_prod.nit:5798 */
31110 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31111 fra.me.file = LOCATE_parser___parser_prod;
31112 fra.me.line = 0;
31113 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___init_abraexpr;
31114 fra.me.has_broke = 0;
31115 fra.me.REG_size = 2;
31116 fra.me.REG[0] = NIT_NULL;
31117 fra.me.REG[1] = NIT_NULL;
31118 fra.me.closure_ctx = closctx_param;
31119 fra.me.closure_funs = CREG;
31120 fra.me.REG[0] = p0;
31121 CREG[0] = clos_fun0;
31122 /* ./parser//parser_prod.nit:5799 */
31123 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
31124 if (UNTAG_Bool(REGB0)) {
31125 } else {
31126 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5799);
31127 }
31128 /* ./parser//parser_prod.nit:5800 */
31129 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[4])!=NIT_NULL);
31130 if (UNTAG_Bool(REGB0)) {
31131 } else {
31132 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5800);
31133 }
31134 fra.me.REG[1] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[4]);
31135 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31136 /* ./parser//parser_prod.nit:5801 */
31137 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
31138 stack_frame_head = fra.me.prev;
31139 return;
31140 }
31141 void parser___parser_prod___ABraExpr___replace_child(val_t p0, val_t p1, val_t p2){
31142 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31143 val_t REGB0;
31144 val_t REGB1;
31145 val_t REGB2;
31146 val_t REGB3;
31147 val_t REGB4;
31148 val_t tmp;
31149 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31150 fra.me.file = LOCATE_parser___parser_prod;
31151 fra.me.line = 5805;
31152 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___replace_child;
31153 fra.me.has_broke = 0;
31154 fra.me.REG_size = 4;
31155 fra.me.REG[0] = NIT_NULL;
31156 fra.me.REG[1] = NIT_NULL;
31157 fra.me.REG[2] = NIT_NULL;
31158 fra.me.REG[3] = NIT_NULL;
31159 fra.me.REG[0] = p0;
31160 fra.me.REG[1] = p1;
31161 fra.me.REG[2] = p2;
31162 /* ./parser//parser_prod.nit:5807 */
31163 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31164 if (UNTAG_Bool(REGB0)) {
31165 } else {
31166 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5807);
31167 }
31168 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31169 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31170 if (UNTAG_Bool(REGB0)) {
31171 } else {
31172 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31173 REGB0 = REGB1;
31174 }
31175 if (UNTAG_Bool(REGB0)) {
31176 /* ./parser//parser_prod.nit:5808 */
31177 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31178 if (UNTAG_Bool(REGB0)) {
31179 } else {
31180 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31181 if (UNTAG_Bool(REGB1)) {
31182 REGB1 = TAG_Bool(false);
31183 REGB0 = REGB1;
31184 } else {
31185 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31186 REGB0 = REGB1;
31187 }
31188 }
31189 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31190 if (UNTAG_Bool(REGB0)) {
31191 /* ./parser//parser_prod.nit:5809 */
31192 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31193 if (UNTAG_Bool(REGB0)) {
31194 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5809);
31195 }
31196 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31197 /* ./parser//parser_prod.nit:5810 */
31198 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31199 if (UNTAG_Bool(REGB0)) {
31200 } else {
31201 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5810);
31202 }
31203 /* ./parser//parser_prod.nit:5811 */
31204 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
31205 } else {
31206 /* ./parser//parser_prod.nit:5813 */
31207 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5813);
31208 }
31209 /* ./parser//parser_prod.nit:5815 */
31210 goto label1;
31211 }
31212 /* ./parser//parser_prod.nit:5817 */
31213 REGB0 = TAG_Int(0);
31214 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31215 if (UNTAG_Bool(REGB1)) {
31216 } else {
31217 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5817);
31218 }
31219 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31220 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
31221 /* ./../lib/standard//kernel.nit:335 */
31222 while(1) {
31223 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
31224 if (UNTAG_Bool(REGB2)) {
31225 } else {
31226 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
31227 }
31228 /* ./../lib/standard//kernel.nit:215 */
31229 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
31230 /* ./../lib/standard//kernel.nit:335 */
31231 if (UNTAG_Bool(REGB2)) {
31232 /* ./parser//parser_prod.nit:5817 */
31233 REGB2 = REGB0;
31234 /* ./parser//parser_prod.nit:5818 */
31235 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31236 if (UNTAG_Bool(REGB3)) {
31237 } else {
31238 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5818);
31239 }
31240 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31241 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
31242 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
31243 if (UNTAG_Bool(REGB3)) {
31244 } else {
31245 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31246 if (UNTAG_Bool(REGB4)) {
31247 REGB4 = TAG_Bool(false);
31248 REGB3 = REGB4;
31249 } else {
31250 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31251 REGB3 = REGB4;
31252 }
31253 }
31254 if (UNTAG_Bool(REGB3)) {
31255 /* ./parser//parser_prod.nit:5819 */
31256 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31257 if (UNTAG_Bool(REGB3)) {
31258 } else {
31259 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31260 if (UNTAG_Bool(REGB4)) {
31261 REGB4 = TAG_Bool(false);
31262 REGB3 = REGB4;
31263 } else {
31264 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31265 REGB3 = REGB4;
31266 }
31267 }
31268 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
31269 if (UNTAG_Bool(REGB3)) {
31270 /* ./parser//parser_prod.nit:5820 */
31271 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*/;
31272 if (UNTAG_Bool(REGB3)) {
31273 } else {
31274 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5820);
31275 }
31276 /* ./parser//parser_prod.nit:5821 */
31277 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31278 if (UNTAG_Bool(REGB3)) {
31279 } else {
31280 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5821);
31281 }
31282 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31283 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
31284 /* ./parser//parser_prod.nit:5822 */
31285 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31286 if (UNTAG_Bool(REGB3)) {
31287 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5822);
31288 }
31289 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31290 } else {
31291 /* ./parser//parser_prod.nit:5824 */
31292 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31293 if (UNTAG_Bool(REGB3)) {
31294 } else {
31295 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5824);
31296 }
31297 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31298 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
31299 }
31300 /* ./parser//parser_prod.nit:5826 */
31301 goto label1;
31302 }
31303 /* ./../lib/standard//kernel.nit:337 */
31304 REGB2 = TAG_Int(1);
31305 /* ./../lib/standard//kernel.nit:218 */
31306 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
31307 /* ./../lib/standard//kernel.nit:337 */
31308 REGB0 = REGB2;
31309 } else {
31310 /* ./../lib/standard//kernel.nit:335 */
31311 goto label2;
31312 }
31313 }
31314 label2: while(0);
31315 /* ./parser//parser_prod.nit:5829 */
31316 REGB0 = TAG_Int(0);
31317 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
31318 if (UNTAG_Bool(REGB1)) {
31319 } else {
31320 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5829);
31321 }
31322 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
31323 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
31324 /* ./../lib/standard//kernel.nit:335 */
31325 while(1) {
31326 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
31327 if (UNTAG_Bool(REGB2)) {
31328 } else {
31329 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
31330 }
31331 /* ./../lib/standard//kernel.nit:215 */
31332 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
31333 /* ./../lib/standard//kernel.nit:335 */
31334 if (UNTAG_Bool(REGB2)) {
31335 /* ./parser//parser_prod.nit:5829 */
31336 REGB2 = REGB0;
31337 /* ./parser//parser_prod.nit:5830 */
31338 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
31339 if (UNTAG_Bool(REGB3)) {
31340 } else {
31341 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5830);
31342 }
31343 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
31344 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
31345 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
31346 if (UNTAG_Bool(REGB3)) {
31347 } else {
31348 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31349 if (UNTAG_Bool(REGB4)) {
31350 REGB4 = TAG_Bool(false);
31351 REGB3 = REGB4;
31352 } else {
31353 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31354 REGB3 = REGB4;
31355 }
31356 }
31357 if (UNTAG_Bool(REGB3)) {
31358 /* ./parser//parser_prod.nit:5831 */
31359 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31360 if (UNTAG_Bool(REGB3)) {
31361 } else {
31362 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31363 if (UNTAG_Bool(REGB4)) {
31364 REGB4 = TAG_Bool(false);
31365 REGB3 = REGB4;
31366 } else {
31367 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31368 REGB3 = REGB4;
31369 }
31370 }
31371 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
31372 if (UNTAG_Bool(REGB3)) {
31373 /* ./parser//parser_prod.nit:5832 */
31374 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*/;
31375 if (UNTAG_Bool(REGB3)) {
31376 } else {
31377 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5832);
31378 }
31379 /* ./parser//parser_prod.nit:5833 */
31380 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
31381 if (UNTAG_Bool(REGB3)) {
31382 } else {
31383 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5833);
31384 }
31385 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
31386 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
31387 /* ./parser//parser_prod.nit:5834 */
31388 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31389 if (UNTAG_Bool(REGB3)) {
31390 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5834);
31391 }
31392 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31393 } else {
31394 /* ./parser//parser_prod.nit:5836 */
31395 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
31396 if (UNTAG_Bool(REGB3)) {
31397 } else {
31398 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5836);
31399 }
31400 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
31401 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
31402 }
31403 /* ./parser//parser_prod.nit:5838 */
31404 goto label1;
31405 }
31406 /* ./../lib/standard//kernel.nit:337 */
31407 REGB2 = TAG_Int(1);
31408 /* ./../lib/standard//kernel.nit:218 */
31409 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
31410 /* ./../lib/standard//kernel.nit:337 */
31411 REGB0 = REGB2;
31412 } else {
31413 /* ./../lib/standard//kernel.nit:335 */
31414 goto label3;
31415 }
31416 }
31417 label3: while(0);
31418 label1: while(0);
31419 stack_frame_head = fra.me.prev;
31420 return;
31421 }
31422 void parser___parser_prod___ABraExpr___visit_all(val_t p0, val_t p1){
31423 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
31424 val_t REGB0;
31425 val_t tmp;
31426 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31427 fra.me.file = LOCATE_parser___parser_prod;
31428 fra.me.line = 5843;
31429 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___visit_all;
31430 fra.me.has_broke = 0;
31431 fra.me.REG_size = 3;
31432 fra.me.REG[0] = NIT_NULL;
31433 fra.me.REG[1] = NIT_NULL;
31434 fra.me.REG[2] = NIT_NULL;
31435 fra.me.REG[0] = p0;
31436 fra.me.REG[1] = p1;
31437 /* ./parser//parser_prod.nit:5845 */
31438 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31439 if (UNTAG_Bool(REGB0)) {
31440 } else {
31441 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5845);
31442 }
31443 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31444 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31445 /* ./parser//parser_prod.nit:5846 */
31446 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31447 if (UNTAG_Bool(REGB0)) {
31448 } else {
31449 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5846);
31450 }
31451 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31452 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));
31453 /* ./parser//parser_prod.nit:5849 */
31454 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
31455 if (UNTAG_Bool(REGB0)) {
31456 } else {
31457 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5849);
31458 }
31459 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
31460 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));
31461 stack_frame_head = fra.me.prev;
31462 return;
31463 }
31464 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){
31465 struct {struct stack_frame_t me;} fra;
31466 fun_t CREG[1];
31467 val_t tmp;
31468 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31469 fra.me.file = LOCATE_parser___parser_prod;
31470 fra.me.line = 0;
31471 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___visit_all;
31472 fra.me.has_broke = 0;
31473 fra.me.REG_size = 1;
31474 fra.me.REG[0] = NIT_NULL;
31475 fra.me.closure_ctx = closctx_param;
31476 fra.me.closure_funs = CREG;
31477 fra.me.REG[0] = p0;
31478 CREG[0] = clos_fun0;
31479 /* ./parser//parser_prod.nit:5847 */
31480 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
31481 stack_frame_head = fra.me.prev;
31482 return;
31483 }
31484 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){
31485 struct {struct stack_frame_t me;} fra;
31486 fun_t CREG[1];
31487 val_t tmp;
31488 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31489 fra.me.file = LOCATE_parser___parser_prod;
31490 fra.me.line = 0;
31491 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___visit_all;
31492 fra.me.has_broke = 0;
31493 fra.me.REG_size = 1;
31494 fra.me.REG[0] = NIT_NULL;
31495 fra.me.closure_ctx = closctx_param;
31496 fra.me.closure_funs = CREG;
31497 fra.me.REG[0] = p0;
31498 CREG[0] = clos_fun0;
31499 /* ./parser//parser_prod.nit:5850 */
31500 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
31501 stack_frame_head = fra.me.prev;
31502 return;
31503 }
31504 void parser___parser_prod___ABraAssignExpr___empty_init(val_t p0, int* init_table){
31505 int itpos197 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraAssignExpr].i;
31506 struct {struct stack_frame_t me;} fra;
31507 val_t tmp;
31508 if (init_table[itpos197]) return;
31509 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31510 fra.me.file = LOCATE_parser___parser_prod;
31511 fra.me.line = 5855;
31512 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___empty_init;
31513 fra.me.has_broke = 0;
31514 fra.me.REG_size = 1;
31515 fra.me.REG[0] = NIT_NULL;
31516 fra.me.REG[0] = p0;
31517 stack_frame_head = fra.me.prev;
31518 init_table[itpos197] = 1;
31519 return;
31520 }
31521 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){
31522 int itpos198 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraAssignExpr].i;
31523 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
31524 val_t REGB0;
31525 val_t tmp;
31526 if (init_table[itpos198]) return;
31527 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31528 fra.me.file = LOCATE_parser___parser_prod;
31529 fra.me.line = 5857;
31530 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___init_abraassignexpr;
31531 fra.me.has_broke = 0;
31532 fra.me.REG_size = 6;
31533 fra.me.REG[0] = NIT_NULL;
31534 fra.me.REG[1] = NIT_NULL;
31535 fra.me.REG[2] = NIT_NULL;
31536 fra.me.REG[3] = NIT_NULL;
31537 fra.me.REG[4] = NIT_NULL;
31538 fra.me.REG[5] = NIT_NULL;
31539 fra.me.REG[0] = p0;
31540 fra.me.REG[1] = p1;
31541 fra.me.REG[2] = p2;
31542 fra.me.REG[3] = p3;
31543 fra.me.REG[4] = p4;
31544 /* ./parser//parser_prod.nit:5857 */
31545 fra.me.REG[5] = fra.me.REG[0];
31546 /* ./parser//parser_prod.nit:5864 */
31547 CALL_parser___parser_prod___ABraAssignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
31548 /* ./parser//parser_prod.nit:5865 */
31549 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
31550 if (UNTAG_Bool(REGB0)) {
31551 } else {
31552 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5865);
31553 }
31554 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
31555 /* ./parser//parser_prod.nit:5866 */
31556 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31557 if (UNTAG_Bool(REGB0)) {
31558 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5866);
31559 }
31560 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
31561 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));
31562 /* ./parser//parser_prod.nit:5872 */
31563 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
31564 if (UNTAG_Bool(REGB0)) {
31565 } else {
31566 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5872);
31567 }
31568 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[5]) = fra.me.REG[3];
31569 /* ./parser//parser_prod.nit:5873 */
31570 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31571 if (UNTAG_Bool(REGB0)) {
31572 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5873);
31573 }
31574 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
31575 /* ./parser//parser_prod.nit:5874 */
31576 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
31577 if (UNTAG_Bool(REGB0)) {
31578 } else {
31579 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5874);
31580 }
31581 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
31582 /* ./parser//parser_prod.nit:5875 */
31583 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
31584 if (UNTAG_Bool(REGB0)) {
31585 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5875);
31586 }
31587 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
31588 stack_frame_head = fra.me.prev;
31589 init_table[itpos198] = 1;
31590 return;
31591 }
31592 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){
31593 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31594 val_t REGB0;
31595 fun_t CREG[1];
31596 val_t tmp;
31597 /* ./parser//parser_prod.nit:5867 */
31598 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31599 fra.me.file = LOCATE_parser___parser_prod;
31600 fra.me.line = 0;
31601 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___init_abraassignexpr;
31602 fra.me.has_broke = 0;
31603 fra.me.REG_size = 2;
31604 fra.me.REG[0] = NIT_NULL;
31605 fra.me.REG[1] = NIT_NULL;
31606 fra.me.closure_ctx = closctx_param;
31607 fra.me.closure_funs = CREG;
31608 fra.me.REG[0] = p0;
31609 CREG[0] = clos_fun0;
31610 /* ./parser//parser_prod.nit:5868 */
31611 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31612 if (UNTAG_Bool(REGB0)) {
31613 } else {
31614 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5868);
31615 }
31616 /* ./parser//parser_prod.nit:5869 */
31617 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[5])!=NIT_NULL);
31618 if (UNTAG_Bool(REGB0)) {
31619 } else {
31620 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5869);
31621 }
31622 fra.me.REG[1] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[5]);
31623 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31624 /* ./parser//parser_prod.nit:5870 */
31625 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
31626 stack_frame_head = fra.me.prev;
31627 return;
31628 }
31629 void parser___parser_prod___ABraAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
31630 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31631 val_t REGB0;
31632 val_t REGB1;
31633 val_t REGB2;
31634 val_t REGB3;
31635 val_t REGB4;
31636 val_t tmp;
31637 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31638 fra.me.file = LOCATE_parser___parser_prod;
31639 fra.me.line = 5878;
31640 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___replace_child;
31641 fra.me.has_broke = 0;
31642 fra.me.REG_size = 4;
31643 fra.me.REG[0] = NIT_NULL;
31644 fra.me.REG[1] = NIT_NULL;
31645 fra.me.REG[2] = NIT_NULL;
31646 fra.me.REG[3] = NIT_NULL;
31647 fra.me.REG[0] = p0;
31648 fra.me.REG[1] = p1;
31649 fra.me.REG[2] = p2;
31650 /* ./parser//parser_prod.nit:5880 */
31651 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31652 if (UNTAG_Bool(REGB0)) {
31653 } else {
31654 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5880);
31655 }
31656 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31657 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31658 if (UNTAG_Bool(REGB0)) {
31659 } else {
31660 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31661 REGB0 = REGB1;
31662 }
31663 if (UNTAG_Bool(REGB0)) {
31664 /* ./parser//parser_prod.nit:5881 */
31665 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31666 if (UNTAG_Bool(REGB0)) {
31667 } else {
31668 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31669 if (UNTAG_Bool(REGB1)) {
31670 REGB1 = TAG_Bool(false);
31671 REGB0 = REGB1;
31672 } else {
31673 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31674 REGB0 = REGB1;
31675 }
31676 }
31677 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31678 if (UNTAG_Bool(REGB0)) {
31679 /* ./parser//parser_prod.nit:5882 */
31680 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31681 if (UNTAG_Bool(REGB0)) {
31682 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5882);
31683 }
31684 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31685 /* ./parser//parser_prod.nit:5883 */
31686 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31687 if (UNTAG_Bool(REGB0)) {
31688 } else {
31689 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5883);
31690 }
31691 /* ./parser//parser_prod.nit:5884 */
31692 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
31693 } else {
31694 /* ./parser//parser_prod.nit:5886 */
31695 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5886);
31696 }
31697 /* ./parser//parser_prod.nit:5888 */
31698 goto label1;
31699 }
31700 /* ./parser//parser_prod.nit:5890 */
31701 REGB0 = TAG_Int(0);
31702 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31703 if (UNTAG_Bool(REGB1)) {
31704 } else {
31705 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5890);
31706 }
31707 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31708 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
31709 /* ./../lib/standard//kernel.nit:335 */
31710 while(1) {
31711 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
31712 if (UNTAG_Bool(REGB2)) {
31713 } else {
31714 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
31715 }
31716 /* ./../lib/standard//kernel.nit:215 */
31717 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
31718 /* ./../lib/standard//kernel.nit:335 */
31719 if (UNTAG_Bool(REGB2)) {
31720 /* ./parser//parser_prod.nit:5890 */
31721 REGB2 = REGB0;
31722 /* ./parser//parser_prod.nit:5891 */
31723 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31724 if (UNTAG_Bool(REGB3)) {
31725 } else {
31726 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5891);
31727 }
31728 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31729 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
31730 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
31731 if (UNTAG_Bool(REGB3)) {
31732 } else {
31733 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31734 if (UNTAG_Bool(REGB4)) {
31735 REGB4 = TAG_Bool(false);
31736 REGB3 = REGB4;
31737 } else {
31738 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31739 REGB3 = REGB4;
31740 }
31741 }
31742 if (UNTAG_Bool(REGB3)) {
31743 /* ./parser//parser_prod.nit:5892 */
31744 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31745 if (UNTAG_Bool(REGB3)) {
31746 } else {
31747 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31748 if (UNTAG_Bool(REGB4)) {
31749 REGB4 = TAG_Bool(false);
31750 REGB3 = REGB4;
31751 } else {
31752 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31753 REGB3 = REGB4;
31754 }
31755 }
31756 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
31757 if (UNTAG_Bool(REGB3)) {
31758 /* ./parser//parser_prod.nit:5893 */
31759 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*/;
31760 if (UNTAG_Bool(REGB3)) {
31761 } else {
31762 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5893);
31763 }
31764 /* ./parser//parser_prod.nit:5894 */
31765 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31766 if (UNTAG_Bool(REGB3)) {
31767 } else {
31768 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5894);
31769 }
31770 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31771 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
31772 /* ./parser//parser_prod.nit:5895 */
31773 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31774 if (UNTAG_Bool(REGB3)) {
31775 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5895);
31776 }
31777 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31778 } else {
31779 /* ./parser//parser_prod.nit:5897 */
31780 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31781 if (UNTAG_Bool(REGB3)) {
31782 } else {
31783 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5897);
31784 }
31785 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31786 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
31787 }
31788 /* ./parser//parser_prod.nit:5899 */
31789 goto label1;
31790 }
31791 /* ./../lib/standard//kernel.nit:337 */
31792 REGB2 = TAG_Int(1);
31793 /* ./../lib/standard//kernel.nit:218 */
31794 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
31795 /* ./../lib/standard//kernel.nit:337 */
31796 REGB0 = REGB2;
31797 } else {
31798 /* ./../lib/standard//kernel.nit:335 */
31799 goto label2;
31800 }
31801 }
31802 label2: while(0);
31803 /* ./parser//parser_prod.nit:5902 */
31804 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
31805 if (UNTAG_Bool(REGB0)) {
31806 } else {
31807 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5902);
31808 }
31809 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
31810 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31811 if (UNTAG_Bool(REGB0)) {
31812 } else {
31813 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31814 REGB0 = REGB1;
31815 }
31816 if (UNTAG_Bool(REGB0)) {
31817 /* ./parser//parser_prod.nit:5903 */
31818 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31819 if (UNTAG_Bool(REGB0)) {
31820 } else {
31821 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31822 if (UNTAG_Bool(REGB1)) {
31823 REGB1 = TAG_Bool(false);
31824 REGB0 = REGB1;
31825 } else {
31826 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31827 REGB0 = REGB1;
31828 }
31829 }
31830 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31831 if (UNTAG_Bool(REGB0)) {
31832 /* ./parser//parser_prod.nit:5904 */
31833 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31834 if (UNTAG_Bool(REGB0)) {
31835 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5904);
31836 }
31837 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31838 /* ./parser//parser_prod.nit:5905 */
31839 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*/;
31840 if (UNTAG_Bool(REGB0)) {
31841 } else {
31842 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5905);
31843 }
31844 /* ./parser//parser_prod.nit:5906 */
31845 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
31846 } else {
31847 /* ./parser//parser_prod.nit:5908 */
31848 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5908);
31849 }
31850 /* ./parser//parser_prod.nit:5910 */
31851 goto label1;
31852 }
31853 /* ./parser//parser_prod.nit:5912 */
31854 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31855 if (UNTAG_Bool(REGB0)) {
31856 } else {
31857 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5912);
31858 }
31859 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
31860 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31861 if (UNTAG_Bool(REGB0)) {
31862 } else {
31863 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31864 REGB0 = REGB1;
31865 }
31866 if (UNTAG_Bool(REGB0)) {
31867 /* ./parser//parser_prod.nit:5913 */
31868 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31869 if (UNTAG_Bool(REGB0)) {
31870 } else {
31871 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31872 if (UNTAG_Bool(REGB1)) {
31873 REGB1 = TAG_Bool(false);
31874 REGB0 = REGB1;
31875 } else {
31876 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31877 REGB0 = REGB1;
31878 }
31879 }
31880 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31881 if (UNTAG_Bool(REGB0)) {
31882 /* ./parser//parser_prod.nit:5914 */
31883 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31884 if (UNTAG_Bool(REGB0)) {
31885 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5914);
31886 }
31887 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31888 /* ./parser//parser_prod.nit:5915 */
31889 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31890 if (UNTAG_Bool(REGB0)) {
31891 } else {
31892 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5915);
31893 }
31894 /* ./parser//parser_prod.nit:5916 */
31895 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
31896 } else {
31897 /* ./parser//parser_prod.nit:5918 */
31898 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5918);
31899 }
31900 /* ./parser//parser_prod.nit:5920 */
31901 goto label1;
31902 }
31903 label1: while(0);
31904 stack_frame_head = fra.me.prev;
31905 return;
31906 }
31907 void parser___parser_prod___ABraAssignExpr___visit_all(val_t p0, val_t p1){
31908 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
31909 val_t REGB0;
31910 val_t tmp;
31911 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31912 fra.me.file = LOCATE_parser___parser_prod;
31913 fra.me.line = 5924;
31914 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___visit_all;
31915 fra.me.has_broke = 0;
31916 fra.me.REG_size = 3;
31917 fra.me.REG[0] = NIT_NULL;
31918 fra.me.REG[1] = NIT_NULL;
31919 fra.me.REG[2] = NIT_NULL;
31920 fra.me.REG[0] = p0;
31921 fra.me.REG[1] = p1;
31922 /* ./parser//parser_prod.nit:5926 */
31923 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31924 if (UNTAG_Bool(REGB0)) {
31925 } else {
31926 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5926);
31927 }
31928 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31929 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31930 /* ./parser//parser_prod.nit:5927 */
31931 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31932 if (UNTAG_Bool(REGB0)) {
31933 } else {
31934 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5927);
31935 }
31936 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31937 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));
31938 /* ./parser//parser_prod.nit:5930 */
31939 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
31940 if (UNTAG_Bool(REGB0)) {
31941 } else {
31942 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5930);
31943 }
31944 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
31945 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31946 /* ./parser//parser_prod.nit:5931 */
31947 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31948 if (UNTAG_Bool(REGB0)) {
31949 } else {
31950 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5931);
31951 }
31952 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
31953 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31954 stack_frame_head = fra.me.prev;
31955 return;
31956 }
31957 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){
31958 struct {struct stack_frame_t me;} fra;
31959 fun_t CREG[1];
31960 val_t tmp;
31961 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31962 fra.me.file = LOCATE_parser___parser_prod;
31963 fra.me.line = 0;
31964 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___visit_all;
31965 fra.me.has_broke = 0;
31966 fra.me.REG_size = 1;
31967 fra.me.REG[0] = NIT_NULL;
31968 fra.me.closure_ctx = closctx_param;
31969 fra.me.closure_funs = CREG;
31970 fra.me.REG[0] = p0;
31971 CREG[0] = clos_fun0;
31972 /* ./parser//parser_prod.nit:5928 */
31973 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
31974 stack_frame_head = fra.me.prev;
31975 return;
31976 }
31977 void parser___parser_prod___ABraReassignExpr___empty_init(val_t p0, int* init_table){
31978 int itpos199 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraReassignExpr].i;
31979 struct {struct stack_frame_t me;} fra;
31980 val_t tmp;
31981 if (init_table[itpos199]) return;
31982 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31983 fra.me.file = LOCATE_parser___parser_prod;
31984 fra.me.line = 5935;
31985 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___empty_init;
31986 fra.me.has_broke = 0;
31987 fra.me.REG_size = 1;
31988 fra.me.REG[0] = NIT_NULL;
31989 fra.me.REG[0] = p0;
31990 stack_frame_head = fra.me.prev;
31991 init_table[itpos199] = 1;
31992 return;
31993 }
31994 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){
31995 int itpos200 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraReassignExpr].i;
31996 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
31997 val_t REGB0;
31998 val_t tmp;
31999 if (init_table[itpos200]) return;
32000 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32001 fra.me.file = LOCATE_parser___parser_prod;
32002 fra.me.line = 5937;
32003 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr;
32004 fra.me.has_broke = 0;
32005 fra.me.REG_size = 6;
32006 fra.me.REG[0] = NIT_NULL;
32007 fra.me.REG[1] = NIT_NULL;
32008 fra.me.REG[2] = NIT_NULL;
32009 fra.me.REG[3] = NIT_NULL;
32010 fra.me.REG[4] = NIT_NULL;
32011 fra.me.REG[5] = NIT_NULL;
32012 fra.me.REG[0] = p0;
32013 fra.me.REG[1] = p1;
32014 fra.me.REG[2] = p2;
32015 fra.me.REG[3] = p3;
32016 fra.me.REG[4] = p4;
32017 /* ./parser//parser_prod.nit:5937 */
32018 fra.me.REG[5] = fra.me.REG[0];
32019 /* ./parser//parser_prod.nit:5944 */
32020 CALL_parser___parser_prod___ABraReassignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
32021 /* ./parser//parser_prod.nit:5945 */
32022 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32023 if (UNTAG_Bool(REGB0)) {
32024 } else {
32025 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5945);
32026 }
32027 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
32028 /* ./parser//parser_prod.nit:5946 */
32029 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32030 if (UNTAG_Bool(REGB0)) {
32031 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5946);
32032 }
32033 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
32034 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));
32035 /* ./parser//parser_prod.nit:5952 */
32036 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
32037 if (UNTAG_Bool(REGB0)) {
32038 } else {
32039 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5952);
32040 }
32041 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[5]) = fra.me.REG[3];
32042 /* ./parser//parser_prod.nit:5953 */
32043 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32044 if (UNTAG_Bool(REGB0)) {
32045 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5953);
32046 }
32047 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
32048 /* ./parser//parser_prod.nit:5954 */
32049 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
32050 if (UNTAG_Bool(REGB0)) {
32051 } else {
32052 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5954);
32053 }
32054 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
32055 /* ./parser//parser_prod.nit:5955 */
32056 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
32057 if (UNTAG_Bool(REGB0)) {
32058 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5955);
32059 }
32060 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
32061 stack_frame_head = fra.me.prev;
32062 init_table[itpos200] = 1;
32063 return;
32064 }
32065 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){
32066 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32067 val_t REGB0;
32068 fun_t CREG[1];
32069 val_t tmp;
32070 /* ./parser//parser_prod.nit:5947 */
32071 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32072 fra.me.file = LOCATE_parser___parser_prod;
32073 fra.me.line = 0;
32074 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr;
32075 fra.me.has_broke = 0;
32076 fra.me.REG_size = 2;
32077 fra.me.REG[0] = NIT_NULL;
32078 fra.me.REG[1] = NIT_NULL;
32079 fra.me.closure_ctx = closctx_param;
32080 fra.me.closure_funs = CREG;
32081 fra.me.REG[0] = p0;
32082 CREG[0] = clos_fun0;
32083 /* ./parser//parser_prod.nit:5948 */
32084 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
32085 if (UNTAG_Bool(REGB0)) {
32086 } else {
32087 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5948);
32088 }
32089 /* ./parser//parser_prod.nit:5949 */
32090 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[5])!=NIT_NULL);
32091 if (UNTAG_Bool(REGB0)) {
32092 } else {
32093 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5949);
32094 }
32095 fra.me.REG[1] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[5]);
32096 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32097 /* ./parser//parser_prod.nit:5950 */
32098 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
32099 stack_frame_head = fra.me.prev;
32100 return;
32101 }
32102 void parser___parser_prod___ABraReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
32103 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32104 val_t REGB0;
32105 val_t REGB1;
32106 val_t REGB2;
32107 val_t REGB3;
32108 val_t REGB4;
32109 val_t tmp;
32110 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32111 fra.me.file = LOCATE_parser___parser_prod;
32112 fra.me.line = 5958;
32113 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___replace_child;
32114 fra.me.has_broke = 0;
32115 fra.me.REG_size = 4;
32116 fra.me.REG[0] = NIT_NULL;
32117 fra.me.REG[1] = NIT_NULL;
32118 fra.me.REG[2] = NIT_NULL;
32119 fra.me.REG[3] = NIT_NULL;
32120 fra.me.REG[0] = p0;
32121 fra.me.REG[1] = p1;
32122 fra.me.REG[2] = p2;
32123 /* ./parser//parser_prod.nit:5960 */
32124 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32125 if (UNTAG_Bool(REGB0)) {
32126 } else {
32127 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5960);
32128 }
32129 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32130 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32131 if (UNTAG_Bool(REGB0)) {
32132 } else {
32133 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32134 REGB0 = REGB1;
32135 }
32136 if (UNTAG_Bool(REGB0)) {
32137 /* ./parser//parser_prod.nit:5961 */
32138 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32139 if (UNTAG_Bool(REGB0)) {
32140 } else {
32141 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32142 if (UNTAG_Bool(REGB1)) {
32143 REGB1 = TAG_Bool(false);
32144 REGB0 = REGB1;
32145 } else {
32146 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32147 REGB0 = REGB1;
32148 }
32149 }
32150 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32151 if (UNTAG_Bool(REGB0)) {
32152 /* ./parser//parser_prod.nit:5962 */
32153 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32154 if (UNTAG_Bool(REGB0)) {
32155 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5962);
32156 }
32157 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32158 /* ./parser//parser_prod.nit:5963 */
32159 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
32160 if (UNTAG_Bool(REGB0)) {
32161 } else {
32162 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5963);
32163 }
32164 /* ./parser//parser_prod.nit:5964 */
32165 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
32166 } else {
32167 /* ./parser//parser_prod.nit:5966 */
32168 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5966);
32169 }
32170 /* ./parser//parser_prod.nit:5968 */
32171 goto label1;
32172 }
32173 /* ./parser//parser_prod.nit:5970 */
32174 REGB0 = TAG_Int(0);
32175 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32176 if (UNTAG_Bool(REGB1)) {
32177 } else {
32178 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5970);
32179 }
32180 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32181 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
32182 /* ./../lib/standard//kernel.nit:335 */
32183 while(1) {
32184 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
32185 if (UNTAG_Bool(REGB2)) {
32186 } else {
32187 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
32188 }
32189 /* ./../lib/standard//kernel.nit:215 */
32190 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
32191 /* ./../lib/standard//kernel.nit:335 */
32192 if (UNTAG_Bool(REGB2)) {
32193 /* ./parser//parser_prod.nit:5970 */
32194 REGB2 = REGB0;
32195 /* ./parser//parser_prod.nit:5971 */
32196 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32197 if (UNTAG_Bool(REGB3)) {
32198 } else {
32199 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5971);
32200 }
32201 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32202 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
32203 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
32204 if (UNTAG_Bool(REGB3)) {
32205 } else {
32206 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32207 if (UNTAG_Bool(REGB4)) {
32208 REGB4 = TAG_Bool(false);
32209 REGB3 = REGB4;
32210 } else {
32211 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32212 REGB3 = REGB4;
32213 }
32214 }
32215 if (UNTAG_Bool(REGB3)) {
32216 /* ./parser//parser_prod.nit:5972 */
32217 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32218 if (UNTAG_Bool(REGB3)) {
32219 } else {
32220 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32221 if (UNTAG_Bool(REGB4)) {
32222 REGB4 = TAG_Bool(false);
32223 REGB3 = REGB4;
32224 } else {
32225 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32226 REGB3 = REGB4;
32227 }
32228 }
32229 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
32230 if (UNTAG_Bool(REGB3)) {
32231 /* ./parser//parser_prod.nit:5973 */
32232 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*/;
32233 if (UNTAG_Bool(REGB3)) {
32234 } else {
32235 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5973);
32236 }
32237 /* ./parser//parser_prod.nit:5974 */
32238 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32239 if (UNTAG_Bool(REGB3)) {
32240 } else {
32241 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5974);
32242 }
32243 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32244 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
32245 /* ./parser//parser_prod.nit:5975 */
32246 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32247 if (UNTAG_Bool(REGB3)) {
32248 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5975);
32249 }
32250 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32251 } else {
32252 /* ./parser//parser_prod.nit:5977 */
32253 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32254 if (UNTAG_Bool(REGB3)) {
32255 } else {
32256 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5977);
32257 }
32258 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32259 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
32260 }
32261 /* ./parser//parser_prod.nit:5979 */
32262 goto label1;
32263 }
32264 /* ./../lib/standard//kernel.nit:337 */
32265 REGB2 = TAG_Int(1);
32266 /* ./../lib/standard//kernel.nit:218 */
32267 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
32268 /* ./../lib/standard//kernel.nit:337 */
32269 REGB0 = REGB2;
32270 } else {
32271 /* ./../lib/standard//kernel.nit:335 */
32272 goto label2;
32273 }
32274 }
32275 label2: while(0);
32276 /* ./parser//parser_prod.nit:5982 */
32277 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
32278 if (UNTAG_Bool(REGB0)) {
32279 } else {
32280 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5982);
32281 }
32282 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
32283 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32284 if (UNTAG_Bool(REGB0)) {
32285 } else {
32286 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32287 REGB0 = REGB1;
32288 }
32289 if (UNTAG_Bool(REGB0)) {
32290 /* ./parser//parser_prod.nit:5983 */
32291 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32292 if (UNTAG_Bool(REGB0)) {
32293 } else {
32294 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32295 if (UNTAG_Bool(REGB1)) {
32296 REGB1 = TAG_Bool(false);
32297 REGB0 = REGB1;
32298 } else {
32299 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32300 REGB0 = REGB1;
32301 }
32302 }
32303 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32304 if (UNTAG_Bool(REGB0)) {
32305 /* ./parser//parser_prod.nit:5984 */
32306 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32307 if (UNTAG_Bool(REGB0)) {
32308 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5984);
32309 }
32310 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32311 /* ./parser//parser_prod.nit:5985 */
32312 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*/;
32313 if (UNTAG_Bool(REGB0)) {
32314 } else {
32315 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5985);
32316 }
32317 /* ./parser//parser_prod.nit:5986 */
32318 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
32319 } else {
32320 /* ./parser//parser_prod.nit:5988 */
32321 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5988);
32322 }
32323 /* ./parser//parser_prod.nit:5990 */
32324 goto label1;
32325 }
32326 /* ./parser//parser_prod.nit:5992 */
32327 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
32328 if (UNTAG_Bool(REGB0)) {
32329 } else {
32330 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5992);
32331 }
32332 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
32333 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32334 if (UNTAG_Bool(REGB0)) {
32335 } else {
32336 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32337 REGB0 = REGB1;
32338 }
32339 if (UNTAG_Bool(REGB0)) {
32340 /* ./parser//parser_prod.nit:5993 */
32341 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32342 if (UNTAG_Bool(REGB0)) {
32343 } else {
32344 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32345 if (UNTAG_Bool(REGB1)) {
32346 REGB1 = TAG_Bool(false);
32347 REGB0 = REGB1;
32348 } else {
32349 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32350 REGB0 = REGB1;
32351 }
32352 }
32353 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32354 if (UNTAG_Bool(REGB0)) {
32355 /* ./parser//parser_prod.nit:5994 */
32356 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32357 if (UNTAG_Bool(REGB0)) {
32358 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5994);
32359 }
32360 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32361 /* ./parser//parser_prod.nit:5995 */
32362 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
32363 if (UNTAG_Bool(REGB0)) {
32364 } else {
32365 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5995);
32366 }
32367 /* ./parser//parser_prod.nit:5996 */
32368 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
32369 } else {
32370 /* ./parser//parser_prod.nit:5998 */
32371 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5998);
32372 }
32373 /* ./parser//parser_prod.nit:6000 */
32374 goto label1;
32375 }
32376 label1: while(0);
32377 stack_frame_head = fra.me.prev;
32378 return;
32379 }
32380 void parser___parser_prod___ABraReassignExpr___visit_all(val_t p0, val_t p1){
32381 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
32382 val_t REGB0;
32383 val_t tmp;
32384 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32385 fra.me.file = LOCATE_parser___parser_prod;
32386 fra.me.line = 6004;
32387 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___visit_all;
32388 fra.me.has_broke = 0;
32389 fra.me.REG_size = 3;
32390 fra.me.REG[0] = NIT_NULL;
32391 fra.me.REG[1] = NIT_NULL;
32392 fra.me.REG[2] = NIT_NULL;
32393 fra.me.REG[0] = p0;
32394 fra.me.REG[1] = p1;
32395 /* ./parser//parser_prod.nit:6006 */
32396 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32397 if (UNTAG_Bool(REGB0)) {
32398 } else {
32399 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6006);
32400 }
32401 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32402 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32403 /* ./parser//parser_prod.nit:6007 */
32404 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32405 if (UNTAG_Bool(REGB0)) {
32406 } else {
32407 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6007);
32408 }
32409 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
32410 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));
32411 /* ./parser//parser_prod.nit:6010 */
32412 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
32413 if (UNTAG_Bool(REGB0)) {
32414 } else {
32415 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6010);
32416 }
32417 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
32418 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32419 /* ./parser//parser_prod.nit:6011 */
32420 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
32421 if (UNTAG_Bool(REGB0)) {
32422 } else {
32423 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6011);
32424 }
32425 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
32426 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32427 stack_frame_head = fra.me.prev;
32428 return;
32429 }
32430 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){
32431 struct {struct stack_frame_t me;} fra;
32432 fun_t CREG[1];
32433 val_t tmp;
32434 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32435 fra.me.file = LOCATE_parser___parser_prod;
32436 fra.me.line = 0;
32437 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___visit_all;
32438 fra.me.has_broke = 0;
32439 fra.me.REG_size = 1;
32440 fra.me.REG[0] = NIT_NULL;
32441 fra.me.closure_ctx = closctx_param;
32442 fra.me.closure_funs = CREG;
32443 fra.me.REG[0] = p0;
32444 CREG[0] = clos_fun0;
32445 /* ./parser//parser_prod.nit:6008 */
32446 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
32447 stack_frame_head = fra.me.prev;
32448 return;
32449 }
32450 void parser___parser_prod___AClosureCallExpr___empty_init(val_t p0, int* init_table){
32451 int itpos201 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureCallExpr].i;
32452 struct {struct stack_frame_t me;} fra;
32453 val_t tmp;
32454 if (init_table[itpos201]) return;
32455 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32456 fra.me.file = LOCATE_parser___parser_prod;
32457 fra.me.line = 6015;
32458 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___empty_init;
32459 fra.me.has_broke = 0;
32460 fra.me.REG_size = 1;
32461 fra.me.REG[0] = NIT_NULL;
32462 fra.me.REG[0] = p0;
32463 stack_frame_head = fra.me.prev;
32464 init_table[itpos201] = 1;
32465 return;
32466 }
32467 void parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
32468 int itpos202 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureCallExpr].i;
32469 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
32470 val_t REGB0;
32471 val_t tmp;
32472 if (init_table[itpos202]) return;
32473 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32474 fra.me.file = LOCATE_parser___parser_prod;
32475 fra.me.line = 6017;
32476 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr;
32477 fra.me.has_broke = 0;
32478 fra.me.REG_size = 5;
32479 fra.me.REG[0] = NIT_NULL;
32480 fra.me.REG[1] = NIT_NULL;
32481 fra.me.REG[2] = NIT_NULL;
32482 fra.me.REG[3] = NIT_NULL;
32483 fra.me.REG[4] = NIT_NULL;
32484 fra.me.REG[0] = p0;
32485 fra.me.REG[1] = p1;
32486 fra.me.REG[2] = p2;
32487 fra.me.REG[3] = p3;
32488 /* ./parser//parser_prod.nit:6017 */
32489 fra.me.REG[4] = fra.me.REG[0];
32490 /* ./parser//parser_prod.nit:6023 */
32491 CALL_parser___parser_prod___AClosureCallExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
32492 /* ./parser//parser_prod.nit:6024 */
32493 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32494 if (UNTAG_Bool(REGB0)) {
32495 } else {
32496 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6024);
32497 }
32498 ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
32499 /* ./parser//parser_prod.nit:6025 */
32500 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32501 if (UNTAG_Bool(REGB0)) {
32502 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6025);
32503 }
32504 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
32505 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));
32506 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));
32507 stack_frame_head = fra.me.prev;
32508 init_table[itpos202] = 1;
32509 return;
32510 }
32511 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){
32512 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32513 val_t REGB0;
32514 fun_t CREG[1];
32515 val_t tmp;
32516 /* ./parser//parser_prod.nit:6026 */
32517 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32518 fra.me.file = LOCATE_parser___parser_prod;
32519 fra.me.line = 0;
32520 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr;
32521 fra.me.has_broke = 0;
32522 fra.me.REG_size = 2;
32523 fra.me.REG[0] = NIT_NULL;
32524 fra.me.REG[1] = NIT_NULL;
32525 fra.me.closure_ctx = closctx_param;
32526 fra.me.closure_funs = CREG;
32527 fra.me.REG[0] = p0;
32528 CREG[0] = clos_fun0;
32529 /* ./parser//parser_prod.nit:6027 */
32530 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
32531 if (UNTAG_Bool(REGB0)) {
32532 } else {
32533 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6027);
32534 }
32535 /* ./parser//parser_prod.nit:6028 */
32536 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(closctx->REG[4])!=NIT_NULL);
32537 if (UNTAG_Bool(REGB0)) {
32538 } else {
32539 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6028);
32540 }
32541 fra.me.REG[1] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(closctx->REG[4]);
32542 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32543 /* ./parser//parser_prod.nit:6029 */
32544 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
32545 stack_frame_head = fra.me.prev;
32546 return;
32547 }
32548 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){
32549 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32550 val_t REGB0;
32551 fun_t CREG[1];
32552 val_t tmp;
32553 /* ./parser//parser_prod.nit:6031 */
32554 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32555 fra.me.file = LOCATE_parser___parser_prod;
32556 fra.me.line = 0;
32557 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr;
32558 fra.me.has_broke = 0;
32559 fra.me.REG_size = 2;
32560 fra.me.REG[0] = NIT_NULL;
32561 fra.me.REG[1] = NIT_NULL;
32562 fra.me.closure_ctx = closctx_param;
32563 fra.me.closure_funs = CREG;
32564 fra.me.REG[0] = p0;
32565 CREG[0] = clos_fun0;
32566 /* ./parser//parser_prod.nit:6032 */
32567 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
32568 if (UNTAG_Bool(REGB0)) {
32569 } else {
32570 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6032);
32571 }
32572 /* ./parser//parser_prod.nit:6033 */
32573 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(closctx->REG[4])!=NIT_NULL);
32574 if (UNTAG_Bool(REGB0)) {
32575 } else {
32576 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6033);
32577 }
32578 fra.me.REG[1] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(closctx->REG[4]);
32579 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32580 /* ./parser//parser_prod.nit:6034 */
32581 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
32582 stack_frame_head = fra.me.prev;
32583 return;
32584 }
32585 void parser___parser_prod___AClosureCallExpr___replace_child(val_t p0, val_t p1, val_t p2){
32586 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32587 val_t REGB0;
32588 val_t REGB1;
32589 val_t REGB2;
32590 val_t REGB3;
32591 val_t REGB4;
32592 val_t tmp;
32593 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32594 fra.me.file = LOCATE_parser___parser_prod;
32595 fra.me.line = 6038;
32596 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___replace_child;
32597 fra.me.has_broke = 0;
32598 fra.me.REG_size = 4;
32599 fra.me.REG[0] = NIT_NULL;
32600 fra.me.REG[1] = NIT_NULL;
32601 fra.me.REG[2] = NIT_NULL;
32602 fra.me.REG[3] = NIT_NULL;
32603 fra.me.REG[0] = p0;
32604 fra.me.REG[1] = p1;
32605 fra.me.REG[2] = p2;
32606 /* ./parser//parser_prod.nit:6040 */
32607 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32608 if (UNTAG_Bool(REGB0)) {
32609 } else {
32610 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6040);
32611 }
32612 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]);
32613 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32614 if (UNTAG_Bool(REGB0)) {
32615 } else {
32616 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32617 REGB0 = REGB1;
32618 }
32619 if (UNTAG_Bool(REGB0)) {
32620 /* ./parser//parser_prod.nit:6041 */
32621 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32622 if (UNTAG_Bool(REGB0)) {
32623 } else {
32624 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32625 if (UNTAG_Bool(REGB1)) {
32626 REGB1 = TAG_Bool(false);
32627 REGB0 = REGB1;
32628 } else {
32629 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32630 REGB0 = REGB1;
32631 }
32632 }
32633 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32634 if (UNTAG_Bool(REGB0)) {
32635 /* ./parser//parser_prod.nit:6042 */
32636 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32637 if (UNTAG_Bool(REGB0)) {
32638 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6042);
32639 }
32640 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32641 /* ./parser//parser_prod.nit:6043 */
32642 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*/;
32643 if (UNTAG_Bool(REGB0)) {
32644 } else {
32645 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6043);
32646 }
32647 /* ./parser//parser_prod.nit:6044 */
32648 ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
32649 } else {
32650 /* ./parser//parser_prod.nit:6046 */
32651 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6046);
32652 }
32653 /* ./parser//parser_prod.nit:6048 */
32654 goto label1;
32655 }
32656 /* ./parser//parser_prod.nit:6050 */
32657 REGB0 = TAG_Int(0);
32658 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32659 if (UNTAG_Bool(REGB1)) {
32660 } else {
32661 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6050);
32662 }
32663 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
32664 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
32665 /* ./../lib/standard//kernel.nit:335 */
32666 while(1) {
32667 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
32668 if (UNTAG_Bool(REGB2)) {
32669 } else {
32670 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
32671 }
32672 /* ./../lib/standard//kernel.nit:215 */
32673 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
32674 /* ./../lib/standard//kernel.nit:335 */
32675 if (UNTAG_Bool(REGB2)) {
32676 /* ./parser//parser_prod.nit:6050 */
32677 REGB2 = REGB0;
32678 /* ./parser//parser_prod.nit:6051 */
32679 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32680 if (UNTAG_Bool(REGB3)) {
32681 } else {
32682 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6051);
32683 }
32684 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
32685 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
32686 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
32687 if (UNTAG_Bool(REGB3)) {
32688 } else {
32689 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32690 if (UNTAG_Bool(REGB4)) {
32691 REGB4 = TAG_Bool(false);
32692 REGB3 = REGB4;
32693 } else {
32694 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32695 REGB3 = REGB4;
32696 }
32697 }
32698 if (UNTAG_Bool(REGB3)) {
32699 /* ./parser//parser_prod.nit:6052 */
32700 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32701 if (UNTAG_Bool(REGB3)) {
32702 } else {
32703 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32704 if (UNTAG_Bool(REGB4)) {
32705 REGB4 = TAG_Bool(false);
32706 REGB3 = REGB4;
32707 } else {
32708 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32709 REGB3 = REGB4;
32710 }
32711 }
32712 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
32713 if (UNTAG_Bool(REGB3)) {
32714 /* ./parser//parser_prod.nit:6053 */
32715 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*/;
32716 if (UNTAG_Bool(REGB3)) {
32717 } else {
32718 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6053);
32719 }
32720 /* ./parser//parser_prod.nit:6054 */
32721 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32722 if (UNTAG_Bool(REGB3)) {
32723 } else {
32724 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6054);
32725 }
32726 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
32727 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
32728 /* ./parser//parser_prod.nit:6055 */
32729 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32730 if (UNTAG_Bool(REGB3)) {
32731 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6055);
32732 }
32733 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32734 } else {
32735 /* ./parser//parser_prod.nit:6057 */
32736 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32737 if (UNTAG_Bool(REGB3)) {
32738 } else {
32739 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6057);
32740 }
32741 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
32742 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
32743 }
32744 /* ./parser//parser_prod.nit:6059 */
32745 goto label1;
32746 }
32747 /* ./../lib/standard//kernel.nit:337 */
32748 REGB2 = TAG_Int(1);
32749 /* ./../lib/standard//kernel.nit:218 */
32750 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
32751 /* ./../lib/standard//kernel.nit:337 */
32752 REGB0 = REGB2;
32753 } else {
32754 /* ./../lib/standard//kernel.nit:335 */
32755 goto label2;
32756 }
32757 }
32758 label2: while(0);
32759 /* ./parser//parser_prod.nit:6062 */
32760 REGB0 = TAG_Int(0);
32761 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32762 if (UNTAG_Bool(REGB1)) {
32763 } else {
32764 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6062);
32765 }
32766 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
32767 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
32768 /* ./../lib/standard//kernel.nit:335 */
32769 while(1) {
32770 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
32771 if (UNTAG_Bool(REGB2)) {
32772 } else {
32773 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
32774 }
32775 /* ./../lib/standard//kernel.nit:215 */
32776 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
32777 /* ./../lib/standard//kernel.nit:335 */
32778 if (UNTAG_Bool(REGB2)) {
32779 /* ./parser//parser_prod.nit:6062 */
32780 REGB2 = REGB0;
32781 /* ./parser//parser_prod.nit:6063 */
32782 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32783 if (UNTAG_Bool(REGB3)) {
32784 } else {
32785 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6063);
32786 }
32787 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
32788 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
32789 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
32790 if (UNTAG_Bool(REGB3)) {
32791 } else {
32792 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32793 if (UNTAG_Bool(REGB4)) {
32794 REGB4 = TAG_Bool(false);
32795 REGB3 = REGB4;
32796 } else {
32797 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32798 REGB3 = REGB4;
32799 }
32800 }
32801 if (UNTAG_Bool(REGB3)) {
32802 /* ./parser//parser_prod.nit:6064 */
32803 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32804 if (UNTAG_Bool(REGB3)) {
32805 } else {
32806 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32807 if (UNTAG_Bool(REGB4)) {
32808 REGB4 = TAG_Bool(false);
32809 REGB3 = REGB4;
32810 } else {
32811 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32812 REGB3 = REGB4;
32813 }
32814 }
32815 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
32816 if (UNTAG_Bool(REGB3)) {
32817 /* ./parser//parser_prod.nit:6065 */
32818 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*/;
32819 if (UNTAG_Bool(REGB3)) {
32820 } else {
32821 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6065);
32822 }
32823 /* ./parser//parser_prod.nit:6066 */
32824 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32825 if (UNTAG_Bool(REGB3)) {
32826 } else {
32827 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6066);
32828 }
32829 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
32830 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
32831 /* ./parser//parser_prod.nit:6067 */
32832 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32833 if (UNTAG_Bool(REGB3)) {
32834 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6067);
32835 }
32836 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32837 } else {
32838 /* ./parser//parser_prod.nit:6069 */
32839 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32840 if (UNTAG_Bool(REGB3)) {
32841 } else {
32842 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6069);
32843 }
32844 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
32845 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
32846 }
32847 /* ./parser//parser_prod.nit:6071 */
32848 goto label1;
32849 }
32850 /* ./../lib/standard//kernel.nit:337 */
32851 REGB2 = TAG_Int(1);
32852 /* ./../lib/standard//kernel.nit:218 */
32853 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
32854 /* ./../lib/standard//kernel.nit:337 */
32855 REGB0 = REGB2;
32856 } else {
32857 /* ./../lib/standard//kernel.nit:335 */
32858 goto label3;
32859 }
32860 }
32861 label3: while(0);
32862 label1: while(0);
32863 stack_frame_head = fra.me.prev;
32864 return;
32865 }
32866 void parser___parser_prod___AClosureCallExpr___visit_all(val_t p0, val_t p1){
32867 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
32868 val_t REGB0;
32869 val_t tmp;
32870 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32871 fra.me.file = LOCATE_parser___parser_prod;
32872 fra.me.line = 6076;
32873 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___visit_all;
32874 fra.me.has_broke = 0;
32875 fra.me.REG_size = 3;
32876 fra.me.REG[0] = NIT_NULL;
32877 fra.me.REG[1] = NIT_NULL;
32878 fra.me.REG[2] = NIT_NULL;
32879 fra.me.REG[0] = p0;
32880 fra.me.REG[1] = p1;
32881 /* ./parser//parser_prod.nit:6078 */
32882 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32883 if (UNTAG_Bool(REGB0)) {
32884 } else {
32885 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6078);
32886 }
32887 fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]);
32888 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32889 /* ./parser//parser_prod.nit:6079 */
32890 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32891 if (UNTAG_Bool(REGB0)) {
32892 } else {
32893 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6079);
32894 }
32895 fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
32896 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));
32897 /* ./parser//parser_prod.nit:6082 */
32898 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32899 if (UNTAG_Bool(REGB0)) {
32900 } else {
32901 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6082);
32902 }
32903 fra.me.REG[0] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
32904 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));
32905 stack_frame_head = fra.me.prev;
32906 return;
32907 }
32908 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){
32909 struct {struct stack_frame_t me;} fra;
32910 fun_t CREG[1];
32911 val_t tmp;
32912 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32913 fra.me.file = LOCATE_parser___parser_prod;
32914 fra.me.line = 0;
32915 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___visit_all;
32916 fra.me.has_broke = 0;
32917 fra.me.REG_size = 1;
32918 fra.me.REG[0] = NIT_NULL;
32919 fra.me.closure_ctx = closctx_param;
32920 fra.me.closure_funs = CREG;
32921 fra.me.REG[0] = p0;
32922 CREG[0] = clos_fun0;
32923 /* ./parser//parser_prod.nit:6080 */
32924 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
32925 stack_frame_head = fra.me.prev;
32926 return;
32927 }
32928 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){
32929 struct {struct stack_frame_t me;} fra;
32930 fun_t CREG[1];
32931 val_t tmp;
32932 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32933 fra.me.file = LOCATE_parser___parser_prod;
32934 fra.me.line = 0;
32935 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___visit_all;
32936 fra.me.has_broke = 0;
32937 fra.me.REG_size = 1;
32938 fra.me.REG[0] = NIT_NULL;
32939 fra.me.closure_ctx = closctx_param;
32940 fra.me.closure_funs = CREG;
32941 fra.me.REG[0] = p0;
32942 CREG[0] = clos_fun0;
32943 /* ./parser//parser_prod.nit:6083 */
32944 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
32945 stack_frame_head = fra.me.prev;
32946 return;
32947 }
32948 void parser___parser_prod___AVarExpr___empty_init(val_t p0, int* init_table){
32949 int itpos203 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarExpr].i;
32950 struct {struct stack_frame_t me;} fra;
32951 val_t tmp;
32952 if (init_table[itpos203]) return;
32953 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32954 fra.me.file = LOCATE_parser___parser_prod;
32955 fra.me.line = 6088;
32956 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___empty_init;
32957 fra.me.has_broke = 0;
32958 fra.me.REG_size = 1;
32959 fra.me.REG[0] = NIT_NULL;
32960 fra.me.REG[0] = p0;
32961 stack_frame_head = fra.me.prev;
32962 init_table[itpos203] = 1;
32963 return;
32964 }
32965 void parser___parser_prod___AVarExpr___init_avarexpr(val_t p0, val_t p1, int* init_table){
32966 int itpos204 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarExpr].i;
32967 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
32968 val_t REGB0;
32969 val_t tmp;
32970 if (init_table[itpos204]) return;
32971 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32972 fra.me.file = LOCATE_parser___parser_prod;
32973 fra.me.line = 6090;
32974 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___init_avarexpr;
32975 fra.me.has_broke = 0;
32976 fra.me.REG_size = 3;
32977 fra.me.REG[0] = NIT_NULL;
32978 fra.me.REG[1] = NIT_NULL;
32979 fra.me.REG[2] = NIT_NULL;
32980 fra.me.REG[0] = p0;
32981 fra.me.REG[1] = p1;
32982 /* ./parser//parser_prod.nit:6090 */
32983 fra.me.REG[2] = fra.me.REG[0];
32984 /* ./parser//parser_prod.nit:6094 */
32985 CALL_parser___parser_prod___AVarExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
32986 /* ./parser//parser_prod.nit:6095 */
32987 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32988 if (UNTAG_Bool(REGB0)) {
32989 } else {
32990 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6095);
32991 }
32992 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[2]) = fra.me.REG[1];
32993 /* ./parser//parser_prod.nit:6096 */
32994 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32995 if (UNTAG_Bool(REGB0)) {
32996 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6096);
32997 }
32998 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32999 stack_frame_head = fra.me.prev;
33000 init_table[itpos204] = 1;
33001 return;
33002 }
33003 void parser___parser_prod___AVarExpr___replace_child(val_t p0, val_t p1, val_t p2){
33004 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33005 val_t REGB0;
33006 val_t REGB1;
33007 val_t tmp;
33008 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33009 fra.me.file = LOCATE_parser___parser_prod;
33010 fra.me.line = 6099;
33011 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___replace_child;
33012 fra.me.has_broke = 0;
33013 fra.me.REG_size = 4;
33014 fra.me.REG[0] = NIT_NULL;
33015 fra.me.REG[1] = NIT_NULL;
33016 fra.me.REG[2] = NIT_NULL;
33017 fra.me.REG[3] = NIT_NULL;
33018 fra.me.REG[0] = p0;
33019 fra.me.REG[1] = p1;
33020 fra.me.REG[2] = p2;
33021 /* ./parser//parser_prod.nit:6101 */
33022 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
33023 if (UNTAG_Bool(REGB0)) {
33024 } else {
33025 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6101);
33026 }
33027 fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
33028 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33029 if (UNTAG_Bool(REGB0)) {
33030 } else {
33031 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33032 REGB0 = REGB1;
33033 }
33034 if (UNTAG_Bool(REGB0)) {
33035 /* ./parser//parser_prod.nit:6102 */
33036 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33037 if (UNTAG_Bool(REGB0)) {
33038 } else {
33039 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33040 if (UNTAG_Bool(REGB1)) {
33041 REGB1 = TAG_Bool(false);
33042 REGB0 = REGB1;
33043 } else {
33044 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33045 REGB0 = REGB1;
33046 }
33047 }
33048 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33049 if (UNTAG_Bool(REGB0)) {
33050 /* ./parser//parser_prod.nit:6103 */
33051 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33052 if (UNTAG_Bool(REGB0)) {
33053 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6103);
33054 }
33055 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33056 /* ./parser//parser_prod.nit:6104 */
33057 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*/;
33058 if (UNTAG_Bool(REGB0)) {
33059 } else {
33060 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6104);
33061 }
33062 /* ./parser//parser_prod.nit:6105 */
33063 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
33064 } else {
33065 /* ./parser//parser_prod.nit:6107 */
33066 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6107);
33067 }
33068 /* ./parser//parser_prod.nit:6109 */
33069 goto label1;
33070 }
33071 label1: while(0);
33072 stack_frame_head = fra.me.prev;
33073 return;
33074 }
33075 void parser___parser_prod___AVarExpr___visit_all(val_t p0, val_t p1){
33076 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33077 val_t REGB0;
33078 val_t tmp;
33079 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33080 fra.me.file = LOCATE_parser___parser_prod;
33081 fra.me.line = 6113;
33082 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___visit_all;
33083 fra.me.has_broke = 0;
33084 fra.me.REG_size = 2;
33085 fra.me.REG[0] = NIT_NULL;
33086 fra.me.REG[1] = NIT_NULL;
33087 fra.me.REG[0] = p0;
33088 fra.me.REG[1] = p1;
33089 /* ./parser//parser_prod.nit:6115 */
33090 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
33091 if (UNTAG_Bool(REGB0)) {
33092 } else {
33093 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6115);
33094 }
33095 fra.me.REG[0] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
33096 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33097 stack_frame_head = fra.me.prev;
33098 return;
33099 }
33100 void parser___parser_prod___AVarAssignExpr___empty_init(val_t p0, int* init_table){
33101 int itpos205 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarAssignExpr].i;
33102 struct {struct stack_frame_t me;} fra;
33103 val_t tmp;
33104 if (init_table[itpos205]) return;
33105 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33106 fra.me.file = LOCATE_parser___parser_prod;
33107 fra.me.line = 6119;
33108 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___empty_init;
33109 fra.me.has_broke = 0;
33110 fra.me.REG_size = 1;
33111 fra.me.REG[0] = NIT_NULL;
33112 fra.me.REG[0] = p0;
33113 stack_frame_head = fra.me.prev;
33114 init_table[itpos205] = 1;
33115 return;
33116 }
33117 void parser___parser_prod___AVarAssignExpr___init_avarassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
33118 int itpos206 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarAssignExpr].i;
33119 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33120 val_t REGB0;
33121 val_t tmp;
33122 if (init_table[itpos206]) return;
33123 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33124 fra.me.file = LOCATE_parser___parser_prod;
33125 fra.me.line = 6121;
33126 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___init_avarassignexpr;
33127 fra.me.has_broke = 0;
33128 fra.me.REG_size = 5;
33129 fra.me.REG[0] = NIT_NULL;
33130 fra.me.REG[1] = NIT_NULL;
33131 fra.me.REG[2] = NIT_NULL;
33132 fra.me.REG[3] = NIT_NULL;
33133 fra.me.REG[4] = NIT_NULL;
33134 fra.me.REG[0] = p0;
33135 fra.me.REG[1] = p1;
33136 fra.me.REG[2] = p2;
33137 fra.me.REG[3] = p3;
33138 /* ./parser//parser_prod.nit:6121 */
33139 fra.me.REG[4] = fra.me.REG[0];
33140 /* ./parser//parser_prod.nit:6127 */
33141 CALL_parser___parser_prod___AVarAssignExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
33142 /* ./parser//parser_prod.nit:6128 */
33143 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
33144 if (UNTAG_Bool(REGB0)) {
33145 } else {
33146 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6128);
33147 }
33148 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
33149 /* ./parser//parser_prod.nit:6129 */
33150 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33151 if (UNTAG_Bool(REGB0)) {
33152 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6129);
33153 }
33154 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
33155 /* ./parser//parser_prod.nit:6130 */
33156 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
33157 if (UNTAG_Bool(REGB0)) {
33158 } else {
33159 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6130);
33160 }
33161 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[4]) = fra.me.REG[2];
33162 /* ./parser//parser_prod.nit:6131 */
33163 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33164 if (UNTAG_Bool(REGB0)) {
33165 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6131);
33166 }
33167 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
33168 /* ./parser//parser_prod.nit:6132 */
33169 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
33170 if (UNTAG_Bool(REGB0)) {
33171 } else {
33172 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6132);
33173 }
33174 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[4]) = fra.me.REG[3];
33175 /* ./parser//parser_prod.nit:6133 */
33176 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
33177 if (UNTAG_Bool(REGB0)) {
33178 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6133);
33179 }
33180 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
33181 stack_frame_head = fra.me.prev;
33182 init_table[itpos206] = 1;
33183 return;
33184 }
33185 void parser___parser_prod___AVarAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
33186 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33187 val_t REGB0;
33188 val_t REGB1;
33189 val_t tmp;
33190 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33191 fra.me.file = LOCATE_parser___parser_prod;
33192 fra.me.line = 6136;
33193 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___replace_child;
33194 fra.me.has_broke = 0;
33195 fra.me.REG_size = 4;
33196 fra.me.REG[0] = NIT_NULL;
33197 fra.me.REG[1] = NIT_NULL;
33198 fra.me.REG[2] = NIT_NULL;
33199 fra.me.REG[3] = NIT_NULL;
33200 fra.me.REG[0] = p0;
33201 fra.me.REG[1] = p1;
33202 fra.me.REG[2] = p2;
33203 /* ./parser//parser_prod.nit:6138 */
33204 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
33205 if (UNTAG_Bool(REGB0)) {
33206 } else {
33207 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6138);
33208 }
33209 fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
33210 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33211 if (UNTAG_Bool(REGB0)) {
33212 } else {
33213 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33214 REGB0 = REGB1;
33215 }
33216 if (UNTAG_Bool(REGB0)) {
33217 /* ./parser//parser_prod.nit:6139 */
33218 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33219 if (UNTAG_Bool(REGB0)) {
33220 } else {
33221 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33222 if (UNTAG_Bool(REGB1)) {
33223 REGB1 = TAG_Bool(false);
33224 REGB0 = REGB1;
33225 } else {
33226 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33227 REGB0 = REGB1;
33228 }
33229 }
33230 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33231 if (UNTAG_Bool(REGB0)) {
33232 /* ./parser//parser_prod.nit:6140 */
33233 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33234 if (UNTAG_Bool(REGB0)) {
33235 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6140);
33236 }
33237 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33238 /* ./parser//parser_prod.nit:6141 */
33239 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*/;
33240 if (UNTAG_Bool(REGB0)) {
33241 } else {
33242 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6141);
33243 }
33244 /* ./parser//parser_prod.nit:6142 */
33245 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
33246 } else {
33247 /* ./parser//parser_prod.nit:6144 */
33248 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6144);
33249 }
33250 /* ./parser//parser_prod.nit:6146 */
33251 goto label1;
33252 }
33253 /* ./parser//parser_prod.nit:6148 */
33254 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
33255 if (UNTAG_Bool(REGB0)) {
33256 } else {
33257 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6148);
33258 }
33259 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
33260 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33261 if (UNTAG_Bool(REGB0)) {
33262 } else {
33263 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33264 REGB0 = REGB1;
33265 }
33266 if (UNTAG_Bool(REGB0)) {
33267 /* ./parser//parser_prod.nit:6149 */
33268 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33269 if (UNTAG_Bool(REGB0)) {
33270 } else {
33271 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33272 if (UNTAG_Bool(REGB1)) {
33273 REGB1 = TAG_Bool(false);
33274 REGB0 = REGB1;
33275 } else {
33276 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33277 REGB0 = REGB1;
33278 }
33279 }
33280 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33281 if (UNTAG_Bool(REGB0)) {
33282 /* ./parser//parser_prod.nit:6150 */
33283 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33284 if (UNTAG_Bool(REGB0)) {
33285 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6150);
33286 }
33287 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33288 /* ./parser//parser_prod.nit:6151 */
33289 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*/;
33290 if (UNTAG_Bool(REGB0)) {
33291 } else {
33292 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6151);
33293 }
33294 /* ./parser//parser_prod.nit:6152 */
33295 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
33296 } else {
33297 /* ./parser//parser_prod.nit:6154 */
33298 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6154);
33299 }
33300 /* ./parser//parser_prod.nit:6156 */
33301 goto label1;
33302 }
33303 /* ./parser//parser_prod.nit:6158 */
33304 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33305 if (UNTAG_Bool(REGB0)) {
33306 } else {
33307 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6158);
33308 }
33309 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
33310 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33311 if (UNTAG_Bool(REGB0)) {
33312 } else {
33313 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33314 REGB0 = REGB1;
33315 }
33316 if (UNTAG_Bool(REGB0)) {
33317 /* ./parser//parser_prod.nit:6159 */
33318 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33319 if (UNTAG_Bool(REGB0)) {
33320 } else {
33321 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33322 if (UNTAG_Bool(REGB1)) {
33323 REGB1 = TAG_Bool(false);
33324 REGB0 = REGB1;
33325 } else {
33326 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33327 REGB0 = REGB1;
33328 }
33329 }
33330 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33331 if (UNTAG_Bool(REGB0)) {
33332 /* ./parser//parser_prod.nit:6160 */
33333 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33334 if (UNTAG_Bool(REGB0)) {
33335 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6160);
33336 }
33337 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33338 /* ./parser//parser_prod.nit:6161 */
33339 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
33340 if (UNTAG_Bool(REGB0)) {
33341 } else {
33342 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6161);
33343 }
33344 /* ./parser//parser_prod.nit:6162 */
33345 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
33346 } else {
33347 /* ./parser//parser_prod.nit:6164 */
33348 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6164);
33349 }
33350 /* ./parser//parser_prod.nit:6166 */
33351 goto label1;
33352 }
33353 label1: while(0);
33354 stack_frame_head = fra.me.prev;
33355 return;
33356 }
33357 void parser___parser_prod___AVarAssignExpr___visit_all(val_t p0, val_t p1){
33358 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33359 val_t REGB0;
33360 val_t tmp;
33361 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33362 fra.me.file = LOCATE_parser___parser_prod;
33363 fra.me.line = 6170;
33364 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___visit_all;
33365 fra.me.has_broke = 0;
33366 fra.me.REG_size = 3;
33367 fra.me.REG[0] = NIT_NULL;
33368 fra.me.REG[1] = NIT_NULL;
33369 fra.me.REG[2] = NIT_NULL;
33370 fra.me.REG[0] = p0;
33371 fra.me.REG[1] = p1;
33372 /* ./parser//parser_prod.nit:6172 */
33373 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
33374 if (UNTAG_Bool(REGB0)) {
33375 } else {
33376 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6172);
33377 }
33378 fra.me.REG[2] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
33379 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33380 /* ./parser//parser_prod.nit:6173 */
33381 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
33382 if (UNTAG_Bool(REGB0)) {
33383 } else {
33384 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6173);
33385 }
33386 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
33387 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33388 /* ./parser//parser_prod.nit:6174 */
33389 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33390 if (UNTAG_Bool(REGB0)) {
33391 } else {
33392 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6174);
33393 }
33394 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
33395 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33396 stack_frame_head = fra.me.prev;
33397 return;
33398 }
33399 void parser___parser_prod___AVarReassignExpr___empty_init(val_t p0, int* init_table){
33400 int itpos207 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarReassignExpr].i;
33401 struct {struct stack_frame_t me;} fra;
33402 val_t tmp;
33403 if (init_table[itpos207]) return;
33404 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33405 fra.me.file = LOCATE_parser___parser_prod;
33406 fra.me.line = 6178;
33407 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___empty_init;
33408 fra.me.has_broke = 0;
33409 fra.me.REG_size = 1;
33410 fra.me.REG[0] = NIT_NULL;
33411 fra.me.REG[0] = p0;
33412 stack_frame_head = fra.me.prev;
33413 init_table[itpos207] = 1;
33414 return;
33415 }
33416 void parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
33417 int itpos208 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarReassignExpr].i;
33418 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33419 val_t REGB0;
33420 val_t tmp;
33421 if (init_table[itpos208]) return;
33422 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33423 fra.me.file = LOCATE_parser___parser_prod;
33424 fra.me.line = 6180;
33425 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr;
33426 fra.me.has_broke = 0;
33427 fra.me.REG_size = 5;
33428 fra.me.REG[0] = NIT_NULL;
33429 fra.me.REG[1] = NIT_NULL;
33430 fra.me.REG[2] = NIT_NULL;
33431 fra.me.REG[3] = NIT_NULL;
33432 fra.me.REG[4] = NIT_NULL;
33433 fra.me.REG[0] = p0;
33434 fra.me.REG[1] = p1;
33435 fra.me.REG[2] = p2;
33436 fra.me.REG[3] = p3;
33437 /* ./parser//parser_prod.nit:6180 */
33438 fra.me.REG[4] = fra.me.REG[0];
33439 /* ./parser//parser_prod.nit:6186 */
33440 CALL_parser___parser_prod___AVarReassignExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
33441 /* ./parser//parser_prod.nit:6187 */
33442 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
33443 if (UNTAG_Bool(REGB0)) {
33444 } else {
33445 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6187);
33446 }
33447 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
33448 /* ./parser//parser_prod.nit:6188 */
33449 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33450 if (UNTAG_Bool(REGB0)) {
33451 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6188);
33452 }
33453 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
33454 /* ./parser//parser_prod.nit:6189 */
33455 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
33456 if (UNTAG_Bool(REGB0)) {
33457 } else {
33458 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6189);
33459 }
33460 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[4]) = fra.me.REG[2];
33461 /* ./parser//parser_prod.nit:6190 */
33462 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33463 if (UNTAG_Bool(REGB0)) {
33464 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6190);
33465 }
33466 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
33467 /* ./parser//parser_prod.nit:6191 */
33468 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
33469 if (UNTAG_Bool(REGB0)) {
33470 } else {
33471 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6191);
33472 }
33473 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[4]) = fra.me.REG[3];
33474 /* ./parser//parser_prod.nit:6192 */
33475 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
33476 if (UNTAG_Bool(REGB0)) {
33477 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6192);
33478 }
33479 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
33480 stack_frame_head = fra.me.prev;
33481 init_table[itpos208] = 1;
33482 return;
33483 }
33484 void parser___parser_prod___AVarReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
33485 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33486 val_t REGB0;
33487 val_t REGB1;
33488 val_t tmp;
33489 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33490 fra.me.file = LOCATE_parser___parser_prod;
33491 fra.me.line = 6195;
33492 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___replace_child;
33493 fra.me.has_broke = 0;
33494 fra.me.REG_size = 4;
33495 fra.me.REG[0] = NIT_NULL;
33496 fra.me.REG[1] = NIT_NULL;
33497 fra.me.REG[2] = NIT_NULL;
33498 fra.me.REG[3] = NIT_NULL;
33499 fra.me.REG[0] = p0;
33500 fra.me.REG[1] = p1;
33501 fra.me.REG[2] = p2;
33502 /* ./parser//parser_prod.nit:6197 */
33503 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
33504 if (UNTAG_Bool(REGB0)) {
33505 } else {
33506 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6197);
33507 }
33508 fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
33509 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33510 if (UNTAG_Bool(REGB0)) {
33511 } else {
33512 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33513 REGB0 = REGB1;
33514 }
33515 if (UNTAG_Bool(REGB0)) {
33516 /* ./parser//parser_prod.nit:6198 */
33517 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33518 if (UNTAG_Bool(REGB0)) {
33519 } else {
33520 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33521 if (UNTAG_Bool(REGB1)) {
33522 REGB1 = TAG_Bool(false);
33523 REGB0 = REGB1;
33524 } else {
33525 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33526 REGB0 = REGB1;
33527 }
33528 }
33529 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33530 if (UNTAG_Bool(REGB0)) {
33531 /* ./parser//parser_prod.nit:6199 */
33532 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33533 if (UNTAG_Bool(REGB0)) {
33534 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6199);
33535 }
33536 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33537 /* ./parser//parser_prod.nit:6200 */
33538 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*/;
33539 if (UNTAG_Bool(REGB0)) {
33540 } else {
33541 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6200);
33542 }
33543 /* ./parser//parser_prod.nit:6201 */
33544 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
33545 } else {
33546 /* ./parser//parser_prod.nit:6203 */
33547 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6203);
33548 }
33549 /* ./parser//parser_prod.nit:6205 */
33550 goto label1;
33551 }
33552 /* ./parser//parser_prod.nit:6207 */
33553 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
33554 if (UNTAG_Bool(REGB0)) {
33555 } else {
33556 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6207);
33557 }
33558 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
33559 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33560 if (UNTAG_Bool(REGB0)) {
33561 } else {
33562 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33563 REGB0 = REGB1;
33564 }
33565 if (UNTAG_Bool(REGB0)) {
33566 /* ./parser//parser_prod.nit:6208 */
33567 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33568 if (UNTAG_Bool(REGB0)) {
33569 } else {
33570 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33571 if (UNTAG_Bool(REGB1)) {
33572 REGB1 = TAG_Bool(false);
33573 REGB0 = REGB1;
33574 } else {
33575 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33576 REGB0 = REGB1;
33577 }
33578 }
33579 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33580 if (UNTAG_Bool(REGB0)) {
33581 /* ./parser//parser_prod.nit:6209 */
33582 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33583 if (UNTAG_Bool(REGB0)) {
33584 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6209);
33585 }
33586 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33587 /* ./parser//parser_prod.nit:6210 */
33588 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*/;
33589 if (UNTAG_Bool(REGB0)) {
33590 } else {
33591 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6210);
33592 }
33593 /* ./parser//parser_prod.nit:6211 */
33594 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
33595 } else {
33596 /* ./parser//parser_prod.nit:6213 */
33597 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6213);
33598 }
33599 /* ./parser//parser_prod.nit:6215 */
33600 goto label1;
33601 }
33602 /* ./parser//parser_prod.nit:6217 */
33603 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33604 if (UNTAG_Bool(REGB0)) {
33605 } else {
33606 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6217);
33607 }
33608 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
33609 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33610 if (UNTAG_Bool(REGB0)) {
33611 } else {
33612 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33613 REGB0 = REGB1;
33614 }
33615 if (UNTAG_Bool(REGB0)) {
33616 /* ./parser//parser_prod.nit:6218 */
33617 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33618 if (UNTAG_Bool(REGB0)) {
33619 } else {
33620 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33621 if (UNTAG_Bool(REGB1)) {
33622 REGB1 = TAG_Bool(false);
33623 REGB0 = REGB1;
33624 } else {
33625 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33626 REGB0 = REGB1;
33627 }
33628 }
33629 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33630 if (UNTAG_Bool(REGB0)) {
33631 /* ./parser//parser_prod.nit:6219 */
33632 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33633 if (UNTAG_Bool(REGB0)) {
33634 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6219);
33635 }
33636 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33637 /* ./parser//parser_prod.nit:6220 */
33638 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
33639 if (UNTAG_Bool(REGB0)) {
33640 } else {
33641 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6220);
33642 }
33643 /* ./parser//parser_prod.nit:6221 */
33644 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
33645 } else {
33646 /* ./parser//parser_prod.nit:6223 */
33647 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6223);
33648 }
33649 /* ./parser//parser_prod.nit:6225 */
33650 goto label1;
33651 }
33652 label1: while(0);
33653 stack_frame_head = fra.me.prev;
33654 return;
33655 }
33656 void parser___parser_prod___AVarReassignExpr___visit_all(val_t p0, val_t p1){
33657 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33658 val_t REGB0;
33659 val_t tmp;
33660 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33661 fra.me.file = LOCATE_parser___parser_prod;
33662 fra.me.line = 6229;
33663 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___visit_all;
33664 fra.me.has_broke = 0;
33665 fra.me.REG_size = 3;
33666 fra.me.REG[0] = NIT_NULL;
33667 fra.me.REG[1] = NIT_NULL;
33668 fra.me.REG[2] = NIT_NULL;
33669 fra.me.REG[0] = p0;
33670 fra.me.REG[1] = p1;
33671 /* ./parser//parser_prod.nit:6231 */
33672 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
33673 if (UNTAG_Bool(REGB0)) {
33674 } else {
33675 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6231);
33676 }
33677 fra.me.REG[2] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
33678 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33679 /* ./parser//parser_prod.nit:6232 */
33680 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
33681 if (UNTAG_Bool(REGB0)) {
33682 } else {
33683 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6232);
33684 }
33685 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
33686 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33687 /* ./parser//parser_prod.nit:6233 */
33688 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33689 if (UNTAG_Bool(REGB0)) {
33690 } else {
33691 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6233);
33692 }
33693 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
33694 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33695 stack_frame_head = fra.me.prev;
33696 return;
33697 }
33698 void parser___parser_prod___ARangeExpr___empty_init(val_t p0, int* init_table){
33699 int itpos209 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ARangeExpr].i;
33700 struct {struct stack_frame_t me;} fra;
33701 val_t tmp;
33702 if (init_table[itpos209]) return;
33703 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33704 fra.me.file = LOCATE_parser___parser_prod;
33705 fra.me.line = 6237;
33706 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___empty_init;
33707 fra.me.has_broke = 0;
33708 fra.me.REG_size = 1;
33709 fra.me.REG[0] = NIT_NULL;
33710 fra.me.REG[0] = p0;
33711 stack_frame_head = fra.me.prev;
33712 init_table[itpos209] = 1;
33713 return;
33714 }
33715 void parser___parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
33716 int itpos210 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ARangeExpr].i;
33717 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33718 val_t REGB0;
33719 val_t tmp;
33720 if (init_table[itpos210]) return;
33721 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33722 fra.me.file = LOCATE_parser___parser_prod;
33723 fra.me.line = 6239;
33724 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___init_arangeexpr;
33725 fra.me.has_broke = 0;
33726 fra.me.REG_size = 4;
33727 fra.me.REG[0] = NIT_NULL;
33728 fra.me.REG[1] = NIT_NULL;
33729 fra.me.REG[2] = NIT_NULL;
33730 fra.me.REG[3] = NIT_NULL;
33731 fra.me.REG[0] = p0;
33732 fra.me.REG[1] = p1;
33733 fra.me.REG[2] = p2;
33734 /* ./parser//parser_prod.nit:6239 */
33735 fra.me.REG[3] = fra.me.REG[0];
33736 /* ./parser//parser_prod.nit:6244 */
33737 CALL_parser___parser_prod___ARangeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
33738 /* ./parser//parser_prod.nit:6245 */
33739 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
33740 if (UNTAG_Bool(REGB0)) {
33741 } else {
33742 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6245);
33743 }
33744 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
33745 /* ./parser//parser_prod.nit:6246 */
33746 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33747 if (UNTAG_Bool(REGB0)) {
33748 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6246);
33749 }
33750 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
33751 /* ./parser//parser_prod.nit:6247 */
33752 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
33753 if (UNTAG_Bool(REGB0)) {
33754 } else {
33755 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6247);
33756 }
33757 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
33758 /* ./parser//parser_prod.nit:6248 */
33759 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33760 if (UNTAG_Bool(REGB0)) {
33761 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6248);
33762 }
33763 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
33764 stack_frame_head = fra.me.prev;
33765 init_table[itpos210] = 1;
33766 return;
33767 }
33768 void parser___parser_prod___ARangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
33769 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33770 val_t REGB0;
33771 val_t REGB1;
33772 val_t tmp;
33773 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33774 fra.me.file = LOCATE_parser___parser_prod;
33775 fra.me.line = 6251;
33776 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___replace_child;
33777 fra.me.has_broke = 0;
33778 fra.me.REG_size = 4;
33779 fra.me.REG[0] = NIT_NULL;
33780 fra.me.REG[1] = NIT_NULL;
33781 fra.me.REG[2] = NIT_NULL;
33782 fra.me.REG[3] = NIT_NULL;
33783 fra.me.REG[0] = p0;
33784 fra.me.REG[1] = p1;
33785 fra.me.REG[2] = p2;
33786 /* ./parser//parser_prod.nit:6253 */
33787 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33788 if (UNTAG_Bool(REGB0)) {
33789 } else {
33790 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6253);
33791 }
33792 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
33793 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33794 if (UNTAG_Bool(REGB0)) {
33795 } else {
33796 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33797 REGB0 = REGB1;
33798 }
33799 if (UNTAG_Bool(REGB0)) {
33800 /* ./parser//parser_prod.nit:6254 */
33801 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33802 if (UNTAG_Bool(REGB0)) {
33803 } else {
33804 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33805 if (UNTAG_Bool(REGB1)) {
33806 REGB1 = TAG_Bool(false);
33807 REGB0 = REGB1;
33808 } else {
33809 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33810 REGB0 = REGB1;
33811 }
33812 }
33813 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33814 if (UNTAG_Bool(REGB0)) {
33815 /* ./parser//parser_prod.nit:6255 */
33816 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33817 if (UNTAG_Bool(REGB0)) {
33818 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6255);
33819 }
33820 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33821 /* ./parser//parser_prod.nit:6256 */
33822 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
33823 if (UNTAG_Bool(REGB0)) {
33824 } else {
33825 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6256);
33826 }
33827 /* ./parser//parser_prod.nit:6257 */
33828 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
33829 } else {
33830 /* ./parser//parser_prod.nit:6259 */
33831 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6259);
33832 }
33833 /* ./parser//parser_prod.nit:6261 */
33834 goto label1;
33835 }
33836 /* ./parser//parser_prod.nit:6263 */
33837 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
33838 if (UNTAG_Bool(REGB0)) {
33839 } else {
33840 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6263);
33841 }
33842 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
33843 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33844 if (UNTAG_Bool(REGB0)) {
33845 } else {
33846 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33847 REGB0 = REGB1;
33848 }
33849 if (UNTAG_Bool(REGB0)) {
33850 /* ./parser//parser_prod.nit:6264 */
33851 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33852 if (UNTAG_Bool(REGB0)) {
33853 } else {
33854 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33855 if (UNTAG_Bool(REGB1)) {
33856 REGB1 = TAG_Bool(false);
33857 REGB0 = REGB1;
33858 } else {
33859 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33860 REGB0 = REGB1;
33861 }
33862 }
33863 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33864 if (UNTAG_Bool(REGB0)) {
33865 /* ./parser//parser_prod.nit:6265 */
33866 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33867 if (UNTAG_Bool(REGB0)) {
33868 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6265);
33869 }
33870 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33871 /* ./parser//parser_prod.nit:6266 */
33872 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
33873 if (UNTAG_Bool(REGB0)) {
33874 } else {
33875 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6266);
33876 }
33877 /* ./parser//parser_prod.nit:6267 */
33878 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
33879 } else {
33880 /* ./parser//parser_prod.nit:6269 */
33881 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6269);
33882 }
33883 /* ./parser//parser_prod.nit:6271 */
33884 goto label1;
33885 }
33886 label1: while(0);
33887 stack_frame_head = fra.me.prev;
33888 return;
33889 }
33890 void parser___parser_prod___ARangeExpr___visit_all(val_t p0, val_t p1){
33891 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33892 val_t REGB0;
33893 val_t tmp;
33894 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33895 fra.me.file = LOCATE_parser___parser_prod;
33896 fra.me.line = 6275;
33897 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___visit_all;
33898 fra.me.has_broke = 0;
33899 fra.me.REG_size = 3;
33900 fra.me.REG[0] = NIT_NULL;
33901 fra.me.REG[1] = NIT_NULL;
33902 fra.me.REG[2] = NIT_NULL;
33903 fra.me.REG[0] = p0;
33904 fra.me.REG[1] = p1;
33905 /* ./parser//parser_prod.nit:6277 */
33906 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33907 if (UNTAG_Bool(REGB0)) {
33908 } else {
33909 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6277);
33910 }
33911 fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
33912 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33913 /* ./parser//parser_prod.nit:6278 */
33914 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
33915 if (UNTAG_Bool(REGB0)) {
33916 } else {
33917 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6278);
33918 }
33919 fra.me.REG[0] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
33920 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33921 stack_frame_head = fra.me.prev;
33922 return;
33923 }
33924 void parser___parser_prod___ACrangeExpr___empty_init(val_t p0, int* init_table){
33925 int itpos211 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACrangeExpr].i;
33926 struct {struct stack_frame_t me;} fra;
33927 val_t tmp;
33928 if (init_table[itpos211]) return;
33929 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33930 fra.me.file = LOCATE_parser___parser_prod;
33931 fra.me.line = 6282;
33932 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___empty_init;
33933 fra.me.has_broke = 0;
33934 fra.me.REG_size = 1;
33935 fra.me.REG[0] = NIT_NULL;
33936 fra.me.REG[0] = p0;
33937 stack_frame_head = fra.me.prev;
33938 init_table[itpos211] = 1;
33939 return;
33940 }
33941 void parser___parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
33942 int itpos212 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACrangeExpr].i;
33943 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33944 val_t REGB0;
33945 val_t tmp;
33946 if (init_table[itpos212]) return;
33947 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33948 fra.me.file = LOCATE_parser___parser_prod;
33949 fra.me.line = 6284;
33950 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___init_acrangeexpr;
33951 fra.me.has_broke = 0;
33952 fra.me.REG_size = 4;
33953 fra.me.REG[0] = NIT_NULL;
33954 fra.me.REG[1] = NIT_NULL;
33955 fra.me.REG[2] = NIT_NULL;
33956 fra.me.REG[3] = NIT_NULL;
33957 fra.me.REG[0] = p0;
33958 fra.me.REG[1] = p1;
33959 fra.me.REG[2] = p2;
33960 /* ./parser//parser_prod.nit:6284 */
33961 fra.me.REG[3] = fra.me.REG[0];
33962 /* ./parser//parser_prod.nit:6289 */
33963 CALL_parser___parser_prod___ACrangeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
33964 /* ./parser//parser_prod.nit:6290 */
33965 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
33966 if (UNTAG_Bool(REGB0)) {
33967 } else {
33968 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6290);
33969 }
33970 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
33971 /* ./parser//parser_prod.nit:6291 */
33972 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33973 if (UNTAG_Bool(REGB0)) {
33974 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6291);
33975 }
33976 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
33977 /* ./parser//parser_prod.nit:6292 */
33978 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
33979 if (UNTAG_Bool(REGB0)) {
33980 } else {
33981 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6292);
33982 }
33983 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
33984 /* ./parser//parser_prod.nit:6293 */
33985 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33986 if (UNTAG_Bool(REGB0)) {
33987 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6293);
33988 }
33989 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
33990 stack_frame_head = fra.me.prev;
33991 init_table[itpos212] = 1;
33992 return;
33993 }
33994 void parser___parser_prod___ACrangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
33995 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33996 val_t REGB0;
33997 val_t REGB1;
33998 val_t tmp;
33999 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34000 fra.me.file = LOCATE_parser___parser_prod;
34001 fra.me.line = 6296;
34002 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___replace_child;
34003 fra.me.has_broke = 0;
34004 fra.me.REG_size = 4;
34005 fra.me.REG[0] = NIT_NULL;
34006 fra.me.REG[1] = NIT_NULL;
34007 fra.me.REG[2] = NIT_NULL;
34008 fra.me.REG[3] = NIT_NULL;
34009 fra.me.REG[0] = p0;
34010 fra.me.REG[1] = p1;
34011 fra.me.REG[2] = p2;
34012 /* ./parser//parser_prod.nit:6298 */
34013 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
34014 if (UNTAG_Bool(REGB0)) {
34015 } else {
34016 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6298);
34017 }
34018 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
34019 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34020 if (UNTAG_Bool(REGB0)) {
34021 } else {
34022 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34023 REGB0 = REGB1;
34024 }
34025 if (UNTAG_Bool(REGB0)) {
34026 /* ./parser//parser_prod.nit:6299 */
34027 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34028 if (UNTAG_Bool(REGB0)) {
34029 } else {
34030 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34031 if (UNTAG_Bool(REGB1)) {
34032 REGB1 = TAG_Bool(false);
34033 REGB0 = REGB1;
34034 } else {
34035 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34036 REGB0 = REGB1;
34037 }
34038 }
34039 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34040 if (UNTAG_Bool(REGB0)) {
34041 /* ./parser//parser_prod.nit:6300 */
34042 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34043 if (UNTAG_Bool(REGB0)) {
34044 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6300);
34045 }
34046 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34047 /* ./parser//parser_prod.nit:6301 */
34048 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
34049 if (UNTAG_Bool(REGB0)) {
34050 } else {
34051 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6301);
34052 }
34053 /* ./parser//parser_prod.nit:6302 */
34054 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
34055 } else {
34056 /* ./parser//parser_prod.nit:6304 */
34057 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6304);
34058 }
34059 /* ./parser//parser_prod.nit:6306 */
34060 goto label1;
34061 }
34062 /* ./parser//parser_prod.nit:6308 */
34063 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
34064 if (UNTAG_Bool(REGB0)) {
34065 } else {
34066 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6308);
34067 }
34068 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
34069 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34070 if (UNTAG_Bool(REGB0)) {
34071 } else {
34072 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34073 REGB0 = REGB1;
34074 }
34075 if (UNTAG_Bool(REGB0)) {
34076 /* ./parser//parser_prod.nit:6309 */
34077 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34078 if (UNTAG_Bool(REGB0)) {
34079 } else {
34080 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34081 if (UNTAG_Bool(REGB1)) {
34082 REGB1 = TAG_Bool(false);
34083 REGB0 = REGB1;
34084 } else {
34085 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34086 REGB0 = REGB1;
34087 }
34088 }
34089 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34090 if (UNTAG_Bool(REGB0)) {
34091 /* ./parser//parser_prod.nit:6310 */
34092 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34093 if (UNTAG_Bool(REGB0)) {
34094 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6310);
34095 }
34096 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34097 /* ./parser//parser_prod.nit:6311 */
34098 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
34099 if (UNTAG_Bool(REGB0)) {
34100 } else {
34101 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6311);
34102 }
34103 /* ./parser//parser_prod.nit:6312 */
34104 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
34105 } else {
34106 /* ./parser//parser_prod.nit:6314 */
34107 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6314);
34108 }
34109 /* ./parser//parser_prod.nit:6316 */
34110 goto label1;
34111 }
34112 label1: while(0);
34113 stack_frame_head = fra.me.prev;
34114 return;
34115 }
34116 void parser___parser_prod___ACrangeExpr___visit_all(val_t p0, val_t p1){
34117 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34118 val_t REGB0;
34119 val_t tmp;
34120 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34121 fra.me.file = LOCATE_parser___parser_prod;
34122 fra.me.line = 6320;
34123 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___visit_all;
34124 fra.me.has_broke = 0;
34125 fra.me.REG_size = 3;
34126 fra.me.REG[0] = NIT_NULL;
34127 fra.me.REG[1] = NIT_NULL;
34128 fra.me.REG[2] = NIT_NULL;
34129 fra.me.REG[0] = p0;
34130 fra.me.REG[1] = p1;
34131 /* ./parser//parser_prod.nit:6322 */
34132 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
34133 if (UNTAG_Bool(REGB0)) {
34134 } else {
34135 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6322);
34136 }
34137 fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
34138 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34139 /* ./parser//parser_prod.nit:6323 */
34140 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
34141 if (UNTAG_Bool(REGB0)) {
34142 } else {
34143 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6323);
34144 }
34145 fra.me.REG[0] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
34146 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34147 stack_frame_head = fra.me.prev;
34148 return;
34149 }
34150 void parser___parser_prod___AOrangeExpr___empty_init(val_t p0, int* init_table){
34151 int itpos213 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrangeExpr].i;
34152 struct {struct stack_frame_t me;} fra;
34153 val_t tmp;
34154 if (init_table[itpos213]) return;
34155 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34156 fra.me.file = LOCATE_parser___parser_prod;
34157 fra.me.line = 6327;
34158 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___empty_init;
34159 fra.me.has_broke = 0;
34160 fra.me.REG_size = 1;
34161 fra.me.REG[0] = NIT_NULL;
34162 fra.me.REG[0] = p0;
34163 stack_frame_head = fra.me.prev;
34164 init_table[itpos213] = 1;
34165 return;
34166 }
34167 void parser___parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
34168 int itpos214 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrangeExpr].i;
34169 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34170 val_t REGB0;
34171 val_t tmp;
34172 if (init_table[itpos214]) return;
34173 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34174 fra.me.file = LOCATE_parser___parser_prod;
34175 fra.me.line = 6329;
34176 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___init_aorangeexpr;
34177 fra.me.has_broke = 0;
34178 fra.me.REG_size = 4;
34179 fra.me.REG[0] = NIT_NULL;
34180 fra.me.REG[1] = NIT_NULL;
34181 fra.me.REG[2] = NIT_NULL;
34182 fra.me.REG[3] = NIT_NULL;
34183 fra.me.REG[0] = p0;
34184 fra.me.REG[1] = p1;
34185 fra.me.REG[2] = p2;
34186 /* ./parser//parser_prod.nit:6329 */
34187 fra.me.REG[3] = fra.me.REG[0];
34188 /* ./parser//parser_prod.nit:6334 */
34189 CALL_parser___parser_prod___AOrangeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
34190 /* ./parser//parser_prod.nit:6335 */
34191 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34192 if (UNTAG_Bool(REGB0)) {
34193 } else {
34194 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6335);
34195 }
34196 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
34197 /* ./parser//parser_prod.nit:6336 */
34198 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34199 if (UNTAG_Bool(REGB0)) {
34200 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6336);
34201 }
34202 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
34203 /* ./parser//parser_prod.nit:6337 */
34204 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
34205 if (UNTAG_Bool(REGB0)) {
34206 } else {
34207 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6337);
34208 }
34209 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
34210 /* ./parser//parser_prod.nit:6338 */
34211 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34212 if (UNTAG_Bool(REGB0)) {
34213 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6338);
34214 }
34215 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
34216 stack_frame_head = fra.me.prev;
34217 init_table[itpos214] = 1;
34218 return;
34219 }
34220 void parser___parser_prod___AOrangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
34221 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34222 val_t REGB0;
34223 val_t REGB1;
34224 val_t tmp;
34225 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34226 fra.me.file = LOCATE_parser___parser_prod;
34227 fra.me.line = 6341;
34228 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___replace_child;
34229 fra.me.has_broke = 0;
34230 fra.me.REG_size = 4;
34231 fra.me.REG[0] = NIT_NULL;
34232 fra.me.REG[1] = NIT_NULL;
34233 fra.me.REG[2] = NIT_NULL;
34234 fra.me.REG[3] = NIT_NULL;
34235 fra.me.REG[0] = p0;
34236 fra.me.REG[1] = p1;
34237 fra.me.REG[2] = p2;
34238 /* ./parser//parser_prod.nit:6343 */
34239 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
34240 if (UNTAG_Bool(REGB0)) {
34241 } else {
34242 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6343);
34243 }
34244 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
34245 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34246 if (UNTAG_Bool(REGB0)) {
34247 } else {
34248 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34249 REGB0 = REGB1;
34250 }
34251 if (UNTAG_Bool(REGB0)) {
34252 /* ./parser//parser_prod.nit:6344 */
34253 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34254 if (UNTAG_Bool(REGB0)) {
34255 } else {
34256 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34257 if (UNTAG_Bool(REGB1)) {
34258 REGB1 = TAG_Bool(false);
34259 REGB0 = REGB1;
34260 } else {
34261 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34262 REGB0 = REGB1;
34263 }
34264 }
34265 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34266 if (UNTAG_Bool(REGB0)) {
34267 /* ./parser//parser_prod.nit:6345 */
34268 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34269 if (UNTAG_Bool(REGB0)) {
34270 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6345);
34271 }
34272 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34273 /* ./parser//parser_prod.nit:6346 */
34274 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
34275 if (UNTAG_Bool(REGB0)) {
34276 } else {
34277 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6346);
34278 }
34279 /* ./parser//parser_prod.nit:6347 */
34280 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
34281 } else {
34282 /* ./parser//parser_prod.nit:6349 */
34283 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6349);
34284 }
34285 /* ./parser//parser_prod.nit:6351 */
34286 goto label1;
34287 }
34288 /* ./parser//parser_prod.nit:6353 */
34289 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
34290 if (UNTAG_Bool(REGB0)) {
34291 } else {
34292 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6353);
34293 }
34294 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
34295 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34296 if (UNTAG_Bool(REGB0)) {
34297 } else {
34298 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34299 REGB0 = REGB1;
34300 }
34301 if (UNTAG_Bool(REGB0)) {
34302 /* ./parser//parser_prod.nit:6354 */
34303 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34304 if (UNTAG_Bool(REGB0)) {
34305 } else {
34306 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34307 if (UNTAG_Bool(REGB1)) {
34308 REGB1 = TAG_Bool(false);
34309 REGB0 = REGB1;
34310 } else {
34311 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34312 REGB0 = REGB1;
34313 }
34314 }
34315 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34316 if (UNTAG_Bool(REGB0)) {
34317 /* ./parser//parser_prod.nit:6355 */
34318 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34319 if (UNTAG_Bool(REGB0)) {
34320 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6355);
34321 }
34322 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34323 /* ./parser//parser_prod.nit:6356 */
34324 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
34325 if (UNTAG_Bool(REGB0)) {
34326 } else {
34327 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6356);
34328 }
34329 /* ./parser//parser_prod.nit:6357 */
34330 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
34331 } else {
34332 /* ./parser//parser_prod.nit:6359 */
34333 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6359);
34334 }
34335 /* ./parser//parser_prod.nit:6361 */
34336 goto label1;
34337 }
34338 label1: while(0);
34339 stack_frame_head = fra.me.prev;
34340 return;
34341 }
34342 void parser___parser_prod___AOrangeExpr___visit_all(val_t p0, val_t p1){
34343 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34344 val_t REGB0;
34345 val_t tmp;
34346 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34347 fra.me.file = LOCATE_parser___parser_prod;
34348 fra.me.line = 6365;
34349 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___visit_all;
34350 fra.me.has_broke = 0;
34351 fra.me.REG_size = 3;
34352 fra.me.REG[0] = NIT_NULL;
34353 fra.me.REG[1] = NIT_NULL;
34354 fra.me.REG[2] = NIT_NULL;
34355 fra.me.REG[0] = p0;
34356 fra.me.REG[1] = p1;
34357 /* ./parser//parser_prod.nit:6367 */
34358 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
34359 if (UNTAG_Bool(REGB0)) {
34360 } else {
34361 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6367);
34362 }
34363 fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
34364 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34365 /* ./parser//parser_prod.nit:6368 */
34366 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
34367 if (UNTAG_Bool(REGB0)) {
34368 } else {
34369 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6368);
34370 }
34371 fra.me.REG[0] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
34372 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34373 stack_frame_head = fra.me.prev;
34374 return;
34375 }
34376 void parser___parser_prod___AArrayExpr___empty_init(val_t p0, int* init_table){
34377 int itpos215 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AArrayExpr].i;
34378 struct {struct stack_frame_t me;} fra;
34379 val_t tmp;
34380 if (init_table[itpos215]) return;
34381 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34382 fra.me.file = LOCATE_parser___parser_prod;
34383 fra.me.line = 6372;
34384 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___empty_init;
34385 fra.me.has_broke = 0;
34386 fra.me.REG_size = 1;
34387 fra.me.REG[0] = NIT_NULL;
34388 fra.me.REG[0] = p0;
34389 stack_frame_head = fra.me.prev;
34390 init_table[itpos215] = 1;
34391 return;
34392 }
34393 void parser___parser_prod___AArrayExpr___init_aarrayexpr(val_t p0, val_t p1, int* init_table){
34394 int itpos216 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AArrayExpr].i;
34395 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34396 val_t tmp;
34397 if (init_table[itpos216]) return;
34398 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34399 fra.me.file = LOCATE_parser___parser_prod;
34400 fra.me.line = 6374;
34401 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___init_aarrayexpr;
34402 fra.me.has_broke = 0;
34403 fra.me.REG_size = 2;
34404 fra.me.REG[0] = NIT_NULL;
34405 fra.me.REG[1] = NIT_NULL;
34406 fra.me.REG[0] = p0;
34407 fra.me.REG[1] = p1;
34408 /* ./parser//parser_prod.nit:6378 */
34409 CALL_parser___parser_prod___AArrayExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
34410 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));
34411 stack_frame_head = fra.me.prev;
34412 init_table[itpos216] = 1;
34413 return;
34414 }
34415 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){
34416 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34417 val_t REGB0;
34418 fun_t CREG[1];
34419 val_t tmp;
34420 /* ./parser//parser_prod.nit:6379 */
34421 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34422 fra.me.file = LOCATE_parser___parser_prod;
34423 fra.me.line = 0;
34424 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___init_aarrayexpr;
34425 fra.me.has_broke = 0;
34426 fra.me.REG_size = 2;
34427 fra.me.REG[0] = NIT_NULL;
34428 fra.me.REG[1] = NIT_NULL;
34429 fra.me.closure_ctx = closctx_param;
34430 fra.me.closure_funs = CREG;
34431 fra.me.REG[0] = p0;
34432 CREG[0] = clos_fun0;
34433 /* ./parser//parser_prod.nit:6380 */
34434 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
34435 if (UNTAG_Bool(REGB0)) {
34436 } else {
34437 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6380);
34438 }
34439 /* ./parser//parser_prod.nit:6381 */
34440 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(closctx->REG[0])!=NIT_NULL);
34441 if (UNTAG_Bool(REGB0)) {
34442 } else {
34443 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6381);
34444 }
34445 fra.me.REG[1] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(closctx->REG[0]);
34446 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34447 /* ./parser//parser_prod.nit:6382 */
34448 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
34449 stack_frame_head = fra.me.prev;
34450 return;
34451 }
34452 void parser___parser_prod___AArrayExpr___replace_child(val_t p0, val_t p1, val_t p2){
34453 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34454 val_t REGB0;
34455 val_t REGB1;
34456 val_t REGB2;
34457 val_t REGB3;
34458 val_t REGB4;
34459 val_t tmp;
34460 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34461 fra.me.file = LOCATE_parser___parser_prod;
34462 fra.me.line = 6386;
34463 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___replace_child;
34464 fra.me.has_broke = 0;
34465 fra.me.REG_size = 4;
34466 fra.me.REG[0] = NIT_NULL;
34467 fra.me.REG[1] = NIT_NULL;
34468 fra.me.REG[2] = NIT_NULL;
34469 fra.me.REG[3] = NIT_NULL;
34470 fra.me.REG[0] = p0;
34471 fra.me.REG[1] = p1;
34472 fra.me.REG[2] = p2;
34473 /* ./parser//parser_prod.nit:6388 */
34474 REGB0 = TAG_Int(0);
34475 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
34476 if (UNTAG_Bool(REGB1)) {
34477 } else {
34478 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6388);
34479 }
34480 fra.me.REG[3] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
34481 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
34482 /* ./../lib/standard//kernel.nit:335 */
34483 while(1) {
34484 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
34485 if (UNTAG_Bool(REGB2)) {
34486 } else {
34487 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
34488 }
34489 /* ./../lib/standard//kernel.nit:215 */
34490 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
34491 /* ./../lib/standard//kernel.nit:335 */
34492 if (UNTAG_Bool(REGB2)) {
34493 /* ./parser//parser_prod.nit:6388 */
34494 REGB2 = REGB0;
34495 /* ./parser//parser_prod.nit:6389 */
34496 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
34497 if (UNTAG_Bool(REGB3)) {
34498 } else {
34499 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6389);
34500 }
34501 fra.me.REG[3] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
34502 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
34503 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
34504 if (UNTAG_Bool(REGB3)) {
34505 } else {
34506 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34507 if (UNTAG_Bool(REGB4)) {
34508 REGB4 = TAG_Bool(false);
34509 REGB3 = REGB4;
34510 } else {
34511 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34512 REGB3 = REGB4;
34513 }
34514 }
34515 if (UNTAG_Bool(REGB3)) {
34516 /* ./parser//parser_prod.nit:6390 */
34517 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34518 if (UNTAG_Bool(REGB3)) {
34519 } else {
34520 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34521 if (UNTAG_Bool(REGB4)) {
34522 REGB4 = TAG_Bool(false);
34523 REGB3 = REGB4;
34524 } else {
34525 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34526 REGB3 = REGB4;
34527 }
34528 }
34529 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
34530 if (UNTAG_Bool(REGB3)) {
34531 /* ./parser//parser_prod.nit:6391 */
34532 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*/;
34533 if (UNTAG_Bool(REGB3)) {
34534 } else {
34535 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6391);
34536 }
34537 /* ./parser//parser_prod.nit:6392 */
34538 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
34539 if (UNTAG_Bool(REGB3)) {
34540 } else {
34541 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6392);
34542 }
34543 fra.me.REG[3] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
34544 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
34545 /* ./parser//parser_prod.nit:6393 */
34546 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34547 if (UNTAG_Bool(REGB3)) {
34548 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6393);
34549 }
34550 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34551 } else {
34552 /* ./parser//parser_prod.nit:6395 */
34553 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
34554 if (UNTAG_Bool(REGB3)) {
34555 } else {
34556 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6395);
34557 }
34558 fra.me.REG[3] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
34559 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
34560 }
34561 /* ./parser//parser_prod.nit:6397 */
34562 goto label1;
34563 }
34564 /* ./../lib/standard//kernel.nit:337 */
34565 REGB2 = TAG_Int(1);
34566 /* ./../lib/standard//kernel.nit:218 */
34567 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
34568 /* ./../lib/standard//kernel.nit:337 */
34569 REGB0 = REGB2;
34570 } else {
34571 /* ./../lib/standard//kernel.nit:335 */
34572 goto label2;
34573 }
34574 }
34575 label2: while(0);
34576 label1: while(0);
34577 stack_frame_head = fra.me.prev;
34578 return;
34579 }
34580 void parser___parser_prod___AArrayExpr___visit_all(val_t p0, val_t p1){
34581 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34582 val_t REGB0;
34583 val_t tmp;
34584 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34585 fra.me.file = LOCATE_parser___parser_prod;
34586 fra.me.line = 6402;
34587 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___visit_all;
34588 fra.me.has_broke = 0;
34589 fra.me.REG_size = 2;
34590 fra.me.REG[0] = NIT_NULL;
34591 fra.me.REG[1] = NIT_NULL;
34592 fra.me.REG[0] = p0;
34593 fra.me.REG[1] = p1;
34594 /* ./parser//parser_prod.nit:6404 */
34595 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
34596 if (UNTAG_Bool(REGB0)) {
34597 } else {
34598 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6404);
34599 }
34600 fra.me.REG[0] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
34601 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));
34602 stack_frame_head = fra.me.prev;
34603 return;
34604 }
34605 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){
34606 struct {struct stack_frame_t me;} fra;
34607 fun_t CREG[1];
34608 val_t tmp;
34609 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34610 fra.me.file = LOCATE_parser___parser_prod;
34611 fra.me.line = 0;
34612 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___visit_all;
34613 fra.me.has_broke = 0;
34614 fra.me.REG_size = 1;
34615 fra.me.REG[0] = NIT_NULL;
34616 fra.me.closure_ctx = closctx_param;
34617 fra.me.closure_funs = CREG;
34618 fra.me.REG[0] = p0;
34619 CREG[0] = clos_fun0;
34620 /* ./parser//parser_prod.nit:6405 */
34621 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
34622 stack_frame_head = fra.me.prev;
34623 return;
34624 }
34625 void parser___parser_prod___ASelfExpr___empty_init(val_t p0, int* init_table){
34626 int itpos217 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASelfExpr].i;
34627 struct {struct stack_frame_t me;} fra;
34628 val_t tmp;
34629 if (init_table[itpos217]) return;
34630 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34631 fra.me.file = LOCATE_parser___parser_prod;
34632 fra.me.line = 6410;
34633 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___empty_init;
34634 fra.me.has_broke = 0;
34635 fra.me.REG_size = 1;
34636 fra.me.REG[0] = NIT_NULL;
34637 fra.me.REG[0] = p0;
34638 stack_frame_head = fra.me.prev;
34639 init_table[itpos217] = 1;
34640 return;
34641 }
34642 void parser___parser_prod___ASelfExpr___init_aselfexpr(val_t p0, val_t p1, int* init_table){
34643 int itpos218 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASelfExpr].i;
34644 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34645 val_t REGB0;
34646 val_t tmp;
34647 if (init_table[itpos218]) return;
34648 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34649 fra.me.file = LOCATE_parser___parser_prod;
34650 fra.me.line = 6412;
34651 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___init_aselfexpr;
34652 fra.me.has_broke = 0;
34653 fra.me.REG_size = 3;
34654 fra.me.REG[0] = NIT_NULL;
34655 fra.me.REG[1] = NIT_NULL;
34656 fra.me.REG[2] = NIT_NULL;
34657 fra.me.REG[0] = p0;
34658 fra.me.REG[1] = p1;
34659 /* ./parser//parser_prod.nit:6412 */
34660 fra.me.REG[2] = fra.me.REG[0];
34661 /* ./parser//parser_prod.nit:6416 */
34662 CALL_parser___parser_prod___ASelfExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
34663 /* ./parser//parser_prod.nit:6417 */
34664 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34665 if (UNTAG_Bool(REGB0)) {
34666 } else {
34667 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6417);
34668 }
34669 ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[2]) = fra.me.REG[1];
34670 /* ./parser//parser_prod.nit:6418 */
34671 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34672 if (UNTAG_Bool(REGB0)) {
34673 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6418);
34674 }
34675 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34676 stack_frame_head = fra.me.prev;
34677 init_table[itpos218] = 1;
34678 return;
34679 }
34680 void parser___parser_prod___ASelfExpr___replace_child(val_t p0, val_t p1, val_t p2){
34681 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34682 val_t REGB0;
34683 val_t REGB1;
34684 val_t tmp;
34685 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34686 fra.me.file = LOCATE_parser___parser_prod;
34687 fra.me.line = 6421;
34688 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___replace_child;
34689 fra.me.has_broke = 0;
34690 fra.me.REG_size = 4;
34691 fra.me.REG[0] = NIT_NULL;
34692 fra.me.REG[1] = NIT_NULL;
34693 fra.me.REG[2] = NIT_NULL;
34694 fra.me.REG[3] = NIT_NULL;
34695 fra.me.REG[0] = p0;
34696 fra.me.REG[1] = p1;
34697 fra.me.REG[2] = p2;
34698 /* ./parser//parser_prod.nit:6423 */
34699 fra.me.REG[3] = ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]);
34700 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
34701 if (UNTAG_Bool(REGB0)) {
34702 } else {
34703 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34704 if (UNTAG_Bool(REGB1)) {
34705 REGB1 = TAG_Bool(false);
34706 REGB0 = REGB1;
34707 } else {
34708 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34709 REGB0 = REGB1;
34710 }
34711 }
34712 if (UNTAG_Bool(REGB0)) {
34713 /* ./parser//parser_prod.nit:6424 */
34714 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34715 if (UNTAG_Bool(REGB0)) {
34716 } else {
34717 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34718 if (UNTAG_Bool(REGB1)) {
34719 REGB1 = TAG_Bool(false);
34720 REGB0 = REGB1;
34721 } else {
34722 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34723 REGB0 = REGB1;
34724 }
34725 }
34726 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34727 if (UNTAG_Bool(REGB0)) {
34728 /* ./parser//parser_prod.nit:6425 */
34729 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34730 if (UNTAG_Bool(REGB0)) {
34731 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6425);
34732 }
34733 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34734 /* ./parser//parser_prod.nit:6426 */
34735 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*/;
34736 if (UNTAG_Bool(REGB0)) {
34737 } else {
34738 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6426);
34739 }
34740 /* ./parser//parser_prod.nit:6427 */
34741 ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]) = fra.me.REG[2];
34742 } else {
34743 /* ./parser//parser_prod.nit:6429 */
34744 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6429);
34745 }
34746 /* ./parser//parser_prod.nit:6431 */
34747 goto label1;
34748 }
34749 label1: while(0);
34750 stack_frame_head = fra.me.prev;
34751 return;
34752 }
34753 void parser___parser_prod___ASelfExpr___visit_all(val_t p0, val_t p1){
34754 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34755 val_t tmp;
34756 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34757 fra.me.file = LOCATE_parser___parser_prod;
34758 fra.me.line = 6435;
34759 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___visit_all;
34760 fra.me.has_broke = 0;
34761 fra.me.REG_size = 2;
34762 fra.me.REG[0] = NIT_NULL;
34763 fra.me.REG[1] = NIT_NULL;
34764 fra.me.REG[0] = p0;
34765 fra.me.REG[1] = p1;
34766 /* ./parser//parser_prod.nit:6437 */
34767 fra.me.REG[0] = ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]);
34768 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34769 stack_frame_head = fra.me.prev;
34770 return;
34771 }
34772 void parser___parser_prod___AImplicitSelfExpr___empty_init(val_t p0, int* init_table){
34773 int itpos219 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AImplicitSelfExpr].i;
34774 struct {struct stack_frame_t me;} fra;
34775 val_t tmp;
34776 if (init_table[itpos219]) return;
34777 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34778 fra.me.file = LOCATE_parser___parser_prod;
34779 fra.me.line = 6441;
34780 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___empty_init;
34781 fra.me.has_broke = 0;
34782 fra.me.REG_size = 1;
34783 fra.me.REG[0] = NIT_NULL;
34784 fra.me.REG[0] = p0;
34785 stack_frame_head = fra.me.prev;
34786 init_table[itpos219] = 1;
34787 return;
34788 }
34789 void parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(val_t p0, int* init_table){
34790 int itpos220 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AImplicitSelfExpr].i;
34791 struct {struct stack_frame_t me;} fra;
34792 val_t tmp;
34793 if (init_table[itpos220]) return;
34794 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34795 fra.me.file = LOCATE_parser___parser_prod;
34796 fra.me.line = 6443;
34797 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr;
34798 fra.me.has_broke = 0;
34799 fra.me.REG_size = 1;
34800 fra.me.REG[0] = NIT_NULL;
34801 fra.me.REG[0] = p0;
34802 /* ./parser//parser_prod.nit:6445 */
34803 CALL_parser___parser_prod___AImplicitSelfExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
34804 stack_frame_head = fra.me.prev;
34805 init_table[itpos220] = 1;
34806 return;
34807 }
34808 void parser___parser_prod___AImplicitSelfExpr___replace_child(val_t p0, val_t p1, val_t p2){
34809 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34810 val_t tmp;
34811 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34812 fra.me.file = LOCATE_parser___parser_prod;
34813 fra.me.line = 6448;
34814 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___replace_child;
34815 fra.me.has_broke = 0;
34816 fra.me.REG_size = 3;
34817 fra.me.REG[0] = NIT_NULL;
34818 fra.me.REG[1] = NIT_NULL;
34819 fra.me.REG[2] = NIT_NULL;
34820 fra.me.REG[0] = p0;
34821 fra.me.REG[1] = p1;
34822 fra.me.REG[2] = p2;
34823 stack_frame_head = fra.me.prev;
34824 return;
34825 }
34826 void parser___parser_prod___AImplicitSelfExpr___visit_all(val_t p0, val_t p1){
34827 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34828 val_t tmp;
34829 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34830 fra.me.file = LOCATE_parser___parser_prod;
34831 fra.me.line = 6452;
34832 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___visit_all;
34833 fra.me.has_broke = 0;
34834 fra.me.REG_size = 2;
34835 fra.me.REG[0] = NIT_NULL;
34836 fra.me.REG[1] = NIT_NULL;
34837 fra.me.REG[0] = p0;
34838 fra.me.REG[1] = p1;
34839 stack_frame_head = fra.me.prev;
34840 return;
34841 }
34842 void parser___parser_prod___ATrueExpr___empty_init(val_t p0, int* init_table){
34843 int itpos221 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATrueExpr].i;
34844 struct {struct stack_frame_t me;} fra;
34845 val_t tmp;
34846 if (init_table[itpos221]) return;
34847 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34848 fra.me.file = LOCATE_parser___parser_prod;
34849 fra.me.line = 6457;
34850 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___empty_init;
34851 fra.me.has_broke = 0;
34852 fra.me.REG_size = 1;
34853 fra.me.REG[0] = NIT_NULL;
34854 fra.me.REG[0] = p0;
34855 stack_frame_head = fra.me.prev;
34856 init_table[itpos221] = 1;
34857 return;
34858 }
34859 void parser___parser_prod___ATrueExpr___init_atrueexpr(val_t p0, val_t p1, int* init_table){
34860 int itpos222 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATrueExpr].i;
34861 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34862 val_t REGB0;
34863 val_t tmp;
34864 if (init_table[itpos222]) return;
34865 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34866 fra.me.file = LOCATE_parser___parser_prod;
34867 fra.me.line = 6459;
34868 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___init_atrueexpr;
34869 fra.me.has_broke = 0;
34870 fra.me.REG_size = 3;
34871 fra.me.REG[0] = NIT_NULL;
34872 fra.me.REG[1] = NIT_NULL;
34873 fra.me.REG[2] = NIT_NULL;
34874 fra.me.REG[0] = p0;
34875 fra.me.REG[1] = p1;
34876 /* ./parser//parser_prod.nit:6459 */
34877 fra.me.REG[2] = fra.me.REG[0];
34878 /* ./parser//parser_prod.nit:6463 */
34879 CALL_parser___parser_prod___ATrueExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
34880 /* ./parser//parser_prod.nit:6464 */
34881 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34882 if (UNTAG_Bool(REGB0)) {
34883 } else {
34884 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6464);
34885 }
34886 ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[2]) = fra.me.REG[1];
34887 /* ./parser//parser_prod.nit:6465 */
34888 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34889 if (UNTAG_Bool(REGB0)) {
34890 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6465);
34891 }
34892 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34893 stack_frame_head = fra.me.prev;
34894 init_table[itpos222] = 1;
34895 return;
34896 }
34897 void parser___parser_prod___ATrueExpr___replace_child(val_t p0, val_t p1, val_t p2){
34898 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34899 val_t REGB0;
34900 val_t REGB1;
34901 val_t tmp;
34902 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34903 fra.me.file = LOCATE_parser___parser_prod;
34904 fra.me.line = 6468;
34905 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___replace_child;
34906 fra.me.has_broke = 0;
34907 fra.me.REG_size = 4;
34908 fra.me.REG[0] = NIT_NULL;
34909 fra.me.REG[1] = NIT_NULL;
34910 fra.me.REG[2] = NIT_NULL;
34911 fra.me.REG[3] = NIT_NULL;
34912 fra.me.REG[0] = p0;
34913 fra.me.REG[1] = p1;
34914 fra.me.REG[2] = p2;
34915 /* ./parser//parser_prod.nit:6470 */
34916 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0])!=NIT_NULL);
34917 if (UNTAG_Bool(REGB0)) {
34918 } else {
34919 nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser___parser_prod, 6470);
34920 }
34921 fra.me.REG[3] = ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]);
34922 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34923 if (UNTAG_Bool(REGB0)) {
34924 } else {
34925 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34926 REGB0 = REGB1;
34927 }
34928 if (UNTAG_Bool(REGB0)) {
34929 /* ./parser//parser_prod.nit:6471 */
34930 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34931 if (UNTAG_Bool(REGB0)) {
34932 } else {
34933 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34934 if (UNTAG_Bool(REGB1)) {
34935 REGB1 = TAG_Bool(false);
34936 REGB0 = REGB1;
34937 } else {
34938 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34939 REGB0 = REGB1;
34940 }
34941 }
34942 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34943 if (UNTAG_Bool(REGB0)) {
34944 /* ./parser//parser_prod.nit:6472 */
34945 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34946 if (UNTAG_Bool(REGB0)) {
34947 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6472);
34948 }
34949 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34950 /* ./parser//parser_prod.nit:6473 */
34951 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*/;
34952 if (UNTAG_Bool(REGB0)) {
34953 } else {
34954 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6473);
34955 }
34956 /* ./parser//parser_prod.nit:6474 */
34957 ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]) = fra.me.REG[2];
34958 } else {
34959 /* ./parser//parser_prod.nit:6476 */
34960 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6476);
34961 }
34962 /* ./parser//parser_prod.nit:6478 */
34963 goto label1;
34964 }
34965 label1: while(0);
34966 stack_frame_head = fra.me.prev;
34967 return;
34968 }
34969 void parser___parser_prod___ATrueExpr___visit_all(val_t p0, val_t p1){
34970 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34971 val_t REGB0;
34972 val_t tmp;
34973 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34974 fra.me.file = LOCATE_parser___parser_prod;
34975 fra.me.line = 6482;
34976 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___visit_all;
34977 fra.me.has_broke = 0;
34978 fra.me.REG_size = 2;
34979 fra.me.REG[0] = NIT_NULL;
34980 fra.me.REG[1] = NIT_NULL;
34981 fra.me.REG[0] = p0;
34982 fra.me.REG[1] = p1;
34983 /* ./parser//parser_prod.nit:6484 */
34984 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0])!=NIT_NULL);
34985 if (UNTAG_Bool(REGB0)) {
34986 } else {
34987 nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser___parser_prod, 6484);
34988 }
34989 fra.me.REG[0] = ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]);
34990 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34991 stack_frame_head = fra.me.prev;
34992 return;
34993 }
34994 void parser___parser_prod___AFalseExpr___empty_init(val_t p0, int* init_table){
34995 int itpos223 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFalseExpr].i;
34996 struct {struct stack_frame_t me;} fra;
34997 val_t tmp;
34998 if (init_table[itpos223]) return;
34999 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35000 fra.me.file = LOCATE_parser___parser_prod;
35001 fra.me.line = 6488;
35002 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___empty_init;
35003 fra.me.has_broke = 0;
35004 fra.me.REG_size = 1;
35005 fra.me.REG[0] = NIT_NULL;
35006 fra.me.REG[0] = p0;
35007 stack_frame_head = fra.me.prev;
35008 init_table[itpos223] = 1;
35009 return;
35010 }
35011 void parser___parser_prod___AFalseExpr___init_afalseexpr(val_t p0, val_t p1, int* init_table){
35012 int itpos224 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFalseExpr].i;
35013 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35014 val_t REGB0;
35015 val_t tmp;
35016 if (init_table[itpos224]) return;
35017 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35018 fra.me.file = LOCATE_parser___parser_prod;
35019 fra.me.line = 6490;
35020 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___init_afalseexpr;
35021 fra.me.has_broke = 0;
35022 fra.me.REG_size = 3;
35023 fra.me.REG[0] = NIT_NULL;
35024 fra.me.REG[1] = NIT_NULL;
35025 fra.me.REG[2] = NIT_NULL;
35026 fra.me.REG[0] = p0;
35027 fra.me.REG[1] = p1;
35028 /* ./parser//parser_prod.nit:6490 */
35029 fra.me.REG[2] = fra.me.REG[0];
35030 /* ./parser//parser_prod.nit:6494 */
35031 CALL_parser___parser_prod___AFalseExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
35032 /* ./parser//parser_prod.nit:6495 */
35033 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35034 if (UNTAG_Bool(REGB0)) {
35035 } else {
35036 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6495);
35037 }
35038 ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[2]) = fra.me.REG[1];
35039 /* ./parser//parser_prod.nit:6496 */
35040 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35041 if (UNTAG_Bool(REGB0)) {
35042 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6496);
35043 }
35044 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35045 stack_frame_head = fra.me.prev;
35046 init_table[itpos224] = 1;
35047 return;
35048 }
35049 void parser___parser_prod___AFalseExpr___replace_child(val_t p0, val_t p1, val_t p2){
35050 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35051 val_t REGB0;
35052 val_t REGB1;
35053 val_t tmp;
35054 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35055 fra.me.file = LOCATE_parser___parser_prod;
35056 fra.me.line = 6499;
35057 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___replace_child;
35058 fra.me.has_broke = 0;
35059 fra.me.REG_size = 4;
35060 fra.me.REG[0] = NIT_NULL;
35061 fra.me.REG[1] = NIT_NULL;
35062 fra.me.REG[2] = NIT_NULL;
35063 fra.me.REG[3] = NIT_NULL;
35064 fra.me.REG[0] = p0;
35065 fra.me.REG[1] = p1;
35066 fra.me.REG[2] = p2;
35067 /* ./parser//parser_prod.nit:6501 */
35068 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0])!=NIT_NULL);
35069 if (UNTAG_Bool(REGB0)) {
35070 } else {
35071 nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser___parser_prod, 6501);
35072 }
35073 fra.me.REG[3] = ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]);
35074 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35075 if (UNTAG_Bool(REGB0)) {
35076 } else {
35077 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35078 REGB0 = REGB1;
35079 }
35080 if (UNTAG_Bool(REGB0)) {
35081 /* ./parser//parser_prod.nit:6502 */
35082 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35083 if (UNTAG_Bool(REGB0)) {
35084 } else {
35085 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35086 if (UNTAG_Bool(REGB1)) {
35087 REGB1 = TAG_Bool(false);
35088 REGB0 = REGB1;
35089 } else {
35090 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35091 REGB0 = REGB1;
35092 }
35093 }
35094 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35095 if (UNTAG_Bool(REGB0)) {
35096 /* ./parser//parser_prod.nit:6503 */
35097 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35098 if (UNTAG_Bool(REGB0)) {
35099 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6503);
35100 }
35101 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35102 /* ./parser//parser_prod.nit:6504 */
35103 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*/;
35104 if (UNTAG_Bool(REGB0)) {
35105 } else {
35106 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6504);
35107 }
35108 /* ./parser//parser_prod.nit:6505 */
35109 ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]) = fra.me.REG[2];
35110 } else {
35111 /* ./parser//parser_prod.nit:6507 */
35112 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6507);
35113 }
35114 /* ./parser//parser_prod.nit:6509 */
35115 goto label1;
35116 }
35117 label1: while(0);
35118 stack_frame_head = fra.me.prev;
35119 return;
35120 }
35121 void parser___parser_prod___AFalseExpr___visit_all(val_t p0, val_t p1){
35122 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35123 val_t REGB0;
35124 val_t tmp;
35125 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35126 fra.me.file = LOCATE_parser___parser_prod;
35127 fra.me.line = 6513;
35128 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___visit_all;
35129 fra.me.has_broke = 0;
35130 fra.me.REG_size = 2;
35131 fra.me.REG[0] = NIT_NULL;
35132 fra.me.REG[1] = NIT_NULL;
35133 fra.me.REG[0] = p0;
35134 fra.me.REG[1] = p1;
35135 /* ./parser//parser_prod.nit:6515 */
35136 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0])!=NIT_NULL);
35137 if (UNTAG_Bool(REGB0)) {
35138 } else {
35139 nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser___parser_prod, 6515);
35140 }
35141 fra.me.REG[0] = ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]);
35142 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35143 stack_frame_head = fra.me.prev;
35144 return;
35145 }
35146 void parser___parser_prod___ANullExpr___empty_init(val_t p0, int* init_table){
35147 int itpos225 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANullExpr].i;
35148 struct {struct stack_frame_t me;} fra;
35149 val_t tmp;
35150 if (init_table[itpos225]) return;
35151 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35152 fra.me.file = LOCATE_parser___parser_prod;
35153 fra.me.line = 6519;
35154 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___empty_init;
35155 fra.me.has_broke = 0;
35156 fra.me.REG_size = 1;
35157 fra.me.REG[0] = NIT_NULL;
35158 fra.me.REG[0] = p0;
35159 stack_frame_head = fra.me.prev;
35160 init_table[itpos225] = 1;
35161 return;
35162 }
35163 void parser___parser_prod___ANullExpr___init_anullexpr(val_t p0, val_t p1, int* init_table){
35164 int itpos226 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANullExpr].i;
35165 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35166 val_t REGB0;
35167 val_t tmp;
35168 if (init_table[itpos226]) return;
35169 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35170 fra.me.file = LOCATE_parser___parser_prod;
35171 fra.me.line = 6521;
35172 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___init_anullexpr;
35173 fra.me.has_broke = 0;
35174 fra.me.REG_size = 3;
35175 fra.me.REG[0] = NIT_NULL;
35176 fra.me.REG[1] = NIT_NULL;
35177 fra.me.REG[2] = NIT_NULL;
35178 fra.me.REG[0] = p0;
35179 fra.me.REG[1] = p1;
35180 /* ./parser//parser_prod.nit:6521 */
35181 fra.me.REG[2] = fra.me.REG[0];
35182 /* ./parser//parser_prod.nit:6525 */
35183 CALL_parser___parser_prod___ANullExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
35184 /* ./parser//parser_prod.nit:6526 */
35185 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35186 if (UNTAG_Bool(REGB0)) {
35187 } else {
35188 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6526);
35189 }
35190 ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[2]) = fra.me.REG[1];
35191 /* ./parser//parser_prod.nit:6527 */
35192 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35193 if (UNTAG_Bool(REGB0)) {
35194 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6527);
35195 }
35196 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35197 stack_frame_head = fra.me.prev;
35198 init_table[itpos226] = 1;
35199 return;
35200 }
35201 void parser___parser_prod___ANullExpr___replace_child(val_t p0, val_t p1, val_t p2){
35202 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35203 val_t REGB0;
35204 val_t REGB1;
35205 val_t tmp;
35206 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35207 fra.me.file = LOCATE_parser___parser_prod;
35208 fra.me.line = 6530;
35209 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___replace_child;
35210 fra.me.has_broke = 0;
35211 fra.me.REG_size = 4;
35212 fra.me.REG[0] = NIT_NULL;
35213 fra.me.REG[1] = NIT_NULL;
35214 fra.me.REG[2] = NIT_NULL;
35215 fra.me.REG[3] = NIT_NULL;
35216 fra.me.REG[0] = p0;
35217 fra.me.REG[1] = p1;
35218 fra.me.REG[2] = p2;
35219 /* ./parser//parser_prod.nit:6532 */
35220 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
35221 if (UNTAG_Bool(REGB0)) {
35222 } else {
35223 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 6532);
35224 }
35225 fra.me.REG[3] = ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]);
35226 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35227 if (UNTAG_Bool(REGB0)) {
35228 } else {
35229 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35230 REGB0 = REGB1;
35231 }
35232 if (UNTAG_Bool(REGB0)) {
35233 /* ./parser//parser_prod.nit:6533 */
35234 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35235 if (UNTAG_Bool(REGB0)) {
35236 } else {
35237 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35238 if (UNTAG_Bool(REGB1)) {
35239 REGB1 = TAG_Bool(false);
35240 REGB0 = REGB1;
35241 } else {
35242 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35243 REGB0 = REGB1;
35244 }
35245 }
35246 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35247 if (UNTAG_Bool(REGB0)) {
35248 /* ./parser//parser_prod.nit:6534 */
35249 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35250 if (UNTAG_Bool(REGB0)) {
35251 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6534);
35252 }
35253 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35254 /* ./parser//parser_prod.nit:6535 */
35255 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*/;
35256 if (UNTAG_Bool(REGB0)) {
35257 } else {
35258 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6535);
35259 }
35260 /* ./parser//parser_prod.nit:6536 */
35261 ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[2];
35262 } else {
35263 /* ./parser//parser_prod.nit:6538 */
35264 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6538);
35265 }
35266 /* ./parser//parser_prod.nit:6540 */
35267 goto label1;
35268 }
35269 label1: while(0);
35270 stack_frame_head = fra.me.prev;
35271 return;
35272 }
35273 void parser___parser_prod___ANullExpr___visit_all(val_t p0, val_t p1){
35274 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35275 val_t REGB0;
35276 val_t tmp;
35277 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35278 fra.me.file = LOCATE_parser___parser_prod;
35279 fra.me.line = 6544;
35280 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___visit_all;
35281 fra.me.has_broke = 0;
35282 fra.me.REG_size = 2;
35283 fra.me.REG[0] = NIT_NULL;
35284 fra.me.REG[1] = NIT_NULL;
35285 fra.me.REG[0] = p0;
35286 fra.me.REG[1] = p1;
35287 /* ./parser//parser_prod.nit:6546 */
35288 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
35289 if (UNTAG_Bool(REGB0)) {
35290 } else {
35291 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 6546);
35292 }
35293 fra.me.REG[0] = ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]);
35294 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35295 stack_frame_head = fra.me.prev;
35296 return;
35297 }
35298 void parser___parser_prod___AIntExpr___empty_init(val_t p0, int* init_table){
35299 int itpos227 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIntExpr].i;
35300 struct {struct stack_frame_t me;} fra;
35301 val_t tmp;
35302 if (init_table[itpos227]) return;
35303 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35304 fra.me.file = LOCATE_parser___parser_prod;
35305 fra.me.line = 6550;
35306 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___empty_init;
35307 fra.me.has_broke = 0;
35308 fra.me.REG_size = 1;
35309 fra.me.REG[0] = NIT_NULL;
35310 fra.me.REG[0] = p0;
35311 stack_frame_head = fra.me.prev;
35312 init_table[itpos227] = 1;
35313 return;
35314 }
35315 void parser___parser_prod___AIntExpr___init_aintexpr(val_t p0, val_t p1, int* init_table){
35316 int itpos228 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIntExpr].i;
35317 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35318 val_t REGB0;
35319 val_t tmp;
35320 if (init_table[itpos228]) return;
35321 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35322 fra.me.file = LOCATE_parser___parser_prod;
35323 fra.me.line = 6552;
35324 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___init_aintexpr;
35325 fra.me.has_broke = 0;
35326 fra.me.REG_size = 3;
35327 fra.me.REG[0] = NIT_NULL;
35328 fra.me.REG[1] = NIT_NULL;
35329 fra.me.REG[2] = NIT_NULL;
35330 fra.me.REG[0] = p0;
35331 fra.me.REG[1] = p1;
35332 /* ./parser//parser_prod.nit:6552 */
35333 fra.me.REG[2] = fra.me.REG[0];
35334 /* ./parser//parser_prod.nit:6556 */
35335 CALL_parser___parser_prod___AIntExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
35336 /* ./parser//parser_prod.nit:6557 */
35337 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35338 if (UNTAG_Bool(REGB0)) {
35339 } else {
35340 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6557);
35341 }
35342 ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[2]) = fra.me.REG[1];
35343 /* ./parser//parser_prod.nit:6558 */
35344 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35345 if (UNTAG_Bool(REGB0)) {
35346 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6558);
35347 }
35348 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35349 stack_frame_head = fra.me.prev;
35350 init_table[itpos228] = 1;
35351 return;
35352 }
35353 void parser___parser_prod___AIntExpr___replace_child(val_t p0, val_t p1, val_t p2){
35354 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35355 val_t REGB0;
35356 val_t REGB1;
35357 val_t tmp;
35358 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35359 fra.me.file = LOCATE_parser___parser_prod;
35360 fra.me.line = 6561;
35361 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___replace_child;
35362 fra.me.has_broke = 0;
35363 fra.me.REG_size = 4;
35364 fra.me.REG[0] = NIT_NULL;
35365 fra.me.REG[1] = NIT_NULL;
35366 fra.me.REG[2] = NIT_NULL;
35367 fra.me.REG[3] = NIT_NULL;
35368 fra.me.REG[0] = p0;
35369 fra.me.REG[1] = p1;
35370 fra.me.REG[2] = p2;
35371 /* ./parser//parser_prod.nit:6563 */
35372 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
35373 if (UNTAG_Bool(REGB0)) {
35374 } else {
35375 nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser___parser_prod, 6563);
35376 }
35377 fra.me.REG[3] = ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]);
35378 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35379 if (UNTAG_Bool(REGB0)) {
35380 } else {
35381 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35382 REGB0 = REGB1;
35383 }
35384 if (UNTAG_Bool(REGB0)) {
35385 /* ./parser//parser_prod.nit:6564 */
35386 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35387 if (UNTAG_Bool(REGB0)) {
35388 } else {
35389 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35390 if (UNTAG_Bool(REGB1)) {
35391 REGB1 = TAG_Bool(false);
35392 REGB0 = REGB1;
35393 } else {
35394 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35395 REGB0 = REGB1;
35396 }
35397 }
35398 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35399 if (UNTAG_Bool(REGB0)) {
35400 /* ./parser//parser_prod.nit:6565 */
35401 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35402 if (UNTAG_Bool(REGB0)) {
35403 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6565);
35404 }
35405 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35406 /* ./parser//parser_prod.nit:6566 */
35407 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*/;
35408 if (UNTAG_Bool(REGB0)) {
35409 } else {
35410 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6566);
35411 }
35412 /* ./parser//parser_prod.nit:6567 */
35413 ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]) = fra.me.REG[2];
35414 } else {
35415 /* ./parser//parser_prod.nit:6569 */
35416 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6569);
35417 }
35418 /* ./parser//parser_prod.nit:6571 */
35419 goto label1;
35420 }
35421 label1: while(0);
35422 stack_frame_head = fra.me.prev;
35423 return;
35424 }
35425 void parser___parser_prod___AIntExpr___visit_all(val_t p0, val_t p1){
35426 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35427 val_t REGB0;
35428 val_t tmp;
35429 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35430 fra.me.file = LOCATE_parser___parser_prod;
35431 fra.me.line = 6575;
35432 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___visit_all;
35433 fra.me.has_broke = 0;
35434 fra.me.REG_size = 2;
35435 fra.me.REG[0] = NIT_NULL;
35436 fra.me.REG[1] = NIT_NULL;
35437 fra.me.REG[0] = p0;
35438 fra.me.REG[1] = p1;
35439 /* ./parser//parser_prod.nit:6577 */
35440 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
35441 if (UNTAG_Bool(REGB0)) {
35442 } else {
35443 nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser___parser_prod, 6577);
35444 }
35445 fra.me.REG[0] = ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]);
35446 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35447 stack_frame_head = fra.me.prev;
35448 return;
35449 }
35450 void parser___parser_prod___AFloatExpr___empty_init(val_t p0, int* init_table){
35451 int itpos229 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFloatExpr].i;
35452 struct {struct stack_frame_t me;} fra;
35453 val_t tmp;
35454 if (init_table[itpos229]) return;
35455 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35456 fra.me.file = LOCATE_parser___parser_prod;
35457 fra.me.line = 6581;
35458 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___empty_init;
35459 fra.me.has_broke = 0;
35460 fra.me.REG_size = 1;
35461 fra.me.REG[0] = NIT_NULL;
35462 fra.me.REG[0] = p0;
35463 stack_frame_head = fra.me.prev;
35464 init_table[itpos229] = 1;
35465 return;
35466 }
35467 void parser___parser_prod___AFloatExpr___init_afloatexpr(val_t p0, val_t p1, int* init_table){
35468 int itpos230 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFloatExpr].i;
35469 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35470 val_t REGB0;
35471 val_t tmp;
35472 if (init_table[itpos230]) return;
35473 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35474 fra.me.file = LOCATE_parser___parser_prod;
35475 fra.me.line = 6583;
35476 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___init_afloatexpr;
35477 fra.me.has_broke = 0;
35478 fra.me.REG_size = 3;
35479 fra.me.REG[0] = NIT_NULL;
35480 fra.me.REG[1] = NIT_NULL;
35481 fra.me.REG[2] = NIT_NULL;
35482 fra.me.REG[0] = p0;
35483 fra.me.REG[1] = p1;
35484 /* ./parser//parser_prod.nit:6583 */
35485 fra.me.REG[2] = fra.me.REG[0];
35486 /* ./parser//parser_prod.nit:6587 */
35487 CALL_parser___parser_prod___AFloatExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
35488 /* ./parser//parser_prod.nit:6588 */
35489 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35490 if (UNTAG_Bool(REGB0)) {
35491 } else {
35492 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6588);
35493 }
35494 ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[2]) = fra.me.REG[1];
35495 /* ./parser//parser_prod.nit:6589 */
35496 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35497 if (UNTAG_Bool(REGB0)) {
35498 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6589);
35499 }
35500 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35501 stack_frame_head = fra.me.prev;
35502 init_table[itpos230] = 1;
35503 return;
35504 }
35505 void parser___parser_prod___AFloatExpr___replace_child(val_t p0, val_t p1, val_t p2){
35506 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35507 val_t REGB0;
35508 val_t REGB1;
35509 val_t tmp;
35510 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35511 fra.me.file = LOCATE_parser___parser_prod;
35512 fra.me.line = 6592;
35513 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___replace_child;
35514 fra.me.has_broke = 0;
35515 fra.me.REG_size = 4;
35516 fra.me.REG[0] = NIT_NULL;
35517 fra.me.REG[1] = NIT_NULL;
35518 fra.me.REG[2] = NIT_NULL;
35519 fra.me.REG[3] = NIT_NULL;
35520 fra.me.REG[0] = p0;
35521 fra.me.REG[1] = p1;
35522 fra.me.REG[2] = p2;
35523 /* ./parser//parser_prod.nit:6594 */
35524 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
35525 if (UNTAG_Bool(REGB0)) {
35526 } else {
35527 nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser___parser_prod, 6594);
35528 }
35529 fra.me.REG[3] = ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]);
35530 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35531 if (UNTAG_Bool(REGB0)) {
35532 } else {
35533 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35534 REGB0 = REGB1;
35535 }
35536 if (UNTAG_Bool(REGB0)) {
35537 /* ./parser//parser_prod.nit:6595 */
35538 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35539 if (UNTAG_Bool(REGB0)) {
35540 } else {
35541 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35542 if (UNTAG_Bool(REGB1)) {
35543 REGB1 = TAG_Bool(false);
35544 REGB0 = REGB1;
35545 } else {
35546 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35547 REGB0 = REGB1;
35548 }
35549 }
35550 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35551 if (UNTAG_Bool(REGB0)) {
35552 /* ./parser//parser_prod.nit:6596 */
35553 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35554 if (UNTAG_Bool(REGB0)) {
35555 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6596);
35556 }
35557 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35558 /* ./parser//parser_prod.nit:6597 */
35559 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*/;
35560 if (UNTAG_Bool(REGB0)) {
35561 } else {
35562 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6597);
35563 }
35564 /* ./parser//parser_prod.nit:6598 */
35565 ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]) = fra.me.REG[2];
35566 } else {
35567 /* ./parser//parser_prod.nit:6600 */
35568 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6600);
35569 }
35570 /* ./parser//parser_prod.nit:6602 */
35571 goto label1;
35572 }
35573 label1: while(0);
35574 stack_frame_head = fra.me.prev;
35575 return;
35576 }
35577 void parser___parser_prod___AFloatExpr___visit_all(val_t p0, val_t p1){
35578 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35579 val_t REGB0;
35580 val_t tmp;
35581 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35582 fra.me.file = LOCATE_parser___parser_prod;
35583 fra.me.line = 6606;
35584 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___visit_all;
35585 fra.me.has_broke = 0;
35586 fra.me.REG_size = 2;
35587 fra.me.REG[0] = NIT_NULL;
35588 fra.me.REG[1] = NIT_NULL;
35589 fra.me.REG[0] = p0;
35590 fra.me.REG[1] = p1;
35591 /* ./parser//parser_prod.nit:6608 */
35592 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
35593 if (UNTAG_Bool(REGB0)) {
35594 } else {
35595 nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser___parser_prod, 6608);
35596 }
35597 fra.me.REG[0] = ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]);
35598 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35599 stack_frame_head = fra.me.prev;
35600 return;
35601 }
35602 void parser___parser_prod___ACharExpr___empty_init(val_t p0, int* init_table){
35603 int itpos231 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACharExpr].i;
35604 struct {struct stack_frame_t me;} fra;
35605 val_t tmp;
35606 if (init_table[itpos231]) return;
35607 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35608 fra.me.file = LOCATE_parser___parser_prod;
35609 fra.me.line = 6612;
35610 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___empty_init;
35611 fra.me.has_broke = 0;
35612 fra.me.REG_size = 1;
35613 fra.me.REG[0] = NIT_NULL;
35614 fra.me.REG[0] = p0;
35615 stack_frame_head = fra.me.prev;
35616 init_table[itpos231] = 1;
35617 return;
35618 }
35619 void parser___parser_prod___ACharExpr___init_acharexpr(val_t p0, val_t p1, int* init_table){
35620 int itpos232 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACharExpr].i;
35621 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35622 val_t REGB0;
35623 val_t tmp;
35624 if (init_table[itpos232]) return;
35625 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35626 fra.me.file = LOCATE_parser___parser_prod;
35627 fra.me.line = 6614;
35628 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___init_acharexpr;
35629 fra.me.has_broke = 0;
35630 fra.me.REG_size = 3;
35631 fra.me.REG[0] = NIT_NULL;
35632 fra.me.REG[1] = NIT_NULL;
35633 fra.me.REG[2] = NIT_NULL;
35634 fra.me.REG[0] = p0;
35635 fra.me.REG[1] = p1;
35636 /* ./parser//parser_prod.nit:6614 */
35637 fra.me.REG[2] = fra.me.REG[0];
35638 /* ./parser//parser_prod.nit:6618 */
35639 CALL_parser___parser_prod___ACharExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
35640 /* ./parser//parser_prod.nit:6619 */
35641 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35642 if (UNTAG_Bool(REGB0)) {
35643 } else {
35644 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6619);
35645 }
35646 ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[2]) = fra.me.REG[1];
35647 /* ./parser//parser_prod.nit:6620 */
35648 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35649 if (UNTAG_Bool(REGB0)) {
35650 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6620);
35651 }
35652 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35653 stack_frame_head = fra.me.prev;
35654 init_table[itpos232] = 1;
35655 return;
35656 }
35657 void parser___parser_prod___ACharExpr___replace_child(val_t p0, val_t p1, val_t p2){
35658 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35659 val_t REGB0;
35660 val_t REGB1;
35661 val_t tmp;
35662 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35663 fra.me.file = LOCATE_parser___parser_prod;
35664 fra.me.line = 6623;
35665 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___replace_child;
35666 fra.me.has_broke = 0;
35667 fra.me.REG_size = 4;
35668 fra.me.REG[0] = NIT_NULL;
35669 fra.me.REG[1] = NIT_NULL;
35670 fra.me.REG[2] = NIT_NULL;
35671 fra.me.REG[3] = NIT_NULL;
35672 fra.me.REG[0] = p0;
35673 fra.me.REG[1] = p1;
35674 fra.me.REG[2] = p2;
35675 /* ./parser//parser_prod.nit:6625 */
35676 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
35677 if (UNTAG_Bool(REGB0)) {
35678 } else {
35679 nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser___parser_prod, 6625);
35680 }
35681 fra.me.REG[3] = ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]);
35682 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35683 if (UNTAG_Bool(REGB0)) {
35684 } else {
35685 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35686 REGB0 = REGB1;
35687 }
35688 if (UNTAG_Bool(REGB0)) {
35689 /* ./parser//parser_prod.nit:6626 */
35690 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35691 if (UNTAG_Bool(REGB0)) {
35692 } else {
35693 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35694 if (UNTAG_Bool(REGB1)) {
35695 REGB1 = TAG_Bool(false);
35696 REGB0 = REGB1;
35697 } else {
35698 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35699 REGB0 = REGB1;
35700 }
35701 }
35702 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35703 if (UNTAG_Bool(REGB0)) {
35704 /* ./parser//parser_prod.nit:6627 */
35705 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35706 if (UNTAG_Bool(REGB0)) {
35707 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6627);
35708 }
35709 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35710 /* ./parser//parser_prod.nit:6628 */
35711 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*/;
35712 if (UNTAG_Bool(REGB0)) {
35713 } else {
35714 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6628);
35715 }
35716 /* ./parser//parser_prod.nit:6629 */
35717 ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]) = fra.me.REG[2];
35718 } else {
35719 /* ./parser//parser_prod.nit:6631 */
35720 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6631);
35721 }
35722 /* ./parser//parser_prod.nit:6633 */
35723 goto label1;
35724 }
35725 label1: while(0);
35726 stack_frame_head = fra.me.prev;
35727 return;
35728 }
35729 void parser___parser_prod___ACharExpr___visit_all(val_t p0, val_t p1){
35730 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35731 val_t REGB0;
35732 val_t tmp;
35733 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35734 fra.me.file = LOCATE_parser___parser_prod;
35735 fra.me.line = 6637;
35736 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___visit_all;
35737 fra.me.has_broke = 0;
35738 fra.me.REG_size = 2;
35739 fra.me.REG[0] = NIT_NULL;
35740 fra.me.REG[1] = NIT_NULL;
35741 fra.me.REG[0] = p0;
35742 fra.me.REG[1] = p1;
35743 /* ./parser//parser_prod.nit:6639 */
35744 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
35745 if (UNTAG_Bool(REGB0)) {
35746 } else {
35747 nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser___parser_prod, 6639);
35748 }
35749 fra.me.REG[0] = ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]);
35750 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35751 stack_frame_head = fra.me.prev;
35752 return;
35753 }
35754 void parser___parser_prod___AStringExpr___empty_init(val_t p0, int* init_table){
35755 int itpos233 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStringExpr].i;
35756 struct {struct stack_frame_t me;} fra;
35757 val_t tmp;
35758 if (init_table[itpos233]) return;
35759 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35760 fra.me.file = LOCATE_parser___parser_prod;
35761 fra.me.line = 6643;
35762 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___empty_init;
35763 fra.me.has_broke = 0;
35764 fra.me.REG_size = 1;
35765 fra.me.REG[0] = NIT_NULL;
35766 fra.me.REG[0] = p0;
35767 stack_frame_head = fra.me.prev;
35768 init_table[itpos233] = 1;
35769 return;
35770 }
35771 void parser___parser_prod___AStringExpr___init_astringexpr(val_t p0, val_t p1, int* init_table){
35772 int itpos234 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStringExpr].i;
35773 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35774 val_t REGB0;
35775 val_t tmp;
35776 if (init_table[itpos234]) return;
35777 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35778 fra.me.file = LOCATE_parser___parser_prod;
35779 fra.me.line = 6645;
35780 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___init_astringexpr;
35781 fra.me.has_broke = 0;
35782 fra.me.REG_size = 3;
35783 fra.me.REG[0] = NIT_NULL;
35784 fra.me.REG[1] = NIT_NULL;
35785 fra.me.REG[2] = NIT_NULL;
35786 fra.me.REG[0] = p0;
35787 fra.me.REG[1] = p1;
35788 /* ./parser//parser_prod.nit:6645 */
35789 fra.me.REG[2] = fra.me.REG[0];
35790 /* ./parser//parser_prod.nit:6649 */
35791 CALL_parser___parser_prod___AStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
35792 /* ./parser//parser_prod.nit:6650 */
35793 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35794 if (UNTAG_Bool(REGB0)) {
35795 } else {
35796 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6650);
35797 }
35798 ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
35799 /* ./parser//parser_prod.nit:6651 */
35800 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35801 if (UNTAG_Bool(REGB0)) {
35802 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6651);
35803 }
35804 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35805 stack_frame_head = fra.me.prev;
35806 init_table[itpos234] = 1;
35807 return;
35808 }
35809 void parser___parser_prod___AStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
35810 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35811 val_t REGB0;
35812 val_t REGB1;
35813 val_t tmp;
35814 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35815 fra.me.file = LOCATE_parser___parser_prod;
35816 fra.me.line = 6654;
35817 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___replace_child;
35818 fra.me.has_broke = 0;
35819 fra.me.REG_size = 4;
35820 fra.me.REG[0] = NIT_NULL;
35821 fra.me.REG[1] = NIT_NULL;
35822 fra.me.REG[2] = NIT_NULL;
35823 fra.me.REG[3] = NIT_NULL;
35824 fra.me.REG[0] = p0;
35825 fra.me.REG[1] = p1;
35826 fra.me.REG[2] = p2;
35827 /* ./parser//parser_prod.nit:6656 */
35828 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
35829 if (UNTAG_Bool(REGB0)) {
35830 } else {
35831 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6656);
35832 }
35833 fra.me.REG[3] = ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0]);
35834 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35835 if (UNTAG_Bool(REGB0)) {
35836 } else {
35837 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35838 REGB0 = REGB1;
35839 }
35840 if (UNTAG_Bool(REGB0)) {
35841 /* ./parser//parser_prod.nit:6657 */
35842 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35843 if (UNTAG_Bool(REGB0)) {
35844 } else {
35845 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35846 if (UNTAG_Bool(REGB1)) {
35847 REGB1 = TAG_Bool(false);
35848 REGB0 = REGB1;
35849 } else {
35850 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35851 REGB0 = REGB1;
35852 }
35853 }
35854 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35855 if (UNTAG_Bool(REGB0)) {
35856 /* ./parser//parser_prod.nit:6658 */
35857 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35858 if (UNTAG_Bool(REGB0)) {
35859 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6658);
35860 }
35861 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35862 /* ./parser//parser_prod.nit:6659 */
35863 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*/;
35864 if (UNTAG_Bool(REGB0)) {
35865 } else {
35866 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6659);
35867 }
35868 /* ./parser//parser_prod.nit:6660 */
35869 ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
35870 } else {
35871 /* ./parser//parser_prod.nit:6662 */
35872 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6662);
35873 }
35874 /* ./parser//parser_prod.nit:6664 */
35875 goto label1;
35876 }
35877 label1: while(0);
35878 stack_frame_head = fra.me.prev;
35879 return;
35880 }
35881 void parser___parser_prod___AStringExpr___visit_all(val_t p0, val_t p1){
35882 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35883 val_t REGB0;
35884 val_t tmp;
35885 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35886 fra.me.file = LOCATE_parser___parser_prod;
35887 fra.me.line = 6668;
35888 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___visit_all;
35889 fra.me.has_broke = 0;
35890 fra.me.REG_size = 2;
35891 fra.me.REG[0] = NIT_NULL;
35892 fra.me.REG[1] = NIT_NULL;
35893 fra.me.REG[0] = p0;
35894 fra.me.REG[1] = p1;
35895 /* ./parser//parser_prod.nit:6670 */
35896 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
35897 if (UNTAG_Bool(REGB0)) {
35898 } else {
35899 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6670);
35900 }
35901 fra.me.REG[0] = ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0]);
35902 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35903 stack_frame_head = fra.me.prev;
35904 return;
35905 }
35906 void parser___parser_prod___AStartStringExpr___empty_init(val_t p0, int* init_table){
35907 int itpos235 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStartStringExpr].i;
35908 struct {struct stack_frame_t me;} fra;
35909 val_t tmp;
35910 if (init_table[itpos235]) 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 = 6674;
35914 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___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[itpos235] = 1;
35921 return;
35922 }
35923 void parser___parser_prod___AStartStringExpr___init_astartstringexpr(val_t p0, val_t p1, int* init_table){
35924 int itpos236 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStartStringExpr].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[itpos236]) 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 = 6676;
35932 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___init_astartstringexpr;
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:6676 */
35941 fra.me.REG[2] = fra.me.REG[0];
35942 /* ./parser//parser_prod.nit:6680 */
35943 CALL_parser___parser_prod___AStartStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
35944 /* ./parser//parser_prod.nit:6681 */
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, 6681);
35949 }
35950 ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
35951 /* ./parser//parser_prod.nit:6682 */
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, 6682);
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[itpos236] = 1;
35959 return;
35960 }
35961 void parser___parser_prod___AStartStringExpr___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 = 6685;
35969 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___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:6687 */
35980 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
35981 if (UNTAG_Bool(REGB0)) {
35982 } else {
35983 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6687);
35984 }
35985 fra.me.REG[3] = ATTR_parser___parser_nodes___AStartStringExpr____n_string(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:6688 */
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:6689 */
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, 6689);
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:6690 */
36015 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*/;
36016 if (UNTAG_Bool(REGB0)) {
36017 } else {
36018 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6690);
36019 }
36020 /* ./parser//parser_prod.nit:6691 */
36021 ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
36022 } else {
36023 /* ./parser//parser_prod.nit:6693 */
36024 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6693);
36025 }
36026 /* ./parser//parser_prod.nit:6695 */
36027 goto label1;
36028 }
36029 label1: while(0);
36030 stack_frame_head = fra.me.prev;
36031 return;
36032 }
36033 void parser___parser_prod___AStartStringExpr___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 = 6699;
36040 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___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:6701 */
36048 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
36049 if (UNTAG_Bool(REGB0)) {
36050 } else {
36051 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6701);
36052 }
36053 fra.me.REG[0] = ATTR_parser___parser_nodes___AStartStringExpr____n_string(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___AMidStringExpr___empty_init(val_t p0, int* init_table){
36059 int itpos237 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMidStringExpr].i;
36060 struct {struct stack_frame_t me;} fra;
36061 val_t tmp;
36062 if (init_table[itpos237]) 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 = 6705;
36066 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___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[itpos237] = 1;
36073 return;
36074 }
36075 void parser___parser_prod___AMidStringExpr___init_amidstringexpr(val_t p0, val_t p1, int* init_table){
36076 int itpos238 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMidStringExpr].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[itpos238]) 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 = 6707;
36084 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___init_amidstringexpr;
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:6707 */
36093 fra.me.REG[2] = fra.me.REG[0];
36094 /* ./parser//parser_prod.nit:6711 */
36095 CALL_parser___parser_prod___AMidStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36096 /* ./parser//parser_prod.nit:6712 */
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, 6712);
36101 }
36102 ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
36103 /* ./parser//parser_prod.nit:6713 */
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, 6713);
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[itpos238] = 1;
36111 return;
36112 }
36113 void parser___parser_prod___AMidStringExpr___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 = 6716;
36121 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___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:6718 */
36132 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
36133 if (UNTAG_Bool(REGB0)) {
36134 } else {
36135 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6718);
36136 }
36137 fra.me.REG[3] = ATTR_parser___parser_nodes___AMidStringExpr____n_string(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:6719 */
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:6720 */
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, 6720);
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:6721 */
36167 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*/;
36168 if (UNTAG_Bool(REGB0)) {
36169 } else {
36170 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6721);
36171 }
36172 /* ./parser//parser_prod.nit:6722 */
36173 ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
36174 } else {
36175 /* ./parser//parser_prod.nit:6724 */
36176 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6724);
36177 }
36178 /* ./parser//parser_prod.nit:6726 */
36179 goto label1;
36180 }
36181 label1: while(0);
36182 stack_frame_head = fra.me.prev;
36183 return;
36184 }
36185 void parser___parser_prod___AMidStringExpr___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 = 6730;
36192 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___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:6732 */
36200 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
36201 if (UNTAG_Bool(REGB0)) {
36202 } else {
36203 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6732);
36204 }
36205 fra.me.REG[0] = ATTR_parser___parser_nodes___AMidStringExpr____n_string(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___AEndStringExpr___empty_init(val_t p0, int* init_table){
36211 int itpos239 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEndStringExpr].i;
36212 struct {struct stack_frame_t me;} fra;
36213 val_t tmp;
36214 if (init_table[itpos239]) 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 = 6736;
36218 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___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[itpos239] = 1;
36225 return;
36226 }
36227 void parser___parser_prod___AEndStringExpr___init_aendstringexpr(val_t p0, val_t p1, int* init_table){
36228 int itpos240 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEndStringExpr].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[itpos240]) 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 = 6738;
36236 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___init_aendstringexpr;
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:6738 */
36245 fra.me.REG[2] = fra.me.REG[0];
36246 /* ./parser//parser_prod.nit:6742 */
36247 CALL_parser___parser_prod___AEndStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36248 /* ./parser//parser_prod.nit:6743 */
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, 6743);
36253 }
36254 ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
36255 /* ./parser//parser_prod.nit:6744 */
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, 6744);
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[itpos240] = 1;
36263 return;
36264 }
36265 void parser___parser_prod___AEndStringExpr___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 = 6747;
36273 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___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:6749 */
36284 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
36285 if (UNTAG_Bool(REGB0)) {
36286 } else {
36287 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6749);
36288 }
36289 fra.me.REG[3] = ATTR_parser___parser_nodes___AEndStringExpr____n_string(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:6750 */
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:6751 */
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, 6751);
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:6752 */
36319 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*/;
36320 if (UNTAG_Bool(REGB0)) {
36321 } else {
36322 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6752);
36323 }
36324 /* ./parser//parser_prod.nit:6753 */
36325 ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
36326 } else {
36327 /* ./parser//parser_prod.nit:6755 */
36328 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6755);
36329 }
36330 /* ./parser//parser_prod.nit:6757 */
36331 goto label1;
36332 }
36333 label1: while(0);
36334 stack_frame_head = fra.me.prev;
36335 return;
36336 }
36337 void parser___parser_prod___AEndStringExpr___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 = 6761;
36344 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___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:6763 */
36352 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
36353 if (UNTAG_Bool(REGB0)) {
36354 } else {
36355 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6763);
36356 }
36357 fra.me.REG[0] = ATTR_parser___parser_nodes___AEndStringExpr____n_string(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___ASuperstringExpr___empty_init(val_t p0, int* init_table){
36363 int itpos241 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperstringExpr].i;
36364 struct {struct stack_frame_t me;} fra;
36365 val_t tmp;
36366 if (init_table[itpos241]) 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 = 6767;
36370 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___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[itpos241] = 1;
36377 return;
36378 }
36379 void parser___parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0, val_t p1, int* init_table){
36380 int itpos242 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperstringExpr].i;
36381 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36382 val_t tmp;
36383 if (init_table[itpos242]) return;
36384 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36385 fra.me.file = LOCATE_parser___parser_prod;
36386 fra.me.line = 6769;
36387 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr;
36388 fra.me.has_broke = 0;
36389 fra.me.REG_size = 2;
36390 fra.me.REG[0] = NIT_NULL;
36391 fra.me.REG[1] = NIT_NULL;
36392 fra.me.REG[0] = p0;
36393 fra.me.REG[1] = p1;
36394 /* ./parser//parser_prod.nit:6773 */
36395 CALL_parser___parser_prod___ASuperstringExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
36396 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));
36397 stack_frame_head = fra.me.prev;
36398 init_table[itpos242] = 1;
36399 return;
36400 }
36401 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){
36402 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36403 val_t REGB0;
36404 fun_t CREG[1];
36405 val_t tmp;
36406 /* ./parser//parser_prod.nit:6774 */
36407 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36408 fra.me.file = LOCATE_parser___parser_prod;
36409 fra.me.line = 0;
36410 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr;
36411 fra.me.has_broke = 0;
36412 fra.me.REG_size = 2;
36413 fra.me.REG[0] = NIT_NULL;
36414 fra.me.REG[1] = NIT_NULL;
36415 fra.me.closure_ctx = closctx_param;
36416 fra.me.closure_funs = CREG;
36417 fra.me.REG[0] = p0;
36418 CREG[0] = clos_fun0;
36419 /* ./parser//parser_prod.nit:6775 */
36420 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
36421 if (UNTAG_Bool(REGB0)) {
36422 } else {
36423 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6775);
36424 }
36425 /* ./parser//parser_prod.nit:6776 */
36426 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(closctx->REG[0])!=NIT_NULL);
36427 if (UNTAG_Bool(REGB0)) {
36428 } else {
36429 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6776);
36430 }
36431 fra.me.REG[1] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(closctx->REG[0]);
36432 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36433 /* ./parser//parser_prod.nit:6777 */
36434 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
36435 stack_frame_head = fra.me.prev;
36436 return;
36437 }
36438 void parser___parser_prod___ASuperstringExpr___replace_child(val_t p0, val_t p1, val_t p2){
36439 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36440 val_t REGB0;
36441 val_t REGB1;
36442 val_t REGB2;
36443 val_t REGB3;
36444 val_t REGB4;
36445 val_t tmp;
36446 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36447 fra.me.file = LOCATE_parser___parser_prod;
36448 fra.me.line = 6781;
36449 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___replace_child;
36450 fra.me.has_broke = 0;
36451 fra.me.REG_size = 4;
36452 fra.me.REG[0] = NIT_NULL;
36453 fra.me.REG[1] = NIT_NULL;
36454 fra.me.REG[2] = NIT_NULL;
36455 fra.me.REG[3] = NIT_NULL;
36456 fra.me.REG[0] = p0;
36457 fra.me.REG[1] = p1;
36458 fra.me.REG[2] = p2;
36459 /* ./parser//parser_prod.nit:6783 */
36460 REGB0 = TAG_Int(0);
36461 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
36462 if (UNTAG_Bool(REGB1)) {
36463 } else {
36464 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6783);
36465 }
36466 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
36467 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
36468 /* ./../lib/standard//kernel.nit:335 */
36469 while(1) {
36470 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
36471 if (UNTAG_Bool(REGB2)) {
36472 } else {
36473 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
36474 }
36475 /* ./../lib/standard//kernel.nit:215 */
36476 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
36477 /* ./../lib/standard//kernel.nit:335 */
36478 if (UNTAG_Bool(REGB2)) {
36479 /* ./parser//parser_prod.nit:6783 */
36480 REGB2 = REGB0;
36481 /* ./parser//parser_prod.nit:6784 */
36482 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
36483 if (UNTAG_Bool(REGB3)) {
36484 } else {
36485 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6784);
36486 }
36487 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
36488 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
36489 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
36490 if (UNTAG_Bool(REGB3)) {
36491 } else {
36492 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36493 if (UNTAG_Bool(REGB4)) {
36494 REGB4 = TAG_Bool(false);
36495 REGB3 = REGB4;
36496 } else {
36497 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36498 REGB3 = REGB4;
36499 }
36500 }
36501 if (UNTAG_Bool(REGB3)) {
36502 /* ./parser//parser_prod.nit:6785 */
36503 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36504 if (UNTAG_Bool(REGB3)) {
36505 } else {
36506 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36507 if (UNTAG_Bool(REGB4)) {
36508 REGB4 = TAG_Bool(false);
36509 REGB3 = REGB4;
36510 } else {
36511 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36512 REGB3 = REGB4;
36513 }
36514 }
36515 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
36516 if (UNTAG_Bool(REGB3)) {
36517 /* ./parser//parser_prod.nit:6786 */
36518 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*/;
36519 if (UNTAG_Bool(REGB3)) {
36520 } else {
36521 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6786);
36522 }
36523 /* ./parser//parser_prod.nit:6787 */
36524 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
36525 if (UNTAG_Bool(REGB3)) {
36526 } else {
36527 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6787);
36528 }
36529 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
36530 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
36531 /* ./parser//parser_prod.nit:6788 */
36532 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36533 if (UNTAG_Bool(REGB3)) {
36534 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6788);
36535 }
36536 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36537 } else {
36538 /* ./parser//parser_prod.nit:6790 */
36539 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
36540 if (UNTAG_Bool(REGB3)) {
36541 } else {
36542 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6790);
36543 }
36544 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
36545 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
36546 }
36547 /* ./parser//parser_prod.nit:6792 */
36548 goto label1;
36549 }
36550 /* ./../lib/standard//kernel.nit:337 */
36551 REGB2 = TAG_Int(1);
36552 /* ./../lib/standard//kernel.nit:218 */
36553 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
36554 /* ./../lib/standard//kernel.nit:337 */
36555 REGB0 = REGB2;
36556 } else {
36557 /* ./../lib/standard//kernel.nit:335 */
36558 goto label2;
36559 }
36560 }
36561 label2: while(0);
36562 label1: while(0);
36563 stack_frame_head = fra.me.prev;
36564 return;
36565 }
36566 void parser___parser_prod___ASuperstringExpr___visit_all(val_t p0, val_t p1){
36567 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36568 val_t REGB0;
36569 val_t tmp;
36570 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36571 fra.me.file = LOCATE_parser___parser_prod;
36572 fra.me.line = 6797;
36573 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___visit_all;
36574 fra.me.has_broke = 0;
36575 fra.me.REG_size = 2;
36576 fra.me.REG[0] = NIT_NULL;
36577 fra.me.REG[1] = NIT_NULL;
36578 fra.me.REG[0] = p0;
36579 fra.me.REG[1] = p1;
36580 /* ./parser//parser_prod.nit:6799 */
36581 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
36582 if (UNTAG_Bool(REGB0)) {
36583 } else {
36584 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6799);
36585 }
36586 fra.me.REG[0] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
36587 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));
36588 stack_frame_head = fra.me.prev;
36589 return;
36590 }
36591 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){
36592 struct {struct stack_frame_t me;} fra;
36593 fun_t CREG[1];
36594 val_t tmp;
36595 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36596 fra.me.file = LOCATE_parser___parser_prod;
36597 fra.me.line = 0;
36598 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___visit_all;
36599 fra.me.has_broke = 0;
36600 fra.me.REG_size = 1;
36601 fra.me.REG[0] = NIT_NULL;
36602 fra.me.closure_ctx = closctx_param;
36603 fra.me.closure_funs = CREG;
36604 fra.me.REG[0] = p0;
36605 CREG[0] = clos_fun0;
36606 /* ./parser//parser_prod.nit:6800 */
36607 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
36608 stack_frame_head = fra.me.prev;
36609 return;
36610 }
36611 void parser___parser_prod___AParExpr___empty_init(val_t p0, int* init_table){
36612 int itpos243 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExpr].i;
36613 struct {struct stack_frame_t me;} fra;
36614 val_t tmp;
36615 if (init_table[itpos243]) return;
36616 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36617 fra.me.file = LOCATE_parser___parser_prod;
36618 fra.me.line = 6805;
36619 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___empty_init;
36620 fra.me.has_broke = 0;
36621 fra.me.REG_size = 1;
36622 fra.me.REG[0] = NIT_NULL;
36623 fra.me.REG[0] = p0;
36624 stack_frame_head = fra.me.prev;
36625 init_table[itpos243] = 1;
36626 return;
36627 }
36628 void parser___parser_prod___AParExpr___init_aparexpr(val_t p0, val_t p1, int* init_table){
36629 int itpos244 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExpr].i;
36630 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36631 val_t REGB0;
36632 val_t tmp;
36633 if (init_table[itpos244]) return;
36634 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36635 fra.me.file = LOCATE_parser___parser_prod;
36636 fra.me.line = 6807;
36637 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___init_aparexpr;
36638 fra.me.has_broke = 0;
36639 fra.me.REG_size = 3;
36640 fra.me.REG[0] = NIT_NULL;
36641 fra.me.REG[1] = NIT_NULL;
36642 fra.me.REG[2] = NIT_NULL;
36643 fra.me.REG[0] = p0;
36644 fra.me.REG[1] = p1;
36645 /* ./parser//parser_prod.nit:6807 */
36646 fra.me.REG[2] = fra.me.REG[0];
36647 /* ./parser//parser_prod.nit:6811 */
36648 CALL_parser___parser_prod___AParExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36649 /* ./parser//parser_prod.nit:6812 */
36650 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36651 if (UNTAG_Bool(REGB0)) {
36652 } else {
36653 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6812);
36654 }
36655 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[2]) = fra.me.REG[1];
36656 /* ./parser//parser_prod.nit:6813 */
36657 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36658 if (UNTAG_Bool(REGB0)) {
36659 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6813);
36660 }
36661 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36662 stack_frame_head = fra.me.prev;
36663 init_table[itpos244] = 1;
36664 return;
36665 }
36666 void parser___parser_prod___AParExpr___replace_child(val_t p0, val_t p1, val_t p2){
36667 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36668 val_t REGB0;
36669 val_t REGB1;
36670 val_t tmp;
36671 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36672 fra.me.file = LOCATE_parser___parser_prod;
36673 fra.me.line = 6816;
36674 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___replace_child;
36675 fra.me.has_broke = 0;
36676 fra.me.REG_size = 4;
36677 fra.me.REG[0] = NIT_NULL;
36678 fra.me.REG[1] = NIT_NULL;
36679 fra.me.REG[2] = NIT_NULL;
36680 fra.me.REG[3] = NIT_NULL;
36681 fra.me.REG[0] = p0;
36682 fra.me.REG[1] = p1;
36683 fra.me.REG[2] = p2;
36684 /* ./parser//parser_prod.nit:6818 */
36685 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
36686 if (UNTAG_Bool(REGB0)) {
36687 } else {
36688 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6818);
36689 }
36690 fra.me.REG[3] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
36691 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36692 if (UNTAG_Bool(REGB0)) {
36693 } else {
36694 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36695 REGB0 = REGB1;
36696 }
36697 if (UNTAG_Bool(REGB0)) {
36698 /* ./parser//parser_prod.nit:6819 */
36699 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36700 if (UNTAG_Bool(REGB0)) {
36701 } else {
36702 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36703 if (UNTAG_Bool(REGB1)) {
36704 REGB1 = TAG_Bool(false);
36705 REGB0 = REGB1;
36706 } else {
36707 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36708 REGB0 = REGB1;
36709 }
36710 }
36711 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36712 if (UNTAG_Bool(REGB0)) {
36713 /* ./parser//parser_prod.nit:6820 */
36714 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36715 if (UNTAG_Bool(REGB0)) {
36716 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6820);
36717 }
36718 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36719 /* ./parser//parser_prod.nit:6821 */
36720 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
36721 if (UNTAG_Bool(REGB0)) {
36722 } else {
36723 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6821);
36724 }
36725 /* ./parser//parser_prod.nit:6822 */
36726 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
36727 } else {
36728 /* ./parser//parser_prod.nit:6824 */
36729 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6824);
36730 }
36731 /* ./parser//parser_prod.nit:6826 */
36732 goto label1;
36733 }
36734 label1: while(0);
36735 stack_frame_head = fra.me.prev;
36736 return;
36737 }
36738 void parser___parser_prod___AParExpr___visit_all(val_t p0, val_t p1){
36739 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36740 val_t REGB0;
36741 val_t tmp;
36742 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36743 fra.me.file = LOCATE_parser___parser_prod;
36744 fra.me.line = 6830;
36745 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___visit_all;
36746 fra.me.has_broke = 0;
36747 fra.me.REG_size = 2;
36748 fra.me.REG[0] = NIT_NULL;
36749 fra.me.REG[1] = NIT_NULL;
36750 fra.me.REG[0] = p0;
36751 fra.me.REG[1] = p1;
36752 /* ./parser//parser_prod.nit:6832 */
36753 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
36754 if (UNTAG_Bool(REGB0)) {
36755 } else {
36756 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6832);
36757 }
36758 fra.me.REG[0] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
36759 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36760 stack_frame_head = fra.me.prev;
36761 return;
36762 }
36763 void parser___parser_prod___AAsCastExpr___empty_init(val_t p0, int* init_table){
36764 int itpos245 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsCastExpr].i;
36765 struct {struct stack_frame_t me;} fra;
36766 val_t tmp;
36767 if (init_table[itpos245]) return;
36768 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36769 fra.me.file = LOCATE_parser___parser_prod;
36770 fra.me.line = 6836;
36771 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___empty_init;
36772 fra.me.has_broke = 0;
36773 fra.me.REG_size = 1;
36774 fra.me.REG[0] = NIT_NULL;
36775 fra.me.REG[0] = p0;
36776 stack_frame_head = fra.me.prev;
36777 init_table[itpos245] = 1;
36778 return;
36779 }
36780 void parser___parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
36781 int itpos246 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsCastExpr].i;
36782 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36783 val_t REGB0;
36784 val_t tmp;
36785 if (init_table[itpos246]) return;
36786 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36787 fra.me.file = LOCATE_parser___parser_prod;
36788 fra.me.line = 6838;
36789 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___init_aascastexpr;
36790 fra.me.has_broke = 0;
36791 fra.me.REG_size = 5;
36792 fra.me.REG[0] = NIT_NULL;
36793 fra.me.REG[1] = NIT_NULL;
36794 fra.me.REG[2] = NIT_NULL;
36795 fra.me.REG[3] = NIT_NULL;
36796 fra.me.REG[4] = NIT_NULL;
36797 fra.me.REG[0] = p0;
36798 fra.me.REG[1] = p1;
36799 fra.me.REG[2] = p2;
36800 fra.me.REG[3] = p3;
36801 /* ./parser//parser_prod.nit:6838 */
36802 fra.me.REG[4] = fra.me.REG[0];
36803 /* ./parser//parser_prod.nit:6844 */
36804 CALL_parser___parser_prod___AAsCastExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
36805 /* ./parser//parser_prod.nit:6845 */
36806 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36807 if (UNTAG_Bool(REGB0)) {
36808 } else {
36809 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6845);
36810 }
36811 ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[4]) = fra.me.REG[1];
36812 /* ./parser//parser_prod.nit:6846 */
36813 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36814 if (UNTAG_Bool(REGB0)) {
36815 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6846);
36816 }
36817 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
36818 /* ./parser//parser_prod.nit:6847 */
36819 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
36820 if (UNTAG_Bool(REGB0)) {
36821 } else {
36822 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6847);
36823 }
36824 ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[4]) = fra.me.REG[2];
36825 /* ./parser//parser_prod.nit:6848 */
36826 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36827 if (UNTAG_Bool(REGB0)) {
36828 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6848);
36829 }
36830 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
36831 /* ./parser//parser_prod.nit:6849 */
36832 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
36833 if (UNTAG_Bool(REGB0)) {
36834 } else {
36835 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6849);
36836 }
36837 ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[4]) = fra.me.REG[3];
36838 /* ./parser//parser_prod.nit:6850 */
36839 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36840 if (UNTAG_Bool(REGB0)) {
36841 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6850);
36842 }
36843 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
36844 stack_frame_head = fra.me.prev;
36845 init_table[itpos246] = 1;
36846 return;
36847 }
36848 void parser___parser_prod___AAsCastExpr___replace_child(val_t p0, val_t p1, val_t p2){
36849 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36850 val_t REGB0;
36851 val_t REGB1;
36852 val_t tmp;
36853 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36854 fra.me.file = LOCATE_parser___parser_prod;
36855 fra.me.line = 6853;
36856 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___replace_child;
36857 fra.me.has_broke = 0;
36858 fra.me.REG_size = 4;
36859 fra.me.REG[0] = NIT_NULL;
36860 fra.me.REG[1] = NIT_NULL;
36861 fra.me.REG[2] = NIT_NULL;
36862 fra.me.REG[3] = NIT_NULL;
36863 fra.me.REG[0] = p0;
36864 fra.me.REG[1] = p1;
36865 fra.me.REG[2] = p2;
36866 /* ./parser//parser_prod.nit:6855 */
36867 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
36868 if (UNTAG_Bool(REGB0)) {
36869 } else {
36870 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6855);
36871 }
36872 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]);
36873 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36874 if (UNTAG_Bool(REGB0)) {
36875 } else {
36876 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36877 REGB0 = REGB1;
36878 }
36879 if (UNTAG_Bool(REGB0)) {
36880 /* ./parser//parser_prod.nit:6856 */
36881 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36882 if (UNTAG_Bool(REGB0)) {
36883 } else {
36884 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36885 if (UNTAG_Bool(REGB1)) {
36886 REGB1 = TAG_Bool(false);
36887 REGB0 = REGB1;
36888 } else {
36889 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36890 REGB0 = REGB1;
36891 }
36892 }
36893 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36894 if (UNTAG_Bool(REGB0)) {
36895 /* ./parser//parser_prod.nit:6857 */
36896 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36897 if (UNTAG_Bool(REGB0)) {
36898 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6857);
36899 }
36900 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36901 /* ./parser//parser_prod.nit:6858 */
36902 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
36903 if (UNTAG_Bool(REGB0)) {
36904 } else {
36905 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6858);
36906 }
36907 /* ./parser//parser_prod.nit:6859 */
36908 ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
36909 } else {
36910 /* ./parser//parser_prod.nit:6861 */
36911 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6861);
36912 }
36913 /* ./parser//parser_prod.nit:6863 */
36914 goto label1;
36915 }
36916 /* ./parser//parser_prod.nit:6865 */
36917 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
36918 if (UNTAG_Bool(REGB0)) {
36919 } else {
36920 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 6865);
36921 }
36922 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]);
36923 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36924 if (UNTAG_Bool(REGB0)) {
36925 } else {
36926 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36927 REGB0 = REGB1;
36928 }
36929 if (UNTAG_Bool(REGB0)) {
36930 /* ./parser//parser_prod.nit:6866 */
36931 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36932 if (UNTAG_Bool(REGB0)) {
36933 } else {
36934 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36935 if (UNTAG_Bool(REGB1)) {
36936 REGB1 = TAG_Bool(false);
36937 REGB0 = REGB1;
36938 } else {
36939 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36940 REGB0 = REGB1;
36941 }
36942 }
36943 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36944 if (UNTAG_Bool(REGB0)) {
36945 /* ./parser//parser_prod.nit:6867 */
36946 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36947 if (UNTAG_Bool(REGB0)) {
36948 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6867);
36949 }
36950 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36951 /* ./parser//parser_prod.nit:6868 */
36952 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*/;
36953 if (UNTAG_Bool(REGB0)) {
36954 } else {
36955 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6868);
36956 }
36957 /* ./parser//parser_prod.nit:6869 */
36958 ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
36959 } else {
36960 /* ./parser//parser_prod.nit:6871 */
36961 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6871);
36962 }
36963 /* ./parser//parser_prod.nit:6873 */
36964 goto label1;
36965 }
36966 /* ./parser//parser_prod.nit:6875 */
36967 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
36968 if (UNTAG_Bool(REGB0)) {
36969 } else {
36970 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 6875);
36971 }
36972 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]);
36973 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36974 if (UNTAG_Bool(REGB0)) {
36975 } else {
36976 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36977 REGB0 = REGB1;
36978 }
36979 if (UNTAG_Bool(REGB0)) {
36980 /* ./parser//parser_prod.nit:6876 */
36981 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36982 if (UNTAG_Bool(REGB0)) {
36983 } else {
36984 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36985 if (UNTAG_Bool(REGB1)) {
36986 REGB1 = TAG_Bool(false);
36987 REGB0 = REGB1;
36988 } else {
36989 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36990 REGB0 = REGB1;
36991 }
36992 }
36993 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36994 if (UNTAG_Bool(REGB0)) {
36995 /* ./parser//parser_prod.nit:6877 */
36996 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36997 if (UNTAG_Bool(REGB0)) {
36998 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6877);
36999 }
37000 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37001 /* ./parser//parser_prod.nit:6878 */
37002 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*/;
37003 if (UNTAG_Bool(REGB0)) {
37004 } else {
37005 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6878);
37006 }
37007 /* ./parser//parser_prod.nit:6879 */
37008 ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
37009 } else {
37010 /* ./parser//parser_prod.nit:6881 */
37011 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6881);
37012 }
37013 /* ./parser//parser_prod.nit:6883 */
37014 goto label1;
37015 }
37016 label1: while(0);
37017 stack_frame_head = fra.me.prev;
37018 return;
37019 }
37020 void parser___parser_prod___AAsCastExpr___visit_all(val_t p0, val_t p1){
37021 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37022 val_t REGB0;
37023 val_t tmp;
37024 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37025 fra.me.file = LOCATE_parser___parser_prod;
37026 fra.me.line = 6887;
37027 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___visit_all;
37028 fra.me.has_broke = 0;
37029 fra.me.REG_size = 3;
37030 fra.me.REG[0] = NIT_NULL;
37031 fra.me.REG[1] = NIT_NULL;
37032 fra.me.REG[2] = NIT_NULL;
37033 fra.me.REG[0] = p0;
37034 fra.me.REG[1] = p1;
37035 /* ./parser//parser_prod.nit:6889 */
37036 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
37037 if (UNTAG_Bool(REGB0)) {
37038 } else {
37039 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6889);
37040 }
37041 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]);
37042 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37043 /* ./parser//parser_prod.nit:6890 */
37044 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
37045 if (UNTAG_Bool(REGB0)) {
37046 } else {
37047 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 6890);
37048 }
37049 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]);
37050 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37051 /* ./parser//parser_prod.nit:6891 */
37052 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
37053 if (UNTAG_Bool(REGB0)) {
37054 } else {
37055 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 6891);
37056 }
37057 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]);
37058 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37059 stack_frame_head = fra.me.prev;
37060 return;
37061 }
37062 void parser___parser_prod___AAsNotnullExpr___empty_init(val_t p0, int* init_table){
37063 int itpos247 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotnullExpr].i;
37064 struct {struct stack_frame_t me;} fra;
37065 val_t tmp;
37066 if (init_table[itpos247]) return;
37067 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37068 fra.me.file = LOCATE_parser___parser_prod;
37069 fra.me.line = 6895;
37070 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___empty_init;
37071 fra.me.has_broke = 0;
37072 fra.me.REG_size = 1;
37073 fra.me.REG[0] = NIT_NULL;
37074 fra.me.REG[0] = p0;
37075 stack_frame_head = fra.me.prev;
37076 init_table[itpos247] = 1;
37077 return;
37078 }
37079 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){
37080 int itpos248 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotnullExpr].i;
37081 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
37082 val_t REGB0;
37083 val_t tmp;
37084 if (init_table[itpos248]) return;
37085 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37086 fra.me.file = LOCATE_parser___parser_prod;
37087 fra.me.line = 6897;
37088 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr;
37089 fra.me.has_broke = 0;
37090 fra.me.REG_size = 6;
37091 fra.me.REG[0] = NIT_NULL;
37092 fra.me.REG[1] = NIT_NULL;
37093 fra.me.REG[2] = NIT_NULL;
37094 fra.me.REG[3] = NIT_NULL;
37095 fra.me.REG[4] = NIT_NULL;
37096 fra.me.REG[5] = NIT_NULL;
37097 fra.me.REG[0] = p0;
37098 fra.me.REG[1] = p1;
37099 fra.me.REG[2] = p2;
37100 fra.me.REG[3] = p3;
37101 fra.me.REG[4] = p4;
37102 /* ./parser//parser_prod.nit:6897 */
37103 fra.me.REG[5] = fra.me.REG[0];
37104 /* ./parser//parser_prod.nit:6904 */
37105 CALL_parser___parser_prod___AAsNotnullExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
37106 /* ./parser//parser_prod.nit:6905 */
37107 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37108 if (UNTAG_Bool(REGB0)) {
37109 } else {
37110 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6905);
37111 }
37112 ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
37113 /* ./parser//parser_prod.nit:6906 */
37114 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37115 if (UNTAG_Bool(REGB0)) {
37116 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6906);
37117 }
37118 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
37119 /* ./parser//parser_prod.nit:6907 */
37120 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
37121 if (UNTAG_Bool(REGB0)) {
37122 } else {
37123 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6907);
37124 }
37125 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[5]) = fra.me.REG[2];
37126 /* ./parser//parser_prod.nit:6908 */
37127 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37128 if (UNTAG_Bool(REGB0)) {
37129 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6908);
37130 }
37131 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
37132 /* ./parser//parser_prod.nit:6909 */
37133 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
37134 if (UNTAG_Bool(REGB0)) {
37135 } else {
37136 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6909);
37137 }
37138 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[5]) = fra.me.REG[3];
37139 /* ./parser//parser_prod.nit:6910 */
37140 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37141 if (UNTAG_Bool(REGB0)) {
37142 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6910);
37143 }
37144 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
37145 /* ./parser//parser_prod.nit:6911 */
37146 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
37147 if (UNTAG_Bool(REGB0)) {
37148 } else {
37149 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6911);
37150 }
37151 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[5]) = fra.me.REG[4];
37152 /* ./parser//parser_prod.nit:6912 */
37153 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
37154 if (UNTAG_Bool(REGB0)) {
37155 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6912);
37156 }
37157 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
37158 stack_frame_head = fra.me.prev;
37159 init_table[itpos248] = 1;
37160 return;
37161 }
37162 void parser___parser_prod___AAsNotnullExpr___replace_child(val_t p0, val_t p1, val_t p2){
37163 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37164 val_t REGB0;
37165 val_t REGB1;
37166 val_t tmp;
37167 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37168 fra.me.file = LOCATE_parser___parser_prod;
37169 fra.me.line = 6915;
37170 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___replace_child;
37171 fra.me.has_broke = 0;
37172 fra.me.REG_size = 4;
37173 fra.me.REG[0] = NIT_NULL;
37174 fra.me.REG[1] = NIT_NULL;
37175 fra.me.REG[2] = NIT_NULL;
37176 fra.me.REG[3] = NIT_NULL;
37177 fra.me.REG[0] = p0;
37178 fra.me.REG[1] = p1;
37179 fra.me.REG[2] = p2;
37180 /* ./parser//parser_prod.nit:6917 */
37181 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
37182 if (UNTAG_Bool(REGB0)) {
37183 } else {
37184 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6917);
37185 }
37186 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]);
37187 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37188 if (UNTAG_Bool(REGB0)) {
37189 } else {
37190 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37191 REGB0 = REGB1;
37192 }
37193 if (UNTAG_Bool(REGB0)) {
37194 /* ./parser//parser_prod.nit:6918 */
37195 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37196 if (UNTAG_Bool(REGB0)) {
37197 } else {
37198 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37199 if (UNTAG_Bool(REGB1)) {
37200 REGB1 = TAG_Bool(false);
37201 REGB0 = REGB1;
37202 } else {
37203 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37204 REGB0 = REGB1;
37205 }
37206 }
37207 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37208 if (UNTAG_Bool(REGB0)) {
37209 /* ./parser//parser_prod.nit:6919 */
37210 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37211 if (UNTAG_Bool(REGB0)) {
37212 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6919);
37213 }
37214 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37215 /* ./parser//parser_prod.nit:6920 */
37216 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
37217 if (UNTAG_Bool(REGB0)) {
37218 } else {
37219 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6920);
37220 }
37221 /* ./parser//parser_prod.nit:6921 */
37222 ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
37223 } else {
37224 /* ./parser//parser_prod.nit:6923 */
37225 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6923);
37226 }
37227 /* ./parser//parser_prod.nit:6925 */
37228 goto label1;
37229 }
37230 /* ./parser//parser_prod.nit:6927 */
37231 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
37232 if (UNTAG_Bool(REGB0)) {
37233 } else {
37234 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 6927);
37235 }
37236 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]);
37237 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37238 if (UNTAG_Bool(REGB0)) {
37239 } else {
37240 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37241 REGB0 = REGB1;
37242 }
37243 if (UNTAG_Bool(REGB0)) {
37244 /* ./parser//parser_prod.nit:6928 */
37245 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37246 if (UNTAG_Bool(REGB0)) {
37247 } else {
37248 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37249 if (UNTAG_Bool(REGB1)) {
37250 REGB1 = TAG_Bool(false);
37251 REGB0 = REGB1;
37252 } else {
37253 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37254 REGB0 = REGB1;
37255 }
37256 }
37257 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37258 if (UNTAG_Bool(REGB0)) {
37259 /* ./parser//parser_prod.nit:6929 */
37260 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37261 if (UNTAG_Bool(REGB0)) {
37262 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6929);
37263 }
37264 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37265 /* ./parser//parser_prod.nit:6930 */
37266 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*/;
37267 if (UNTAG_Bool(REGB0)) {
37268 } else {
37269 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6930);
37270 }
37271 /* ./parser//parser_prod.nit:6931 */
37272 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
37273 } else {
37274 /* ./parser//parser_prod.nit:6933 */
37275 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6933);
37276 }
37277 /* ./parser//parser_prod.nit:6935 */
37278 goto label1;
37279 }
37280 /* ./parser//parser_prod.nit:6937 */
37281 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
37282 if (UNTAG_Bool(REGB0)) {
37283 } else {
37284 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 6937);
37285 }
37286 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]);
37287 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37288 if (UNTAG_Bool(REGB0)) {
37289 } else {
37290 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37291 REGB0 = REGB1;
37292 }
37293 if (UNTAG_Bool(REGB0)) {
37294 /* ./parser//parser_prod.nit:6938 */
37295 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37296 if (UNTAG_Bool(REGB0)) {
37297 } else {
37298 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37299 if (UNTAG_Bool(REGB1)) {
37300 REGB1 = TAG_Bool(false);
37301 REGB0 = REGB1;
37302 } else {
37303 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37304 REGB0 = REGB1;
37305 }
37306 }
37307 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37308 if (UNTAG_Bool(REGB0)) {
37309 /* ./parser//parser_prod.nit:6939 */
37310 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37311 if (UNTAG_Bool(REGB0)) {
37312 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6939);
37313 }
37314 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37315 /* ./parser//parser_prod.nit:6940 */
37316 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*/;
37317 if (UNTAG_Bool(REGB0)) {
37318 } else {
37319 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6940);
37320 }
37321 /* ./parser//parser_prod.nit:6941 */
37322 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
37323 } else {
37324 /* ./parser//parser_prod.nit:6943 */
37325 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6943);
37326 }
37327 /* ./parser//parser_prod.nit:6945 */
37328 goto label1;
37329 }
37330 /* ./parser//parser_prod.nit:6947 */
37331 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
37332 if (UNTAG_Bool(REGB0)) {
37333 } else {
37334 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 6947);
37335 }
37336 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]);
37337 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37338 if (UNTAG_Bool(REGB0)) {
37339 } else {
37340 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37341 REGB0 = REGB1;
37342 }
37343 if (UNTAG_Bool(REGB0)) {
37344 /* ./parser//parser_prod.nit:6948 */
37345 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37346 if (UNTAG_Bool(REGB0)) {
37347 } else {
37348 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37349 if (UNTAG_Bool(REGB1)) {
37350 REGB1 = TAG_Bool(false);
37351 REGB0 = REGB1;
37352 } else {
37353 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37354 REGB0 = REGB1;
37355 }
37356 }
37357 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37358 if (UNTAG_Bool(REGB0)) {
37359 /* ./parser//parser_prod.nit:6949 */
37360 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37361 if (UNTAG_Bool(REGB0)) {
37362 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6949);
37363 }
37364 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37365 /* ./parser//parser_prod.nit:6950 */
37366 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*/;
37367 if (UNTAG_Bool(REGB0)) {
37368 } else {
37369 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6950);
37370 }
37371 /* ./parser//parser_prod.nit:6951 */
37372 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[2];
37373 } else {
37374 /* ./parser//parser_prod.nit:6953 */
37375 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6953);
37376 }
37377 /* ./parser//parser_prod.nit:6955 */
37378 goto label1;
37379 }
37380 label1: while(0);
37381 stack_frame_head = fra.me.prev;
37382 return;
37383 }
37384 void parser___parser_prod___AAsNotnullExpr___visit_all(val_t p0, val_t p1){
37385 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37386 val_t REGB0;
37387 val_t tmp;
37388 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37389 fra.me.file = LOCATE_parser___parser_prod;
37390 fra.me.line = 6959;
37391 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___visit_all;
37392 fra.me.has_broke = 0;
37393 fra.me.REG_size = 3;
37394 fra.me.REG[0] = NIT_NULL;
37395 fra.me.REG[1] = NIT_NULL;
37396 fra.me.REG[2] = NIT_NULL;
37397 fra.me.REG[0] = p0;
37398 fra.me.REG[1] = p1;
37399 /* ./parser//parser_prod.nit:6961 */
37400 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
37401 if (UNTAG_Bool(REGB0)) {
37402 } else {
37403 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6961);
37404 }
37405 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]);
37406 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37407 /* ./parser//parser_prod.nit:6962 */
37408 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
37409 if (UNTAG_Bool(REGB0)) {
37410 } else {
37411 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 6962);
37412 }
37413 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]);
37414 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37415 /* ./parser//parser_prod.nit:6963 */
37416 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
37417 if (UNTAG_Bool(REGB0)) {
37418 } else {
37419 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 6963);
37420 }
37421 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]);
37422 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37423 /* ./parser//parser_prod.nit:6964 */
37424 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
37425 if (UNTAG_Bool(REGB0)) {
37426 } else {
37427 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 6964);
37428 }
37429 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]);
37430 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37431 stack_frame_head = fra.me.prev;
37432 return;
37433 }
37434 void parser___parser_prod___AIssetAttrExpr___empty_init(val_t p0, int* init_table){
37435 int itpos249 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIssetAttrExpr].i;
37436 struct {struct stack_frame_t me;} fra;
37437 val_t tmp;
37438 if (init_table[itpos249]) return;
37439 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37440 fra.me.file = LOCATE_parser___parser_prod;
37441 fra.me.line = 6968;
37442 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___empty_init;
37443 fra.me.has_broke = 0;
37444 fra.me.REG_size = 1;
37445 fra.me.REG[0] = NIT_NULL;
37446 fra.me.REG[0] = p0;
37447 stack_frame_head = fra.me.prev;
37448 init_table[itpos249] = 1;
37449 return;
37450 }
37451 void parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
37452 int itpos250 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIssetAttrExpr].i;
37453 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
37454 val_t REGB0;
37455 val_t tmp;
37456 if (init_table[itpos250]) return;
37457 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37458 fra.me.file = LOCATE_parser___parser_prod;
37459 fra.me.line = 6970;
37460 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr;
37461 fra.me.has_broke = 0;
37462 fra.me.REG_size = 5;
37463 fra.me.REG[0] = NIT_NULL;
37464 fra.me.REG[1] = NIT_NULL;
37465 fra.me.REG[2] = NIT_NULL;
37466 fra.me.REG[3] = NIT_NULL;
37467 fra.me.REG[4] = NIT_NULL;
37468 fra.me.REG[0] = p0;
37469 fra.me.REG[1] = p1;
37470 fra.me.REG[2] = p2;
37471 fra.me.REG[3] = p3;
37472 /* ./parser//parser_prod.nit:6970 */
37473 fra.me.REG[4] = fra.me.REG[0];
37474 /* ./parser//parser_prod.nit:6976 */
37475 CALL_parser___parser_prod___AIssetAttrExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
37476 /* ./parser//parser_prod.nit:6977 */
37477 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37478 if (UNTAG_Bool(REGB0)) {
37479 } else {
37480 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6977);
37481 }
37482 ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[4]) = fra.me.REG[1];
37483 /* ./parser//parser_prod.nit:6978 */
37484 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37485 if (UNTAG_Bool(REGB0)) {
37486 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6978);
37487 }
37488 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
37489 /* ./parser//parser_prod.nit:6979 */
37490 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
37491 if (UNTAG_Bool(REGB0)) {
37492 } else {
37493 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6979);
37494 }
37495 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[4]) = fra.me.REG[2];
37496 /* ./parser//parser_prod.nit:6980 */
37497 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37498 if (UNTAG_Bool(REGB0)) {
37499 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6980);
37500 }
37501 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
37502 /* ./parser//parser_prod.nit:6981 */
37503 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
37504 if (UNTAG_Bool(REGB0)) {
37505 } else {
37506 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6981);
37507 }
37508 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[3];
37509 /* ./parser//parser_prod.nit:6982 */
37510 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37511 if (UNTAG_Bool(REGB0)) {
37512 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6982);
37513 }
37514 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
37515 stack_frame_head = fra.me.prev;
37516 init_table[itpos250] = 1;
37517 return;
37518 }
37519 void parser___parser_prod___AIssetAttrExpr___replace_child(val_t p0, val_t p1, val_t p2){
37520 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37521 val_t REGB0;
37522 val_t REGB1;
37523 val_t tmp;
37524 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37525 fra.me.file = LOCATE_parser___parser_prod;
37526 fra.me.line = 6985;
37527 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___replace_child;
37528 fra.me.has_broke = 0;
37529 fra.me.REG_size = 4;
37530 fra.me.REG[0] = NIT_NULL;
37531 fra.me.REG[1] = NIT_NULL;
37532 fra.me.REG[2] = NIT_NULL;
37533 fra.me.REG[3] = NIT_NULL;
37534 fra.me.REG[0] = p0;
37535 fra.me.REG[1] = p1;
37536 fra.me.REG[2] = p2;
37537 /* ./parser//parser_prod.nit:6987 */
37538 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
37539 if (UNTAG_Bool(REGB0)) {
37540 } else {
37541 nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser___parser_prod, 6987);
37542 }
37543 fra.me.REG[3] = ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]);
37544 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37545 if (UNTAG_Bool(REGB0)) {
37546 } else {
37547 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37548 REGB0 = REGB1;
37549 }
37550 if (UNTAG_Bool(REGB0)) {
37551 /* ./parser//parser_prod.nit:6988 */
37552 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37553 if (UNTAG_Bool(REGB0)) {
37554 } else {
37555 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37556 if (UNTAG_Bool(REGB1)) {
37557 REGB1 = TAG_Bool(false);
37558 REGB0 = REGB1;
37559 } else {
37560 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37561 REGB0 = REGB1;
37562 }
37563 }
37564 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37565 if (UNTAG_Bool(REGB0)) {
37566 /* ./parser//parser_prod.nit:6989 */
37567 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37568 if (UNTAG_Bool(REGB0)) {
37569 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6989);
37570 }
37571 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37572 /* ./parser//parser_prod.nit:6990 */
37573 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*/;
37574 if (UNTAG_Bool(REGB0)) {
37575 } else {
37576 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6990);
37577 }
37578 /* ./parser//parser_prod.nit:6991 */
37579 ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]) = fra.me.REG[2];
37580 } else {
37581 /* ./parser//parser_prod.nit:6993 */
37582 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6993);
37583 }
37584 /* ./parser//parser_prod.nit:6995 */
37585 goto label1;
37586 }
37587 /* ./parser//parser_prod.nit:6997 */
37588 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
37589 if (UNTAG_Bool(REGB0)) {
37590 } else {
37591 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6997);
37592 }
37593 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
37594 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37595 if (UNTAG_Bool(REGB0)) {
37596 } else {
37597 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37598 REGB0 = REGB1;
37599 }
37600 if (UNTAG_Bool(REGB0)) {
37601 /* ./parser//parser_prod.nit:6998 */
37602 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37603 if (UNTAG_Bool(REGB0)) {
37604 } else {
37605 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37606 if (UNTAG_Bool(REGB1)) {
37607 REGB1 = TAG_Bool(false);
37608 REGB0 = REGB1;
37609 } else {
37610 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37611 REGB0 = REGB1;
37612 }
37613 }
37614 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37615 if (UNTAG_Bool(REGB0)) {
37616 /* ./parser//parser_prod.nit:6999 */
37617 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37618 if (UNTAG_Bool(REGB0)) {
37619 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6999);
37620 }
37621 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37622 /* ./parser//parser_prod.nit:7000 */
37623 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
37624 if (UNTAG_Bool(REGB0)) {
37625 } else {
37626 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7000);
37627 }
37628 /* ./parser//parser_prod.nit:7001 */
37629 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
37630 } else {
37631 /* ./parser//parser_prod.nit:7003 */
37632 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7003);
37633 }
37634 /* ./parser//parser_prod.nit:7005 */
37635 goto label1;
37636 }
37637 /* ./parser//parser_prod.nit:7007 */
37638 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
37639 if (UNTAG_Bool(REGB0)) {
37640 } else {
37641 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7007);
37642 }
37643 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
37644 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37645 if (UNTAG_Bool(REGB0)) {
37646 } else {
37647 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37648 REGB0 = REGB1;
37649 }
37650 if (UNTAG_Bool(REGB0)) {
37651 /* ./parser//parser_prod.nit:7008 */
37652 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37653 if (UNTAG_Bool(REGB0)) {
37654 } else {
37655 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37656 if (UNTAG_Bool(REGB1)) {
37657 REGB1 = TAG_Bool(false);
37658 REGB0 = REGB1;
37659 } else {
37660 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37661 REGB0 = REGB1;
37662 }
37663 }
37664 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37665 if (UNTAG_Bool(REGB0)) {
37666 /* ./parser//parser_prod.nit:7009 */
37667 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37668 if (UNTAG_Bool(REGB0)) {
37669 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7009);
37670 }
37671 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37672 /* ./parser//parser_prod.nit:7010 */
37673 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*/;
37674 if (UNTAG_Bool(REGB0)) {
37675 } else {
37676 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7010);
37677 }
37678 /* ./parser//parser_prod.nit:7011 */
37679 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
37680 } else {
37681 /* ./parser//parser_prod.nit:7013 */
37682 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7013);
37683 }
37684 /* ./parser//parser_prod.nit:7015 */
37685 goto label1;
37686 }
37687 label1: while(0);
37688 stack_frame_head = fra.me.prev;
37689 return;
37690 }
37691 void parser___parser_prod___AIssetAttrExpr___visit_all(val_t p0, val_t p1){
37692 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37693 val_t REGB0;
37694 val_t tmp;
37695 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37696 fra.me.file = LOCATE_parser___parser_prod;
37697 fra.me.line = 7019;
37698 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___visit_all;
37699 fra.me.has_broke = 0;
37700 fra.me.REG_size = 3;
37701 fra.me.REG[0] = NIT_NULL;
37702 fra.me.REG[1] = NIT_NULL;
37703 fra.me.REG[2] = NIT_NULL;
37704 fra.me.REG[0] = p0;
37705 fra.me.REG[1] = p1;
37706 /* ./parser//parser_prod.nit:7021 */
37707 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
37708 if (UNTAG_Bool(REGB0)) {
37709 } else {
37710 nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser___parser_prod, 7021);
37711 }
37712 fra.me.REG[2] = ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]);
37713 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37714 /* ./parser//parser_prod.nit:7022 */
37715 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
37716 if (UNTAG_Bool(REGB0)) {
37717 } else {
37718 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7022);
37719 }
37720 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
37721 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37722 /* ./parser//parser_prod.nit:7023 */
37723 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
37724 if (UNTAG_Bool(REGB0)) {
37725 } else {
37726 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7023);
37727 }
37728 fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
37729 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37730 stack_frame_head = fra.me.prev;
37731 return;
37732 }
37733 void parser___parser_prod___APlusAssignOp___empty_init(val_t p0, int* init_table){
37734 int itpos251 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusAssignOp].i;
37735 struct {struct stack_frame_t me;} fra;
37736 val_t tmp;
37737 if (init_table[itpos251]) return;
37738 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37739 fra.me.file = LOCATE_parser___parser_prod;
37740 fra.me.line = 7027;
37741 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___empty_init;
37742 fra.me.has_broke = 0;
37743 fra.me.REG_size = 1;
37744 fra.me.REG[0] = NIT_NULL;
37745 fra.me.REG[0] = p0;
37746 stack_frame_head = fra.me.prev;
37747 init_table[itpos251] = 1;
37748 return;
37749 }
37750 void parser___parser_prod___APlusAssignOp___init_aplusassignop(val_t p0, val_t p1, int* init_table){
37751 int itpos252 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusAssignOp].i;
37752 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37753 val_t REGB0;
37754 val_t tmp;
37755 if (init_table[itpos252]) return;
37756 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37757 fra.me.file = LOCATE_parser___parser_prod;
37758 fra.me.line = 7029;
37759 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___init_aplusassignop;
37760 fra.me.has_broke = 0;
37761 fra.me.REG_size = 3;
37762 fra.me.REG[0] = NIT_NULL;
37763 fra.me.REG[1] = NIT_NULL;
37764 fra.me.REG[2] = NIT_NULL;
37765 fra.me.REG[0] = p0;
37766 fra.me.REG[1] = p1;
37767 /* ./parser//parser_prod.nit:7029 */
37768 fra.me.REG[2] = fra.me.REG[0];
37769 /* ./parser//parser_prod.nit:7033 */
37770 CALL_parser___parser_prod___APlusAssignOp___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37771 /* ./parser//parser_prod.nit:7034 */
37772 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37773 if (UNTAG_Bool(REGB0)) {
37774 } else {
37775 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7034);
37776 }
37777 ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[2]) = fra.me.REG[1];
37778 /* ./parser//parser_prod.nit:7035 */
37779 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37780 if (UNTAG_Bool(REGB0)) {
37781 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7035);
37782 }
37783 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37784 stack_frame_head = fra.me.prev;
37785 init_table[itpos252] = 1;
37786 return;
37787 }
37788 void parser___parser_prod___APlusAssignOp___replace_child(val_t p0, val_t p1, val_t p2){
37789 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37790 val_t REGB0;
37791 val_t REGB1;
37792 val_t tmp;
37793 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37794 fra.me.file = LOCATE_parser___parser_prod;
37795 fra.me.line = 7038;
37796 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___replace_child;
37797 fra.me.has_broke = 0;
37798 fra.me.REG_size = 4;
37799 fra.me.REG[0] = NIT_NULL;
37800 fra.me.REG[1] = NIT_NULL;
37801 fra.me.REG[2] = NIT_NULL;
37802 fra.me.REG[3] = NIT_NULL;
37803 fra.me.REG[0] = p0;
37804 fra.me.REG[1] = p1;
37805 fra.me.REG[2] = p2;
37806 /* ./parser//parser_prod.nit:7040 */
37807 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0])!=NIT_NULL);
37808 if (UNTAG_Bool(REGB0)) {
37809 } else {
37810 nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser___parser_prod, 7040);
37811 }
37812 fra.me.REG[3] = ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]);
37813 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37814 if (UNTAG_Bool(REGB0)) {
37815 } else {
37816 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37817 REGB0 = REGB1;
37818 }
37819 if (UNTAG_Bool(REGB0)) {
37820 /* ./parser//parser_prod.nit:7041 */
37821 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37822 if (UNTAG_Bool(REGB0)) {
37823 } else {
37824 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37825 if (UNTAG_Bool(REGB1)) {
37826 REGB1 = TAG_Bool(false);
37827 REGB0 = REGB1;
37828 } else {
37829 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37830 REGB0 = REGB1;
37831 }
37832 }
37833 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37834 if (UNTAG_Bool(REGB0)) {
37835 /* ./parser//parser_prod.nit:7042 */
37836 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37837 if (UNTAG_Bool(REGB0)) {
37838 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7042);
37839 }
37840 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37841 /* ./parser//parser_prod.nit:7043 */
37842 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*/;
37843 if (UNTAG_Bool(REGB0)) {
37844 } else {
37845 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7043);
37846 }
37847 /* ./parser//parser_prod.nit:7044 */
37848 ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]) = fra.me.REG[2];
37849 } else {
37850 /* ./parser//parser_prod.nit:7046 */
37851 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7046);
37852 }
37853 /* ./parser//parser_prod.nit:7048 */
37854 goto label1;
37855 }
37856 label1: while(0);
37857 stack_frame_head = fra.me.prev;
37858 return;
37859 }
37860 void parser___parser_prod___APlusAssignOp___visit_all(val_t p0, val_t p1){
37861 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37862 val_t REGB0;
37863 val_t tmp;
37864 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37865 fra.me.file = LOCATE_parser___parser_prod;
37866 fra.me.line = 7052;
37867 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___visit_all;
37868 fra.me.has_broke = 0;
37869 fra.me.REG_size = 2;
37870 fra.me.REG[0] = NIT_NULL;
37871 fra.me.REG[1] = NIT_NULL;
37872 fra.me.REG[0] = p0;
37873 fra.me.REG[1] = p1;
37874 /* ./parser//parser_prod.nit:7054 */
37875 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0])!=NIT_NULL);
37876 if (UNTAG_Bool(REGB0)) {
37877 } else {
37878 nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser___parser_prod, 7054);
37879 }
37880 fra.me.REG[0] = ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]);
37881 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37882 stack_frame_head = fra.me.prev;
37883 return;
37884 }
37885 void parser___parser_prod___AMinusAssignOp___empty_init(val_t p0, int* init_table){
37886 int itpos253 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusAssignOp].i;
37887 struct {struct stack_frame_t me;} fra;
37888 val_t tmp;
37889 if (init_table[itpos253]) return;
37890 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37891 fra.me.file = LOCATE_parser___parser_prod;
37892 fra.me.line = 7058;
37893 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___empty_init;
37894 fra.me.has_broke = 0;
37895 fra.me.REG_size = 1;
37896 fra.me.REG[0] = NIT_NULL;
37897 fra.me.REG[0] = p0;
37898 stack_frame_head = fra.me.prev;
37899 init_table[itpos253] = 1;
37900 return;
37901 }
37902 void parser___parser_prod___AMinusAssignOp___init_aminusassignop(val_t p0, val_t p1, int* init_table){
37903 int itpos254 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusAssignOp].i;
37904 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37905 val_t REGB0;
37906 val_t tmp;
37907 if (init_table[itpos254]) return;
37908 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37909 fra.me.file = LOCATE_parser___parser_prod;
37910 fra.me.line = 7060;
37911 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___init_aminusassignop;
37912 fra.me.has_broke = 0;
37913 fra.me.REG_size = 3;
37914 fra.me.REG[0] = NIT_NULL;
37915 fra.me.REG[1] = NIT_NULL;
37916 fra.me.REG[2] = NIT_NULL;
37917 fra.me.REG[0] = p0;
37918 fra.me.REG[1] = p1;
37919 /* ./parser//parser_prod.nit:7060 */
37920 fra.me.REG[2] = fra.me.REG[0];
37921 /* ./parser//parser_prod.nit:7064 */
37922 CALL_parser___parser_prod___AMinusAssignOp___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
37923 /* ./parser//parser_prod.nit:7065 */
37924 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37925 if (UNTAG_Bool(REGB0)) {
37926 } else {
37927 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7065);
37928 }
37929 ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[2]) = fra.me.REG[1];
37930 /* ./parser//parser_prod.nit:7066 */
37931 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37932 if (UNTAG_Bool(REGB0)) {
37933 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7066);
37934 }
37935 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37936 stack_frame_head = fra.me.prev;
37937 init_table[itpos254] = 1;
37938 return;
37939 }
37940 void parser___parser_prod___AMinusAssignOp___replace_child(val_t p0, val_t p1, val_t p2){
37941 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37942 val_t REGB0;
37943 val_t REGB1;
37944 val_t tmp;
37945 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37946 fra.me.file = LOCATE_parser___parser_prod;
37947 fra.me.line = 7069;
37948 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___replace_child;
37949 fra.me.has_broke = 0;
37950 fra.me.REG_size = 4;
37951 fra.me.REG[0] = NIT_NULL;
37952 fra.me.REG[1] = NIT_NULL;
37953 fra.me.REG[2] = NIT_NULL;
37954 fra.me.REG[3] = NIT_NULL;
37955 fra.me.REG[0] = p0;
37956 fra.me.REG[1] = p1;
37957 fra.me.REG[2] = p2;
37958 /* ./parser//parser_prod.nit:7071 */
37959 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0])!=NIT_NULL);
37960 if (UNTAG_Bool(REGB0)) {
37961 } else {
37962 nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser___parser_prod, 7071);
37963 }
37964 fra.me.REG[3] = ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]);
37965 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37966 if (UNTAG_Bool(REGB0)) {
37967 } else {
37968 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37969 REGB0 = REGB1;
37970 }
37971 if (UNTAG_Bool(REGB0)) {
37972 /* ./parser//parser_prod.nit:7072 */
37973 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37974 if (UNTAG_Bool(REGB0)) {
37975 } else {
37976 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37977 if (UNTAG_Bool(REGB1)) {
37978 REGB1 = TAG_Bool(false);
37979 REGB0 = REGB1;
37980 } else {
37981 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37982 REGB0 = REGB1;
37983 }
37984 }
37985 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37986 if (UNTAG_Bool(REGB0)) {
37987 /* ./parser//parser_prod.nit:7073 */
37988 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37989 if (UNTAG_Bool(REGB0)) {
37990 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7073);
37991 }
37992 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37993 /* ./parser//parser_prod.nit:7074 */
37994 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*/;
37995 if (UNTAG_Bool(REGB0)) {
37996 } else {
37997 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7074);
37998 }
37999 /* ./parser//parser_prod.nit:7075 */
38000 ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]) = fra.me.REG[2];
38001 } else {
38002 /* ./parser//parser_prod.nit:7077 */
38003 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7077);
38004 }
38005 /* ./parser//parser_prod.nit:7079 */
38006 goto label1;
38007 }
38008 label1: while(0);
38009 stack_frame_head = fra.me.prev;
38010 return;
38011 }
38012 void parser___parser_prod___AMinusAssignOp___visit_all(val_t p0, val_t p1){
38013 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38014 val_t REGB0;
38015 val_t tmp;
38016 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38017 fra.me.file = LOCATE_parser___parser_prod;
38018 fra.me.line = 7083;
38019 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___visit_all;
38020 fra.me.has_broke = 0;
38021 fra.me.REG_size = 2;
38022 fra.me.REG[0] = NIT_NULL;
38023 fra.me.REG[1] = NIT_NULL;
38024 fra.me.REG[0] = p0;
38025 fra.me.REG[1] = p1;
38026 /* ./parser//parser_prod.nit:7085 */
38027 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0])!=NIT_NULL);
38028 if (UNTAG_Bool(REGB0)) {
38029 } else {
38030 nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser___parser_prod, 7085);
38031 }
38032 fra.me.REG[0] = ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]);
38033 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38034 stack_frame_head = fra.me.prev;
38035 return;
38036 }
38037 void parser___parser_prod___AClosureDef___empty_init(val_t p0, int* init_table){
38038 int itpos255 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDef].i;
38039 struct {struct stack_frame_t me;} fra;
38040 val_t tmp;
38041 if (init_table[itpos255]) return;
38042 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38043 fra.me.file = LOCATE_parser___parser_prod;
38044 fra.me.line = 7089;
38045 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___empty_init;
38046 fra.me.has_broke = 0;
38047 fra.me.REG_size = 1;
38048 fra.me.REG[0] = NIT_NULL;
38049 fra.me.REG[0] = p0;
38050 stack_frame_head = fra.me.prev;
38051 init_table[itpos255] = 1;
38052 return;
38053 }
38054 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){
38055 int itpos256 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDef].i;
38056 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
38057 val_t REGB0;
38058 val_t REGB1;
38059 val_t tmp;
38060 if (init_table[itpos256]) return;
38061 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38062 fra.me.file = LOCATE_parser___parser_prod;
38063 fra.me.line = 7091;
38064 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___init_aclosuredef;
38065 fra.me.has_broke = 0;
38066 fra.me.REG_size = 8;
38067 fra.me.REG[0] = NIT_NULL;
38068 fra.me.REG[1] = NIT_NULL;
38069 fra.me.REG[2] = NIT_NULL;
38070 fra.me.REG[3] = NIT_NULL;
38071 fra.me.REG[4] = NIT_NULL;
38072 fra.me.REG[5] = NIT_NULL;
38073 fra.me.REG[6] = NIT_NULL;
38074 fra.me.REG[7] = NIT_NULL;
38075 fra.me.REG[0] = p0;
38076 fra.me.REG[1] = p1;
38077 fra.me.REG[2] = p2;
38078 fra.me.REG[3] = p3;
38079 fra.me.REG[4] = p4;
38080 fra.me.REG[5] = p5;
38081 fra.me.REG[6] = p6;
38082 /* ./parser//parser_prod.nit:7091 */
38083 fra.me.REG[7] = fra.me.REG[0];
38084 /* ./parser//parser_prod.nit:7100 */
38085 CALL_parser___parser_prod___AClosureDef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
38086 /* ./parser//parser_prod.nit:7101 */
38087 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38088 if (UNTAG_Bool(REGB0)) {
38089 } else {
38090 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7101);
38091 }
38092 ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[7]) = fra.me.REG[1];
38093 /* ./parser//parser_prod.nit:7102 */
38094 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38095 if (UNTAG_Bool(REGB0)) {
38096 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7102);
38097 }
38098 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
38099 /* ./parser//parser_prod.nit:7103 */
38100 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
38101 if (UNTAG_Bool(REGB0)) {
38102 } else {
38103 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7103);
38104 }
38105 ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[7]) = fra.me.REG[2];
38106 /* ./parser//parser_prod.nit:7104 */
38107 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38108 if (UNTAG_Bool(REGB0)) {
38109 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7104);
38110 }
38111 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
38112 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));
38113 /* ./parser//parser_prod.nit:7110 */
38114 ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[7]) = fra.me.REG[4];
38115 /* ./parser//parser_prod.nit:7111 */
38116 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
38117 if (UNTAG_Bool(REGB0)) {
38118 } else {
38119 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
38120 if (UNTAG_Bool(REGB1)) {
38121 REGB1 = TAG_Bool(false);
38122 REGB0 = REGB1;
38123 } else {
38124 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
38125 REGB0 = REGB1;
38126 }
38127 }
38128 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38129 if (UNTAG_Bool(REGB0)) {
38130 /* ./parser//parser_prod.nit:7112 */
38131 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
38132 if (UNTAG_Bool(REGB0)) {
38133 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7112);
38134 }
38135 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
38136 }
38137 /* ./parser//parser_prod.nit:7114 */
38138 ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[7]) = fra.me.REG[5];
38139 /* ./parser//parser_prod.nit:7115 */
38140 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
38141 if (UNTAG_Bool(REGB0)) {
38142 } else {
38143 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
38144 if (UNTAG_Bool(REGB1)) {
38145 REGB1 = TAG_Bool(false);
38146 REGB0 = REGB1;
38147 } else {
38148 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
38149 REGB0 = REGB1;
38150 }
38151 }
38152 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38153 if (UNTAG_Bool(REGB0)) {
38154 /* ./parser//parser_prod.nit:7116 */
38155 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
38156 if (UNTAG_Bool(REGB0)) {
38157 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7116);
38158 }
38159 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
38160 }
38161 /* ./parser//parser_prod.nit:7118 */
38162 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[7]) = fra.me.REG[6];
38163 /* ./parser//parser_prod.nit:7119 */
38164 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
38165 if (UNTAG_Bool(REGB0)) {
38166 } else {
38167 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
38168 if (UNTAG_Bool(REGB1)) {
38169 REGB1 = TAG_Bool(false);
38170 REGB0 = REGB1;
38171 } else {
38172 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
38173 REGB0 = REGB1;
38174 }
38175 }
38176 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38177 if (UNTAG_Bool(REGB0)) {
38178 /* ./parser//parser_prod.nit:7120 */
38179 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
38180 if (UNTAG_Bool(REGB0)) {
38181 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7120);
38182 }
38183 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
38184 }
38185 stack_frame_head = fra.me.prev;
38186 init_table[itpos256] = 1;
38187 return;
38188 }
38189 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){
38190 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38191 val_t REGB0;
38192 fun_t CREG[1];
38193 val_t tmp;
38194 /* ./parser//parser_prod.nit:7105 */
38195 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38196 fra.me.file = LOCATE_parser___parser_prod;
38197 fra.me.line = 0;
38198 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___init_aclosuredef;
38199 fra.me.has_broke = 0;
38200 fra.me.REG_size = 2;
38201 fra.me.REG[0] = NIT_NULL;
38202 fra.me.REG[1] = NIT_NULL;
38203 fra.me.closure_ctx = closctx_param;
38204 fra.me.closure_funs = CREG;
38205 fra.me.REG[0] = p0;
38206 CREG[0] = clos_fun0;
38207 /* ./parser//parser_prod.nit:7106 */
38208 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
38209 if (UNTAG_Bool(REGB0)) {
38210 } else {
38211 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7106);
38212 }
38213 /* ./parser//parser_prod.nit:7107 */
38214 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(closctx->REG[7])!=NIT_NULL);
38215 if (UNTAG_Bool(REGB0)) {
38216 } else {
38217 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7107);
38218 }
38219 fra.me.REG[1] = ATTR_parser___parser_nodes___AClosureDef____n_ids(closctx->REG[7]);
38220 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38221 /* ./parser//parser_prod.nit:7108 */
38222 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[7]);
38223 stack_frame_head = fra.me.prev;
38224 return;
38225 }
38226 void parser___parser_prod___AClosureDef___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 REGB2;
38231 val_t REGB3;
38232 val_t REGB4;
38233 val_t tmp;
38234 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38235 fra.me.file = LOCATE_parser___parser_prod;
38236 fra.me.line = 7124;
38237 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___replace_child;
38238 fra.me.has_broke = 0;
38239 fra.me.REG_size = 4;
38240 fra.me.REG[0] = NIT_NULL;
38241 fra.me.REG[1] = NIT_NULL;
38242 fra.me.REG[2] = NIT_NULL;
38243 fra.me.REG[3] = NIT_NULL;
38244 fra.me.REG[0] = p0;
38245 fra.me.REG[1] = p1;
38246 fra.me.REG[2] = p2;
38247 /* ./parser//parser_prod.nit:7126 */
38248 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0])!=NIT_NULL);
38249 if (UNTAG_Bool(REGB0)) {
38250 } else {
38251 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 7126);
38252 }
38253 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0]);
38254 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38255 if (UNTAG_Bool(REGB0)) {
38256 } else {
38257 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38258 REGB0 = REGB1;
38259 }
38260 if (UNTAG_Bool(REGB0)) {
38261 /* ./parser//parser_prod.nit:7127 */
38262 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38263 if (UNTAG_Bool(REGB0)) {
38264 } else {
38265 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38266 if (UNTAG_Bool(REGB1)) {
38267 REGB1 = TAG_Bool(false);
38268 REGB0 = REGB1;
38269 } else {
38270 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38271 REGB0 = REGB1;
38272 }
38273 }
38274 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38275 if (UNTAG_Bool(REGB0)) {
38276 /* ./parser//parser_prod.nit:7128 */
38277 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38278 if (UNTAG_Bool(REGB0)) {
38279 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7128);
38280 }
38281 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38282 /* ./parser//parser_prod.nit:7129 */
38283 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*/;
38284 if (UNTAG_Bool(REGB0)) {
38285 } else {
38286 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7129);
38287 }
38288 /* ./parser//parser_prod.nit:7130 */
38289 ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0]) = fra.me.REG[2];
38290 } else {
38291 /* ./parser//parser_prod.nit:7132 */
38292 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7132);
38293 }
38294 /* ./parser//parser_prod.nit:7134 */
38295 goto label1;
38296 }
38297 /* ./parser//parser_prod.nit:7136 */
38298 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0])!=NIT_NULL);
38299 if (UNTAG_Bool(REGB0)) {
38300 } else {
38301 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7136);
38302 }
38303 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0]);
38304 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38305 if (UNTAG_Bool(REGB0)) {
38306 } else {
38307 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38308 REGB0 = REGB1;
38309 }
38310 if (UNTAG_Bool(REGB0)) {
38311 /* ./parser//parser_prod.nit:7137 */
38312 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38313 if (UNTAG_Bool(REGB0)) {
38314 } else {
38315 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38316 if (UNTAG_Bool(REGB1)) {
38317 REGB1 = TAG_Bool(false);
38318 REGB0 = REGB1;
38319 } else {
38320 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38321 REGB0 = REGB1;
38322 }
38323 }
38324 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38325 if (UNTAG_Bool(REGB0)) {
38326 /* ./parser//parser_prod.nit:7138 */
38327 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38328 if (UNTAG_Bool(REGB0)) {
38329 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7138);
38330 }
38331 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38332 /* ./parser//parser_prod.nit:7139 */
38333 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*/;
38334 if (UNTAG_Bool(REGB0)) {
38335 } else {
38336 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7139);
38337 }
38338 /* ./parser//parser_prod.nit:7140 */
38339 ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0]) = fra.me.REG[2];
38340 } else {
38341 /* ./parser//parser_prod.nit:7142 */
38342 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7142);
38343 }
38344 /* ./parser//parser_prod.nit:7144 */
38345 goto label1;
38346 }
38347 /* ./parser//parser_prod.nit:7146 */
38348 REGB0 = TAG_Int(0);
38349 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
38350 if (UNTAG_Bool(REGB1)) {
38351 } else {
38352 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7146);
38353 }
38354 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
38355 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
38356 /* ./../lib/standard//kernel.nit:335 */
38357 while(1) {
38358 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
38359 if (UNTAG_Bool(REGB2)) {
38360 } else {
38361 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
38362 }
38363 /* ./../lib/standard//kernel.nit:215 */
38364 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
38365 /* ./../lib/standard//kernel.nit:335 */
38366 if (UNTAG_Bool(REGB2)) {
38367 /* ./parser//parser_prod.nit:7146 */
38368 REGB2 = REGB0;
38369 /* ./parser//parser_prod.nit:7147 */
38370 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
38371 if (UNTAG_Bool(REGB3)) {
38372 } else {
38373 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7147);
38374 }
38375 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
38376 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
38377 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
38378 if (UNTAG_Bool(REGB3)) {
38379 } else {
38380 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38381 if (UNTAG_Bool(REGB4)) {
38382 REGB4 = TAG_Bool(false);
38383 REGB3 = REGB4;
38384 } else {
38385 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38386 REGB3 = REGB4;
38387 }
38388 }
38389 if (UNTAG_Bool(REGB3)) {
38390 /* ./parser//parser_prod.nit:7148 */
38391 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38392 if (UNTAG_Bool(REGB3)) {
38393 } else {
38394 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38395 if (UNTAG_Bool(REGB4)) {
38396 REGB4 = TAG_Bool(false);
38397 REGB3 = REGB4;
38398 } else {
38399 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38400 REGB3 = REGB4;
38401 }
38402 }
38403 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
38404 if (UNTAG_Bool(REGB3)) {
38405 /* ./parser//parser_prod.nit:7149 */
38406 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*/;
38407 if (UNTAG_Bool(REGB3)) {
38408 } else {
38409 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7149);
38410 }
38411 /* ./parser//parser_prod.nit:7150 */
38412 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
38413 if (UNTAG_Bool(REGB3)) {
38414 } else {
38415 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7150);
38416 }
38417 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
38418 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
38419 /* ./parser//parser_prod.nit:7151 */
38420 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38421 if (UNTAG_Bool(REGB3)) {
38422 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7151);
38423 }
38424 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38425 } else {
38426 /* ./parser//parser_prod.nit:7153 */
38427 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
38428 if (UNTAG_Bool(REGB3)) {
38429 } else {
38430 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7153);
38431 }
38432 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
38433 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
38434 }
38435 /* ./parser//parser_prod.nit:7155 */
38436 goto label1;
38437 }
38438 /* ./../lib/standard//kernel.nit:337 */
38439 REGB2 = TAG_Int(1);
38440 /* ./../lib/standard//kernel.nit:218 */
38441 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
38442 /* ./../lib/standard//kernel.nit:337 */
38443 REGB0 = REGB2;
38444 } else {
38445 /* ./../lib/standard//kernel.nit:335 */
38446 goto label2;
38447 }
38448 }
38449 label2: while(0);
38450 /* ./parser//parser_prod.nit:7158 */
38451 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]);
38452 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
38453 if (UNTAG_Bool(REGB0)) {
38454 } else {
38455 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38456 if (UNTAG_Bool(REGB1)) {
38457 REGB1 = TAG_Bool(false);
38458 REGB0 = REGB1;
38459 } else {
38460 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38461 REGB0 = REGB1;
38462 }
38463 }
38464 if (UNTAG_Bool(REGB0)) {
38465 /* ./parser//parser_prod.nit:7159 */
38466 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38467 if (UNTAG_Bool(REGB0)) {
38468 } else {
38469 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38470 if (UNTAG_Bool(REGB1)) {
38471 REGB1 = TAG_Bool(false);
38472 REGB0 = REGB1;
38473 } else {
38474 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38475 REGB0 = REGB1;
38476 }
38477 }
38478 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38479 if (UNTAG_Bool(REGB0)) {
38480 /* ./parser//parser_prod.nit:7160 */
38481 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38482 if (UNTAG_Bool(REGB0)) {
38483 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7160);
38484 }
38485 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38486 /* ./parser//parser_prod.nit:7161 */
38487 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*/;
38488 if (UNTAG_Bool(REGB0)) {
38489 } else {
38490 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7161);
38491 }
38492 /* ./parser//parser_prod.nit:7162 */
38493 ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
38494 } else {
38495 /* ./parser//parser_prod.nit:7164 */
38496 ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = NIT_NULL;
38497 }
38498 /* ./parser//parser_prod.nit:7166 */
38499 goto label1;
38500 }
38501 /* ./parser//parser_prod.nit:7168 */
38502 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]);
38503 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
38504 if (UNTAG_Bool(REGB0)) {
38505 } else {
38506 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38507 if (UNTAG_Bool(REGB1)) {
38508 REGB1 = TAG_Bool(false);
38509 REGB0 = REGB1;
38510 } else {
38511 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38512 REGB0 = REGB1;
38513 }
38514 }
38515 if (UNTAG_Bool(REGB0)) {
38516 /* ./parser//parser_prod.nit:7169 */
38517 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38518 if (UNTAG_Bool(REGB0)) {
38519 } else {
38520 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38521 if (UNTAG_Bool(REGB1)) {
38522 REGB1 = TAG_Bool(false);
38523 REGB0 = REGB1;
38524 } else {
38525 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38526 REGB0 = REGB1;
38527 }
38528 }
38529 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38530 if (UNTAG_Bool(REGB0)) {
38531 /* ./parser//parser_prod.nit:7170 */
38532 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38533 if (UNTAG_Bool(REGB0)) {
38534 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7170);
38535 }
38536 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38537 /* ./parser//parser_prod.nit:7171 */
38538 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
38539 if (UNTAG_Bool(REGB0)) {
38540 } else {
38541 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7171);
38542 }
38543 /* ./parser//parser_prod.nit:7172 */
38544 ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = fra.me.REG[2];
38545 } else {
38546 /* ./parser//parser_prod.nit:7174 */
38547 ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = NIT_NULL;
38548 }
38549 /* ./parser//parser_prod.nit:7176 */
38550 goto label1;
38551 }
38552 /* ./parser//parser_prod.nit:7178 */
38553 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
38554 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
38555 if (UNTAG_Bool(REGB0)) {
38556 } else {
38557 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38558 if (UNTAG_Bool(REGB1)) {
38559 REGB1 = TAG_Bool(false);
38560 REGB0 = REGB1;
38561 } else {
38562 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38563 REGB0 = REGB1;
38564 }
38565 }
38566 if (UNTAG_Bool(REGB0)) {
38567 /* ./parser//parser_prod.nit:7179 */
38568 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38569 if (UNTAG_Bool(REGB0)) {
38570 } else {
38571 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38572 if (UNTAG_Bool(REGB1)) {
38573 REGB1 = TAG_Bool(false);
38574 REGB0 = REGB1;
38575 } else {
38576 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38577 REGB0 = REGB1;
38578 }
38579 }
38580 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38581 if (UNTAG_Bool(REGB0)) {
38582 /* ./parser//parser_prod.nit:7180 */
38583 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38584 if (UNTAG_Bool(REGB0)) {
38585 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7180);
38586 }
38587 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38588 /* ./parser//parser_prod.nit:7181 */
38589 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*/;
38590 if (UNTAG_Bool(REGB0)) {
38591 } else {
38592 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7181);
38593 }
38594 /* ./parser//parser_prod.nit:7182 */
38595 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
38596 } else {
38597 /* ./parser//parser_prod.nit:7184 */
38598 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
38599 }
38600 /* ./parser//parser_prod.nit:7186 */
38601 goto label1;
38602 }
38603 label1: while(0);
38604 stack_frame_head = fra.me.prev;
38605 return;
38606 }
38607 void parser___parser_prod___AClosureDef___visit_all(val_t p0, val_t p1){
38608 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38609 val_t REGB0;
38610 val_t REGB1;
38611 val_t tmp;
38612 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38613 fra.me.file = LOCATE_parser___parser_prod;
38614 fra.me.line = 7190;
38615 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___visit_all;
38616 fra.me.has_broke = 0;
38617 fra.me.REG_size = 4;
38618 fra.me.REG[0] = NIT_NULL;
38619 fra.me.REG[1] = NIT_NULL;
38620 fra.me.REG[2] = NIT_NULL;
38621 fra.me.REG[3] = NIT_NULL;
38622 fra.me.REG[0] = p0;
38623 fra.me.REG[1] = p1;
38624 /* ./parser//parser_prod.nit:7190 */
38625 fra.me.REG[2] = fra.me.REG[0];
38626 /* ./parser//parser_prod.nit:7192 */
38627 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[2])!=NIT_NULL);
38628 if (UNTAG_Bool(REGB0)) {
38629 } else {
38630 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 7192);
38631 }
38632 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[2]);
38633 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
38634 /* ./parser//parser_prod.nit:7193 */
38635 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[2])!=NIT_NULL);
38636 if (UNTAG_Bool(REGB0)) {
38637 } else {
38638 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7193);
38639 }
38640 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[2]);
38641 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
38642 /* ./parser//parser_prod.nit:7194 */
38643 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[2])!=NIT_NULL);
38644 if (UNTAG_Bool(REGB0)) {
38645 } else {
38646 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7194);
38647 }
38648 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[2]);
38649 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));
38650 /* ./parser//parser_prod.nit:7197 */
38651 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[2]);
38652 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38653 if (UNTAG_Bool(REGB0)) {
38654 } else {
38655 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38656 if (UNTAG_Bool(REGB1)) {
38657 REGB1 = TAG_Bool(false);
38658 REGB0 = REGB1;
38659 } else {
38660 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38661 REGB0 = REGB1;
38662 }
38663 }
38664 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38665 if (UNTAG_Bool(REGB0)) {
38666 /* ./parser//parser_prod.nit:7198 */
38667 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[2]);
38668 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*/;
38669 if (UNTAG_Bool(REGB0)) {
38670 } else {
38671 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7198);
38672 }
38673 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
38674 }
38675 /* ./parser//parser_prod.nit:7200 */
38676 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[2]);
38677 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38678 if (UNTAG_Bool(REGB0)) {
38679 } else {
38680 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38681 if (UNTAG_Bool(REGB1)) {
38682 REGB1 = TAG_Bool(false);
38683 REGB0 = REGB1;
38684 } else {
38685 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38686 REGB0 = REGB1;
38687 }
38688 }
38689 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38690 if (UNTAG_Bool(REGB0)) {
38691 /* ./parser//parser_prod.nit:7201 */
38692 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[2]);
38693 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*/;
38694 if (UNTAG_Bool(REGB0)) {
38695 } else {
38696 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7201);
38697 }
38698 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
38699 }
38700 /* ./parser//parser_prod.nit:7203 */
38701 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
38702 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38703 if (UNTAG_Bool(REGB0)) {
38704 } else {
38705 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38706 if (UNTAG_Bool(REGB1)) {
38707 REGB1 = TAG_Bool(false);
38708 REGB0 = REGB1;
38709 } else {
38710 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38711 REGB0 = REGB1;
38712 }
38713 }
38714 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38715 if (UNTAG_Bool(REGB0)) {
38716 /* ./parser//parser_prod.nit:7204 */
38717 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
38718 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*/;
38719 if (UNTAG_Bool(REGB0)) {
38720 } else {
38721 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7204);
38722 }
38723 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38724 }
38725 stack_frame_head = fra.me.prev;
38726 return;
38727 }
38728 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){
38729 struct {struct stack_frame_t me;} fra;
38730 fun_t CREG[1];
38731 val_t tmp;
38732 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38733 fra.me.file = LOCATE_parser___parser_prod;
38734 fra.me.line = 0;
38735 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___visit_all;
38736 fra.me.has_broke = 0;
38737 fra.me.REG_size = 1;
38738 fra.me.REG[0] = NIT_NULL;
38739 fra.me.closure_ctx = closctx_param;
38740 fra.me.closure_funs = CREG;
38741 fra.me.REG[0] = p0;
38742 CREG[0] = clos_fun0;
38743 /* ./parser//parser_prod.nit:7195 */
38744 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
38745 stack_frame_head = fra.me.prev;
38746 return;
38747 }
38748 void parser___parser_prod___ASimpleClosureId___empty_init(val_t p0, int* init_table){
38749 int itpos257 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASimpleClosureId].i;
38750 struct {struct stack_frame_t me;} fra;
38751 val_t tmp;
38752 if (init_table[itpos257]) return;
38753 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38754 fra.me.file = LOCATE_parser___parser_prod;
38755 fra.me.line = 7209;
38756 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___empty_init;
38757 fra.me.has_broke = 0;
38758 fra.me.REG_size = 1;
38759 fra.me.REG[0] = NIT_NULL;
38760 fra.me.REG[0] = p0;
38761 stack_frame_head = fra.me.prev;
38762 init_table[itpos257] = 1;
38763 return;
38764 }
38765 void parser___parser_prod___ASimpleClosureId___init_asimpleclosureid(val_t p0, val_t p1, int* init_table){
38766 int itpos258 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASimpleClosureId].i;
38767 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38768 val_t REGB0;
38769 val_t tmp;
38770 if (init_table[itpos258]) return;
38771 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38772 fra.me.file = LOCATE_parser___parser_prod;
38773 fra.me.line = 7211;
38774 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___init_asimpleclosureid;
38775 fra.me.has_broke = 0;
38776 fra.me.REG_size = 3;
38777 fra.me.REG[0] = NIT_NULL;
38778 fra.me.REG[1] = NIT_NULL;
38779 fra.me.REG[2] = NIT_NULL;
38780 fra.me.REG[0] = p0;
38781 fra.me.REG[1] = p1;
38782 /* ./parser//parser_prod.nit:7211 */
38783 fra.me.REG[2] = fra.me.REG[0];
38784 /* ./parser//parser_prod.nit:7215 */
38785 CALL_parser___parser_prod___ASimpleClosureId___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
38786 /* ./parser//parser_prod.nit:7216 */
38787 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38788 if (UNTAG_Bool(REGB0)) {
38789 } else {
38790 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7216);
38791 }
38792 ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[2]) = fra.me.REG[1];
38793 /* ./parser//parser_prod.nit:7217 */
38794 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38795 if (UNTAG_Bool(REGB0)) {
38796 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7217);
38797 }
38798 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38799 stack_frame_head = fra.me.prev;
38800 init_table[itpos258] = 1;
38801 return;
38802 }
38803 void parser___parser_prod___ASimpleClosureId___replace_child(val_t p0, val_t p1, val_t p2){
38804 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38805 val_t REGB0;
38806 val_t REGB1;
38807 val_t tmp;
38808 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38809 fra.me.file = LOCATE_parser___parser_prod;
38810 fra.me.line = 7220;
38811 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___replace_child;
38812 fra.me.has_broke = 0;
38813 fra.me.REG_size = 4;
38814 fra.me.REG[0] = NIT_NULL;
38815 fra.me.REG[1] = NIT_NULL;
38816 fra.me.REG[2] = NIT_NULL;
38817 fra.me.REG[3] = NIT_NULL;
38818 fra.me.REG[0] = p0;
38819 fra.me.REG[1] = p1;
38820 fra.me.REG[2] = p2;
38821 /* ./parser//parser_prod.nit:7222 */
38822 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0])!=NIT_NULL);
38823 if (UNTAG_Bool(REGB0)) {
38824 } else {
38825 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7222);
38826 }
38827 fra.me.REG[3] = ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]);
38828 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38829 if (UNTAG_Bool(REGB0)) {
38830 } else {
38831 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38832 REGB0 = REGB1;
38833 }
38834 if (UNTAG_Bool(REGB0)) {
38835 /* ./parser//parser_prod.nit:7223 */
38836 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38837 if (UNTAG_Bool(REGB0)) {
38838 } else {
38839 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38840 if (UNTAG_Bool(REGB1)) {
38841 REGB1 = TAG_Bool(false);
38842 REGB0 = REGB1;
38843 } else {
38844 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38845 REGB0 = REGB1;
38846 }
38847 }
38848 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38849 if (UNTAG_Bool(REGB0)) {
38850 /* ./parser//parser_prod.nit:7224 */
38851 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38852 if (UNTAG_Bool(REGB0)) {
38853 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7224);
38854 }
38855 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38856 /* ./parser//parser_prod.nit:7225 */
38857 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*/;
38858 if (UNTAG_Bool(REGB0)) {
38859 } else {
38860 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7225);
38861 }
38862 /* ./parser//parser_prod.nit:7226 */
38863 ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]) = fra.me.REG[2];
38864 } else {
38865 /* ./parser//parser_prod.nit:7228 */
38866 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7228);
38867 }
38868 /* ./parser//parser_prod.nit:7230 */
38869 goto label1;
38870 }
38871 label1: while(0);
38872 stack_frame_head = fra.me.prev;
38873 return;
38874 }
38875 void parser___parser_prod___ASimpleClosureId___visit_all(val_t p0, val_t p1){
38876 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38877 val_t REGB0;
38878 val_t tmp;
38879 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38880 fra.me.file = LOCATE_parser___parser_prod;
38881 fra.me.line = 7234;
38882 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___visit_all;
38883 fra.me.has_broke = 0;
38884 fra.me.REG_size = 2;
38885 fra.me.REG[0] = NIT_NULL;
38886 fra.me.REG[1] = NIT_NULL;
38887 fra.me.REG[0] = p0;
38888 fra.me.REG[1] = p1;
38889 /* ./parser//parser_prod.nit:7236 */
38890 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0])!=NIT_NULL);
38891 if (UNTAG_Bool(REGB0)) {
38892 } else {
38893 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7236);
38894 }
38895 fra.me.REG[0] = ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]);
38896 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38897 stack_frame_head = fra.me.prev;
38898 return;
38899 }
38900 void parser___parser_prod___ABreakClosureId___empty_init(val_t p0, int* init_table){
38901 int itpos259 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakClosureId].i;
38902 struct {struct stack_frame_t me;} fra;
38903 val_t tmp;
38904 if (init_table[itpos259]) return;
38905 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38906 fra.me.file = LOCATE_parser___parser_prod;
38907 fra.me.line = 7240;
38908 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___empty_init;
38909 fra.me.has_broke = 0;
38910 fra.me.REG_size = 1;
38911 fra.me.REG[0] = NIT_NULL;
38912 fra.me.REG[0] = p0;
38913 stack_frame_head = fra.me.prev;
38914 init_table[itpos259] = 1;
38915 return;
38916 }
38917 void parser___parser_prod___ABreakClosureId___init_abreakclosureid(val_t p0, val_t p1, int* init_table){
38918 int itpos260 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakClosureId].i;
38919 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38920 val_t REGB0;
38921 val_t tmp;
38922 if (init_table[itpos260]) return;
38923 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38924 fra.me.file = LOCATE_parser___parser_prod;
38925 fra.me.line = 7242;
38926 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___init_abreakclosureid;
38927 fra.me.has_broke = 0;
38928 fra.me.REG_size = 3;
38929 fra.me.REG[0] = NIT_NULL;
38930 fra.me.REG[1] = NIT_NULL;
38931 fra.me.REG[2] = NIT_NULL;
38932 fra.me.REG[0] = p0;
38933 fra.me.REG[1] = p1;
38934 /* ./parser//parser_prod.nit:7242 */
38935 fra.me.REG[2] = fra.me.REG[0];
38936 /* ./parser//parser_prod.nit:7246 */
38937 CALL_parser___parser_prod___ABreakClosureId___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
38938 /* ./parser//parser_prod.nit:7247 */
38939 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38940 if (UNTAG_Bool(REGB0)) {
38941 } else {
38942 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7247);
38943 }
38944 ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[2]) = fra.me.REG[1];
38945 /* ./parser//parser_prod.nit:7248 */
38946 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38947 if (UNTAG_Bool(REGB0)) {
38948 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7248);
38949 }
38950 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38951 stack_frame_head = fra.me.prev;
38952 init_table[itpos260] = 1;
38953 return;
38954 }
38955 void parser___parser_prod___ABreakClosureId___replace_child(val_t p0, val_t p1, val_t p2){
38956 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38957 val_t REGB0;
38958 val_t REGB1;
38959 val_t tmp;
38960 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38961 fra.me.file = LOCATE_parser___parser_prod;
38962 fra.me.line = 7251;
38963 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___replace_child;
38964 fra.me.has_broke = 0;
38965 fra.me.REG_size = 4;
38966 fra.me.REG[0] = NIT_NULL;
38967 fra.me.REG[1] = NIT_NULL;
38968 fra.me.REG[2] = NIT_NULL;
38969 fra.me.REG[3] = NIT_NULL;
38970 fra.me.REG[0] = p0;
38971 fra.me.REG[1] = p1;
38972 fra.me.REG[2] = p2;
38973 /* ./parser//parser_prod.nit:7253 */
38974 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
38975 if (UNTAG_Bool(REGB0)) {
38976 } else {
38977 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 7253);
38978 }
38979 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]);
38980 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38981 if (UNTAG_Bool(REGB0)) {
38982 } else {
38983 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38984 REGB0 = REGB1;
38985 }
38986 if (UNTAG_Bool(REGB0)) {
38987 /* ./parser//parser_prod.nit:7254 */
38988 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38989 if (UNTAG_Bool(REGB0)) {
38990 } else {
38991 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38992 if (UNTAG_Bool(REGB1)) {
38993 REGB1 = TAG_Bool(false);
38994 REGB0 = REGB1;
38995 } else {
38996 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38997 REGB0 = REGB1;
38998 }
38999 }
39000 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39001 if (UNTAG_Bool(REGB0)) {
39002 /* ./parser//parser_prod.nit:7255 */
39003 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39004 if (UNTAG_Bool(REGB0)) {
39005 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7255);
39006 }
39007 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39008 /* ./parser//parser_prod.nit:7256 */
39009 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*/;
39010 if (UNTAG_Bool(REGB0)) {
39011 } else {
39012 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7256);
39013 }
39014 /* ./parser//parser_prod.nit:7257 */
39015 ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
39016 } else {
39017 /* ./parser//parser_prod.nit:7259 */
39018 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7259);
39019 }
39020 /* ./parser//parser_prod.nit:7261 */
39021 goto label1;
39022 }
39023 label1: while(0);
39024 stack_frame_head = fra.me.prev;
39025 return;
39026 }
39027 void parser___parser_prod___ABreakClosureId___visit_all(val_t p0, val_t p1){
39028 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39029 val_t REGB0;
39030 val_t tmp;
39031 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39032 fra.me.file = LOCATE_parser___parser_prod;
39033 fra.me.line = 7265;
39034 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___visit_all;
39035 fra.me.has_broke = 0;
39036 fra.me.REG_size = 2;
39037 fra.me.REG[0] = NIT_NULL;
39038 fra.me.REG[1] = NIT_NULL;
39039 fra.me.REG[0] = p0;
39040 fra.me.REG[1] = p1;
39041 /* ./parser//parser_prod.nit:7267 */
39042 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
39043 if (UNTAG_Bool(REGB0)) {
39044 } else {
39045 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 7267);
39046 }
39047 fra.me.REG[0] = ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]);
39048 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39049 stack_frame_head = fra.me.prev;
39050 return;
39051 }
39052 void parser___parser_prod___AModuleName___empty_init(val_t p0, int* init_table){
39053 int itpos261 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuleName].i;
39054 struct {struct stack_frame_t me;} fra;
39055 val_t tmp;
39056 if (init_table[itpos261]) return;
39057 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39058 fra.me.file = LOCATE_parser___parser_prod;
39059 fra.me.line = 7271;
39060 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___empty_init;
39061 fra.me.has_broke = 0;
39062 fra.me.REG_size = 1;
39063 fra.me.REG[0] = NIT_NULL;
39064 fra.me.REG[0] = p0;
39065 stack_frame_head = fra.me.prev;
39066 init_table[itpos261] = 1;
39067 return;
39068 }
39069 void parser___parser_prod___AModuleName___init_amodulename(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
39070 int itpos262 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuleName].i;
39071 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
39072 val_t REGB0;
39073 val_t REGB1;
39074 val_t tmp;
39075 if (init_table[itpos262]) return;
39076 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39077 fra.me.file = LOCATE_parser___parser_prod;
39078 fra.me.line = 7273;
39079 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___init_amodulename;
39080 fra.me.has_broke = 0;
39081 fra.me.REG_size = 5;
39082 fra.me.REG[0] = NIT_NULL;
39083 fra.me.REG[1] = NIT_NULL;
39084 fra.me.REG[2] = NIT_NULL;
39085 fra.me.REG[3] = NIT_NULL;
39086 fra.me.REG[4] = NIT_NULL;
39087 fra.me.REG[0] = p0;
39088 fra.me.REG[1] = p1;
39089 fra.me.REG[2] = p2;
39090 fra.me.REG[3] = p3;
39091 /* ./parser//parser_prod.nit:7273 */
39092 fra.me.REG[4] = fra.me.REG[0];
39093 /* ./parser//parser_prod.nit:7279 */
39094 CALL_parser___parser_prod___AModuleName___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
39095 /* ./parser//parser_prod.nit:7280 */
39096 ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[4]) = fra.me.REG[1];
39097 /* ./parser//parser_prod.nit:7281 */
39098 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39099 if (UNTAG_Bool(REGB0)) {
39100 } else {
39101 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39102 if (UNTAG_Bool(REGB1)) {
39103 REGB1 = TAG_Bool(false);
39104 REGB0 = REGB1;
39105 } else {
39106 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
39107 REGB0 = REGB1;
39108 }
39109 }
39110 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39111 if (UNTAG_Bool(REGB0)) {
39112 /* ./parser//parser_prod.nit:7282 */
39113 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39114 if (UNTAG_Bool(REGB0)) {
39115 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7282);
39116 }
39117 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
39118 }
39119 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));
39120 /* ./parser//parser_prod.nit:7289 */
39121 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
39122 if (UNTAG_Bool(REGB0)) {
39123 } else {
39124 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7289);
39125 }
39126 ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[4]) = fra.me.REG[3];
39127 /* ./parser//parser_prod.nit:7290 */
39128 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39129 if (UNTAG_Bool(REGB0)) {
39130 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7290);
39131 }
39132 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
39133 stack_frame_head = fra.me.prev;
39134 init_table[itpos262] = 1;
39135 return;
39136 }
39137 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){
39138 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39139 val_t REGB0;
39140 fun_t CREG[1];
39141 val_t tmp;
39142 /* ./parser//parser_prod.nit:7284 */
39143 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39144 fra.me.file = LOCATE_parser___parser_prod;
39145 fra.me.line = 0;
39146 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___init_amodulename;
39147 fra.me.has_broke = 0;
39148 fra.me.REG_size = 2;
39149 fra.me.REG[0] = NIT_NULL;
39150 fra.me.REG[1] = NIT_NULL;
39151 fra.me.closure_ctx = closctx_param;
39152 fra.me.closure_funs = CREG;
39153 fra.me.REG[0] = p0;
39154 CREG[0] = clos_fun0;
39155 /* ./parser//parser_prod.nit:7285 */
39156 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
39157 if (UNTAG_Bool(REGB0)) {
39158 } else {
39159 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7285);
39160 }
39161 /* ./parser//parser_prod.nit:7286 */
39162 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(closctx->REG[4])!=NIT_NULL);
39163 if (UNTAG_Bool(REGB0)) {
39164 } else {
39165 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7286);
39166 }
39167 fra.me.REG[1] = ATTR_parser___parser_nodes___AModuleName____n_path(closctx->REG[4]);
39168 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39169 /* ./parser//parser_prod.nit:7287 */
39170 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
39171 stack_frame_head = fra.me.prev;
39172 return;
39173 }
39174 void parser___parser_prod___AModuleName___replace_child(val_t p0, val_t p1, val_t p2){
39175 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39176 val_t REGB0;
39177 val_t REGB1;
39178 val_t REGB2;
39179 val_t REGB3;
39180 val_t REGB4;
39181 val_t tmp;
39182 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39183 fra.me.file = LOCATE_parser___parser_prod;
39184 fra.me.line = 7293;
39185 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___replace_child;
39186 fra.me.has_broke = 0;
39187 fra.me.REG_size = 4;
39188 fra.me.REG[0] = NIT_NULL;
39189 fra.me.REG[1] = NIT_NULL;
39190 fra.me.REG[2] = NIT_NULL;
39191 fra.me.REG[3] = NIT_NULL;
39192 fra.me.REG[0] = p0;
39193 fra.me.REG[1] = p1;
39194 fra.me.REG[2] = p2;
39195 /* ./parser//parser_prod.nit:7295 */
39196 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]);
39197 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
39198 if (UNTAG_Bool(REGB0)) {
39199 } else {
39200 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39201 if (UNTAG_Bool(REGB1)) {
39202 REGB1 = TAG_Bool(false);
39203 REGB0 = REGB1;
39204 } else {
39205 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39206 REGB0 = REGB1;
39207 }
39208 }
39209 if (UNTAG_Bool(REGB0)) {
39210 /* ./parser//parser_prod.nit:7296 */
39211 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39212 if (UNTAG_Bool(REGB0)) {
39213 } else {
39214 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39215 if (UNTAG_Bool(REGB1)) {
39216 REGB1 = TAG_Bool(false);
39217 REGB0 = REGB1;
39218 } else {
39219 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39220 REGB0 = REGB1;
39221 }
39222 }
39223 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39224 if (UNTAG_Bool(REGB0)) {
39225 /* ./parser//parser_prod.nit:7297 */
39226 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39227 if (UNTAG_Bool(REGB0)) {
39228 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7297);
39229 }
39230 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39231 /* ./parser//parser_prod.nit:7298 */
39232 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*/;
39233 if (UNTAG_Bool(REGB0)) {
39234 } else {
39235 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7298);
39236 }
39237 /* ./parser//parser_prod.nit:7299 */
39238 ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]) = fra.me.REG[2];
39239 } else {
39240 /* ./parser//parser_prod.nit:7301 */
39241 ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]) = NIT_NULL;
39242 }
39243 /* ./parser//parser_prod.nit:7303 */
39244 goto label1;
39245 }
39246 /* ./parser//parser_prod.nit:7305 */
39247 REGB0 = TAG_Int(0);
39248 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
39249 if (UNTAG_Bool(REGB1)) {
39250 } else {
39251 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7305);
39252 }
39253 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
39254 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
39255 /* ./../lib/standard//kernel.nit:335 */
39256 while(1) {
39257 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
39258 if (UNTAG_Bool(REGB2)) {
39259 } else {
39260 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
39261 }
39262 /* ./../lib/standard//kernel.nit:215 */
39263 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
39264 /* ./../lib/standard//kernel.nit:335 */
39265 if (UNTAG_Bool(REGB2)) {
39266 /* ./parser//parser_prod.nit:7305 */
39267 REGB2 = REGB0;
39268 /* ./parser//parser_prod.nit:7306 */
39269 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
39270 if (UNTAG_Bool(REGB3)) {
39271 } else {
39272 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7306);
39273 }
39274 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
39275 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
39276 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
39277 if (UNTAG_Bool(REGB3)) {
39278 } else {
39279 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39280 if (UNTAG_Bool(REGB4)) {
39281 REGB4 = TAG_Bool(false);
39282 REGB3 = REGB4;
39283 } else {
39284 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39285 REGB3 = REGB4;
39286 }
39287 }
39288 if (UNTAG_Bool(REGB3)) {
39289 /* ./parser//parser_prod.nit:7307 */
39290 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39291 if (UNTAG_Bool(REGB3)) {
39292 } else {
39293 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39294 if (UNTAG_Bool(REGB4)) {
39295 REGB4 = TAG_Bool(false);
39296 REGB3 = REGB4;
39297 } else {
39298 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39299 REGB3 = REGB4;
39300 }
39301 }
39302 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
39303 if (UNTAG_Bool(REGB3)) {
39304 /* ./parser//parser_prod.nit:7308 */
39305 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*/;
39306 if (UNTAG_Bool(REGB3)) {
39307 } else {
39308 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7308);
39309 }
39310 /* ./parser//parser_prod.nit:7309 */
39311 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
39312 if (UNTAG_Bool(REGB3)) {
39313 } else {
39314 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7309);
39315 }
39316 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
39317 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
39318 /* ./parser//parser_prod.nit:7310 */
39319 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39320 if (UNTAG_Bool(REGB3)) {
39321 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7310);
39322 }
39323 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39324 } else {
39325 /* ./parser//parser_prod.nit:7312 */
39326 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
39327 if (UNTAG_Bool(REGB3)) {
39328 } else {
39329 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7312);
39330 }
39331 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
39332 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
39333 }
39334 /* ./parser//parser_prod.nit:7314 */
39335 goto label1;
39336 }
39337 /* ./../lib/standard//kernel.nit:337 */
39338 REGB2 = TAG_Int(1);
39339 /* ./../lib/standard//kernel.nit:218 */
39340 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
39341 /* ./../lib/standard//kernel.nit:337 */
39342 REGB0 = REGB2;
39343 } else {
39344 /* ./../lib/standard//kernel.nit:335 */
39345 goto label2;
39346 }
39347 }
39348 label2: while(0);
39349 /* ./parser//parser_prod.nit:7317 */
39350 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0])!=NIT_NULL);
39351 if (UNTAG_Bool(REGB0)) {
39352 } else {
39353 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7317);
39354 }
39355 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0]);
39356 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39357 if (UNTAG_Bool(REGB0)) {
39358 } else {
39359 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39360 REGB0 = REGB1;
39361 }
39362 if (UNTAG_Bool(REGB0)) {
39363 /* ./parser//parser_prod.nit:7318 */
39364 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39365 if (UNTAG_Bool(REGB0)) {
39366 } else {
39367 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39368 if (UNTAG_Bool(REGB1)) {
39369 REGB1 = TAG_Bool(false);
39370 REGB0 = REGB1;
39371 } else {
39372 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39373 REGB0 = REGB1;
39374 }
39375 }
39376 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39377 if (UNTAG_Bool(REGB0)) {
39378 /* ./parser//parser_prod.nit:7319 */
39379 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39380 if (UNTAG_Bool(REGB0)) {
39381 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7319);
39382 }
39383 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39384 /* ./parser//parser_prod.nit:7320 */
39385 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*/;
39386 if (UNTAG_Bool(REGB0)) {
39387 } else {
39388 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7320);
39389 }
39390 /* ./parser//parser_prod.nit:7321 */
39391 ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0]) = fra.me.REG[2];
39392 } else {
39393 /* ./parser//parser_prod.nit:7323 */
39394 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7323);
39395 }
39396 /* ./parser//parser_prod.nit:7325 */
39397 goto label1;
39398 }
39399 label1: while(0);
39400 stack_frame_head = fra.me.prev;
39401 return;
39402 }
39403 void parser___parser_prod___AModuleName___visit_all(val_t p0, val_t p1){
39404 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39405 val_t REGB0;
39406 val_t REGB1;
39407 val_t tmp;
39408 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39409 fra.me.file = LOCATE_parser___parser_prod;
39410 fra.me.line = 7329;
39411 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___visit_all;
39412 fra.me.has_broke = 0;
39413 fra.me.REG_size = 4;
39414 fra.me.REG[0] = NIT_NULL;
39415 fra.me.REG[1] = NIT_NULL;
39416 fra.me.REG[2] = NIT_NULL;
39417 fra.me.REG[3] = NIT_NULL;
39418 fra.me.REG[0] = p0;
39419 fra.me.REG[1] = p1;
39420 /* ./parser//parser_prod.nit:7329 */
39421 fra.me.REG[2] = fra.me.REG[0];
39422 /* ./parser//parser_prod.nit:7331 */
39423 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[2]);
39424 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39425 if (UNTAG_Bool(REGB0)) {
39426 } else {
39427 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39428 if (UNTAG_Bool(REGB1)) {
39429 REGB1 = TAG_Bool(false);
39430 REGB0 = REGB1;
39431 } else {
39432 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39433 REGB0 = REGB1;
39434 }
39435 }
39436 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39437 if (UNTAG_Bool(REGB0)) {
39438 /* ./parser//parser_prod.nit:7332 */
39439 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[2]);
39440 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*/;
39441 if (UNTAG_Bool(REGB0)) {
39442 } else {
39443 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7332);
39444 }
39445 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
39446 }
39447 /* ./parser//parser_prod.nit:7334 */
39448 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[2])!=NIT_NULL);
39449 if (UNTAG_Bool(REGB0)) {
39450 } else {
39451 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7334);
39452 }
39453 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[2]);
39454 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));
39455 /* ./parser//parser_prod.nit:7337 */
39456 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[2])!=NIT_NULL);
39457 if (UNTAG_Bool(REGB0)) {
39458 } else {
39459 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7337);
39460 }
39461 fra.me.REG[2] = ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[2]);
39462 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39463 stack_frame_head = fra.me.prev;
39464 return;
39465 }
39466 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){
39467 struct {struct stack_frame_t me;} fra;
39468 fun_t CREG[1];
39469 val_t tmp;
39470 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39471 fra.me.file = LOCATE_parser___parser_prod;
39472 fra.me.line = 0;
39473 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___visit_all;
39474 fra.me.has_broke = 0;
39475 fra.me.REG_size = 1;
39476 fra.me.REG[0] = NIT_NULL;
39477 fra.me.closure_ctx = closctx_param;
39478 fra.me.closure_funs = CREG;
39479 fra.me.REG[0] = p0;
39480 CREG[0] = clos_fun0;
39481 /* ./parser//parser_prod.nit:7335 */
39482 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
39483 stack_frame_head = fra.me.prev;
39484 return;
39485 }
39486 void parser___parser_prod___AQualified___empty_init(val_t p0, int* init_table){
39487 int itpos263 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AQualified].i;
39488 struct {struct stack_frame_t me;} fra;
39489 val_t tmp;
39490 if (init_table[itpos263]) return;
39491 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39492 fra.me.file = LOCATE_parser___parser_prod;
39493 fra.me.line = 7341;
39494 fra.me.meth = LOCATE_parser___parser_prod___AQualified___empty_init;
39495 fra.me.has_broke = 0;
39496 fra.me.REG_size = 1;
39497 fra.me.REG[0] = NIT_NULL;
39498 fra.me.REG[0] = p0;
39499 stack_frame_head = fra.me.prev;
39500 init_table[itpos263] = 1;
39501 return;
39502 }
39503 void parser___parser_prod___AQualified___init_aqualified(val_t p0, val_t p1, val_t p2, int* init_table){
39504 int itpos264 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AQualified].i;
39505 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
39506 val_t REGB0;
39507 val_t REGB1;
39508 val_t tmp;
39509 if (init_table[itpos264]) return;
39510 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39511 fra.me.file = LOCATE_parser___parser_prod;
39512 fra.me.line = 7343;
39513 fra.me.meth = LOCATE_parser___parser_prod___AQualified___init_aqualified;
39514 fra.me.has_broke = 0;
39515 fra.me.REG_size = 3;
39516 fra.me.REG[0] = NIT_NULL;
39517 fra.me.REG[1] = NIT_NULL;
39518 fra.me.REG[2] = NIT_NULL;
39519 fra.me.REG[0] = p0;
39520 fra.me.REG[1] = p1;
39521 fra.me.REG[2] = p2;
39522 /* ./parser//parser_prod.nit:7348 */
39523 CALL_parser___parser_prod___AQualified___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
39524 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));
39525 /* ./parser//parser_prod.nit:7354 */
39526 ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = fra.me.REG[2];
39527 /* ./parser//parser_prod.nit:7355 */
39528 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39529 if (UNTAG_Bool(REGB0)) {
39530 } else {
39531 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39532 if (UNTAG_Bool(REGB1)) {
39533 REGB1 = TAG_Bool(false);
39534 REGB0 = REGB1;
39535 } else {
39536 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39537 REGB0 = REGB1;
39538 }
39539 }
39540 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39541 if (UNTAG_Bool(REGB0)) {
39542 /* ./parser//parser_prod.nit:7356 */
39543 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39544 if (UNTAG_Bool(REGB0)) {
39545 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7356);
39546 }
39547 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39548 }
39549 stack_frame_head = fra.me.prev;
39550 init_table[itpos264] = 1;
39551 return;
39552 }
39553 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){
39554 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39555 val_t REGB0;
39556 fun_t CREG[1];
39557 val_t tmp;
39558 /* ./parser//parser_prod.nit:7349 */
39559 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39560 fra.me.file = LOCATE_parser___parser_prod;
39561 fra.me.line = 0;
39562 fra.me.meth = LOCATE_parser___parser_prod___AQualified___init_aqualified;
39563 fra.me.has_broke = 0;
39564 fra.me.REG_size = 2;
39565 fra.me.REG[0] = NIT_NULL;
39566 fra.me.REG[1] = NIT_NULL;
39567 fra.me.closure_ctx = closctx_param;
39568 fra.me.closure_funs = CREG;
39569 fra.me.REG[0] = p0;
39570 CREG[0] = clos_fun0;
39571 /* ./parser//parser_prod.nit:7350 */
39572 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
39573 if (UNTAG_Bool(REGB0)) {
39574 } else {
39575 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7350);
39576 }
39577 /* ./parser//parser_prod.nit:7351 */
39578 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(closctx->REG[0])!=NIT_NULL);
39579 if (UNTAG_Bool(REGB0)) {
39580 } else {
39581 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7351);
39582 }
39583 fra.me.REG[1] = ATTR_parser___parser_nodes___AQualified____n_id(closctx->REG[0]);
39584 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39585 /* ./parser//parser_prod.nit:7352 */
39586 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
39587 stack_frame_head = fra.me.prev;
39588 return;
39589 }
39590 void parser___parser_prod___AQualified___replace_child(val_t p0, val_t p1, val_t p2){
39591 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39592 val_t REGB0;
39593 val_t REGB1;
39594 val_t REGB2;
39595 val_t REGB3;
39596 val_t REGB4;
39597 val_t tmp;
39598 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39599 fra.me.file = LOCATE_parser___parser_prod;
39600 fra.me.line = 7360;
39601 fra.me.meth = LOCATE_parser___parser_prod___AQualified___replace_child;
39602 fra.me.has_broke = 0;
39603 fra.me.REG_size = 4;
39604 fra.me.REG[0] = NIT_NULL;
39605 fra.me.REG[1] = NIT_NULL;
39606 fra.me.REG[2] = NIT_NULL;
39607 fra.me.REG[3] = NIT_NULL;
39608 fra.me.REG[0] = p0;
39609 fra.me.REG[1] = p1;
39610 fra.me.REG[2] = p2;
39611 /* ./parser//parser_prod.nit:7362 */
39612 REGB0 = TAG_Int(0);
39613 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
39614 if (UNTAG_Bool(REGB1)) {
39615 } else {
39616 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7362);
39617 }
39618 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
39619 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
39620 /* ./../lib/standard//kernel.nit:335 */
39621 while(1) {
39622 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
39623 if (UNTAG_Bool(REGB2)) {
39624 } else {
39625 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
39626 }
39627 /* ./../lib/standard//kernel.nit:215 */
39628 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
39629 /* ./../lib/standard//kernel.nit:335 */
39630 if (UNTAG_Bool(REGB2)) {
39631 /* ./parser//parser_prod.nit:7362 */
39632 REGB2 = REGB0;
39633 /* ./parser//parser_prod.nit:7363 */
39634 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
39635 if (UNTAG_Bool(REGB3)) {
39636 } else {
39637 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7363);
39638 }
39639 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
39640 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
39641 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
39642 if (UNTAG_Bool(REGB3)) {
39643 } else {
39644 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39645 if (UNTAG_Bool(REGB4)) {
39646 REGB4 = TAG_Bool(false);
39647 REGB3 = REGB4;
39648 } else {
39649 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39650 REGB3 = REGB4;
39651 }
39652 }
39653 if (UNTAG_Bool(REGB3)) {
39654 /* ./parser//parser_prod.nit:7364 */
39655 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39656 if (UNTAG_Bool(REGB3)) {
39657 } else {
39658 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39659 if (UNTAG_Bool(REGB4)) {
39660 REGB4 = TAG_Bool(false);
39661 REGB3 = REGB4;
39662 } else {
39663 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39664 REGB3 = REGB4;
39665 }
39666 }
39667 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
39668 if (UNTAG_Bool(REGB3)) {
39669 /* ./parser//parser_prod.nit:7365 */
39670 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*/;
39671 if (UNTAG_Bool(REGB3)) {
39672 } else {
39673 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7365);
39674 }
39675 /* ./parser//parser_prod.nit:7366 */
39676 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
39677 if (UNTAG_Bool(REGB3)) {
39678 } else {
39679 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7366);
39680 }
39681 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
39682 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
39683 /* ./parser//parser_prod.nit:7367 */
39684 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39685 if (UNTAG_Bool(REGB3)) {
39686 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7367);
39687 }
39688 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39689 } else {
39690 /* ./parser//parser_prod.nit:7369 */
39691 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
39692 if (UNTAG_Bool(REGB3)) {
39693 } else {
39694 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7369);
39695 }
39696 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
39697 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
39698 }
39699 /* ./parser//parser_prod.nit:7371 */
39700 goto label1;
39701 }
39702 /* ./../lib/standard//kernel.nit:337 */
39703 REGB2 = TAG_Int(1);
39704 /* ./../lib/standard//kernel.nit:218 */
39705 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
39706 /* ./../lib/standard//kernel.nit:337 */
39707 REGB0 = REGB2;
39708 } else {
39709 /* ./../lib/standard//kernel.nit:335 */
39710 goto label2;
39711 }
39712 }
39713 label2: while(0);
39714 /* ./parser//parser_prod.nit:7374 */
39715 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]);
39716 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
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], fra.me.REG[1]);
39725 REGB0 = REGB1;
39726 }
39727 }
39728 if (UNTAG_Bool(REGB0)) {
39729 /* ./parser//parser_prod.nit:7375 */
39730 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39731 if (UNTAG_Bool(REGB0)) {
39732 } else {
39733 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39734 if (UNTAG_Bool(REGB1)) {
39735 REGB1 = TAG_Bool(false);
39736 REGB0 = REGB1;
39737 } else {
39738 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39739 REGB0 = REGB1;
39740 }
39741 }
39742 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39743 if (UNTAG_Bool(REGB0)) {
39744 /* ./parser//parser_prod.nit:7376 */
39745 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39746 if (UNTAG_Bool(REGB0)) {
39747 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7376);
39748 }
39749 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39750 /* ./parser//parser_prod.nit:7377 */
39751 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*/;
39752 if (UNTAG_Bool(REGB0)) {
39753 } else {
39754 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7377);
39755 }
39756 /* ./parser//parser_prod.nit:7378 */
39757 ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = fra.me.REG[2];
39758 } else {
39759 /* ./parser//parser_prod.nit:7380 */
39760 ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = NIT_NULL;
39761 }
39762 /* ./parser//parser_prod.nit:7382 */
39763 goto label1;
39764 }
39765 label1: while(0);
39766 stack_frame_head = fra.me.prev;
39767 return;
39768 }
39769 void parser___parser_prod___AQualified___visit_all(val_t p0, val_t p1){
39770 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39771 val_t REGB0;
39772 val_t REGB1;
39773 val_t tmp;
39774 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39775 fra.me.file = LOCATE_parser___parser_prod;
39776 fra.me.line = 7386;
39777 fra.me.meth = LOCATE_parser___parser_prod___AQualified___visit_all;
39778 fra.me.has_broke = 0;
39779 fra.me.REG_size = 4;
39780 fra.me.REG[0] = NIT_NULL;
39781 fra.me.REG[1] = NIT_NULL;
39782 fra.me.REG[2] = NIT_NULL;
39783 fra.me.REG[3] = NIT_NULL;
39784 fra.me.REG[0] = p0;
39785 fra.me.REG[1] = p1;
39786 /* ./parser//parser_prod.nit:7386 */
39787 fra.me.REG[2] = fra.me.REG[0];
39788 /* ./parser//parser_prod.nit:7388 */
39789 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[2])!=NIT_NULL);
39790 if (UNTAG_Bool(REGB0)) {
39791 } else {
39792 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7388);
39793 }
39794 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[2]);
39795 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));
39796 /* ./parser//parser_prod.nit:7391 */
39797 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[2]);
39798 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39799 if (UNTAG_Bool(REGB0)) {
39800 } else {
39801 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39802 if (UNTAG_Bool(REGB1)) {
39803 REGB1 = TAG_Bool(false);
39804 REGB0 = REGB1;
39805 } else {
39806 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39807 REGB0 = REGB1;
39808 }
39809 }
39810 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39811 if (UNTAG_Bool(REGB0)) {
39812 /* ./parser//parser_prod.nit:7392 */
39813 fra.me.REG[2] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[2]);
39814 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*/;
39815 if (UNTAG_Bool(REGB0)) {
39816 } else {
39817 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7392);
39818 }
39819 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39820 }
39821 stack_frame_head = fra.me.prev;
39822 return;
39823 }
39824 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){
39825 struct {struct stack_frame_t me;} fra;
39826 fun_t CREG[1];
39827 val_t tmp;
39828 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39829 fra.me.file = LOCATE_parser___parser_prod;
39830 fra.me.line = 0;
39831 fra.me.meth = LOCATE_parser___parser_prod___AQualified___visit_all;
39832 fra.me.has_broke = 0;
39833 fra.me.REG_size = 1;
39834 fra.me.REG[0] = NIT_NULL;
39835 fra.me.closure_ctx = closctx_param;
39836 fra.me.closure_funs = CREG;
39837 fra.me.REG[0] = p0;
39838 CREG[0] = clos_fun0;
39839 /* ./parser//parser_prod.nit:7389 */
39840 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
39841 stack_frame_head = fra.me.prev;
39842 return;
39843 }
39844 void parser___parser_prod___ADoc___empty_init(val_t p0, int* init_table){
39845 int itpos265 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoc].i;
39846 struct {struct stack_frame_t me;} fra;
39847 val_t tmp;
39848 if (init_table[itpos265]) return;
39849 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39850 fra.me.file = LOCATE_parser___parser_prod;
39851 fra.me.line = 7397;
39852 fra.me.meth = LOCATE_parser___parser_prod___ADoc___empty_init;
39853 fra.me.has_broke = 0;
39854 fra.me.REG_size = 1;
39855 fra.me.REG[0] = NIT_NULL;
39856 fra.me.REG[0] = p0;
39857 stack_frame_head = fra.me.prev;
39858 init_table[itpos265] = 1;
39859 return;
39860 }
39861 void parser___parser_prod___ADoc___init_adoc(val_t p0, val_t p1, int* init_table){
39862 int itpos266 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoc].i;
39863 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39864 val_t tmp;
39865 if (init_table[itpos266]) return;
39866 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39867 fra.me.file = LOCATE_parser___parser_prod;
39868 fra.me.line = 7399;
39869 fra.me.meth = LOCATE_parser___parser_prod___ADoc___init_adoc;
39870 fra.me.has_broke = 0;
39871 fra.me.REG_size = 2;
39872 fra.me.REG[0] = NIT_NULL;
39873 fra.me.REG[1] = NIT_NULL;
39874 fra.me.REG[0] = p0;
39875 fra.me.REG[1] = p1;
39876 /* ./parser//parser_prod.nit:7403 */
39877 CALL_parser___parser_prod___ADoc___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
39878 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));
39879 stack_frame_head = fra.me.prev;
39880 init_table[itpos266] = 1;
39881 return;
39882 }
39883 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){
39884 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39885 val_t REGB0;
39886 fun_t CREG[1];
39887 val_t tmp;
39888 /* ./parser//parser_prod.nit:7404 */
39889 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39890 fra.me.file = LOCATE_parser___parser_prod;
39891 fra.me.line = 0;
39892 fra.me.meth = LOCATE_parser___parser_prod___ADoc___init_adoc;
39893 fra.me.has_broke = 0;
39894 fra.me.REG_size = 2;
39895 fra.me.REG[0] = NIT_NULL;
39896 fra.me.REG[1] = NIT_NULL;
39897 fra.me.closure_ctx = closctx_param;
39898 fra.me.closure_funs = CREG;
39899 fra.me.REG[0] = p0;
39900 CREG[0] = clos_fun0;
39901 /* ./parser//parser_prod.nit:7405 */
39902 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TComment, ID_parser___parser_nodes___TComment)) /*cast TComment*/;
39903 if (UNTAG_Bool(REGB0)) {
39904 } else {
39905 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7405);
39906 }
39907 /* ./parser//parser_prod.nit:7406 */
39908 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(closctx->REG[0])!=NIT_NULL);
39909 if (UNTAG_Bool(REGB0)) {
39910 } else {
39911 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 7406);
39912 }
39913 fra.me.REG[1] = ATTR_parser___parser_nodes___ADoc____n_comment(closctx->REG[0]);
39914 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39915 /* ./parser//parser_prod.nit:7407 */
39916 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
39917 stack_frame_head = fra.me.prev;
39918 return;
39919 }
39920 void parser___parser_prod___ADoc___replace_child(val_t p0, val_t p1, val_t p2){
39921 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39922 val_t REGB0;
39923 val_t REGB1;
39924 val_t REGB2;
39925 val_t REGB3;
39926 val_t REGB4;
39927 val_t tmp;
39928 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39929 fra.me.file = LOCATE_parser___parser_prod;
39930 fra.me.line = 7411;
39931 fra.me.meth = LOCATE_parser___parser_prod___ADoc___replace_child;
39932 fra.me.has_broke = 0;
39933 fra.me.REG_size = 4;
39934 fra.me.REG[0] = NIT_NULL;
39935 fra.me.REG[1] = NIT_NULL;
39936 fra.me.REG[2] = NIT_NULL;
39937 fra.me.REG[3] = NIT_NULL;
39938 fra.me.REG[0] = p0;
39939 fra.me.REG[1] = p1;
39940 fra.me.REG[2] = p2;
39941 /* ./parser//parser_prod.nit:7413 */
39942 REGB0 = TAG_Int(0);
39943 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
39944 if (UNTAG_Bool(REGB1)) {
39945 } else {
39946 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 7413);
39947 }
39948 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
39949 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
39950 /* ./../lib/standard//kernel.nit:335 */
39951 while(1) {
39952 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
39953 if (UNTAG_Bool(REGB2)) {
39954 } else {
39955 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
39956 }
39957 /* ./../lib/standard//kernel.nit:215 */
39958 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
39959 /* ./../lib/standard//kernel.nit:335 */
39960 if (UNTAG_Bool(REGB2)) {
39961 /* ./parser//parser_prod.nit:7413 */
39962 REGB2 = REGB0;
39963 /* ./parser//parser_prod.nit:7414 */
39964 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
39965 if (UNTAG_Bool(REGB3)) {
39966 } else {
39967 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 7414);
39968 }
39969 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
39970 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
39971 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
39972 if (UNTAG_Bool(REGB3)) {
39973 } else {
39974 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39975 if (UNTAG_Bool(REGB4)) {
39976 REGB4 = TAG_Bool(false);
39977 REGB3 = REGB4;
39978 } else {
39979 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39980 REGB3 = REGB4;
39981 }
39982 }
39983 if (UNTAG_Bool(REGB3)) {
39984 /* ./parser//parser_prod.nit:7415 */
39985 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39986 if (UNTAG_Bool(REGB3)) {
39987 } else {
39988 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39989 if (UNTAG_Bool(REGB4)) {
39990 REGB4 = TAG_Bool(false);
39991 REGB3 = REGB4;
39992 } else {
39993 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39994 REGB3 = REGB4;
39995 }
39996 }
39997 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
39998 if (UNTAG_Bool(REGB3)) {
39999 /* ./parser//parser_prod.nit:7416 */
40000 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*/;
40001 if (UNTAG_Bool(REGB3)) {
40002 } else {
40003 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7416);
40004 }
40005 /* ./parser//parser_prod.nit:7417 */
40006 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
40007 if (UNTAG_Bool(REGB3)) {
40008 } else {
40009 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 7417);
40010 }
40011 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
40012 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
40013 /* ./parser//parser_prod.nit:7418 */
40014 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40015 if (UNTAG_Bool(REGB3)) {
40016 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7418);
40017 }
40018 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40019 } else {
40020 /* ./parser//parser_prod.nit:7420 */
40021 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
40022 if (UNTAG_Bool(REGB3)) {
40023 } else {
40024 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 7420);
40025 }
40026 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
40027 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
40028 }
40029 /* ./parser//parser_prod.nit:7422 */
40030 goto label1;
40031 }
40032 /* ./../lib/standard//kernel.nit:337 */
40033 REGB2 = TAG_Int(1);
40034 /* ./../lib/standard//kernel.nit:218 */
40035 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
40036 /* ./../lib/standard//kernel.nit:337 */
40037 REGB0 = REGB2;
40038 } else {
40039 /* ./../lib/standard//kernel.nit:335 */
40040 goto label2;
40041 }
40042 }
40043 label2: while(0);
40044 label1: while(0);
40045 stack_frame_head = fra.me.prev;
40046 return;
40047 }
40048 void parser___parser_prod___ADoc___visit_all(val_t p0, val_t p1){
40049 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
40050 val_t REGB0;
40051 val_t tmp;
40052 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40053 fra.me.file = LOCATE_parser___parser_prod;
40054 fra.me.line = 7427;
40055 fra.me.meth = LOCATE_parser___parser_prod___ADoc___visit_all;
40056 fra.me.has_broke = 0;
40057 fra.me.REG_size = 2;
40058 fra.me.REG[0] = NIT_NULL;
40059 fra.me.REG[1] = NIT_NULL;
40060 fra.me.REG[0] = p0;
40061 fra.me.REG[1] = p1;
40062 /* ./parser//parser_prod.nit:7429 */
40063 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
40064 if (UNTAG_Bool(REGB0)) {
40065 } else {
40066 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 7429);
40067 }
40068 fra.me.REG[0] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
40069 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));
40070 stack_frame_head = fra.me.prev;
40071 return;
40072 }
40073 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){
40074 struct {struct stack_frame_t me;} fra;
40075 fun_t CREG[1];
40076 val_t tmp;
40077 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40078 fra.me.file = LOCATE_parser___parser_prod;
40079 fra.me.line = 0;
40080 fra.me.meth = LOCATE_parser___parser_prod___ADoc___visit_all;
40081 fra.me.has_broke = 0;
40082 fra.me.REG_size = 1;
40083 fra.me.REG[0] = NIT_NULL;
40084 fra.me.closure_ctx = closctx_param;
40085 fra.me.closure_funs = CREG;
40086 fra.me.REG[0] = p0;
40087 CREG[0] = clos_fun0;
40088 /* ./parser//parser_prod.nit:7430 */
40089 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
40090 stack_frame_head = fra.me.prev;
40091 return;
40092 }
40093 void parser___parser_prod___Start___init(val_t p0, val_t p1, val_t p2, int* init_table){
40094 int itpos267 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___Start].i;
40095 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
40096 val_t tmp;
40097 if (init_table[itpos267]) return;
40098 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40099 fra.me.file = LOCATE_parser___parser_prod;
40100 fra.me.line = 7436;
40101 fra.me.meth = LOCATE_parser___parser_prod___Start___init;
40102 fra.me.has_broke = 0;
40103 fra.me.REG_size = 3;
40104 fra.me.REG[0] = NIT_NULL;
40105 fra.me.REG[1] = NIT_NULL;
40106 fra.me.REG[2] = NIT_NULL;
40107 fra.me.REG[0] = p0;
40108 fra.me.REG[1] = p1;
40109 fra.me.REG[2] = p2;
40110 /* ./parser//parser_prod.nit:7440 */
40111 ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]) = fra.me.REG[1];
40112 /* ./parser//parser_prod.nit:7441 */
40113 ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[0]) = fra.me.REG[2];
40114 stack_frame_head = fra.me.prev;
40115 init_table[itpos267] = 1;
40116 return;
40117 }
40118 void parser___parser_prod___Start___replace_child(val_t p0, val_t p1, val_t p2){
40119 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40120 val_t REGB0;
40121 val_t REGB1;
40122 val_t tmp;
40123 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40124 fra.me.file = LOCATE_parser___parser_prod;
40125 fra.me.line = 7444;
40126 fra.me.meth = LOCATE_parser___parser_prod___Start___replace_child;
40127 fra.me.has_broke = 0;
40128 fra.me.REG_size = 4;
40129 fra.me.REG[0] = NIT_NULL;
40130 fra.me.REG[1] = NIT_NULL;
40131 fra.me.REG[2] = NIT_NULL;
40132 fra.me.REG[3] = NIT_NULL;
40133 fra.me.REG[0] = p0;
40134 fra.me.REG[1] = p1;
40135 fra.me.REG[2] = p2;
40136 /* ./parser//parser_prod.nit:7446 */
40137 fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]);
40138 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
40139 if (UNTAG_Bool(REGB0)) {
40140 } else {
40141 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40142 if (UNTAG_Bool(REGB1)) {
40143 REGB1 = TAG_Bool(false);
40144 REGB0 = REGB1;
40145 } else {
40146 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40147 REGB0 = REGB1;
40148 }
40149 }
40150 if (UNTAG_Bool(REGB0)) {
40151 /* ./parser//parser_prod.nit:7447 */
40152 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40153 if (UNTAG_Bool(REGB0)) {
40154 } else {
40155 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40156 if (UNTAG_Bool(REGB1)) {
40157 REGB1 = TAG_Bool(false);
40158 REGB0 = REGB1;
40159 } else {
40160 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40161 REGB0 = REGB1;
40162 }
40163 }
40164 if (UNTAG_Bool(REGB0)) {
40165 } else {
40166 /* ./parser//parser_prod.nit:7449 */
40167 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40168 if (UNTAG_Bool(REGB0)) {
40169 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7449);
40170 }
40171 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40172 /* ./parser//parser_prod.nit:7450 */
40173 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*/;
40174 if (UNTAG_Bool(REGB0)) {
40175 } else {
40176 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7450);
40177 }
40178 /* ./parser//parser_prod.nit:7451 */
40179 ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]) = fra.me.REG[2];
40180 }
40181 /* ./parser//parser_prod.nit:7453 */
40182 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
40183 /* ./parser//parser_prod.nit:7454 */
40184 goto label1;
40185 }
40186 label1: while(0);
40187 stack_frame_head = fra.me.prev;
40188 return;
40189 }
40190 void parser___parser_prod___Start___visit_all(val_t p0, val_t p1){
40191 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40192 val_t REGB0;
40193 val_t REGB1;
40194 val_t tmp;
40195 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40196 fra.me.file = LOCATE_parser___parser_prod;
40197 fra.me.line = 7458;
40198 fra.me.meth = LOCATE_parser___parser_prod___Start___visit_all;
40199 fra.me.has_broke = 0;
40200 fra.me.REG_size = 4;
40201 fra.me.REG[0] = NIT_NULL;
40202 fra.me.REG[1] = NIT_NULL;
40203 fra.me.REG[2] = NIT_NULL;
40204 fra.me.REG[3] = NIT_NULL;
40205 fra.me.REG[0] = p0;
40206 fra.me.REG[1] = p1;
40207 /* ./parser//parser_prod.nit:7458 */
40208 fra.me.REG[2] = fra.me.REG[0];
40209 /* ./parser//parser_prod.nit:7460 */
40210 fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[2]);
40211 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40212 if (UNTAG_Bool(REGB0)) {
40213 } else {
40214 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40215 if (UNTAG_Bool(REGB1)) {
40216 REGB1 = TAG_Bool(false);
40217 REGB0 = REGB1;
40218 } else {
40219 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
40220 REGB0 = REGB1;
40221 }
40222 }
40223 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40224 if (UNTAG_Bool(REGB0)) {
40225 /* ./parser//parser_prod.nit:7461 */
40226 fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[2]);
40227 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*/;
40228 if (UNTAG_Bool(REGB0)) {
40229 } else {
40230 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7461);
40231 }
40232 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
40233 }
40234 /* ./parser//parser_prod.nit:7463 */
40235 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[2])!=NIT_NULL);
40236 if (UNTAG_Bool(REGB0)) {
40237 } else {
40238 nit_abort("Uninitialized attribute %s", "_n_eof", LOCATE_parser___parser_prod, 7463);
40239 }
40240 fra.me.REG[2] = ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[2]);
40241 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40242 stack_frame_head = fra.me.prev;
40243 return;
40244 }